int score[4];
配列について
配列とは同じ型の変数を一気に作る方法でありかっこの中の <br /> [数字]の分だけ作れる
int score [4]はint型のscoreという名前の変数を4つ作成する ことになる
↓配列の必要性と宣言の仕方↓
int score[4];
配列について
配列とは同じ型の変数を一気に作る方法でありかっこの中の <br /> [数字]の分だけ作れる
int score [4]はint型のscoreという名前の変数を4つ作成する ことになる
↓配列の必要性と宣言の仕方↓
void multi2(int b[])
関数について
同じ処理を複数書かないように,処理をまとまりにしたものを関数という
プログラムを綺麗にかけたり,処理変更の時に間違えを減らせる
multi2
配列と関数について
関数に配列を返す時,return文では配列全体を返すことはできないことに注意
void multi2(int b[]);
プロトタイプ宣言について
プログラムはmain関数から読み込んでいくため,先に関数を作っていると流れが見えにくい
そのため,プロトタイプ宣言をしてmain関数を先に書いておこう
for ( ) { for ( )
二次元配列と二重ループについて
二次元配列を表示,格納する時は二重ループを使う
処理の流れをフローチャートで覚えると分かりやすい
↓参考図↓
int keisan(int a[N][N])
関数について
同じ処理を複数書かないように,処理をまとまりにしたものを関数という
プログラムを綺麗にかけたり,処理変更の時に間違えを減らせる
return
関数の引数と戻り値について
戻り値がない場合にはvoid型を使う
a[N][N]
二次元配列について
多次元配列はまずは図で覚えると分かりやすい
図は講義資料を参考にしよう
int keisan( int a[N][N] );
プロトタイプ宣言について
プログラムはmain関数から読み込んでいくため,先に関数を作っていると流れが見えにくい
そのため,プロトタイプ宣言をしてmain関数を先に書いておこう
struct enzan
構造体について
関連するデータを1つのまとまりとして持つと覚えたらわかりやすい
構造体の構成について講義資料を参考に覚えよう
average_calc( );
構造体と関数について
構造体は関数に引数としても戻り値としても渡せる
DATA datas[N];
構造体について
int data[N][2]とchar id_num[N][M]を構造体を使って1つにまとめている
使う時はdatas[O].data[O] or id_num[O]とかく
void average_calc(DATA data[], double mean[], int no); int max_calc(double mean[], int no);
プロトタイプ宣言について
プログラムはmain関数から読み込んでいくため,先に関数を作っていると流れが見えにくい
そのため,プロトタイプ宣言をしてmain関数を先に書いておこう
typedef struct
typedef宣言について
構造体はそのままだと名前が長くて間違えやすい
例)
struct data { ...で書いてあったら
main関数で使う時は struct data xxx;と宣言する必要がある
typedef struct {...}DATA;で書いてあったら
main関数で使う時は DATA xxx;と宣言するだけ
講義資料も参考にtypedef宣言について知ろう
for (i = 0; i < num; i++)
ヒント
各IDのデータを入力する処理
aはdata[0]にbはdata[1]にデータを入れていく
scanf
ヒント
ID番号はchar型で文字列になっていることに注意
return(month)
関数の引数と戻り値について
戻り値がない場合にはvoid型を使う
void error_message(void)
関数について
同じ処理を複数書かないように,処理をまとまりにしたものを関数という
プログラムを綺麗にかけたり,処理変更の時に間違えを減らせる
void error_message(void); int get_month(void);
プロトタイプ宣言について
プログラムはmain関数から読み込んでいくため,先に関数を作っていると流れが見えにくい
そのため,プロトタイプ宣言をしてmain関数を先に書いておこう
int max_array(int score[ ], int n);
プロトタイプ宣言について
プログラムはmain関数から読み込んでいくため,先に関数を作っていると流れが見えにくい
そのため,プロトタイプ宣言をしてmain関数を先に書いておこう
array[SIZE]
配列について
max = max_array
配列と関数について
関数に配列を返す時,return文では配列全体を返すことはできないことに注意
int max_array(int score[ ], int n)
関数について
同じ処理を複数書かないように,処理をまとまりにしたものを関数という
プログラムを綺麗にかけたり,処理変更の時に間違えを減らせる
#define SIZE 20
#defineについて
#define文を使うことによって配列をたくさん使うプログラムをかく時に間違いを減らすことが出来る
[参考授業資料(第7回)30ページ](http://kadai.cse.ce.nihon-u.ac.jp/image/pdf/P基礎_No7_allNoSoundNoAnime.pdf#page=30
struct student yosida
構造体変数の宣言について
struct student
構造体について
関連するデータを1つのまとまりとして持つと覚えたらわかりやすい
構造体の構成について講義資料を参考に覚えよう
typedef struct
typedef宣言について
構造体はそのままだと名前が長くて間違えやすい
例)
struct data { ...で書いてあったら
main関数で使う時は struct data xxx;と宣言する必要がある
typedef struct {...}DATA;で書いてあったら
main関数で使う時は DATA xxx;と宣言するだけ
講義資料も参考にtypedef宣言について知ろう
average_calc( );
構造体と関数について
構造体は関数に引数としても戻り値としても渡せる
#define N 10
#defineについて
#define文を使うことによって配列をたくさん使うプログラムをかく時に間違いを減らすことが出来る
[参考授業資料(第7回)30ページ](http://kadai.cse.ce.nihon-u.ac.jp/image/pdf/P基礎_No7_allNoSoundNoAnime.pdf#page=30
for (i = 0; i < num; i++)
ヒント
各IDのデータを入力する処理
aはdata[0]にbはdata[1]にデータを入れていく
scanf
ヒント
ID番号はchar型で文字列になっていることに注意
DATA datas[N];
構造体について
int data[N][2]とchar id_num[N][M]を構造体を使って1つにまとめている
使う時はdatas[O].data[O] or id_num[O]とかく
void average_calc(DATA data[], double mean[], int no); int max_calc(double mean[], int no);
プロトタイプ宣言について
プログラムはmain関数から読み込んでいくため,先に関数を作っていると流れが見えにくい
そのため,プロトタイプ宣言をしてmain関数を先に書いておこう
DATA datas[N];
構造体について
int data[N][2]とchar id_num[N][M]を構造体を使って1つにまとめている
使う時はdatas[O].data[O] or id_num[O]とかく
void average_calc(DATA data[], double mean[], int no); int max_calc(double mean[], int no);
プロトタイプ宣言について
プログラムはmain関数から読み込んでいくため,先に関数を作っていると流れが見えにくい
そのため,プロトタイプ宣言をしてmain関数を先に書いておこう
typedef struct
typedef宣言について
構造体はそのままだと名前が長くて間違えやすい
例)
struct data { ...で書いてあったら
main関数で使う時は struct data xxx;と宣言する必要がある
typedef struct {...}DATA;で書いてあったら
main関数で使う時は DATA xxx;と宣言するだけ
講義資料も参考にtypedef宣言について知ろう
#define N 10
#defineについて
#define文を使うことによって配列をたくさん使うプログラムをかく時に間違いを減らすことが出来る
average_calc(datas, mean, num);
構造体と関数について
構造体は関数に引数としても戻り値としても渡せる
for (i = 0; i < num; i++)
ヒント
各IDのデータを入力する処理
aはdata[0]にbはdata[1]にデータを入れていく
scanf
ヒント
ID番号はchar型で文字列になっていることに注意
return c
関数の引数と戻り値について
戻り値がない場合にはvoid型を使う
int func1( int a, int b )
関数について
同じ処理を複数書かないように,処理をまとまりにしたものを関数という
プログラムを綺麗にかけたり,処理変更の時に間違えを減らせる
int func1( int a, int b ); void func2( void );
プロトタイプ宣言について
プログラムはmain関数から読み込んでいくため,先に関数を作っていると流れが見えにくい
そのため,プロトタイプ宣言をしてmain関数を先に書いておこう
while (1)
無限ループについて
while(1)は無限ループが行われる.
break;
break文について
ループ処理において強制終了するためにbreak文が使われる
if
ヒント
このifの条件には#を表示するタイミングを書く
i == 0は左側面の#の条件,j == 0は一番上の#の条件
空欄7,8では右側面と下の#の条件を書こう
70.0
※小数点表示に注意 (小数点以下を2桁に指定したい時は%.2fとする)
while (1)
無限ループについて
while(1)は無限ループが行われる
break;
break文について
ループ処理において強制終了するためにbreak文が使われる
または5の倍数であるかどうか
論理演算子について
論理演算子を使ってelse ifの条件を書いていく
例)3または7の倍数を判定するときif,else if文の条件
3と7の倍数の時→if(n % 3 == 0 || n % 7== 0)
if
ヒント
このif文はwhile(1)の無限ループを抜けるための条件を書く
この問題の場合-1が入力されるとループを抜け出すようにする
void average_calc(DATA data[], double mean[], int no); int max_calc(double mean[], int no);
プロトタイプ宣言について
プログラムはmain関数から読み込んでいくため,先に関数を作っていると流れが見えにくい
そのため,プロトタイプ宣言をしてmain関数を先に書いておこう
DATA datas[N];
構造体について
int data[N][2]とchar id_num[N][M]を構造体を使って1つにまとめている
使う時はdatas[O].data[O] or id_num[O]とかく
typedef struct
typedef宣言について
構造体はそのままだと名前が長くて間違えやすい
例)
struct data { ...で書いてあったら
main関数で使う時は struct data xxx;と宣言する必要がある
typedef struct {...}DATA;で書いてあったら
main関数で使う時は DATA xxx;と宣言するだけ
講義資料も参考にtypedef宣言について知ろう
#define N 10
#defineについて
#define文を使うことによって配列をたくさん使うプログラムをかく時に間違いを減らすことが出来る
average_calc(datas, mean, num);
構造体と関数について
構造体は関数に引数としても戻り値としても渡せる
for (i = 0; i < num; i++)
ヒント
各IDのデータを入力する処理
aはdata[0]にbはdata[1]にデータを入れていく
scanf
ヒント
ID番号はchar型で文字列になっていることに注意
char a[3][20]; strcpy(a[0], "Nagasawa Masami");
文字列の配列について
char型の二次元配列を覚えるにはまずは図で表したら分かりやすい
二次元配列に文字列を入れる方法
6行目の「char a[3][20]」で20文字まで入る配列を3つ用意して、その3つの配列にどんな文字を入れるかの初期化の作業
ここでは「a[0]」の配列に「Nagasawa Masami」の文字を入れている
図は講義資料を参考にしてみよう
int x[DIM] = {1, -2, 1};
配列について
要素数は0から始まることに注意
subtract_vector(x, y, z);
配列と関数について
関数に配列を返す時,return文では配列全体を返すことはできないことに注意
void subtract_vector(int x[], int y[], int z[]);
プロトタイプ宣言について
プログラムはmain関数から読み込んでいくため,先に関数を作っていると流れが見えにくい
そのため,プロトタイプ宣言をしてmain関数を先に書いておこう
#define DIM 3
#defineについて
#define文を使うことによって配列をたくさん使うプログラムをかく時に間違いを減らすことが出来る
for (i = 0; i < DIM; i++) { z[i] = x[i] - y[i]; }
ヒント
for文で入力される配列の動き
1週目: z[0] = x[0] - y[0] z[0] = 1 - 2
2週目: z[1] = x[1] - y[1] z[1] = (-2) - 0
3週目: z[2]= x[2] - y[2] z[2] = 1 - (-2)
このように,配列z[ ]に引き算の結果が入る.
sin( x )
※数学ライブラリ関数の#include < math.h > の三角関数「sin(x)」
#include < math.h >
数学ライブラリ関数の#include < math.h >について
sinやcosなどを使用したいときに必要なライブラリー
↓数学ライブラリ一覧↓
printf
※加算と表示を1行にまとめる書き方に注意 参考授業資料(第1回)23ページ
Discount rate:20 %
※printfでの「%」の表示方法に注意
apples:1600.0 yen
※小数点表示に注意 (小数点以下を2桁に指定したい時は%.2fとする)
#define N 10
#defineについて
#define文を使うことによって配列をたくさん使うプログラムをかく時に間違いを減らすことが出来る
average_calc(datas, mean, num);
構造体と関数について
構造体は関数に引数としても戻り値としても渡せる
for (i = 0; i < num; i++) {
ヒント
各IDのデータを入力する処理
aはdata[0]にbはdata[1]にデータを入れていく
scanf
ヒント
ID番号はchar型で文字列になっていることに注意
DATA datas[N];
構造体について
int data[N][2]とchar id_num[N][M]を構造体を使って1つにまとめている
使う時はdatas[O].data[O] or id_num[O]とかく
void average_calc(DATA data[], double mean[], int no); int max_calc(double mean[], int no);
プロトタイプ宣言について
プログラムはmain関数から読み込んでいくため,先に関数を作っていると流れが見えにくい
そのため,プロトタイプ宣言をしてmain関数を先に書いておこう
typedef struct {
typedef宣言について
構造体はそのままだと名前が長くて間違えやすい
例)
struct data { ...で書いてあったら
main関数で使う時は struct data xxx;と宣言する必要がある
typedef struct {...}DATA;で書いてあったら
main関数で使う時は DATA xxx;と宣言するだけ
講義資料も参考にtypedef宣言について知ろう
DATA datas[N];
構造体について
int data[N][2]とchar id_num[N][M]を構造体を使って1つにまとめている
使う時はdatas[O].data[O] or id_num[O]とかく
void average_calc(DATA data[], double mean[], int no); int max_calc(double mean[], int no);
プロトタイプ宣言について
プログラムはmain関数から読み込んでいくため,先に関数を作っていると流れが見えにくい
そのため,プロトタイプ宣言をしてmain関数を先に書いておこう
typedef struct
typedef宣言について
構造体はそのままだと名前が長くて間違えやすい
例)
struct data { ...で書いてあったら
main関数で使う時は struct data xxx;と宣言する必要がある
typedef struct {...}DATA;で書いてあったら
main関数で使う時は DATA xxx;と宣言するだけ
講義資料も参考にtypedef宣言について知ろう
average_calc(datas, mean, num);
構造体と関数について
構造体は関数に引数としても戻り値としても渡せる
struct student
構造体について
関連するデータを1つのまとまりとして持つと覚えたらわかりやすい
構造体の構成について講義資料を参考に覚えよう
struct student yosida
構造体変数の宣言について
return c
関数の引数と戻り値について
戻り値がない場合にはvoid型を使う
int func1( int a, int b )
関数について
同じ処理を複数書かないように,処理をまとまりにしたものを関数という
プログラムを綺麗にかけたり,処理変更の時に間違えを減らせる
int func1( int a, int b ); void func2( void );
プロトタイプ宣言について
プログラムはmain関数から読み込んでいくため,先に関数を作っていると流れが見えにくい
そのため,プロトタイプ宣言をしてmain関数を先に書いておこう
for ( ) { for ( )
二次元配列と二重ループについて
二次元配列を表示,格納する時は二重ループを使う
処理の流れをフローチャートで覚えると分かりやすい
↓参考図↓
a[N][N]
二次元配列について
多次元配列はまずは図で覚えると分かりやすい
図は講義資料を参考にしよう
int keisan( int a[N][N] );
プロトタイプ宣言について
プログラムはmain関数から読み込んでいくため,先に関数を作っていると流れが見えにくい
そのため,プロトタイプ宣言をしてmain関数を先に書いておこう
void multi2(int b[])
関数について
同じ処理を複数書かないように,処理をまとまりにしたものを関数という
プログラムを綺麗にかけたり,処理変更の時に間違えを減らせる
multi2
配列と関数について
関数に配列を返す時,return文では配列全体を返すことはできないことに注意
void multi2(int b[]);
プロトタイプ宣言について
プログラムはmain関数から読み込んでいくため,先に関数を作っていると流れが見えにくい
そのため,プロトタイプ宣言をしてmain関数を先に書いておこう
int score[4];
配列について
配列とは同じ型の変数を一気に作る方法でありかっこの中の <br /> [数字]の分だけ作れる
int score [4]はint型のscoreという名前の変数を4つ作成する ことになる
↓配列の必要性と宣言の仕方↓
int max_array(int score[ ], int n)
関数について
同じ処理を複数書かないように,処理をまとまりにしたものを関数という
プログラムを綺麗にかけたり,処理変更の時に間違えを減らせる
max = max_array
配列と関数について
関数に配列を返す時,return文では配列全体を返すことはできないことに注意
array[SIZE]
配列について
return(month);
関数の引数と戻り値について
戻り値がない場合にはvoid型を使う
void error_message(void); int get_month(void);
プロトタイプ宣言について
プログラムはmain関数から読み込んでいくため,先に関数を作っていると流れが見えにくい
そのため,プロトタイプ宣言をしてmain関数を先に書いておこう
if
ヒント
このifの条件には#を表示するタイミングを書く
i == 0は左側面の#の条件,j == 0は一番上の#の条件
空欄7,8では右側面と下の#の条件を書こう
break;
break文について
ループ処理において強制終了するためにbreak文が使われる
while (1)
無限ループについて
while(1)は無限ループが行われる.
2または5の倍数であるかどうか
論理演算子について
論理演算子を使ってelse ifの条件を書いていく
例)3または7の倍数を判定するときif,else if文の条件
3と7の倍数の時→if(n % 3 == 0 || n % 7== 0)
break
break文について
ループ処理において強制終了するためにbreak文が使われる
if
ヒント
このif文はwhile(1)の無限ループを抜けるための条件を書く
この問題の場合-1が入力されるとループを抜け出すようにする
while (1)
無限ループについて
while(1)は無限ループが行われる.
char a[3][20]; strcpy(a[0], "Nagasawa Masami");
文字列の配列について
char型の二次元配列を覚えるにはまずは図で表したら分かりやすい
二次元配列に文字列を入れる方法
6行目の「char a[3][20]」で20文字まで入る配列を3つ用意して、その3つの配列にどんな文字を入れるかの初期化の作業
ここでは「a[0]」の配列に「Nagasawa Masami」の文字を入れている
図は講義資料を参考にしてみよう
void subtract_vector(int x[], int y[], int z[]);
プロトタイプ宣言について
プログラムはmain関数から読み込んでいくため,先に関数を作っていると流れが見えにくい
そのため,プロトタイプ宣言をしてmain関数を先に書いておこう
#define DIM 3
#defineについて
#define文を使うことによって配列をたくさん使うプログラムをかく時に間違いを減らすことが出来る
#include < math.h >
数学ライブラリ関数の#include < math.h >について
sinやcosなどを使用したいときに必要なライブラリー
↓数学ライブラリ一覧↓
apples:1600.0 yen
※小数点表示に注意 (小数点以下を2桁に指定したい時は%.2fとする)
Discount rate:20 %
※printfでの「%」の表示方法に注意
printf
※加算と表示を1行にまとめる書き方に注意 参考授業資料(第1回)ページ
sin( x )
※数学ライブラリ関数の#include < math.h > の三角関数「sin(x)」
subtract_vector(x, y, z);
配列と関数について
関数に配列を返す時,return文では配列全体を返すことはできないことに注意
for (i = 0; i < DIM; i++) { z[i] = x[i] - y[i];
ヒント
for文で入力される配列の動き
1週目: z[0] = x[0] - y[0] z[0] = 1 - 2
2週目: z[1] = x[1] - y[1] z[1] = (-2) - 0
3週目: z[2]= x[2] - y[2] z[2] = 1 - (-2)
このように,配列z[ ]に引き算の結果が入る.
int x[DIM] = {1, -2, 1};
配列について
要素数は0から始まることに注意
void error_message(void){
関数について
同じ処理を複数書かないように,処理をまとまりにしたものを関数という
プログラムを綺麗にかけたり,処理変更の時に間違えを減らせる
70.0
※小数点表示に注意 (小数点以下を2桁に指定したい時は%.2fとする)
演習課題7-1
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.ページ下のVisualize Executionボタンをクリック
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.ページ下のVisualize Executionをクリック
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.Visualize Executionをクリック
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.Visualize Executionボタンをクリック
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.Visualize Executionをクリック
#include <stdio.h>
1.ここをクリック
2.Visualize Executionをクリック
#include <stdio.h>
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.Visualize Executionボタンをクリック
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.Visualize Executionボタンをクリック
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.Visualize Executionボタンをクリック
#include <stdio.h>
1.ここをクリック
2.Visualize Executionボタンをクリック
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.Visualize Executionボタンをクリック
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.Visualize Executionボタンをクリック
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.Visualize Executionボタンをクリック
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.Visualize Executionボタンをクリック
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.Visualize Executionボタンをクリック
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.Visualize Executionボタンをクリック
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.Visualize Executionボタンをクリック
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.ページ下のVisualize Executionボタンをクリック
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.ページ下のVisualize Executionボタンをクリック
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.Visualize Executionボタンをクリック
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.ページ下のVisualize Executionボタンをクリック
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.ページ下のVisualize Executionボタンをクリック
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.Visualize Executionをクリック
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.Visualize Executionボタンをクリック
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.Visualize Executionボタンをクリック
#include <stdio.h>
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.Visualize Executionボタンをクリック
#include <stdio.h>
変数の値の変化一覧表(name[0]~[13]) 変数の値の変化一覧表(name[14]~[23]) 変数の値の変化一覧表(author[0]~author[12]) 変数の値の変化一覧表(author[13]~[24],callno)
#include <stdio.h>
#include <stdio.h>
#include <stdio.h>
#include <stdio.h>
#include <stdio.h>
#include <stdio.h>
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.ページ下のVisualize Executionボタンをクリック
#include <stdio.h>
#include <stdio.h>
#include <stdio.h>
#include <stdio.h>
#include <stdio.h>
#include <stdio.h>
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.Visualize Executionボタンをクリック
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.Visualize Executionボタンをクリック
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.Visualize Executionボタンをクリック
#include <stdio.h>
include <stdio.h>
1.ここをクリック
2.Visualize Executionボタンをクリック
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.Visualize Executionボタンをクリック
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.Visualize Executionボタンをクリック
#include <stdio.h>
#include <stdio.h>
1.ここをクリック
2.Visualize Executionボタンをクリック
#include <stdio.h>
1.ここをクリック
2.Visualize Executionボタンをクリック