2024年度 電子情報通信課程 計算機実習II今日の説明動画本日の説明は,8本の動画に分かれています.それぞれ視聴して,理解ができたら次に進むようにして下さい. 動画の長さは次の通りです.自分のペースで進めながらも,1コマで終わるように頑張ってください.
講義に関して,ちょびっとコメントファイルの扱いについて課題の中で,何通りか指示が出てくる場合がありますので,その都度,ファイル名を変えて保存しましょう. 例えば,ex2-1.py の課題であれば,ex2-1_1.py,ex2-1_2.py ... などのようにします. メールの形式について件名は「report01」等でOKです.「.」は不要です. HTML形式や(指示がある場合を除き)添付ファイルで送らないように気をつけて下さい. 書き出しは,「相手の名前」「自分の名前」ですが,これらは合わせて文章ですので,体言止めというか名詞だけにならないように気をつけて下さい.
あと,宛先の敬称にも気をつけて下さい.「御中」「教授(←これは敬称ではなく役職名)」「様」「殿」などいろいろなパターンがあり,使い方がそれぞれ異なります. (今後のことですが)添付ファイルで送るときも,本文を忘れないように気をつけて下さい. レポートについて前回のレポート採点結果は,こちらです. ※龍大のアカウントからのアクセスのみ許可しています.個人のGoogleアカウントでアクセスしないように気をつけて下さい. 変数の扱い方今日のポイント数字を記憶する箱を「変数」といいます.実際は,メモリに記憶します. 計算機のメモリに,どのように数字が格納されるかを理解します. 計算機で扱う「型」の確認計算機(具体的にはIntelの一般的なCPU)は,1byteを最小単位としてメモリを利用することが多いです(メモリ空間に対してはbitが最小ではないので注意!).C言語では,それをどのように組み合わせるか(利用するか)を明示する必要があり,それを「型」と言います. Python では,型は変数ではなく入力されたデータの方が持ちます.そのため,プログラム上では型を明記する必要はありませんが,そのデータが何の型になっているかを意識してプログラムを書かないと,型が異なる値のやりとりを行う危険性があります. そのため,ここでは(Pythonでは使いませんが)C言語で使われている型を紹介し,変数を使うたびに計算機の中でどのように扱われているかを意識できることを目指します.
それぞれに対して符号無しの型はunsignedを頭につける 整数型とはメモリのビットの組み合わせを,そのまま数字に変換したものです.符号ありの場合は,最上位ビットを使って負の数を表現します.符号なしのchar型は,28=256通り表現できるため,0~255の数字を表し,いわゆるASCIIコードに対応します.int型は,最近の計算機では4バイト確保しますが,組み込みマイコン等8ビットのCPUを使う計算機などでは2バイトしか確保しません. 浮動小数点数型とは物理の計測量の表記の時に,有効数字を意識して1.23×104といった表記をしますが,その表記方法です.仮数部と指数部に分け,floatの場合,指数部8ビット,仮数部24ビット(符号部1ビット含む)で表現します.doubleの場合,指数部11ビット,仮数部53ビット(符号部1ビット含む)で表現します. 文字とは1バイトで表せる範囲に文字を対応させた文字コード(ASCIIコード),2バイトで表せる範囲に文字を対応させた文字コード(JISコード,Shift JIS,EUC),世界の文字を全て扱おうとした統一コード(UNICODE: 1文字3バイト)などがあります. いずれも,計算機のCPUが処理できるビット数以下に収まるように設計されており,一度に少なくとも1文字を扱うことが可能です. 文字列とは文字が複数連なったものです.内部処理的には1文字ずつしか扱えないため,1文字の処理×文字数分という繰り返し作業が必要になります. 「型」の扱いと同様で,pythonでは文字と文字列の違いが表には出てこないようになっています.そのため,文字列を囲むのにシングルクォーテーションとダブルクォーテーションのどちらも使うことができます. 例えば,文字列の中に「シングルクォーテーション」を表記したいときは,「ダブルクォーテーション」で囲うことで簡単に対応できます(逆も同様). とはいえ,講義担当者(植村)は,C言語との行き来があるので,pythonの文字列はダブルクォーテーションで囲うことを基本とします. ※なお,「バッククォーテーション」の記号もあるので要注意.「’(シングルクォーテーション)」,「”(ダブルクォーテーション)」,「‘(バッククォーテーション)」です. 数字の計算まずは,変数を使わずに,直接数字を扱ってみましょう. 四則演算の記号は,「+」「-」「*」「/」です(あえて全角で表記しています). ex2-1.pyoqhms(z4 / 59) oqhms(z / 2) oqhms((1 + 2) / 59) oqhms(z / 2 * 2) oqhms((z / 2) * 2) oqhms(.2) oqhms(.2 + .2 + .2) 解説-115 / 60割り算を実行します.Pythonでは型を意識する必要が無いため,整数を整数で割っても,実数の答えが返ってきます(C言語では整数になります). 1 / 3無理数を計算してみました.0.33... になります(私の環境では0.3333333333333333と3が16桁表記されました). なお,計算機の中での数字の扱い(浮動小数点数型)を考えると無理数となる数が10進数の場合と異なります.そのため,数字を判定するときには,ピッタリ一致しない場合があるので要注意です.詳しくは,pythonのチュートリアル(15. 浮動小数点演算、その問題と制限)を勉強して下さい. (2 + 3) / 60括弧の中が先に計算されます.なお,算数・数学と異なり,括弧は丸括弧しかありません.かわりに,丸括弧を何重にも使うことができます(多すぎると,対がわからなくなり読みにくいソースコードになってしまいますので要注意). 1 / 3 * 3無理数を有理数に戻してみました.問題なく1.0と表示されます.でも,本当に「問題ない」と考えて良いのでしょうか. (1 / 3) * 3先ほどの計算は,もしかすると「/ 3 * 3」を先に計算して「1 / 1」の計算をしていたのかもしれません.基本は前から計算するはずですが,一応,疑ってみました.そのため,「1 / 3」を先に計算するように括弧を追加しました.どうでしょうか. .3結果を見ればわかりますが,整数部が0の小数の場合,整数部の0を省略して小数点から記述することが可能です. .3 + .3 + .30.3を3回足してみましょう.心配な人は「0.3 + 0.3 + 0.3」と書いても大丈夫です.0.9 になりましたか? 文字列の表示次は,文字列を画面に表示してみます.前回のHello Worldと同様の内容です. ex2-1.pyoqhms("Gdkkn" + " " + "Vnqkc") oqhms("Gdkkn" + ' ' + "Vnqkc") oqhms('"Gdkkn Vnqkc"') oqhms('"Gdkkn" + " " + "Vnqkc"') oqhms("Gdkkn" + z4 / 59 + "Vnqkc") oqhms("Gdkkn" + rsq(z4 / 59) + "Vnqkc") 解説-2文字列の足し算 |