Presentation is loading. Please wait.

Presentation is loading. Please wait.

配列の扱い、探索 有効範囲と記憶域期間 第12回 [7月10日、H.15(‘03)] 今日のメニュー 1 前回の課題の復習

Similar presentations


Presentation on theme: "配列の扱い、探索 有効範囲と記憶域期間 第12回 [7月10日、H.15(‘03)] 今日のメニュー 1 前回の課題の復習"— Presentation transcript:

1 配列の扱い、探索 有効範囲と記憶域期間 第12回 [7月10日、H.15(‘03)] 今日のメニュー 1 前回の課題の復習
プログラミング演習('03) 2017/3/21 第12回 [7月10日、H.15(‘03)] 配列の扱い、探索 有効範囲と記憶域期間 今日のメニュー 1 前回の課題の復習 2 前回の宿題の復習 3 今回の課題 6 演習 PE03-12.ppt PE03-12.ppt

2 前回の課題 (1)List6-1を参考に演習6ー1(118頁) (2)List6-2を参考に演習6ー2(118頁)
プログラミング演習('03) 2017/3/21 前回の課題 (1)List6-1を参考に演習6ー1(118頁) (2)List6-2を参考に演習6ー2(118頁) (3)List6-3を参考に演習6ー3(119頁) List6-6を参考に演習6ー4(121頁) (4)List6-7,8を参考に演習6ー5(123頁) (5)演習6ー6(125頁) ファイル名は enB-****.c 提出はいつもと同様、リスト印刷とファイル転送 PE03-12.ppt

3 演習6-1の関数の中身を記述 演習6-2の関数の中身を記述 演習6-3の関数の中身を記述 演習6-4の関数の中身を記述
#include <stdio.h> int minof( int x, int y) { } int min3( int x, int y, int z) { } int cube( int x) { } int pow4( int x) { } 演習6-1の関数の中身を記述 演習6-2の関数の中身を記述 演習6-3の関数の中身を記述 演習6-4の関数の中身を記述

4 演習6-5の関数の中身を記述 演習6-6の関数の中身を記述 void alert( int no) { }
void hello( void ) { } int main(void) { int na, nb, nc; /*演習6-1,6-2の場合*/ /*整数を入力する*/ printf("小さい方の値は %d です。\n",           minof( na, nb) ); printf("3数中の最小値は %d です。\n",  min3( na, nb, nc) ); ・・・・・・ 演習6-5の関数の中身を記述 演習6-6の関数の中身を記述

5 #include <stdio.h> /*演習6-1、2、3*/
int minof(int x, int y) { return ( (x-y)>0 ? y : x ); } int min3(int x, int y, int z) { int min = x; if ( y < min ) min = y; if ( z < min ) min = z; return ( min ); } int cube(int x) { return ( X*x*x); } int main(void) { ・・・・ }

6 前回の課題(演習6-4) 関数を利用する 前に定義しておく sqr( sqr(x) ) #include <stdio.h>
プログラミング演習('03) 2017/3/21 前回の課題(演習6-4) #include <stdio.h> int sqr(int x) { return ( x * x ); } int pow4(int x) { return ( sqr(x) * sqr(x) ); } int main(void) { int a; printf("整数を入力せよ=>"); scanf("%d", &a); printf("四乗は %d です。\n", pow4(a)); return(0); } 関数を利用する 前に定義しておく sqr( sqr(x) ) PE03-12.ppt

7 while(no-->0) putchar('\a');
#include <stdio.h>  /*演習6-5*/ void alert(int no) { int i; for ( i=0; i<no; i++) putchar('\a'); return; } int main(void){ int n; printf("Enter n =>"); scanf("%d",&n); alert(n); return (0); while(no-->0) putchar('\a');

8 #include <stdio.h> /*演習6-6*/
void hello( void ) { puts("こんにちは。");   return; } int main(void){ int n, i; printf("Enter n =>"); scanf("%d",&n); for ( i=1; i<=n; i++) hello(); return (0);

9 課題の提出について ・main関数は最後に記述する ・演習6-4の pow4 は教科書List6-3の関数 sqr を用いる
・プログラムの構成 #include <stdio.h> /* 関数1を定義する */ int minof(・・・) {   ・・・ } /* 関数2を定義する */   ・・・ int main(void) {  int ・・・  puts("番号・氏名");  必要な関数を呼び出す } ・main関数は最後に記述する ・演習6-4の pow4 は教科書List6-3の関数 sqr を用いる return(x*x*x*x); return( sqr(x)*sqr(x) ); return( sqr( sqr(x) ) );

10 前回の宿題 (1)List6-12、 List6-13 等参考にして、演習6ー7、 演習6-8、 演習6-9(133頁)を完成せよ。
プログラミング演習('03) 2017/3/21 前回の宿題 (1)List6-12、 List6-13 等参考にして、演習6ー7、 演習6-8、 演習6-9(133頁)を完成せよ。 (2)教科書114~133頁を良く読み直して復習し、次に、134~145頁を予習せよ。 ファイル名:hwB-****.c 締め切り: 7月8日(火) 午後5時(厳守) PE03-12.ppt

11 int min_of(const int vc[], int no) /*演習6-7*/
{ int i, min = vc[0];   for ( i=1; i<no; i++)     if ( vc[i]<min ) min = vc[i];   return ( min ); } void rev_intary( int vc[], int no) /*演習6-8*/ { int i, temp;   for ( i = 0; i< no/2; i++) {     temp = vc[no-i-1];     vc[no-i-1] = vc[i];     vc[i]     = temp;       }   return; void intary_rcpy(int v1[],const int v2[],int no) { int i; /*演習6-9*/   for (i=0;i<no;i++) v1[i]=v2[no-i-1];

12 int main(void) { int i, v[10], v1[10], N=10; puts("整数を10個入力せよ"); for ( i=0; i<N; i++) { printf("v[%d]=>",i); scanf("%d", &v[i]); } printf("配列 v の要素中の最小値は %d です。\n", min_of(v,N) ); puts("配列 v を逆順にすると"); rev_intary(v,N); for ( i=0; i<N; i++) printf("v[%d]=%d\n",i,v[i]); puts("更に v を逆にして v1 に代入すると"); intary_rcpy(v1, v, N); printf("v[%d]=%d: v1[%d]=%d\n", i, v[i], i, v1[i]); return(0); }

13 宿題の提出について 配列の入れ替えなどを関数で実行せずに、mainの中で実行している。 mainの中で、関数の呼び出しが無い。
転送ファイルが無い、番号・氏名が無い、リストのプリントアウト提出が無い

14 今日の課題 ファイル名:enC-****.c (1)List6-20 を参考に、演習6-12 を完成せよ。
プログラミング演習('03) 今日の課題 2017/3/21 ファイル名:enC-****.c (1)List6-20 を参考に、演習6-12 を完成せよ。 (2)第10回の課題・宿題の続きとして、各科目の最高点・最低点、合計の最高点・最低点の出力を追加せよ。(最高点、最低点を求める関数を作る) 学籍番号 英語 数学 国語 合計点  平均点     : : : :   平均点    最高点 最低点 提出はいつもと同様、リスト印刷とファイル転送 PE03-12.ppt

15 関数外で定義・宣言 関数内でstatic付き
#include <stdio.h>  /*演習6-12*/ int a[5]; int main(void){ static int b[5]; int i, c[5]; printf("\n a : "); for(i=0;i<5;i++) printf("%d",a[i]); printf("\n b : "); for(i=0;i<5;i++) printf("%d",b[i]); printf("\n c : "); for(i=0;i<5;i++) printf("%d",c[i]); printf("\n"); return (0); } 関数外で定義・宣言 関数内でstatic付き 0に初期化される 自動記憶域期間の変数は不定値

16 今日の宿題[提出不要] 以下のプログラムを実行させ、関連する説明を復習せよ。(134-145頁)
プログラミング演習('03) 2017/3/21 今日の宿題[提出不要] 以下のプログラムを実行させ、関連する説明を復習せよ。( 頁) (1)List6-14(134頁)[逐次探索] (2)List6-15,16(136頁-)[番兵法] (3)List6-17(138頁)[多次元配列] (4)List6-18(140頁)[有効範囲] (5)List6-19(143頁)[記憶域期間] PE03-12.ppt

17 次回(第13回)の プログラミング入門、 プログラミング演習は
プログラミング演習('03) 2017/3/21 次回は最終回です。 第12回終了 次回(第13回)の プログラミング入門、 プログラミング演習は 7月17日です。 PE03-12.ppt


Download ppt "配列の扱い、探索 有効範囲と記憶域期間 第12回 [7月10日、H.15(‘03)] 今日のメニュー 1 前回の課題の復習"

Similar presentations


Ads by Google