• 検索結果がありません。

main2.dvi

N/A
N/A
Protected

Academic year: 2021

シェア "main2.dvi"

Copied!
40
0
0

読み込み中.... (全文を見る)

全文

(1)金沢工業大学  年度前学期 開講科目. コンピュータ工学 配布資料. 光永 法明 無断再配布を禁止します 平成  年  月  日.

(2)

(3) 目次 第. 章       . コンピュータ入門 コンピュータの構成部品 メモリ ビット  ビット バイト 組み合わせと数字の表現  では足りない  整数の範囲  コンピュータと文字  整数以外も扱いたい  変数とアドレス  まとめ. 第章     .  第章     .      .    . . コンパイルしてみよう プログラミング言語 コンパイラ

(4) 言語から機械語へ 

(5)

(6)  ソースファイルについての注意 

(7)

(8)  をインストールしたら使ってみよう  プロジェクトの新規作成  プログラムを実行してみる  デバッガ機能を使ってみる  ダウンロードしたファイルを動かす 演習問題.          .  言語早分かり 基礎編. . 式と文 関数 プログラムの流れ: 関数から始まる 空白文字 インデント(字下げ).     .

(9)     .          . コメント 定数:数値の書き方 定数:文字を表す数値 特殊な文字を表す記号 文字列とメモリ 基本型 変数は宣言してから使う 関数のプロトタイプ宣言 変数名や関数名 予約語

(10) 変数名や関数名に使えない名前  関数 簡単な使い方  関数 簡単な使い方  関数とアドレス ポインタ 演習問題   プログラムを改造する   コンパイラのメッセージ    と  の間違い探し   プログラムを改造する その    プログラムを読む. .     .      .  .

(11) . 第 章 コンピュータ入門 . コンピュータの構成部品. 身近にあるコンピュータの例としてパソコンの構成部品を見てみましょう 図 。大 きく つに分けることが出来ます:. ! メモリ 周辺機器(ハードディスク、ディスプレイ、キーボード、マウス、プリンタほか). ! は手順(プログラム)に従って動作する部品です。メモリはメモ用紙・ノートのよ うなもの、周辺機器はそれ以外と考えてください。これは携帯電話やテレビの中のコン ピュータでも変わりはありません。 ポイント:. ! は手順(プログラム)にしたがって動作する プログラムはコンピュータの動作を決める メモリはメモ用紙である. 図 

(12) パソコンのマザーボード上には ! とメモリ、電源や周辺機器のための回路が ある。印のないところはほとんどが周辺機器用の回路。.

(13) . 第章. コンピュータ入門. 図 

(14) メモリにはアドレスがあり、  マスに " が  つ記入できる。 マスが  組になっ ている. . メモリ. メモリは、どのようなメモ用紙でしょうか。図  を見てください。このように  マス に または  を記入できる欄が 個で  セットになって並んでいます。升目には番号がつ いていてアドレス(

(15) 番地 と呼ばれます。メモをする"見るときには、本のページ のように、アドレスを指定します。 ポイント: メモリはアドレスで管理する アドレスでメモリ上の位置を指定する. . ビット. 情報を表す最小の単位がビットです。 ビットでは、 つの状態 と  を扱います。 と  で何が表現できるか考えて見ましょう 図  。もちろん、数字の と  が表せます。 電球の点灯"消灯も表せます。 "#、○"×、$"、ご飯がある"ない、たこ"いかと、 通 りの組み合わせのものなら表現できるのです。 ポイント:.  ビットは  つの状態を表せる 約束を決めれば、 ビットで、 つの数字、 つの記号、 つの状態、 つの種類など  通りのものが表現できる.

(16)   ビット. . 図 

(17)  ビットで表せるもの. 図 

(18)  ビットで表す. .  ビット. では  ビットあると何が表現できるでしょうか? ビットの数字で表すと、 % %  %  の  つの組み合わせが出来ます 図 。. . バイト.  ビットだけでは不便なので 個まとめて、  バイトと呼ぶ単位でコンピュータ上で扱 うことが多くなります。 " が 個あるので、 &  通りの状態が表せます。メモリの  マスは  ビット、 個まとめて  バイトを単位としてアドレスがついていることになり ます。 ポイント:. ビットをまとめて  バイトという  バイトには ビット含まれる  バイトで  通りが表せる メモリはバイト単位で扱う アドレスが  違うと  バイト違う.

(19) . 第章. コンピュータ入門. 図 

(20) メモリ上での数値の表現. . 組み合わせと数字の表現.  バイトで  通りの組み合わせが表現できます。つまり、整数に限るなら から  までが表現できます。負の数も表したいときには整数なら# から  まで表現すること も出来ます。 ポイント:.  バイトで正の整数なら から  までを表せる  バイトで正負の整数なら # から  までを表せる. .  では足りない.  通り # から  では、困ったことになる場面が多そうです。そこで、コンピュー タで数値を表すときには  バイト( ビット)以上のメモリを使って数値を表すような方 法があります。例えば  バイトなら、 ×  =   通りの組み合わせがあります。 また  バイト(  ビット)% バイト( ビット)も、よく使われます。メモリ上では、 数値を  バイト  進数の  桁 ずつ順に並べて図  のように表現します 。 ポイント:.  バイトで足りないときには  バイト以上使う 複数バイトの数字はメモリ上で連続して並べる この図 リトルエンディアンの  とは逆の順番、 

(21) や  

(22)    と書く  ビッグエンディアンという もあります。.

(23)   では足りない. . 整数の範囲. バイト数と扱える数字の組み合わせの数は次の通りになります。.  バイト  進数  桁: &  通り  バイト  進数  桁: &   通り  バイト  進数 桁: &     通り バイト  進数  桁: &      通り したがって 以上の整数を表すときには、各バイト数で以下の範囲を表すことが出来 ます。.  バイト  進数  桁: から   バイト  進数  桁: から    バイト  進数 桁: から     バイト  進数  桁: から      ところで負の数を扱いたいときもあります。そのときには、.  バイト  進数  桁:# ∼   バイト  進数  桁:#  ∼   バイト  進数 桁:#  ∼   バイト  進数  桁:# .    ∼     . とします 。 ポイント:. 以上の整数を表すときには、扱える数値の範囲は組み合わせの数より  少ない 負の整数を表すときには、最大の数値が組み合わせの数の約半分になる. .  進数で  から   から   から   から.  を負の値とします。また     を  とします の補数表現と. 呼ぶ。.

(24) . 第章. コンピュータ入門. 表 

(25) 文字コード表. . コンピュータと文字. コンピュータでは直接文字を表せません。そこで、 は $%  は  といったように文 字の代わりに番号で表すことにします 表  。コンピュータやプログラムで、同じ文字 に同じ番号を割り当てるため、文字コード表というものを使います 。. . 整数以外も扱いたい. 整数と文字では表現できないものがあります。そうです。実数です。コンピュータの中 での表現方法として浮動小数点という表現をよく使います。 進数の指数表現を思い出し . 以下を引用: 「」『フリー百科事典 ウィキペディア日本語版』 ( !"#$%)。 & 年 月 

(26) 日 & 時(')現在での最新版を取得。  日本語の文字は表にはありませんが、同様に数値で文字を表します。.

(27)   変数とアドレス. . てください。.    &      . . と表せます。ところで、仮数部の数字   と、指数部の数字   を規則を決めて並べ てみましょう。たとえば、仮数部を  桁、指数部を  桁で表すとします。そうすると、. '   ' . . と表せます。数字は  桁 と正負の記号が  つ で、有効数字  桁ながら、.    から.    までの大きな範囲の数字が表せることになります。そして     &     という小さな数字も扱えます。このように同じ桁数で 表現できる数字の範囲を広げる方法が使われています。 ところで有効数字の話が出ました。コンピュータの中で、大きな数字と小さな数字を足 したり引いたりすると、小さな数字の部分の誤差が出てしまいます。このことに注意して ください。また、ここでは  進数表記ですが、コンピュータ内では  進数表記のため変 換に誤差が出ます。詳細は省きますが、このことも頭の片隅に覚えておいてください。 ポイント: コンピュータの中では「浮動小数点」という方法で実数を表す 大きな数字と小さな数字を、足し引きするときには誤差に注意する.  進数表現と  進表現での誤差にも注意する.  . 変数とアドレス. ここで喫茶店の会計をすることを考えて見ましょう。メニューにはコーヒーとジュース だけなのですが、値段はときどき変わります。注文の数も変わります。このとき会計は、 コーヒーの値段 × コーヒーの数 . ジュースの値段 × ジュースの数. で計算できます。 数式で表すなら、コーヒーの値段を 、ジュースの値段を  、コーヒーの注文数を 、 ジュースの注文数を  とします。ただし、%  % %  は整数とします。このとき . ' .  . と変数で会計の計算式を書くことが出来ます。値段や注文数が変わっても、計算式はその ままです。 さて、喫茶店用のコンピュータで、コーヒーの値段をアドレス  に、ジュースの値段 をアドレス  に書くと決めましょう。注文されたコーヒーとジュースの数は、アドレス  と  に書きます。そうすると、.

(28) . 第章 アドレス  の値 × アドレス  の値 . コンピュータ入門. アドレス  の値 × アドレス  の値. という計算をすれば、飲み物の値段や注文された個数に応じて同じ手順で会計が出来ます。 でも、これでは、どういう計算をしているかよく分かりません。 そこで、アドレスに分かりやすい名前をつけましょう。そして数学と同じように変数と 呼びましょう。例えば、 変数の名前:  % 変数の型

(29)  バイトの整数% 変数のアドレス: 変数の名前:  . % 変数の型

(30)  バイトの整数% 変数のアドレス:.

(31). 変数の名前:  % 変数の型

(32)  バイトの整数% 変数のアドレス: 変数の名前: . % 変数の型

(33)  バイトの整数% 変数のアドレス:.

(34). とします。そうすると、.    ×  .  '    ×  .

(35).

(36). . . と計算式が書けます。このとき、アドレス  の値が  であれば、コーヒーの値段は  円として計算するのです。 ポイント: プログラムには変数を使う 変数の種類のことを型という 変数には名前とアドレスと型、値がある 変数を使うと値が変わっても計算式(プログラム)はそのままでいい プログラムで扱う変数の名前は長くてもいい. . まとめ コンピュータは !、メモリ、周辺機器から構成される コンピュータの動作はプログラムで決まる メモリはアドレスで、バイトを単位に管理される.  バイトは ビット 変数には、名前とアドレスと型、値がある プログラムでは変数の使い方が重要になる.

(37) . 第  章 コンパイルしてみよう . プログラミング言語. コンピュータで動作するプログラムは機械語と呼ばれる表現になっています。この機械 語は分かりにくいので、もう少し人に分かりやすい表現の形式でプログラムを書くことが 一般的です。その表現形式のことを「プログラミング言語」と呼びます。 言語はその一 種です。. . コンパイラ

(38) 言語から機械語へ. 言語から機械語へ変換することを「コンパイル」といいます。 「コンパイル」するツー ル(プログラム)を「コンパイラ」とよびます。この授業では「(」というコンパイラを 使います。「コンパイル」する前の 言語で書いたプログラムのことは「ソースプログラ ム」、ファイルのことを「ソースファイル」と呼びます。. . 

(39)

(40) . 

(41)

(42)  は ソースファイルの編集ができたり、 コンパイラをボタン  つで呼び出したり、 コンパイルして出来たプログラムを実行したり、 プログラムを  行ずつ確かめながら動かすことが出来たり、 ツールです。このようなツールのことを「統合開発環境」と呼びます。)* '' など も、その  つです。 

(43)

(44)  と一緒に ( もインストールできます。. . ソースファイルについての注意. ソースファイルは「テキストファイル形式」で保存します。+, のメモ帳で扱える 形式です。 

(45)

(46)  で編集するときには気にする必要はありませんが、-.#+/01 で開いたときなどには注意してください。.

(47) . 第章.  . コンパイルしてみよう. 

(48)

(49)  をインストールしたら使ってみよう プロジェクトの新規作成. インストールした 

(50)

(51)  を起動すると図  の画面 になります。ここで簡単な プログラムを作ってみましょう。.    , 2 をクリックします。  出てきたウィンドウ 図  で、   を 3 をクリックします。  図  で 45 をクリックします。  開発する言語は「 」を選び、45 をクリックします 図 。  図  で 2 6 に「」何でも構いません を入れ、7   2  にソースファイルなどを入れるディレクトリを指定します。ここでは をクリッ クして、

(52)   を作りました。そして 45 をクリックします。  図  で 78 をクリックします。  プロジェクトが作成されるので、左の  の中の .* から  をダブルク リックします 図 。 

(53)

(54)  では、プログラムのコンパイル方法などを「プロジェクト」と呼ぶ単位で管 理していて、上記の操作では、新しいプロジェクトとソースファイル  の雛形を作っ ています。 は # のようになっているはずです。 

(55)

(56)  では、ほかにワークスペースを保存することが出来ます。ワークスペース は、複数のプロジェクトを同時に開いたり、ウィンドウの配置などをまとめたものです。 保存しておくことで、前の作業を継続しやすくなります。. 

(57)    

(58)  

(59) .       

(60)

(61)  

(62) !" #   # $ リスト # # 以降の画面は、メッセージを日本語にしていない #"!()#* + の表示です。また実行結果は例であり多 少違っても問題がない場合があります.

(63)  

(64)

(65)  をインストールしたら使ってみよう. 図 

(66) 

(67)

(68)  の起動画面. 図 

(69) 作成するプロジェクトの種類を選ぶ. .

(70) . 第章. コンパイルしてみよう. 図 

(71) プロジェクト作成ウィザードの最初のウィンドウ. 図 

(72) 使用する言語 ここでは または '' を選ぶ.

(73)  

(74)

(75)  をインストールしたら使ってみよう. 図 

(76) プロジェクトの名前とディレクトリを指定する. 図 

(77) コンパイラ等を指定する。あらかじめ設定されている値でOK。. .

(78) . 第章. コンパイルしてみよう. 図 

(79) プロジェクトが作成されプログラムの雛形が用意されたところ。. . プログラムを実行してみる. それではプログラムを実行してみましょう。左上にボタンが並んでいます 図  。上の段 が実行ボタン、下の段がデバッグボタンです。* はコンパイル、0* は実行です。*9 0* はコンパイルしたら、すぐに実行します。0:* は再コンパイル  

(80)

(81)  が 不要と判断した場合にもコンパイルする、何か不具合があるときに使う、$: は、実行 中のプログラムを停止します。それでは *90* ボタンをクリックしてみましょう。図  が表示されれば /; です。「< ,」がプログラムの出したメッセージ、  ∼  = =  * までが 

(82)

(83)  の出すメッセージです。このウィンド ウで何かキーを押すとウィンドウは消えます。 

(84)

(85)  のウィンドウに戻って、下のほうに注目してください 図  。ここに コンパイルの結果などが表示されます。プログラムのデバッグ 不具合を直すこと には重 要なポイントになるので確認する習慣をつけてください。 +, のエクスプローラで 

(86)   の下を見ると  と :% :2 というディ レクトリが作成されています。  が先ほど作られたソースファイルの雛形になりま す。::*( のディレクトリには、 5 というファイルが出来ています。このファ イルをダブルクリックすると、さきほどのプログラムが実行できます 。. . デバッガ機能を使ってみる. 図  の下の段に並んでいるボタンはデバッガ機能のボタンです。ちょっと使ってみま しょう。ソースファイルをリスト # のように変更してください。そしてカーソルを  つ  . 半角の  と半角の¥マークは同じ意味です このプログラムの場合、一瞬で終わってしまうので、よくわからないかもしれません。.

(87)  

(88)

(89)  をインストールしたら使ってみよう. 図 

(90) 実行とデバッグのボタン。. 図 

(91) プログラムを実行して終了したところ。. .

(92) . 第章. コンパイルしてみよう. 図 

(93) コンパイル結果のメッセージ。. 図 

(94) プロジェクトが作られた様子をエクスプローラで見る。.

(95)  

(96)

(97)  をインストールしたら使ってみよう. . 目の  の行にしてから、「0*  *」のボタンを押してください。「45 」 ボタンを押すと  行ずつ順に実行されていく様子が分かります。ほかのボタンも、いろい ろ押して動作を試してみてください。. 

(98)    

(99)  

(100) .                  . $. 

(101)

(102)  

(103)

(104)  

(105)

(106)   

(107)  

(108)

(109)  

(110)

(111)  #. 

(112)  !" # 

(113)  !" # # !" # 

(114)  %!" # 

(115)  &!" #. リスト # #. . ダウンロードしたファイルを動かす. #  などダウンロードしたファイルを 

(116)

(117)  で扱うには  つの方法があり ます。 つは、ファイルを適当なディレクトリにおいておき、 

(118)

(119)  でプロジェク トを開いていない状態で、 

(120)

(121)  にドラッグ9ドロップする方法です。簡単に実行 できますが、デバッグ機能は使えません。 もう  つはプロジェクトを用意する方法です。  まず、第  章のように、新規プロジェクトを作ります。  その新規プロジェクトのディレクトリ 図  に、ダウンロードしたファイルをコ ピーします。  自動で作成された  を右クリックし、「0> ? 2」をクリックしま す 図 。  プロジェクトの名前を右クリックし、「$ ?」をクリックし、ダウンロードした ファイルを指定します 図  。  ダイアログが開くので 1:*( にチェックを入れ、/; をクリックします 図 。 %  は右クリックでなく、上の「 2」のところをクリックしても構いません。.

(122) . 第章. コンパイルしてみよう. 図 

(123)  をプロジェクトから外す。. 図 

(124) ダウンロードしたファイルをプロジェクトに加える。.

(125)  演習問題. . 図 

(126) ダイアログが開くので 1:*( にチェックを入れる。.  問題. 演習問題 

(127)

(128)  をインストールし、新規プロジェクトを作成しなさい。. 問題  

(129)

(130)  のデバッグ機能を確かめなさい 第  章。 問題  ダウンロードしたファイル #  を実行してみなさい。プロジェクトも作成して みること。.

(131)

(132) . 第  章  言語早分かり 基礎編 本章では 言語のプログラムを理解しする上で必要になる知識をまとめて紹介します。 最初から、すべてを覚えてしまう必要はありません。プログラムを書きながら覚えていき ましょう。. . 式と文. 言語では  つの文の区切りは「@」セミコロン です。文には、計算式や関数の呼び出 しを書くことが出来ます。 文の例.   ( * . ' # '   # '  )# '  )+ (# )#. 「&」は「代入演算子」と呼ばれ、左辺の変数に右辺の計算結果を代入します。計算式に は表  の記号が使えます。数式と同じように  も使えますが、「&」は方程式の等号で はなく、代入の意味に使います。. 表 

(133) 言語で使える算術演算子 記号. 計算. ' #. + − × ÷  A : と書くと  ÷ : の余りが計算される  & : と書くと  に : の値が代入される. " A &.

(134) . 第 章. . 言語早分かり 基礎編. 関数. 数学の関数は、円上の点    について半径を求める関数は、. .   . &. . . . ' .  . と書けます。ここで変数 %  の具体的な値が決まると、関数     の値を求められます。 言語では、コーヒーの数 B * とジュースの数 2* * が決まったときに会 計をする関数  を作ってみます。.     , +  - ,  .   #   ' , .  - , .#    # $ なんとなく、何をしているか分かりますね。コーヒーの数×  とジュースの数× の 合計を * 変数に代入して、結果を返します。ここで関数を呼び出すときに渡す値のこと を「引数」 (ひきすう)と呼びます。結果を返すには「*」を使います。会計を求める には、例えば.  '   + # とします。そうすると、B * に 、2* * に が代入されて、関数  が 「呼び出され」、計算結果  が「返され」ます。返された  のことを「戻り値」(も どりち)または「返り値」 (かえりち)と呼びます。戻り値  は変数  に代入されます。 ここで、.  '   + #   %+ # と書いたとしても、 の値は  のままで、 にはならないことに注意してください。 C言語の式は方程式ではないからです。また、関数の戻り値を変数に代入しなくても構い ません。 また、.  引数は関数内で変数として扱えること  変数の値が変わっても、呼び出した側の変数に影響はない.

(135)   プログラムの流れ: 関数から始まる. . ということを覚えておいてください。 から同じ関数を、次のように書くことが出来ます。.     +  -    '  . # -  ' -  .      - # $ このとき呼び出した側の数値 上の例では定数 % % % 一般では変数 が変わることはあり ません。. . プログラムの流れ: 関数から始まる. 言語ではプログラムは  関数から始まり 、上から順に式を実行していきます 。 次のプログラムでは、先頭に書いた  から   の順で式が実行されます。実行に関係が ない行も、ありますね。それらについては、以下で説明していきます。. /. 喫茶の会計を求めるプログラム. ./ 

(136)   .     , +  - , #.    0 +  ..01 .  + - +  #    %.   コーヒーの個数は?#    2+ 3 #   コーヒーの個数は?#    2+ 3- #. 組み込み向けなどでは ,-  関数から始まらないことがあります。 最適化といって、プログラムの動作を速くするようコンパイラに指示をすると順序が入れ替わる場合があ ります .

(137) . 第 章. 言語早分かり 基礎編. & 4   '   + - # 5   お会計は2 円です。" +  # .   # $ /.    関数は、喫茶の会計を返す ,  はコーヒーの数+ - ,  はジュースの数 それぞれ単位は注文数 戻り値は会計の金額で単位は円. ./.     , +  - ,  .   #. 6. // コーヒーの単価は  円+ ジュースの単価は  円   ' , .  - , .# // 計算式. 7.    # $. . 空白文字. 言語では、空白文字(スペース、タブ)と改行を書いて、プログラムを見やすくする ことができます。たとえば、. 

(138)       

(139)

(140)  

(141) !" #$ と. 

(142)         

(143)

(144)  

(145) !" # $.

(146)  インデント(字下げ). . の  つは同じ動作をしますが、適度な空白のある後者の方が見やすいでしょう。ただし、 全角のスペースは使えません。 また文が長くなったら、  行以上に分けても構いません。たとえば、.   ' 1,  1,  1,  1,  1,  1,  1,0  1,  1,  1,-# と書くことができます。. . インデント(字下げ). 慣習的に、中括弧 で囲まれた範囲を字下げ(インデント)します。たとえば、.     .  #. // ここはインデントなし // インデント  段.  '   #       ' # $. // // // //. インデント  段 インデント  段 インデント  段 インデント  段.   #. // インデント  段. $ とします。エディタによっては自動で字下げ(オートインデント)の機能があるので利用 すると便利です。 つの  で何文字、字下げするかは自由に決めて構いませんが、オート インデント機能に任せるのも  つの方法です。複数の人で共同でプログラムを書くときに は、あらかじめ統一しましょう。. . コメント. 空白文字以外に、プログラムの中に説明を書きたいときがあります。この説明(メモ) のことを「コメント」と呼びます。コメントの書き方は  通りです。 つの書き方は「"C」 と「C"」でコメントを囲みます。もう  つの書き方は「""」でコメントの開始を表します。 「""」の場合は行末までがコメントになります。たとえば、この関数は何かを示しておく ことを考えましょう。.

(147) . 第 章. 言語早分かり 基礎編. 表 

(148) 数値の書き方.  進数 整数  進数 実数% 浮動小数点  進数 整数 進数 整数. 書き方. 例. そのまま書く.    5 . そのまま書く あたまに 5 をつける あたまに をつける. /.    関数は、喫茶の会計を返す ,  はコーヒーの数+ - ,  はジュースの数 それぞれ単位は注文数 戻り値は会計の金額で単位は円. ./.     , +  - ,  .   # // コーヒーの単価は  円+ ジュースの単価は  円   ' , .  - , .# // 計算式    # $ 「"C」「C"」は入れ子に出来ないことに注意してください。たとえば、. /. /. コメント ./ ./ とすると、  つ目の「"C」はコメントとして無視されます。そのため、  つ目の「C"」は 対応がとれなくなってしまうのです。. . 定数:数値の書き方. プログラムにあらかじめ書いておく数値や文字などのことを「定数」といいます。数値 の書き方は表  の通りです。 進数を使うことは少ないかもしれませんが、 進数のと き、うっかり をつけないようにします。また小数点があるかないかで意味が変わります。  は整数、 は浮動小数点です。.

(149)   定数:文字を表す数値. . . 定数:文字を表す数値. 言語では文字も数値で表します。「」という文字を表すとき、 進数で  、 進数 「D」は で 5  と書くことが出来ます。もっと簡便な方法としてDD と書くことが出来ます。 シングルクオーテーションです。 「E」と間違えないようにします。全角文字は表せません。. . 特殊な文字を表す記号. 「\」バックスラッシュ 「¥」半角の¥マーク で、特殊な記号を表します。よく使 うのは、改行「\ ¥」、復帰「\ ¥」、タブ「\ ¥」です。.  . 文字列とメモリ. 単語や文、文章を扱う場合のために、文字を並べた「文字列」を扱います。メモリ上で は図xのように隣り合う文字を順に並べて表現し、先頭の文字のアドレス(ポインタ)で 文字列を代表させます。最後に指定した文字以外に が加わえます。したがって、メモリ 上では  文字の文字列は  バイトになります。 (ダブルクオーテー 定数の文字列をソースコード上で書くのは簡単です。文字列を「E」 ション)で囲みます。たとえば.    文字列  行目"  行目"  行目  カラム" カラム" "" ""  とします。「」が改行を表すので、 つ目の例は、.  行目  行目  行目 を表す文字列です。「」がタブを表すので、  つ目の例は、.  カラム  .  カラム  . を表します。ただしタブの文字数は環境によって変わるので見た目が違うことがあります。 また「E」でくくった文字列は「8 型のポインタ」になることを覚えておいてください。 図x.

(150) . 第 章. 言語早分かり 基礎編. 表 

(151) 言語の基本型. 型の名前. 必要なメモリ. 表せる数字の範囲. ( 8 8 *( 8 8 *( 8 ( *( (  *(  ( ( *( ( ( F *:.  バイト  バイト  バイト  バイト  バイト  バイト  バイト  バイト  バイト バイト  バイト  バイト バイト. # ∼  ∼  または # ∼  コンパイラによる ∼  #  ∼  ∼   #  ∼   ∼     #  ∼   ∼     #     ∼      ∼      浮動小数点 浮動小数点. . 基本型. 変数の種類のことを「型」と呼びます。 言語には表  に示す「基本型」があります。 基本型のほかに「配列」「ポインタ」と「構造体」「共有体」があります。扱う値が整数の 場合には   をよく使います。浮動小数点では *: を使うといいでしょう。8 は 文字と、組み込みプログラミングでメモリを節約したい場合に、よく使います。 負の整数を扱う ( 8 では、 進数で 5 から 5B% 8 では 5 から 5BB% 5 から 5BBBB% (  では 5 から 5BBBBBBBB を負の値とします。また 5B% 5BB% 5BBBB% 5BBBBBBBB を # とします  の補数表現 と呼ぶ。.  . 変数は宣言してから使う. 言語では、メモリ上のアドレスと変数の対応関係  章 を人が指定する必要はあ りません。コンパイラが対応関係をつくってくれます。そのかわり、コンパイラにプログ ラムで扱う変数名と型の対応関係を知らせる必要があります。それが「宣言」です。宣言 の方法は簡単です: . ビット . の場合 マイコンでは +%-!" *$ または +#$、 ビット . では +#$ 

(152) ビット . では )#-% )#-% と同じであることが多い.

(153)   関数のプロトタイプ宣言 <型の名前>. <変数の名前>#. とします。それと宣言は「ブロック」の先頭、つまり「」の次に書くというルールを守っ てください。同じ型であれば複数の宣言を  行にまとめたり、代入を指示する(「初期化」 と呼びます)ことも出来ます。例を次に示します。.     8   .  )+ (+ *#  

(154)  + + #.  ' #.  9 ' + - ' # <ほかの処理>. $.  . 関数のプロトタイプ宣言. 関数も宣言してから使います。関数は「プロトタイプ宣言」を書きましょう。プロトタ イプ宣言は、. 戻り値の型 関数名 引数  の型 引数  の名前+ 引数  の型 引数  の名 前+ # です。引数の名前は省略して構いません。最後に「@」を忘れずにつけます。たとえば.    + #.     , +  - , # と書きます。プロトタイプ宣言のあとであれば、関数の内容はソースコードのどこに書い ても構いません。.  . 変数名や関数名. 数学の変数名と違って一文字という制限はありません。変数名や関数名には英数字 $#G% #H% # %  を使って分かりやすい名前をつけます。大文字と小文字は区別します。先頭の 文字は英文字か です。ただし は特別な意味で使われることがあるので、避けたほうがい いでしょう。数字で始めてはいけません。#マイナス や'プラス といった記号も使えま せん。.

(155) . 第 章.  . 言語早分かり 基礎編. 予約語

(156) 変数名や関数名に使えない名前. 言語で特別な意味があり、変数名や関数目に使えない英文字の組み合わせを「予約語」 と呼びます。予約語は、以下の通りです 。 言語でなんらかの役割を持っている語なの で、興味があれば調べてみるとよいでしょう。.  + 9+ + +  +   + 

(157) + +  

(158) + 

(159) +  + ) + 

(160) + + 0+ +

(161) + +

(162)  0+ 0 +  +   + +  0 +  *+  +  +   + (+  +  0 + 1 + 1

(163) 

(164) + 

(165) .  .  関数 簡単な使い方.  関数はメッセージ 文字 を表示するのに使います。使い方は、.   書式文字列:+ 変数  :+ 変数 :+ ;;;# です。書式文字列には、表示したいメッセージを書きます。たとえば、.   

(166)

(167)  

(168) " #   こ" ん" に" ち" は" # とします。上の例は「< ,」と表示され、下の例では「こんにちは」が縦書きのよ うに表示されます。%  は、改行とタブを表します 第  章。 書式文字列に表  に示すAで始まる記号を書くと、順に後ろに並べた変数の値 または 定数の値 と置き換えて表示がされます。A を表示したい場合にはAAとします。 #  を実行すると、図  となります。 Aで始まる記号 AA除く の個数と、変数の個数は一 致させる必要があります。. 

(169)   .    0 +  ..01 .  ' #  

(170)   ' %&6#  

(171)  0 ' #  ' <8<#  :; ' # . 処理系 コンパイラ によって一部異なります.

(172)   関数 簡単な使い方. 図 

(173)  #  を実行した結果。.   2" + #   2)" + #        . 2" + # 2" + 0# 2" + # 2" + 0#.    ' 2 ' 2)+  ' 2+ 0 ' 2" + + + + 0#   <8<  2 " + #   =   2" + #   # $ リスト #  の使用例  # .  .  関数 簡単な使い方.  関数は、数字の入力などに使います。使い方は、.    書式文字列:+ 3変数  :+ 3変数 :+ ;;;#. .

(174) . 第 章. 言語早分かり 基礎編. 表 

(175)  の書式文字列 抜粋 書式文字列に 書く記号. A A5 A. A 桁 . A A AA. 置き換える変数の型 整数  進数表示 整数  進数表示 浮動小数点. 浮動小数点. 文字 文字列 なし. 使用例.   &  @ EAE% @   &  @ EA5E% @ *:  &  @ *: ( &   @ EAE% @ EAE% (@ *:  &  @ *: ( &   @ EAE% @ EAE% (@ 8  & D$D@ ED$D  AE% @ 8 IJ & EE@ E68  AE% @ E AAE@. 表示例.  :.     .     D$D  $ 68    A.

(176)    関数とアドレス ポインタ. . 表 

(177)  の書式文字列 抜粋 書式文字列に 書く記号. 置き換える変数の型. A. 整数. A. 浮動小数点 F. A. 浮動小数点 *:. 使用例.  @ EAE% F @ EAE% *: @ EAE%. @ @ @. です。書式文字列には、表  の記号を書きます。たとえば、.    2+ 3 #    2+ 3#    2

(178) + 30#. //  型の整数 // 

(179)  型の浮動小数点 //  

(180)  型の浮動小数点. とします。Aで始まる記号の表す型、個数と、変数の型、個数は一致させる必要がありま す。変数名の前に9をつけるのを忘れないでください。.  .  関数とアドレス ポインタ.  関数では、変数名の前に9をつけます。実は、この9をつけることで、変数のア ドレスを  関数には渡しています。関数の引数は  関数で変えることが出来な いのですが、アドレスが分かっていれば第  章の例のように変数の値を変えることが出 来ます。このような関数間の値の渡し方をポインタ渡しと呼びます 第章。. . 演習問題.  . プログラムを改造する. 問題 # の出力メッセージ「< ,K」を書き換えなさい。以下をすること: 「」を 回使ってメッセージを書く 「」と「」をそれぞれ  回以上使ってメッセージを書く.

(181) . 第 章. 言語早分かり 基礎編. メッセージ例 . 

(182)

(183)  

(184)  ! メッセージ例  こんにちは. 

(185)

(186)  まいど メッセージ例  名前 所属 鈴木 ロボティクス 田中 ロボティクス 矢沢 ロボティクス. 学年 年 年 年. 問題   # の会計をコーヒーとジュースではなく、別のもの(たとえば紅茶とココア)に しなさい。金額は好きに決めてよい。以下をすること: メッセージを変える 変数名を変える 単価を変える 問題   # を書き換えて、メニューを増やしなさい。以下をするとよい。 変数を追加する(宣言を忘れない).  の行を追加  関数の引数を増やす.  . コンパイラのメッセージ. 問題 以下の間違いのあるプログラムを直して、コンパイラの出すメッセージを確認しなさい。 そしてコンパイラのメッセージに合わせて、プログラムをどう直したらよいか、自分用の メモを作りなさい。.   5 には、「@」が抜けている行が  行ある。.

(187)   演習問題.  そのままコンパイルして、コンパイラの出すメッセージをメモしなさい。 : 「@」が抜けている行を確認し、メッセージと比較しなさい。   行ずつ修正して、コンパイル、実行できることを確認しなさい。   5 は、コメントがよくないためコンパイルできない。   5  には、全角空白の入った行がある。  そのままコンパイルして、コンパイラの出すメッセージをメモしなさい。 : 全角空白の入った行を確認し、メッセージと比較しなさい。  修正して、コンパイル、実行できることを確認しなさい。   5 は、変数の宣言が抜けている。   5 は、一部変数名が間違っている。   5 は、関数定義のところで関数名が間違っている。   5 は、関数呼び出しのところで関数名が間違っている。   5  は、プロトタイプ宣言の関数名が間違っている。.   5  は、プロトタイプ宣言で型を間違っている。    5  は、関数呼び出しのところで引数の数が間違っている。   5 は、予約語を変数に使っている。.  .

(188)  と 

(189)  の間違い探し. 問題  5 は  を呼び出すときの書式文字列と変数の対応関係に間違いがある。.  そのまま実行して何が起こるかみなさい。  変数に合わせて書式化文字列を直しなさい。 問題   5  は  を呼び出すときの書式文字列と変数の対応関係に間違いがある。.  そのまま実行して何が起こるかみなさい。  変数に合わせて書式化文字列を直しなさい。.

(190) . 第 章.  . 言語早分かり 基礎編. プログラムを改造する その . 問題 ドルやユーロを使う場合には、小数点以下の計算が必要になる。 # を書き換えて、 コーヒーが  ドル、ジュースが  ドルのときに会計が出来るように直しなさい。以下 が必要になる。.  を *: に変える  の引数内の A を A にする  の引数内の A を A にする メッセージの中身を円からドルにする エディタの置換機能は使わずタイプすること。タイプミスがあれば上の演習を思い出して 直しなさい。.  . プログラムを読む. 問題  5 のプログラムについて以下をしなさい。.  実行される順番を書きなさい   コメント%  関数の実体%  関数のプロトタイプ宣言% > 変数の宣言の記号をつけ なさい  各 * 変数が代入されている行で、 * 変数に代入される値を書きなさい  実行結果を書きなさい.

(191)

図  作成するプロジェクトの種類を選ぶ
図  使用する言語  ここでは  または '' を選ぶ
図  コンパイラ等を指定する。あらかじめ設定されている値でOK。
図  プログラムを実行して終了したところ。
+3

参照

関連したドキュメント

本事業を進める中で、

断するだけではなく︑遺言者の真意を探求すべきものであ

としても極少数である︒そしてこのような区分は困難で相対的かつ不明確な区分となりがちである︒したがってその

以上の基準を仮に想定し得るが︑おそらくこの基準によっても︑小売市場事件は合憲と考えることができよう︒

これからはしっかりかもうと 思います。かむことは、そこ まで大事じゃないと思って いたけど、毒消し効果があ

きも活発になってきております。そういう意味では、このカーボン・プライシングとい

自然言語というのは、生得 な文法 があるということです。 生まれつき に、人 に わっている 力を って乳幼児が獲得できる言語だという え です。 語の それ自 も、 から

・私は小さい頃は人見知りの激しい子どもでした。しかし、当時の担任の先生が遊びを