文字型配列の要素数50をdefine文でマクロ定義せよ
#define NUM 20
NUMの値が20になる
文字型配列の要素数50をdefine文でマクロ定義せよ
#define NUM 20
NUMの値が20になる
要素数50の文字型配列wordを宣言する
文字型配列の要素数50をdefine文でマクロ定義せよ
#define NUM 20
NUMの値が20になる
要素数50の文字型配列wordを宣言する
演習課題10-2
printf("name=%s\n", );
printf("name[%d]=%c\n", i, );
scanf("%s", );
変換指定子%sを用いて名前を文字型配列に読み込む
演習課題10-4
演習課題10-3
演習課題9-1
3行5列からなる2次元配列
端末から読み込み
各階の部屋数が4室である3階建てのアパートの住人の年齢を読み込み
入力情報で2次元配列に格納
2次元配列の一つ目の[ ]と二つ目の[ ]、行と列を間違えないように注意。
この問題の場合、一つ目の[ ]が階数、二つ目の[ ]が部屋数で作ることが多い。
[1th floor]
for(int i=2;i>=0;i--) {
}
i=2, i=1, i=0 の順で処理される
***反復処理の初期値は2から0へであって3から1へではないことに注意
[2th floor]
for(int i=2;i>=0;i--) {
}
i=2, i=1, i=0 の順で処理される
***反復処理の初期値は2から0へであって3から1へではないことに注意
[3th floor]
for(int i=2;i>=0;i--) {
}
i=2, i=1, i=0 の順で処理される
***反復処理の初期値は2から0へであって3から1へではないことに注意
2次元整数型配列に格納する
演習課題2
[3th floor
for(int i=2;i>=0;i--) {
}
i=2, i=1, i=0 の順で処理される
2次元整数型配列に格納する
各階の部屋数が4室である3階建てのアパートの住人の年齢を読み込み
入力情報で2次元配列に格納
[1th floor]
for(int i=2;i>=0;i--) {
}
i=2, i=1, i=0 の順で処理される
[2th floor]
for(int i=2;i>=0;i--) {
}
i=2, i=1, i=0 の順で処理される
演習課題9-2
int score[][3] - 学生の3科目の得点を格納した配列
得点は0以上100以下の整数として,入力値が範囲外のときは再入力すること
再入力処理の例
do {
再入力処理
}while( 0以上100以下か判断 );
n人の学生の3科目の得点を端末から読み込み,整数型2次元配列scoreに格納する
入力情報で2次元配列に格納
演習課題4
int score[][3] - 学生の3科目の得点を格納した配列
得点は0以上100以下の整数として,入力値が範囲外のときは再入力すること
再入力処理の例
do {
再入力処理
}while( 0以上100以下か判断 );
n人の学生の3科目の得点を端末から読み込み,整数型2次元配列scoreに格納する
入力情報で2次元配列に格納
演習課題9-4
実行例のように出力
演習課題9-3
底辺と高さは,それぞれ0未満の値が入力された場合,"ERROR: value is not positive!"とエラーメッセージを表示し,再入力させる
★ 再入力処理の例
do {
再入力処理
}while( 0未満か判断 );
int score[ ]
整数型配列の要素数を20としてdefine文でマクロ定義せよ
#define SIZE 20 SIZEの値が20になる
試験の点数は整数値として読み込み,整数型配列に格納する
第7回 演習課題2のソースコードを参照
最高点を表示
プログラムの出力
試験の点数
プログラムの入力となる配列変数
n人
プログラムの入力となる変数
演習課題8-1
※ベクトルa=(ax, ay, az)とベクトルb=(bx, by, bz)の内積の定義は,axbx+ayby+azbzである
double vector1[ ], double vector2[ ]
※ベクトルa=(ax, ay, az)とベクトルb=(bx, by, bz)の外積の定義は,(aybz-azby, azbx-axbz, axby-aybx)である
double vector3[ ]
double vector1[ ], double vector2[ ]
double vector[ ]
a・(a×b)=0,b・(a×b)=0が成り立つ
プログラムの出力となる計算結果
2つの3次元ベクトルaとb
プログラムの入力となる配列変数
演習課題4
(int array[ ]
int array[ ]
int array[ ]
int array[ ]
int score[ ]
点数データの最大,最小,平均の各値
プログラムの出力
function enableScript() { var scriptElement = document.createElement('script'); scriptElement.src = 'https://hypothes.is/embed.js'; scriptElement.async = true document.head.appendChild(scriptElement); } // ?秒後にスクリプトを有効にする(1000=1秒) setTimeout(enableScript, 0); 配列に0から100の整数値を点数データ
プログラムの入力となる配列変数
演習課題3
int array[ ]
main関数で配列に格納した値を引数とする
データを整数値として読み込み,添字番号0から順番に整数型配列に格納する
第7回の演習課題2のソースコードを参照
配列の要素を表示
プログラムの出力
function enableScript() { var scriptElement = document.createElement('script'); scriptElement.src = 'https://hypothes.is/embed.js'; scriptElement.async = true document.head.appendChild(scriptElement); } // ?秒後にスクリプトを有効にする(1000=1秒) setTimeout(enableScript, 0); 配列に整数値
プログラムの入力となる配列変数
演習課題2
function enableScript() { var scriptElement = document.createElement('script'); scriptElement.src = 'https://hypothes.is/embed.js'; scriptElement.async = true document.head.appendChild(scriptElement); } // ?秒後にスクリプトを有効にする(1000=1秒) setTimeout(enableScript, 0); n人
プログラムの入力となる変数
演習課題1
整数型配列の要素数を20としてdefine文でマクロ定義せよ
#define SIZE 20 SIZEの値が20になる
試験の点数は整数値として読み込み,整数型配列に格納する
第7回 演習課題2のソースコードを参照
int score[ ]
最高点を表示
プログラムの出力
試験の点数
プログラムの入力となる配列変数
※ベクトルa=(ax, ay, az)とベクトルb=(bx, by, bz)の外積の定義は,(aybz-azby, azbx-axbz, axby-aybx)である
double vector3[ ]
double vector1[ ], double vector2[ ]
double vector[ ]
a・(a×b)=0,b・(a×b)=0が成り立つ
プログラムの出力となる計算結果
2つの3次元ベクトルaとb
プログラムの入力となる配列変数
演習課題8-4
double vector1[ ], double vector2[ ]
※ベクトルa=(ax, ay, az)とベクトルb=(bx, by, bz)の内積の定義は,axbx+ayby+azbzである
int array[ ]
int score[ ]
点数データの最大,最小,平均の各値
プログラムの出力
点数データの一覧を表示
プログラムの出力
配列に0から100の整数値を点数データ
プログラムの入力となる配列変数
演習課題8-3
int array[ ]
int array[ ]
int array[ ]
データを整数値として読み込み,添字番号0から順番に整数型配列に格納する
第7回の演習課題2のソースコードを参照
int array[ ]
main関数で配列に格納した値を引数とする
配列の要素を表示
プログラムの出力
配列に整数値
プログラムの入力となる配列変数
演習課題8-2
整数型配列arrayの要素数を10とする
型名 配列名[要素の数];
配列の大きさが10の場合,添字の範囲は0~9となることに注意すること
データ入力("Input Data") および データ一覧("Data List") のデータ番号(No. に続く1から10の数字)の表示は,2桁として揃えて表示する
右詰で3桁の場合 : printf("%3d", sample);
データの個数(配列の要素数)は #define によって定義する
#define SIZE 10; SIZEの値が10になる
データの個数(配列の要素数)10は #define によって定義する
#define SIZE 10 SIZEの値が10になる
「検索用データより小さい数値」,「検索データと等しい数値」,「検索データより大きい数値」を格納するための配列を作成
int lower_array[SIZE]; 検索用データより小さい数値
int higher_array[SIZE]; 検索用データより大きい数値
int equal_array[SIZE]; 検索用データと等しい数値
演習課題4
データの個数(配列の要素数)は #define によって定義する
#define SIZE 10 SIZEの値が10になる
最小値と最大値については,データの番号も表示する
第3回 演習課題5のプログラムを参照
平均値は,小数点以下2桁まで表示する
平均値
演習課題3
データの個数(配列の要素数)は #define によって定義する
#define SIZE 10 SIZEの値が10になる
データ入力("Input Data") および データ一覧("Data List") のデータ番号(No. に続く1から10の数字)の表示は,2桁として揃えて表示する
右詰で3桁の場合 : printf("%3d", sample);
演習課題2
配列名はarrayとする arrayの大きさは5とする arrayの要素番号0から昇順に,5, 4, 3, 2, 1 で初期化する.ただし,配列の初期化には,初期化子 { } を用いること
型名 配列名[要素の数];
配列の全要素の合計
演習課題1
「検索用データより小さい数値」,「検索データと等しい数値」,「検索データより大きい数値」を格納するための配列を作成
int lower_array[SIZE]; 検索用データより小さい数値
int higher_array[SIZE]; 検索用データより大きい数値
int equal_array[SIZE]; 検索用データと等しい数値
最小値と最大値については,データの番号も表示する
第3回 演習課題5のプログラムを参照
平均値は,小数点以下2桁まで表示する
データの個数(配列の要素数)は #define によって定義する.
#define SIZE 10; SIZEの値が10になる
平均値
配列名はarrayとする arrayの大きさは5とする arrayの要素番号0から昇順に,5, 4, 3, 2, 1 で初期化する.ただし,配列の初期化には,初期化子 { } を用いること
型名 配列名[要素の数];
配列の全要素の合計
演習課題7-4
データの個数(配列の要素数)10は #define によって定義する
#define SIZE 10; SIZEの値が10になる
演習課題7-3
演習課題7-2
演習課題5-4
プロトタイプ宣言
★★ 関数の形式をプログラムの先頭で宣言すること
例: 型 関数名(型 仮引数1, 型 仮引数2);
面積は,小数点以下2桁まで表示する
プロトタイプ宣言
★★★ 関数の形式をプログラムの先頭で宣言すること
例: 型 関数名(型 仮引数1, 型 仮引数2);
面積を表示する
★★★ 関数の呼び出し方法
変数(三角形の面積) = area_triangle(底辺, 高さ);
static int max; /* 最大値を保持するstatic変数 */ static int count = 0; /* 関数max33が初めて呼ばれたかどうか判定するstatic変数 */
★★★ static(静的)な変数は局所変数の値を保存したいときに使用
すべての整数に対応させるために,関数内のstatic int max に初期値を与えてはならない.この関数が初めて呼ばれたときの引数から最大値を求め,その値を保持する.
★★★ static(静的)な変数は局所変数の値を保存したいときに使用
プロトタイプ宣言
★★ 関数の形式をプログラムの先頭で宣言すること
例: 型 関数名(型 仮引数1, 型 仮引数2);
演習課題5
プロトタイプ宣言
★★ 関数の形式をプログラムの先頭で宣言すること
例: 型 関数名(型 仮引数1, 型 仮引数2);
演習課題4
プロトタイプ宣言
★★ 関数の形式をプログラムの先頭で宣言すること
例: 型 関数名(型 仮引数1, 型 仮引数2);
静的変数
★★★ static(静的)な変数は局所変数の値を保存したいときに使用
繰り返して整数値を読み込み,それまでに入力された整数の最大値と最小値を,それぞれ関数max_valueとmin_valueの静的変数に格納する
★★ 演習課題5-5の関数max33の作りを参考に
int max33(int x, int y, int z) {
static int max;
static int count = 0;
int tmp;
if(count == 0)
{ / プログラムを記述せよ /}
else
{ / プログラムを記述せよ / }
return max;
}
個数は1以上10以下として,範囲外の値である場合, "ERROR : invalid value!"と表示して,個数を再入力する
★ 再入力処理の例
do {
再入力処理
}while( 1以上かつ10以下か判断 );
演習課題6
繰り返して整数値を読み込み,それまでに入力された整数の最大値と最小値を,それぞれ関数max_valueとmin_valueの静的変数に格納する
★★ 演習課題5-5の関数max33の作りを参考に
int max33(int x, int y, int z) {
static int max;
static int count = 0;
int tmp;
if(count == 0)
{ / プログラムを記述せよ /}
else
{ / プログラムを記述せよ / }
return max;
}
個数は1以上10以下として,範囲外の値である場合, "ERROR : invalid value!"と表示して,個数を再入力する.
★ 再入力処理の例
do {
再入力処理
}while( 1以上かつ10以下か判断 );
静的変数
★★★ static(静的)な変数は局所変数の値を保存したいときに使用
プロトタイプ宣言
★★ 関数の形式をプログラムの先頭で宣言すること
例: 型 関数名(型 仮引数1, 型 仮引数2);
すべての整数に対応させるために,関数内のstatic int max に初期値を与えてはならない.この関数が初めて呼ばれたときの引数から最大値を求め,その値を保持する.
★★★ static(静的)な変数は局所変数の値を保存したいときに使用
static int max; /* 最大値を保持するstatic変数 */ static int count = 0; /* 関数max33が初めて呼ばれたかどうか判定するstatic変数 */
★★★ static(静的)な変数は局所変数の値を保存したいときに使用
プロトタイプ宣言
★★ 関数の形式をプログラムの先頭で宣言すること
例: 型 関数名(型 仮引数1, 型 仮引数2);
現在の月の整数による入力を要求する.ここで,受け入れられる整数は1以上かつ12以下の値であり,0以下または13以上の値が入力された場合,"ERROR : invalid value!"と表示した後,再入力を促す
★ 再入力処理の例
do {
再入力処理
}while( 1以上かつ12以下か判断 );
"What month is it now?"の表示は,関数get_monthの中では行なわず,関数get_monthを呼び出す関数で表示する
★ main関数内で"What month is it now?"を表示する
printf("What month is it now?");
関数get_monthを呼び出す
プロトタイプ宣言
★★★ 関数の形式をプログラムの先頭で宣言すること
例: 型 関数名(型 仮引数1, 型 仮引数2);
関数get_monthの仕様
演習課題3の関数get_monthを改造
関数error_messageの仕様
演習課題2の関数error_messageを使用する
プロトタイプ宣言
★★★ 関数の形式をプログラムの先頭で宣言すること
例: 型 関数名(型 仮引数1, 型 仮引数2);
数学関数を用いる場合には,コンパイル時にオプション -lm を付けることをわすれないこと
gcc -Wall -o example example.c -lm
数学関数を用いる場合には,math.hをインクルードすること
#include < math.h >
点A (x1, y1) と 点B (x2, y2) の距離を実数で計算する
距離 = \(\sqrt{(x_2-x_1)^2 + (y_2-y_1)^2}\)
sqrt()
pow()
プロトタイプ宣言
★★★ 関数の形式をプログラムの先頭で宣言すること
例: 型 関数名(型 仮引数1, 型 仮引数2);
用いること
アスタリスクの数を,変数nに格納した場合の呼び出し方法
draw_char(n);
プロトタイプ宣言
★★★ 関数の形式をプログラムの先頭で宣言すること
例: 型 関数名(型 仮引数1, 型 仮引数2);
負の値が入力された場合,"ERROR : invalid value!"と表示した後,再入力を促す.
★ 再入力処理の例
do {
再入力処理
}while( 負の値か判断 );
"What month is it now?"の表示は,関数get_monthの中では行なわず,関数get_monthを呼び出す関数で表示する
★ main関数内で"What month is it now?"を表示する
printf("What month is it now?");
関数get_monthを呼び出す
現在の月の整数による入力を要求する.ここで,受け入れられる整数は1以上かつ12以下の値であり,0以下または13以上の値が入力された場合,"ERROR : invalid value!"と表示した後,再入力を促す.
★ 再入力処理の例
do {
再入力処理
}while( 1以上かつ12以下か判断 );
プロトタイプ宣言
★★★ 関数の形式をプログラムの先頭で宣言すること
例: 型 関数名(型 仮引数1, 型 仮引数2);
"Error : invalid value!"と表示する
★★★ 引数なし関数の呼び出し方法
"example関数"の場合
example();
面積は,小数点以下2桁まで表示する
底辺と高さは,それぞれ0未満の値が入力された場合,"ERROR: value is not positive!"とエラーメッセージを表示し,再入力させる
★ 再入力処理の例
do {
再入力処理
}while( 0未満か判断 );
プロトタイプ宣言
★★★ 関数の形式をプログラムの先頭で宣言すること
例: 型 関数名(型 仮引数1, 型 仮引数2);
面積を表示する
★★★ 関数の呼び出し方法
変数(三角形の面積) = area_triangle(底辺, 高さ);
関数get_monthの仕様
演習課題3の関数get_monthを改造
関数error_messageの仕様
演習課題2の関数error_messageを使用する
プロトタイプ宣言
★★★ 関数の形式をプログラムの先頭で宣言すること
例: 型 関数名(型 仮引数1, 型 仮引数2);
数学関数を用いる場合には,コンパイル時にオプション -lm を付けることをわすれないこと
gcc -Wall -o example example.c -lm
数学関数を用いる場合には,math.hをインクルードすること
#include < math.h >
点A (x1, y1) と 点B (x2, y2) の距離を実数で計算する
距離 = \(\sqrt{(x_2-x_1)^2 + (y_2-y_1)^2}\)
sqrt()
pow()
プロトタイプ宣言
★★★ 関数の形式をプログラムの先頭で宣言すること
例: 型 関数名(型 仮引数1, 型 仮引数2);
用いること
アスタリスクの数を,変数nに格納した場合の呼び出し方法
draw_char(n);
負の値が入力された場合,"ERROR : invalid value!"と表示した後,再入力を促す.
★ 再入力処理の例
do {
再入力処理
}while( 負の値か判断 );
プロトタイプ宣言
★★★ 関数の形式をプログラムの先頭で宣言すること
例: 型 関数名(型 仮引数1, 型 仮引数2);
"Error : invalid value!"と表示する
★★★ 引数なし関数の呼び出し方法
"example関数"の場合
example();
プロトタイプ宣言
★★★ 関数の形式をプログラムの先頭で宣言すること
例: 型 関数名(型 仮引数1, 型 仮引数2);
面積は,小数点以下2桁まで表示する
底辺と高さは,それぞれ0未満の値が入力された場合,"ERROR: value is not positive!"とエラーメッセージを表示し,再入力させる
★ 再入力処理の例
do {
再入力処理
}while( 0未満か判断 );
面積を表示する
★★★ 関数の呼び出し方法
変数(三角形の面積) = area_triangle(底辺, 高さ);
整数値
整数値 : int型 小数点 : double型
Value No.1
test