前回(2020/05/01)の内容 プログラムとは 計算機への指示(作業手順)を記述したもの 「命令」を並べたもの これらの命令が、順に実行される !! コンピュータの操作 !! コンピュータに一々指示を出す !! コンピュータは、指示が出されるために何かをする !! <= コンピュータにまとまった何かをさせる !! => 人間がついている必要がある !! コンピュータを使っている間 !! 他のことができない !! 指示をまとめて出して、それを一気に実行できる !! コンピュータが仕事をしている(プログラムを実行している)間 !! 他の作業ができる プログラムの表現方法 人間が書く => 人間が書きやすいことが望ましい コンピュータが実行(読む) => コンピュータの都合に合わせること望ましい この二つの立場の矛盾を解決するために プログラミング言語 人間向きのプログラムの表現方法 コンパイル(翻訳)をすることにより コンピュータ向きのプログラムに変換可能なもの コンパイルとは 人間に判り易い形式(C 言語)から計算機が実行できる形(機械語)に変換する C 言語 この講義で学ぶ、プログラミング言語の名前 ちょっと古い言語 今の新しい言語の元となる言語(共通/基礎) 色々な表現を学ぶ 一年を通して、C 言語を一通り学ぶ printf : メッセージを出力する関数 順接 : 「命令」を並べると、その並べた「順」に命令が実行される 「命令の実行順序」を決めている 関数 : 「幾つかの命令列」に「名前を付けたもの」 関数の定義 : 命令列に名前を付ける 命令列 => 複雑なものに「名前」という単純なものを対応させる 関数の呼び出し : 名前を使って、命令列を呼び出す 「名前」を利用するだけで(複雑かもしれない)命令列がよびだせる 演習 コンパイルの仕方を覚える プログラムを書いてみよう Hello, World 単純で完全なプログラム プログラム作成の出発点 プログラムを少し変えては、実行して確認をする # 差分的プログラミング 命令(関数呼び出し)を並べてみよう(順接) 関数を作ってみよう(命令に名前を付ける) == 引数付き関数 関数本体の一部を「変数(へんすう)」にしたもの 「変数」具体的な値を割り当てられるもの => 値が割り当てられていない場合は、無意味 変数(割り当てによって、値が変化する「変わる数」)を含む命令 値が定まっていないとそのままでは実行できない 例 : 英語 S V S 主語 => I V 動詞 => stand S V => I stand. S 主語 => You V 動詞 => stand S V => You stand. 「変数」の内容を、後(実行時)に決める事により、振舞を変更できる (引数を持たない関数に比較して) より「抽象的な」関数 引数(ひきすう):引数付き関数に現れる「変数」 <数学> 関数定義 : f(x)=x*x ^ 仮引数 関数適用 : f(3)=3*3=9 ^ 実引数 仮引数(かりひきすう) : 関数の本体に現れる「変数」の宣言 (関数定義) 実引数(じつひきすう) : 「変数」の内容 (関数呼出し) 引数付き関数の効用 (本質的には「再利用[コピペ]」が目的) f3 = 3*3 f2 = 2*2 y = f3 + f2 f(x) = x*x y = f(3)+f(2) // 関数 f(x) の定義が再利用されている 一つの関数定義で(実引数の値を変更する事により..) (本体に含まれる変数(仮引数)値が異なるので異なる)複数の関数として利用できる make 最初に make をインストールする sudo apt install make パスワードは「soft」といれる