Presentation is loading. Please wait.

Presentation is loading. Please wait.

配列(2) 第10回目 [6月22日、H.16(‘04)] 本日のメニュー 1)前回の課題について 2)前回の宿題について 3)課題

Similar presentations


Presentation on theme: "配列(2) 第10回目 [6月22日、H.16(‘04)] 本日のメニュー 1)前回の課題について 2)前回の宿題について 3)課題"— Presentation transcript:

1 配列(2) 第10回目 [6月22日、H.16(‘04)] 本日のメニュー 1)前回の課題について 2)前回の宿題について 3)課題
プログラミング演習('04) 2017/3/4 第10回目 [6月22日、H.16(‘04)] PE04-10.ppt 配列(2) 本日のメニュー 1)前回の課題について 2)前回の宿題について 3)課題 PE04-10.ppt

2 プログラミング演習('04) 2017/3/4 今日の課題 ファイル名は en9-****.c 教科書の List 5-1~5-8 を良く復習してから、次の各演習を順に処理するプログラムをインデンテーションや変数名等に気を配って作成せよ。  ・演習5-1、演習5-2(91頁)、  ・演習5-4(93頁)、演習5-5(95頁) 提出はいつもと同様、リスト印刷とファイル転送 ファイル名の **** は学籍番号の二桁目と下3桁 例:学生番号 034987 ならば xxx-3987.c PE04-10.ppt

3 配列へ値を代入 vc[i] = i; vc[i] = 5-i; i vc[i] 0 1 1 2 2 3 3 4 4 5 1 2 3 4 5
for ( i=0; i<5; i++) vc[i] = i + 1; printf("vc[%d]=%d\n", i, vc[i]); i vc[i] 0 1 1 2 2 3 3 4 4 5 1 2 3 4 5 4 3 2 1 vc[i] = i; vc[i] = 5-i;

4 配列へ値を代入 int va[5]={15,20,30}; int vb[5]; for ( i=0; i<5; i++)
vb[i] = va[i]; vb[i] = va[4-i]; va[4-i] va[i] vb[i] 15 20 30 15 20 30 0 va[4] 1 2 3 4 4 3 2 1 0 va[3] 30 va[2] 20 va[1] 15 va[0]

5 配列内の値の交換 for ( i=0; i<2; i++) { int temp = vx[i]; vx[i] = vx[4-i];
for ( i=0; i<2; i++) { int temp = vx[i]; vx[i] = vx[4-i]; vx[4-i] = temp; } i<=3 vx[0] vx[1] vx[2] vx[3] vx[4] vx[5] vx[6] vx[7] 1 7-i 2 7-i 3 → 7-i i j temp = a[i]; a[i] = a[j]; a[j] = temp; 1 2 3 7 6 5 4

6 課題の提出について ・int vc[5] → vc[0]~vc[4]までが存在する vc[5] を使おうとしている人が多い
for ( i=5; i>0; i--) vc[i]=i; for ( i=0; i<4; i++) { int temp = vx[i]; vx[i] = vx[8-i]; vx[8-i] = temp; } ・for ( i=0; i<2; i++) :途中まで vc[i]=i+0; vc[i]=(i-1)+1 :不要 → 内容を良く考えて記述すること! ・番号・氏名の出力が無い。問題の内容を取り違えている(配列の中身でなく、出力順を変えるだけ)。

7 プログラミング演習('04) 2017/3/4 前回の宿題 [提出はいつもの通り] ◎ 教科書のList5-19を参考にして、1から nまでの間のすべての素数を求めよ。(最大10000ぐらい) 1)上限値(n)の値は初め   に入力する 2)素数は1行に10個づつ   出力する 3)素数の個数を出力する 4)乗除回数を出力する 上限値を入力せよ:200 200以下の素数は、 ・・・ ・・・ ・・・ ・・・ 素数の数は 46 個です。 乗除の回数: 492 ファイル名:hw9-****.c 締め切り: 6月19日(土) 午後1時(厳守) PE04-10.ppt

8 /* 得られた素数を10個毎に改行し 出力する。個数は ptr 個 */
プログラミング演習('04) 2017/3/4 /* 得られた素数を10個毎に改行し 出力する。個数は ptr 個   */ for ( i=0; i<ptr; i++) { printf("%3d ",prime[i]); if ( i % 10 == 9 ) printf("\n"); } printf("素数の個数は%d\n", ptr); printf("乗除の回数は%d\n", cnt); 10個出力 したか どうかを チェック PE04-10.ppt

9 宿題の提出について ・出力の仕方:サンプルの様になっていない。 1行に素数を10個づつ出力していない 80カラムの出力で改行されてしまっている 出力された素数が縦にきれいに並んでいない すべての素数がくっついて出力されている printf("%d",prime[i]); → ・・・        %4d → ・インデンテーションの使い方がおかしい ・乗除の回数が多い → 素数を求めるときに2での割り算を実行している(偶数ははじめから除外してある)

10 プログラミング演習('04) 2017/3/4 今日の課題 次の頁に示すような、10人の学生の学籍番号、英語・数学・国語の得点データがある。これらのデータを2次元配列の初期値として与え、以下の内容を見やすく出力するプログラムを作成せよ。  ・各学生の番号、各科目の得点、合計点  ・全員の各科目及び合計点の平均点 ファイル名は enA-****.c 提出はいつもと同様、リスト印刷とファイル転送 PE04-10.ppt

11 プログラミング演習('04) 2017/3/4 学籍番号 英語 数学 国語                     今日の課題のデータ PE04-10.ppt

12 今回の宿題 [提出はいつもの通り] ファイル名:hwA-****.c
プログラミング演習('04) 2017/3/4 ファイル名:hwA-****.c 今回の宿題 [提出はいつもの通り] ◎ 今日の課題で、以下の出力例のように、各学生の3科目の平均点、全員についての平均点を小数点以下2桁まで出力せよ。(各学生の平均点は1次元配列を利用せよ。赤い部分が今回の宿題の部分) 学籍番号 英語 数学 国語 合計点  平均点       : : : :   平均点    締め切り: 7月26日(土) 午後1時(厳守) PE04-10.ppt


Download ppt "配列(2) 第10回目 [6月22日、H.16(‘04)] 本日のメニュー 1)前回の課題について 2)前回の宿題について 3)課題"

Similar presentations


Ads by Google