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

プログラミング言語

N/A
N/A
Protected

Academic year: 2021

シェア "プログラミング言語"

Copied!
2
0
0

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

全文

(1)

プログラミング言語2 02回  4/23 回答例

氏名         学籍番号       

問題: サンプルプログラムについて、以下を答えなさい。

1. 何をやるプログラムなのか、説明しなさい。

標準入力から最大10文字を読み取り、大文字を小文字に、小文字を大文字に変換したものを、標準出力に 出力する。

2. どのようにして、1.の内容を実現しているか、プログラムの流れに沿って説明しなさい。

1. sprintfを用いて、標準入力から10文字貰う

2. i=0とする(string[i]string[0]となり、中身は文字列の先頭の文字となる)。

3. string[i]の中身が\0になるまで、以下を繰り返す。

1. string[i]に入っている文字が、AからZの間の文字か否かを、大小関係を比べることで評価する。も

し、AからZの間の文字であった場合は、Atoaを用いて小文字に変換する。Atoaの中身について は後述する。AからZの間の文字であった場合は、ステップ5に進む。さもなければ、ステップ4 進む。

2. string[i]に入っている文字が、aからzの間の文字か否かを、大小関係を比べることで評価する。もし、

aからzの間の文字であった場合は、atoAを用いて小文字に変換する。atoAの中身については口 述する。

3. i1を加える(これにより、string[i]が、1文字先になる)。

4. 結果を出力する。

Atoaの中身

1. symbolから'A'を引き算することで、symbolAから何文字先の大文字かを計算し、その結果をcount に入れる。

2. 'a'にcountを加えることで、'a'からcount数先の文字を計算し、その結果をoutに入れる。

3. outを戻り値として返す。

atoAの中身

1. symbolから'a'を引き算することで、symbolaから何文字先の大文字かを計算し、その結果をcount 入れる。

2. 'A'countを加えることで、'A'からcount数先の文字を計算し、その結果をoutに入れる。

3. outを戻り値として返す。

3. 各行が何をやっているのか、わかる範囲で説明しなさい。

(プログラムに直接書き込みなさい)

この授業について、ご意見ご感想、もっと説明して欲しいところ等、何かあったらお書きください。

注: このシートは、4/23の授業の出欠を兼ねています。

(2)

サンプルプログラム 1:  #include <stdio.h>

2: 

3:  char Atoa(char symbol){

4:  char out;

5:  int count;

6: 

7:  count = symbol – 'A';

8:  out = 'a' + count;

9:  return out;

10: } 11: 

12: char atoA(char symbol) { 13:  char out;

14:  int count;

15: 

16:  count = symbol – 'a';

17:  out = 'A' + count;

18:  return out;

19: } 20: 

21: main(){

22:  char string[11];

23:  int i;

24: 

25:  scanf("%10s",string);

26:  printf("%s\n",string);

27:  i=0;

28:  while (string[i] != '\0'){

29:  if (string[i] >= 'A' && string[i] <= 'Z') { 30:  string[i] = Atoa(string[i]);

31:  }else if (string[i] >= 'a' && string[i] <= 'z') { 32:  string[i] = atoA(string[i]);

33:  } 34:  i++;

35:  }

36:  printf("%s\n",string);

37: }

入出力を用いるので、 stdio.h を include する。

関数 Atoa の宣言。

入力として文字を貰い、戻り値として文字を返す。

文字型変数 out を宣言 整数型変数 count を宣言

引き算を行うことで、 A から何文字先かを計算し、結 果を count に入れる。

足し算を行うことで、 a から count 文字先も文字を計 算し、結果を out に入れる。

戻り値として out を返す。

関数 atoA の宣言。

入力として char を貰い、戻り値として char を返す。

文字型変数 out を宣言 整数型変数 count を宣言

引き算を行うことで、 A から何文字先かを計算し、結 果を count に入れる。

足し算を行うことで、 a から count 文字先も文字を計 算し、結果を out に入れる。

戻り値として out を返す。

関数 main の宣言。入力なし。

サイズ 11 の文字型の配列 string を宣言。

整数型の変数 i を宣言。

標準入力から配列 string に、最大 10 文字入力。

標準出力に配列 string の内容を出力。

i に 0 を代入。

見ている文字が \0 になる

まで繰り返す。 大小関係を比べて、 A か ら Z の間の文字かを判定。

大小関係を比 べて、 a から z の間の文字 かを判定。

Atoa に 1 文字渡して、

結果を string[i] に入れる atoA に 1 文字渡して、

結果を string[i] に入 れる

結果を出力する。

i の値を 1 つ増やす。

参照

関連したドキュメント

ールがある.Block モジュールは,波括弧{}で囲まれたものとして表現する.Block

令に制御が移る。そうでなければ次の命令に制御が移る。 &lt;address&gt; は分岐オフ セットを表す 16 ビットの符号付き整数である。.

goto &lt;address&gt; 指定した &lt;address&gt; を分岐オフセットとして、この goto 命令からオフセットだ. け離れた命令に制御が移る。 &lt;address&gt;

 新しい図形「矢印」を加える 手続き draw は、矢印も描ける ように case 文が追加される.

オブジェクト指向スクリプト言語。 2000 年前後までは Web プログラミングにも良く利用されていたが現 在は

き た 場 合 は,x10.lang.MultipleExceptions が送られる. X10 の

Erlang eXchange ☆ 15 というイベントがロンドンで開 催され,3

float double char int 変数の型 実数 (浮動小数点数) • 範囲・精度が異なる 整数 • 表現できる数の範囲が 異なる