プログラムの制御構造 配列・繰り返し.

Slides:



Advertisements
Similar presentations
University of Electro-Communications Human Interface section 基礎プログラミングおよび演 習 第7回.
Advertisements

1 例題 ex3b ( 配列 ) 科学科プログラミング. 2 例題 : ex3b  以下の 3 つについて例題を進める ステップ 1 :配列 ステップ 2 :最小と最大 ステップ 3 :文字型の配列.
配列の宣言 配列要素の初期値 配列の上限 メモリ領域 多次元配列 配列の応用
次ページに関数の解答例 課題12-1 (問題と解答) 複素数xとして, 実部を入力してください.10 虚部を入力してください.20
ループで実行する文が一つならこれでもOK
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第4回 配列(2) 情報・知能工学系 山本一公
4章 制御の流れ-3.
プログラミング入門2 第4回 配列 for文 変数宣言 初期化
計算技術研究会 C言語講座 第3回 Loops (for文 while文).
ファーストイヤー・セミナーⅡ 第8回 データの入力.
配列(2) 第10回[平成15年6月26日(木)]:PN03-10.ppt 今日の内容 1 素数を求める(教科書の例):復習
問題提起その 1 一文字ずつ文字(数字)を読み込み、それぞれの文字が何回入力されたかを数えて出力するプログラム。
C言語 配列 2016年 吉田研究室.
プログラミング入門 II 2009年後期.
コンピュータープログラミング (C言語)(6) 1.条件分岐2(switch文、復習) 2.繰り返し処理(for文、while文)
アルゴリズムとデータ構造 2011年6月13日
第6章 2重ループ&配列 2重ループと配列をやります.
情報理論2 第6回 小林 学 湘南工科大学 2011年11月15日 〒 神奈川県藤沢市辻堂西海岸1-1-25
配列の扱い、探索 有効範囲と記憶域期間 第12回 [7月10日、H.15(‘03)] 今日のメニュー 1 前回の課題の復習
プログラミング入門2 第2回 複合文、繰り返し 情報工学科 篠埜 功.
プログラミング入門2 第3回 繰り返し文 芝浦工業大学情報工学科 青木 義満
精密工学科プログラミング基礎Ⅱ 第3回資料 今回の授業で習得してほしいこと: 2次元配列の使い方 (前回の1次元配列の復習もします.)
第7回 条件による繰り返し.
プログラミング演習 バージョン1 担当教員:綴木 馴.
プログラムの制御構造 選択・繰り返し.
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
繰り返し計算 while文, for文.
関数と配列とポインタ 1次元配列 2次元配列 配列を使って結果を返す 演習問題
関数の定義.
第10回関数 Ⅱ (ローカル変数とスコープ).
地域情報学演習 VBAプログラミング 第3回 2017年10月24日
アルゴリズムとプログラミング (Algorithms and Programming)
04: 式・条件分岐 (if) C プログラミング入門 基幹7 (水5) Linux にログインし、以下の講義ページ を開いておくこと
第7回 条件による繰り返し.
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
復習 前回の関数のまとめ(1) 関数はmain()関数または他の関数から呼び出されて実行される.
復習 2次元配列 4列 j = 0 j = 1 j = 2 j = 3 i = 0 i = 1 i = 2 3行
プログラミング言語論 第四回 理工学部 情報システム工学科 新田直也.
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
ソフトウェア制作論 平成30年10月10日.
岩村雅一 知能情報工学演習I 第12回(C言語第6回) 岩村雅一
復習 一定回数を繰り返す反復処理の考え方 「ループ」と呼ぶ false i < 3 true i をループ変数あるいはカウンタと呼ぶ
復習 2次元配列 4列 j = 0 j = 1 j = 2 j = 3 i = 0 i = 1 i = 2 3行
IF文 START もしも宝くじが当たったら 就職活動する 就職活動しない YES END NO.
プログラミングⅡ 第2回.
復習 breakとcontinueの違い int i; for (i = 1; i <= 100; i++) { ・・・処理1・・・・
復習 Cにおけるループからの脱出と制御 break ループを強制終了する.if文と組み合わせて利用するのが一般的. continue
アルゴリズムとデータ構造 2012年6月11日
地域情報学 C言語プログラミング 第4回 while文、do~while文、switch文、 2次元配列、ポインタ 2017年11月10日
復習 if ~ 選択制御文(条件分岐) カッコが必要 true 条件 false 真(true)なら この中が aを2倍する 実行される
復習 breakとcontinueの違い int i; for (i = 1; i <= 100; i++) { ・・・処理1・・・・
第5章 まだまだ続く反復処理!! ~繰り返しその2 for~
プログラミング入門2 第5回 配列 for文 変数宣言 初期化
ループだよ!難しいよ! 第5章 while(ループ);.
岩村雅一 知能情報工学演習I 第12回(後半第6回) 岩村雅一
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
プログラミング1 プログラミング演習I 第2回.
湘南工科大学 2013年10月22日 情報理論2 湘南工科大学情報工学科 准教授 小林 学.
プログラミング序論演習.
プログラミング入門2 第5回 配列 変数宣言、初期化について
プログラミング入門2 第3回 条件分岐(2) 繰り返し文 篠埜 功.
復習 いろいろな変数型(2) char 1バイト → 英数字1文字を入れるのにぴったり アスキーコード → 付録 int
情報処理Ⅱ 第3回 2004年10月19日(火).
情報処理Ⅱ 2006年10月20日(金).
計算技術研究会 C言語講座 第二回 制御構文 if , switch.
岩村雅一 知能情報工学演習I 第13回(後半第7回) 岩村雅一
第5回 配列.
知能情報工学演習I 第10回( C言語第4回) 課題の回答
プログラミング演習I 補講用課題
= 55 課題6-1 #define _CRT_SECURE_NO_WARNINGS
Presentation transcript:

プログラムの制御構造 配列・繰り返し

前回の復習 演算子の表の見方 選択 ans1= 1 < 2 < 3; ans2= 3 > 2 > 1; ans1=1,ans1=2+ans1; 選択 If文、switch文 複文(ブロック)

配列 配列=変数名と番号を組み合わせた変数 一次元配列 int data[4]; data[0]=1; data[1]=2; 一次元配列の初期化 int data[]={1,2,3,4}; 1 2 data[0] data[1] data[2] data[3] 添え字(インデックス)は0から始まる! この場合は省略可能

多次元配列 2次元入配列 int data[4][2]; data[0][0]=1; data[0][1]=2; data[1][0]=3; 2次元配列の初期化 int data[][2]={{1,2},{3,4},{5,6},{7,8}}; 3次元配列 Int data[3][4][2]; data[0][0] data[0][1] 1 2 3 4 6 7 8 data[3][0] data[3][1]

プログラムの制御構造 繰り返し while文 基本の繰り返し for文 繰り返し回数が予め決まっている do文 実行部分を必ず1回は実行する

while文 while文 制御式を評価して、真なら文を実行し while文の先頭に戻る。そうでなけれ ばwhile文を終了する。

for文 for文 式1を実行。式2を制御式として {{文}式3}を文とするwhile文 を実行する。

do文 do文 文を最低一回は実行し、その後は while文と同じ。

平均点を求める:while文を使ったもの #include <stdio.h> #define N 100 /* 最大答案数 */ int main(void) { int Data[N], Count, Total, No_of_data; double Average; Count = 0; Total = 0;      while(scanf("%d",&Data[Count])!=EOF) { Total += Data[Count++]; } No_of_data = Count; if(No_of_data >0) { Average =(double)Total/no_of_data; printf("Average = %f\n", Average); } else { printf("No data !\n"); コメント(注釈) オブジェクト形式マクロ(マクロ命令) ここを書き換える

平均点を求める: for文を使ったもの #include <stdio.h> #define N 100 int main(void) { int Data[N], Count, Total, No_of_data; double Average; scanf(“%d”,&No_of_data); for(count=0,Total=0;count<No_of_data, count++) { scanf(“%d”,&Data[Count]); Total+=Data[Count]; } if(No_of_data >0) { Average = (double)Total/No_of_data; printf("Average = %f\n", Average); } else { printf("No data !\n");

平均点を求める: do文を使ったもの #include <stdio.h> #define N 100 int main(void) { int Data[N], Count, Total, No_of_data; double Average; scanf(“%d”,&No_of_data); count=0; Total=0; do { scanf(“%d”,&Data[Count]); Total+=Data[Count++]; } while (count<No_of_count) if(No_of_data >0) { Average = (double)Total/No_of_data; printf("Average = %f\n", Average); } else { printf("No data !\n");

繰り返しの制御を途中で変える break breakを含む文の直後に制御を移す continue continueを含む文の最後に空文を仮定し  てそこに制御を移す goto gotoで示されたラベルの付いた文に制御  を移す  

break,continue,gotoの流れ { break; } { continue; } { goto L1; } L1: 文  or ;/* 空分*/ break continue goto

0点が入力されるまでの平均を求める #include <stdio.h> If(Count >0) { #define N 100 int main(void) { int Data[N], Count, Total, No_of_data; double Average; scanf("%d", &No_of_data); for(Count=0,Total=0;Count<No_of_data;             Count++){ scanf("%d",&Data[Count]); if(Data[Count]==0) break; Total+=Data[Count]; } If(Count >0) { Average =(double)Total/Count; printf("Average = %f\n", Average); } else { printf("No data !\n");

60点以上の人の平均点 #include <stdio.h> if(Subcount >0) { #define N 100 int main(void) { int Data[N], Count, Total, No_of_data; double Average; int Subcount; scanf("%d", &No_of_data); for(Count=0,Total=0,Subcount=0;Count<No_of_data;             Count++){ scanf("%d",&Data[Count]); if(Data[Count] < 60) coutinue; Total+=Data[Count]; Subcount++; } if(Subcount >0) { Average =(double)Total/Subcount; printf("Average = %f\n", Average); } else { printf("No data !\n");

異常な値が入力されたら終了 #include <stdio.h> #define N 100 int main(void) { int Data[N], Count, Total, No_of_data; double Average; scanf(“%d”,&No_of_data); for(count=0,Total=0;count<No_of_data, count++) { scanf(“%d”,&Data[count]);            if(Data[Count]<0 || Data[Count]>100) goto Err; Total+=Data[count]; } if(No_of_data >0) { Average = (double)Total/No_of_data; printf("Average = %f\n", Average); } else { printf("No data !\n"); return(0); Err: printf(“Invarid data is input !\n”);