double int 1

Size: px
Start display at page:

Download "double int 1"

Transcription

1 double int 1

2 1 22 / sample program for a Information class DATE: statistics: mean and variance / #include <stdio.h> double mean1(double, int); double var1(double, int); double mean2(double, int); double var2(double, int); int main(void) { double x[]={1.25, 2.5, 3.75, 5, 6.25, 7.5, 8.25, 10 ; int xn=sizeof(x)/sizeof( x); double xmean; double xvar; xmean=mean1(x,xn); xvar=var1(x,xn); printf("%d\t%e\t%e\n", xn, xmean, xvar); xmean=mean2(x,xn); xvar=var2(x,xn); printf("%d\t%e\t%e\n", xn, xmean, xvar); return (0); / argument: data array, the number of data return: mean using 1 dimension array / double mean1(double data, int n) { double sum; / get sum of data / for(i=0,sum=0;i<n;i++) { sum += data[i]; 2

3 1 22 if(i>0) { / avoid to be divided by zero / return (sum/i); return (0); / terminate if the number of data is invalid / / argument: data array, the number of data return: mean using pointer / double mean2(double data, int n) { double p=data; double sum; for(sum=0;p<(data+n);p++) { sum += p; return (sum/n); / argument: data array, the number of data return: variance using 1 dimension array / double var1(double data, int n) { double sum; double mean=mean1(data,n); double diff; for(i=0,sum=0;i<n;i++) { diff = data[i] mean; / difference between data and mean / sum += diff diff; / addition square difference / if(i>0) { / avoid to be divided by zero / return (sum/i); return (0); / terminate if the number of data is invalid / 3

4 1 22 / argument: data array, the number of data return: variance using pointer / double var2(double data, int n) { double p=data; double mean=mean2(data,n); double diff; double sum; for(sum=0;p<(data+n);) { diff = (p++) mean; sum += diff diff; return (sum/n); 4

5 1 22 / 1/22 / #include<stdio.h> double ave(double x,int n); int main(void){ double x[]={1,2,3,4,5,6,7,8,9,10; int n = sizeof(x)/sizeof( x); printf("%lf\n",ave(x,n)); return(0); double ave(double x,int n){ double sum; for(i=0,sum=0;i<n;i++) { sum+=x[i]; return(sum/n); 5

6 1 22 / 1/22 / #include<stdio.h> double ave(double x,int n); double var(double x, int n); int main(void){ double x[]={1,2,3,4,5,6,7,8,9,10; int n = sizeof(x)/sizeof( x); printf("%lf\n",var(x,n)); return(0); double ave(double x,int n){ double sum; for(i=0,sum=0;i<n;i++) { sum+=x[i]; return(sum/n); double var(double x, int n){ double sum; for(i=0,sum=0;i<n;i++) { sum+=(x[i] ave(x,n)) (x[i] ave(x,n)); return(sum/n); 6

7 平均の計算 1 月 22 日 柳怜治 Main 内 配列 x と配列 x の個数 n を定義 平均の関数を受け取り 結果を表示 正常終了 平均の関数 x のそれぞれの住所 n を受け取り開始 n 回繰り返す Sum を定義し配列 x[ ] の x[0] から x[n-1] までの値を足していく 繰り返し終了 sum を n で割った値を返し終了

8 分散の計算 Main 内 配列 x と配列 x の個数 n を定義 分散を求める関数を表示 正常終了 平均を求める関数 分散を求める関数 配列 x のそれぞれの住所 n を受け取り開始 n 回繰り返す sum を定義し x の [0] から x[n-1] までの計算結果を足していく 繰り返し終了 sum を n で割った値を返し終了

9 1 22 / 0122 array / #include<stdio.h> #include<math.h> / / double ave(double x,int n){ / double x / double sum; for(sum=0,i=0;i<n;i++){ sum+=x[i]; return(sum/n); / x[i] / / / / - / double var1(double x,int n){ double sum; for(sum=0,i=0;i<n;i++){ sum+=x[i] x[i]; return(sum/n ave(x,n) ave(x,n)); / / / / double var2(double x,int n){ double sum; for(sum=0,i=0;i<n;i++){ sum+=(x[i] ave(x,n)) (x[i] ave(x,n)); return(sum/n); int main(void){ double x[]={1,2,3,4;/ / 7

10 1 22 int n=sizeof(x)/sizeof( x);/ / printf("%f\n",ave(x,n));/ / printf("%f\n",var1(x,n));/ / printf("%f\n",var2(x,n));/ / return(0); 8

11 情報基礎及び実習課題 1 月 22 日山田一貴 平均を求める関数 ave データ配列 x と個数 n を渡す sum i を定義 sum i に 0 を代入 i<n かどうか sum+=x[i] sum/n を返す i に 1 を足す

12 情報基礎及び実習課題 1 月 22 日山田一貴 分散を求める関数 var1 データ配列 x と個数 n を渡す sum i を定義 sum i に 0 を代入 i<n かどうか sum+=x[i]*x[i] sum/n-ave(x,n)*ave(x,n) を 返す i に 1 を足す

13 情報基礎及び実習課題 1 月 22 日山田一貴 分散を求める関数 var2 データ配列 x と個数 n を渡す sum i を定義 sum i に 0 を代入 i<n かどうか sum+=(x[i]-ave(x,n))*(x[i]-ave(x,n)) sum/n を返す i に 1 を足す

14 1 22 / 1/22 / #include <stdio.h> double heikin(double,int ); / / double bunsan(double,int ); / / int main(void){ / main / double data[]={1.0,2.0,3.0; / / int n=sizeof(data)/sizeof( data); / / printf("%f\n",bunsan(data,n)); / / return (0); / / double heikin(double data,int n){ / / / / double sum; / / for(i=0,sum=0;i<n;i++){ / / sum+=data[i]; / / / return (sum/n); / double bunsan(double data,int n){ / / / / double t,e; / 2, / for(i=0,t=0;i<n;i++){ / / t+=data[i] data[i]; / 2 / e=0; / / e=heikin(data,n); / / 9

15 1 22 / return (t/n e e); / 10

16 平均値 分散値フローチャート P12B259A 舟山皐太 平均値を求める関数 スタート 配列内の数値の足していく 配列内の数値を すべて足した No Yes 総和を配列内の数値の個数で割る 終了 分散値を求める関数 スタート 配列内の数値の 2 乗和を計算 配列内のすべての数値 の 2 乗和を計算した No

17 Yes 平均の関数を呼び出し 分散値を求める 終了

18 情報実習 (1/23) 二年所司拓巳 1. プログラム /*joho 1/22 shoshi 平均値 */ #include<stdio.h> #include<math.h> double average(double *,int); double dispersion(double *,int); int main(void){ double a[] = {20,30,40,50,60; int n = sizeof(a)/sizeof(*a); double ave,dis; ave = average(a,n); dis = dispersion(a,n); printf("%f n",ave); printf("%f n",dis); return (0); double sum2,*p; p = &a[0]; /*p を配列 a の先頭アドレスで初期化 */ for(j=0, sum2=0 ; j < n ; j++){ sum2 += pow((*(p + j))- average(a,n),2); return(sum2/n); /*average*/ double average(double *a,int n){ double sum1,*p; p = &a[0]; /*p を配列 a の先頭アドレスで初期化 */ for(i=0, sum1=0 ; i < n ; i++){ sum1 += *(p + i); return(sum1/n); /*dispersion*/ double dispersion(double *a,int n){ int j;

19 情報実習 (1/23) 二年所司拓巳 2. フローチャート 1 average 関数 2 dispersion 関数 double * 型のデータ配列 a と 整数 n を渡して開始 double * 型のデータ配列 a と 整数 n を渡して開始 *p を配列 a の先頭アドレスで初期化し i と sum1 をそれぞれ 0 から始めて i を 1 ずつ増やしながら i<n まで繰り返す *p を配列 a の先頭アドレスで初期化し j と sum2 をそれぞれ 0 から始めて j を 1 ずつ増やしながら j<n まで繰り返す sum1 += *(p+i) sum2 += pow((*(p+j))-average(a,n),2) sum1 / n を返して終了 sum2 / n を返して終了

20 情報基礎及び実習課題 /* 平均値と分散 松島優登 */ Sat P13B210B 松島優登 #include <stdio.h> #include <math.h> double AVE(double *, int); double DIS(double *, int); int main(void) { double a[ ] = {20, 30, 40, 50, 60;/* 初期値を与える */ int n = sizeof(a) / sizeof(*a);/* sizeof() は占有している byte 数 */ double ave, dis; ave = AVE(a,n);/* AVE 関数に a,n の変数を与える */ printf("%f\n",ave); dis = DIS(a,n); printf("%f\n",dis); return 0; double AVE(double *a, int n) { double sum1; for(i=0, sum1=0;i<n;i++) { sum1 += a[i]; return (sum1/n); double DIS(double *a, int n) { int j; double sum2; for(j=0, sum2=0;j<n;j++) { sum2 += pow(a[j]-ave(a,n),2); return (sum2/n);

21 関数 AVE double * のデータ配列 a, 整数 n を受け取り開始 関数 DIS double * のデータ配列 a, 整数 n を受け取り開始 整数の変数 i を設定実数の変数 sum1 を設定 整数の変数 j を設定実数の変数 sum2 を設定 初期値 i=0,sum1=0 i++ で i<n まで繰り返す 初期値 j=0,sum2=0 j++ で j<n まで繰り返す sum1 に a[ i ] の値を加えていく sum2 に (a[ j ]-AVE(a,n)) 2 の値を加えていく sum1/n の値を返し 終了 sum2/n の値を返し 終了

22 情報及び実習課題 6 土屋稜太 average 関数 dispersion 関数 double * 型のデータ配列 と int 型の個数を受け取 り average 関数の開始 double * 型のデータ配列 と int 型の個数を受け取 り average 関数の開始 i と sum をそれぞれ 0 から始めて i を 1 ずつ増やしながら a>i の時 に繰り返す i と sum をそれぞれ 0 から始めて i を 1 ずつ増やしながら a>i の時 に繰り返す sum+=x[i] sum+=(x[i]-average(x,a))* (x[i]-average(x,a)) sum を個数で割る sum を個数で割る 平均値を返す 分散を返す 関数の終了 関数の終了

23 /*joho tsuchiya avarage&dispersion*/ #include<stdio.h> double average(double *,int);/* プロトタイプ宣言 */ double dispersion(double *,int); int main(void){ double x[]={20,30,40,50,60,70,80; int a=sizeof(x)/sizeof(*x); double ave,dis; ave=average(x,a); dis=dispersion(x,a); printf("%f n",ave); printf("%f n",dis); return(0); /* 平均を求める関数 */ double average(double *x,int a){ double sum,an1; for(i=0,sum=0;i<a;i++){ sum+=x[i]; An1=sum/a; return(an1); /* 分散を求める */ double dispersion(double *x,int a){ double sum,an2; for(i=0,sum=0;i<a;i++){ sum+=(x[i]-average(x,a))*(x[i]-average(x,a)); An2=sum/a; return(an2);

24 1 22 #include<stdio.h> double E(double,int);/ (double double ) / double V(double,int);/ / int main(void){ double x[]={1,2,3,4;/ / int n=sizeof(x)/sizeof( x);/ / printf("\n%f",e(x,n));/,x x / printf("\n%f",v(x,n));/,x x / return(0);/ / / / double E(double x,int n){/ x / / / double sum;/ / for(i=0,sum=0;i<n;i++){ sum=sum+x[i]; return(sum/n);/ / / / double V(double x,int n){ double sum; for(i=0,sum=0;i<n;i++){ sum=sum+x[i] x[i]; return((sum/n) E(x,n) E(x,n));/ / 11

25 情報実習課題 3 年伊藤翔太 平均を求める関数 E(double *, int) 配列 x と配列の中身の個数 n を受け取る カウンタ i と総和 sum を定義 i=0, sum=0 ; i<n ; i++ Return(sum/n) sum=sum+x[i]

26 分散を求める関数 V(double *, int) 配列 x と配列の中身の個数 n を受け取る カウンタ i と総和 sum を定義 i=0, sum=0 ; i<n ; i++ Return((sum/n)-E(x,n)*E(x,n)) sum=sum+x[i]*x[i]

27 2015 年 1 月 24 日 情報基礎及び実習課題 6 (1) 平均 仁野平真美 /* 仁野平平均値 */ #include<stdio.h> double ave(double*,int); int main(void){ double x[]={20,30,40,50,60; double a; int n=sizeof(x)/sizeof(*x); a=ave(x,n); printf("%f n",a); return(0); double ave(double*x,int n){ double sum,a; for(i=0,sum=0;i<n;i++){ sum+=x[i]; a=sum/n; return(a); 開始 double* 型のデータ配列を渡す データ配列内のデータの個数 (n) を求める n = sizeof(x) sizeof( x) データ配列内のデータを 1 個目から n 個目 まで順にすべて足し合わせて合計 (sum) を 求める sum+=x[i] 合計を個数で割り平均 (a) を出す a = sum n 平均 (a) の値を返す 平均値を表示 終了

28 2015 年 1 月 24 日 (2) 分散 /* 仁野平分散 */ #include<stdio.h> double ave(double*,int); double dis(double*,int); int main(void){ double x[]={20,30,40,50,60; double a,b; int n=sizeof(x)/sizeof(*x); a=ave(x,n); b=dis(x,n); printf("%f n",a); printf("%f n",b); return(0); double ave(double*x,int n){ double suma,a; for(i=0,suma=0;i<n;i++){ suma+=x[i]; a=suma/n; return(a); double dis(double*x,int n){ double sumb,b; for(i=0,sumb=0;i<n;i++){ sumb+=(x[i]-ave(x,n))*(x[i]-ave(x,n)); b=sumb/n; return(b); 開始 double* 型のデータ配列を渡す データ配列内のデータの個数 (n) を求める n = sizeof(x) sizeof( x) 平均値 ave(x,n) を出し値を返す データ配列内の i 番目のデータと平均値の 差を取りそれぞれ 2 乗して足し合わせる sumb+= (x[i] ave(x, n)) 2 sumb を個数で割り分散値 (b) をだす b = sumb n 分散 (b) の値を返す 分散値を表示 終了

29 2015 年 1 月 25 日 情報基礎及び実習課題 6 仁野平真美 /* 仁野平分散 */ #include<stdio.h> double ave(double*,int); double dis(double*,int); int main(void){ double x[]={20,30,40,50,60; double a,b; int n=sizeof(x)/sizeof(*x); a=ave(x,n); b=dis(x,n); printf("%f n",a); printf("%f n",b); return(0); double ave(double*x,int n){ double suma,a; for(i=0,suma=0;i<n;i++){ suma+=x[i]; a=suma/n; return(a); double dis(double*x,int n){ double sumb,b; for(i=0,sumb=0;i<n;i++){ sumb+=(x[i]-ave(x,n))*(x[i]-ave(x,n)); b=sumb/n; return(b);

30 2015 年 1 月 25 日 1. 平均関数 2. 分散関数 double* 型のデータ配列と データの個数 (n) を渡して開始 double* 型のデータ配列と データの個数 (n) を渡して開始 i,suma をそれぞれ 0 から始め i を 1 ずつ 増やしながら i<n のとき繰り返し suma を i,sumb をそれぞれ 0 から始め i を 1 ずつ 増やしながら i<n のとき繰り返し sumb 求める suma+=x[i] を求める sumb+= (x[i] ave(x, n)) 2 suma を個数で割り平均 (a) を出す a = suma n sumb を個数で割り分散値 (b) をだす b = sumb n 平均 (a) の値を返す 分散 (b) の値を返す 終了 終了

31 情報実習課題 6 遠藤侑真 1. 平均を求めるプログラム 2. 分散を求めるプログラム Double * 型のデータ配列 a int 型の個数 n を渡して開始する Double * 型のデータ配列 a int 型の個数 n を渡して開始する For をつかって データ の中の数の合計 (sum) を だし これを返す For をつかって データ の中の数の合計 (sum) を だし これを返す sum を個数分で割っ て平均をだし これ を返し 終了 sum を個数分で割っ て平均をだし これ を返す For 文 平均を使い 分散を求め これを返 し 終了

32 1 22 / / #include <stdio.h> double f(double,int); double g(double,int); int main(void){ double x; double a[]={35,83,69,81,74; int n=sizeof(a)/sizeof( a); x=g(a,n); printf("%f\n",x); return 0; double f(double a,int n){ double sum; for(i=0,sum=0;i<n;i++){ sum+=a[i]; return(sum); double g(double a,int n){ double y; y=f(a,n)/n; return(y); 12

33 1 22 / / #include <stdio.h> double f(double,int); double g(double,int); double h(double,int); int main(void){ double x; double a[]={35,83,69,81,74; int n=sizeof(a)/sizeof( a); x=h(a,n); printf("%f\n",x); return 0; double f(double a,int n){ double sum; for(i=0,sum=0;i<n;i++){ sum+=a[i]; return(sum); double g(double a,int n){ double y; y=f(a,n)/n; return(y); double h(double a,int n){ int j,k; for(j=0,k=0;j<n;j++){ 13

34 1 22 k+=(a[j] g(a,n)) (a[j] g(a,n)); return(k/n); 14

35 情報基礎及び実習 1 レポート 1. フローチャート ( 平均 ) 前田柊 配列 x を double * 型 x の中の個数 n を int 型として関数に渡す I sum の初期値を 0 として i<n であるなら繰り返す X[ ] の i 番目の数を sum に足す すべて足し終わった値を n で割った値で返す 2. フローチャート ( 分散 ) 配列 x を double * 型 x の中の個数 n を int 型として関数に渡す j dis の初期値を 0 として j<n であるなら繰り返す (X[ ] の i 番目の数 )-( 平均 ) の二乗 を dis に足す すべて足し終わった値を n で割った値で返す

36 3. プログラム /* 平均 */ double average(int n,double *x){ double sum; for (i=0,sum=0;i<n;i++){ sum+=x[i]; return(sum/n); /* 分散 */ double dispersion(int n,double* x){ int j; double dis; for (j=0,dis=0;j<n;j++){ dis+=(x[j]-average(n,x))*(x[j]-average(n,x)); return(dis/n);

37 提出日 H27 年 1 月 25 日 技術科二年 宮崎孝祐 Ave(x,n) var(x,n) main(void) スタート スタート スタート実数 s,t を定義する 配列 x を定義する 配列 x 内の個数を求めて n に代入 実数 sum を定義する 整数 i を定義する i に 0 を代入 sum に 0 を代入 i<n 実数 sum を定義する 整数 i を定義する i に 0 を代入 sum に 0 を代入 s に ave(x,n) を代入 t に var(x,n) を代入 sum+=x[i] I<n 平均 (s) を表示 分散 (t) を表示 エンド i++ sum/n を返す エンド Sum+=(x[i]-ave(x,n)) 2 I++ sum/n を返す エンド

38 提出日 H27 年 1 月 25 日 プログラミング /*joho 1208*/ #include <stdio.h> double ave(double *,int);/* プロトタイプ平均 */ double var(double *,int);/* プロトタイプ分散 */ int main(void) { double s,t; double x[] = {1,2,3,4; int n=sizeof(x)/sizeof(*x);/* 母数 */ s = ave(x,n); t = var(x,n); printf(" 平均は %f です n",s);/* 平均表示 */ printf(" 分散は %f です n",t);/* 分散表示 */ return 0; double ave(double *x,int n)/* 平均関数 */ { double sum; for(i=0,sum=0;i<n;i++) { sum+=x[i]; return(sum/n); double var(double *x,int n)/* 分散関数 */ { double sum; for(i=0,sum=0;i<n;i++) {

39 提出日 H27 年 1 月 25 日 sum+=(x[i]-ave(x,n))*(x[i]-ave(x,n)); return(sum/n);

40 情報及び実習 I 課題 平均値を求める フローチャート 提出 2015/01/25 本間洸希 スタート 配列 x を yes n= 配列 x の要素数と定義 i と sum average を定義 i = 0 sum = 0 i < n yes sum = sum + x[i] no 関数 avg で行う i を 1 増す average =sum / n average を表示 エンド

41 情報及び実習 I 課題 平均値を求める ソースコード 提出 2015/01/25 本間洸希 /* 情報実習課題 0122 平均 */ #include <stdio.h> double avg(double *x, int n); int main (void){ double x[] = {82,20,45,56,45,72,92,75,82; int n = sizeof(x)/sizeof(x[0]); double average; average = avg(x, n); printf("%f n",average); return(0); /* 平均値を求める */ double avg(double *x, int n){ double sum, average; sum = 0; for(i=0 ; i<n ; i++){ sum += x[i]; average = sum/n; return(average);

42 情報及び実習 I 課題 分散を求める フローチャート 提出 2015/01/25 本間洸希 スタート x を配列 yes n= 配列 x の要素数と定義 i と sum sum2 average を定義 i = 0 sum = 0 i < n yes sum = sum + x[i] no 関数 bun で行う i を 1 増す average =sum / n i < n sum2 = sum2 + (x[i]-average) 2 i を 1 増す

43 情報及び実習 I 課題 提出 2015/01/25 本間洸希 bunsan =sum2 / n bunsan を表示 エンド

44 情報及び実習 I 課題 分散を求める ソースコード 提出 2015/01/25 本間洸希 /* 情報実習課題 0122 分散 */ #include <stdio.h> double bunsan(double *x, int n); int main (void){ double x[] = {82,20,45,56,45,72,92,75,82; int n = sizeof(x)/sizeof(x[0]); double bun; bun = bunsan(x, n); printf("%f n",bun); return(0); /* 分散を求める */ double bunsan(double *x, int n){ double sum, sum2, average, bunsan; sum = 0; sum2 = 0; for(i=0 ; i<n ; i++){ sum += x[i]; average = sum/n; for(i=0 ; i<n ; i++){ sum2 += (x[i]-average)*(x[i]-average); bunsan = sum2/n; return(bunsan);

45 情報基礎及び実習課題 1 月 25 日提出板橋強 Double 型の構成された配列 x を 用意してスタート n=sizeof(x)/sizeof(*x) で配列の数を求める 平均を求める関数 i に配列の番号 (0 番目 ~) を割り当てて平均を求めてその値を返す (i=0;i<n;i++) i が n 未満である Sum=sum+x[i] YES NO Sum/n の値 を返す

46 情報基礎及び実習課題 1 月 25 日提出板橋強 分散を求める関数 同様に (i=0;i<n;i++) Sumb=Sumb+(x[i]-sum/n)*(x[i]-sum/n) を計算し i が n 未満である YES NO メイン関数に分散値 (sumb) を返す 平均と分散を表示し 終了

47 情報基礎及び実習課題 1 月 25 日提出板橋強 /* 平均値を返す double * のデータ配列 int の個数を渡す 分散を返す 引数は上と同じ */ #include <stdio.h> #include<math.h> double heikinn(double *x,int n); /* 平均関数 */ double bunnsann(double *x,int n); /* 分散関数 */ int main(void){ /* メイン関数 */ double x[10]={1,1,1,1,1,1,1,1,1,1; int n = sizeof(x)/sizeof(*x); printf("%f n",heikinn(x,n)); printf("%f n",bunnsann(x,n)); return 0; double heikinn(double *x,int n){ /* 平均関数 */ double sum; sum=0; for(i=0;i<n;i++){ sum=sum+x[i]; return(sum/n); double bunnsann(double *x,int n){ /* 分散関数 */ double sumb; sumb=0; for(i=0;i<n;i++){ sumb=sumb+(x[i]-(heikinn(x,n)))*(x[i]-(heikinn(x,n))); return(sumb/n);

(x, y) 2. OK NG1 1

(x, y) 2. OK NG1 1 12 22 1. (x, y) 2. OK NG1 1 12 22 / sample program for a Information class DATE: 2014-12-22 convert angle unit, from radian to degree / #include / for printf() / #include / for atan2()

More information

12 15 / sample program for a Information class DATE: heron s formula / #include <stdio.h> / for printf() / #include <math.h> / for sqrt() /

12 15 / sample program for a Information class DATE: heron s formula / #include <stdio.h> / for printf() / #include <math.h> / for sqrt() / 12 15 / sample program for a Information class DATE: 2014-12-15 heron s formula / #include / for printf() / #include / for sqrt() / double heron(double, double, double); int main(void)

More information

Microsoft PowerPoint - 11.pptx

Microsoft PowerPoint - 11.pptx ポインタと配列 ポインタと配列 配列を関数に渡す 法 課題 : 配列によるスタックの実現 ポインタと配列 (1/2) a が配列であるとき, 変数の場合と同様に, &a[0] [] の値は配列要素 a[0] のアドレス. C 言語では, 配列は主記憶上の連続領域に割り当てられるようになっていて, 配列名 a はその配列に割り当てられた領域の先頭番地となる. したがって,&a[0] と a は同じ値.

More information

gengo1-11

gengo1-11 関数の再帰定義 自然数 n の階乗 n! を計算する関数を定義してみる 引数は整数 返却値も整数 n! = 1*2*3*... * (n 1)*n である ただし 0! = 1 とする int factorial(int n) int i, tmp=1; if( n>0 ) for(i=1; i

More information

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 次のステップによって 徐々に難易度の高いプログラムを作成する ( 参照用の番号は よくわかる C 言語 のページ番号 ) 1. キーボード入力された整数 10 個の中から最大のものを答える 2. 整数を要素とする配列 (p.57-59) に初期値を与えておき

More information

memo

memo 計数工学プログラミング演習 ( 第 3 回 ) 2017/04/25 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 内容 ポインタの続き 引数の値渡しと参照渡し 構造体 2 ポインタで指されるメモリへのアクセス double **R; 型 R[i] と *(R+i) は同じ意味 意味 R double ** ポインタの配列 ( の先頭 ) へのポインタ R[i]

More information

/*Source.cpp*/ #include<stdio.h> //printf はここでインクルードして初めて使えるようになる // ここで関数 average を定義 3 つの整数の平均値を返す double 型の関数です double average(int a,int b,int c){

/*Source.cpp*/ #include<stdio.h> //printf はここでインクルードして初めて使えるようになる // ここで関数 average を定義 3 つの整数の平均値を返す double 型の関数です double average(int a,int b,int c){ ソフトゼミ A 第 6 回 関数 プログラムは関数の組み合わせでできています 今までのゼミAでも printf や scanf など様々な関数を使ってきましたが なんと関数は自分で作ることもできるのです!! 今日は自作関数を中心に扱っていきます ゲーム制作でも自作関数は避けては通れないので頑張りましょう そもそもまず 関数とは 基本的には 受け取った値に関数によって定められた操作をして その結果の値を返す

More information

kiso2-09.key

kiso2-09.key 座席指定はありません 計算機基礎実習II 2018 のウェブページか 第9回 ら 以下の課題に自力で取り組んで下さい 計算機基礎実習II 第7回の復習課題(rev07) 第9回の基本課題(base09) 第8回試験の結果 中間試験に関するコメント コンパイルできない不完全なプログラムなど プログラミングに慣れていない あるいは複雑な問題は 要件 をバラして段階的にプログラムを作成する exam08-2.c

More information

cp-7. 配列

cp-7. 配列 cp-7. 配列 (C プログラムの書き方を, パソコン演習で学ぶシリーズ ) https://www.kkaneko.jp/cc/adp/index.html 金子邦彦 1 本日の内容 例題 1. 月の日数配列とは. 配列の宣言. 配列の添え字. 例題 2. ベクトルの内積例題 3. 合計点と平均点例題 4. 棒グラフを描く配列と繰り返し計算の関係例題 5. 行列の和 2 次元配列 2 今日の到達目標

More information

問 2 ( 型変換 ) 次のプログラムを実行しても正しい結果が得られない 何が間違いかを指摘し 正しく修正せよ ただし int サイズが 2 バイト long サイズが 4 バイトの処理系での演算を仮定する #include <stdio.h> int main( void ) { int a =

問 2 ( 型変換 ) 次のプログラムを実行しても正しい結果が得られない 何が間違いかを指摘し 正しく修正せよ ただし int サイズが 2 バイト long サイズが 4 バイトの処理系での演算を仮定する #include <stdio.h> int main( void ) { int a = 問 1 配列の宣言整数型配列 data1 にデータが初期設定されている この配列 data1 のデータを下図のように 整数型配列 data2 に代入しなさい また data2 の内容を printf( "data2[0] = %d\n", data2[0] ); printf( "data2[5] = %d\n", data2[5] ); を用いて出力しなさい 実行結果 data2[0] = 76

More information

memo

memo 計数工学プログラミング演習 ( 第 3 回 ) 2016/04/26 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 内容 ポインタ malloc 構造体 2 ポインタ あるメモリ領域 ( アドレス ) を代入できる変数 型は一致している必要がある 定義時には値は不定 ( 何も指していない ) 実際にはどこかのメモリを指しているので, #include

More information

Microsoft Word - no202.docx

Microsoft Word - no202.docx 1.4 ポインタと配列 ポインタ変数は前回説明したように 値の入っているアドレスを示す変数です では 配列はどの ようにメモリ上に格納されるか調べてみましょう ex07.c /* ポインタと配列の関係 */ int a[3]={1, 2, 3; /* int 型の大きさ 3 の配列として宣言 */ int *i; /* int 型へのポインタとして宣言 */ double x[3] = {1.0,

More information

#define N1 N+1 double x[n1] =.5, 1., 2.; double hokan[n1] = 1.65, 2.72, 7.39 ; double xx[]=.2,.4,.6,.8,1.2,1.4,1.6,1.8; double lagrng(double xx); main

#define N1 N+1 double x[n1] =.5, 1., 2.; double hokan[n1] = 1.65, 2.72, 7.39 ; double xx[]=.2,.4,.6,.8,1.2,1.4,1.6,1.8; double lagrng(double xx); main =1= (.5, 1.65), (1., 2.72), (2., 7.39).2,.4,.6,.8, 1., 1.2, 1.4, 1.6 1 1: x.2 1.4128.4 1.5372.6 1.796533.8 2.198 1.2 3.384133 1.4 4.1832 1.6 5.1172 8 7 6 5 y 4 3 2 1.5 1 1.5 2 x 1: /* */ #include

More information

Microsoft PowerPoint - 説明2_演算と型(C_guide2)【2015新教材対応確認済み】.pptx

Microsoft PowerPoint - 説明2_演算と型(C_guide2)【2015新教材対応確認済み】.pptx 情報ネットワーク導入ユニット Ⅰ C 言語 演算と型 演算 代入 演算と型 +,-,*,/,% = C 言語では 代入 の意味 vx = a + b; //a+b の結果を vx に代入 型 : int 型 ( 整数 ) double 型 ( 実数 ) 演算での型変換 ( 整数, 実数の混在 ) キャスト演算子 型を一時的に変更 書式指定 :printf("%6d n", a); 加減, 剰余演算

More information

Microsoft Word - 03

Microsoft Word - 03 平成 24 年度講義 アルゴリズムとデータ構造 第 3 回変数のスコープルール 関数 担当 : 富井尚志 (tommy@ynu.ac.jp) 選択計算 ( 条件判断 ) 第 2 回 基本的制御構造 の復習 if 文 : ある条件に応じて別々の計算を行う. 式が真 (0 以外 ) であれば文 1 が実行され, 偽であれば文 2 が実行される. なお,else 以下は省略可能である. if ( 式 )

More information

Microsoft PowerPoint - program.ppt [互換モード]

Microsoft PowerPoint - program.ppt [互換モード] プログラミング演習 バージョン 1 担当教員 : 綴木馴 プログラムの決まりについて学ぶ おすすめする参考書 ザ C 戸川隼人サイエンス社 本日の予定 1. 授業の説明. 2. コンパイラーのインストール. プログラムの決まりについて学ぶ,P31 /* The most in C */ /* hello.c */ printf("hello,world n"); プログラムの決まり ( コメント )

More information

Microsoft PowerPoint - 計算機言語 第7回.ppt

Microsoft PowerPoint - 計算機言語 第7回.ppt 計算機言語第 7 回 長宗高樹 目的 関数について理解する. 入力 X 関数 f 出力 Y Y=f(X) 関数の例 関数の型 #include int tasu(int a, int b); main(void) int x1, x2, y; x1 = 2; x2 = 3; y = tasu(x1,x2); 実引数 printf( %d + %d = %d, x1, x2, y);

More information

1 return main() { main main C 1 戻り値の型 関数名 引数 関数ブロックをあらわす中括弧 main() 関数の定義 int main(void){ printf("hello World!!\n"); return 0; 戻り値 1: main() 2.2 C main

1 return main() { main main C 1 戻り値の型 関数名 引数 関数ブロックをあらわす中括弧 main() 関数の定義 int main(void){ printf(hello World!!\n); return 0; 戻り値 1: main() 2.2 C main C 2007 5 29 C 1 11 2 2.1 main() 1 FORTRAN C main() main main() main() 1 return 1 1 return main() { main main C 1 戻り値の型 関数名 引数 関数ブロックをあらわす中括弧 main() 関数の定義 int main(void){ printf("hello World!!\n"); return

More information

Microsoft PowerPoint - C4(反復for).ppt

Microsoft PowerPoint - C4(反復for).ppt C 言語プログラミング 繰返し ( for 文と while 文 ) 例題 (10 個のデータの平均を求める ) 手順 入力データをx1,x2,,x10 として, (x1+x2+x3+x4+x5+x6+x7+x8+x9+x10)/10 を計算する データ数が,1000 個,10000 個, となったらどうする? データ数個分の 変数の宣言, scanf 関数の呼出し, 加算式の記述 が必要 1 総和を求めること

More information

Microsoft Word - 3new.doc

Microsoft Word - 3new.doc プログラミング演習 II 講義資料 3 ポインタ I - ポインタの基礎 1 ポインタとは ポインタとはポインタは, アドレス ( データが格納されている場所 ) を扱うデータ型です つまり, アドレスを通してデータを間接的に処理します ポインタを使用する場合の, 処理の手順は以下のようになります 1 ポインタ変数を宣言する 2 ポインタ変数へアドレスを割り当てる 3 ポインタ変数を用いて処理 (

More information

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科 バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科 ポインタ変数の扱い方 1 ポインタ変数の宣言 int *p; double *q; 2 ポインタ変数へのアドレスの代入 int *p; と宣言した時,p がポインタ変数 int x; と普通に宣言した変数に対して, p = &x; は x のアドレスのポインタ変数 p への代入 ポインタ変数の扱い方 3 間接参照 (

More information

第1回 プログラミング演習3 センサーアプリケーション

第1回 プログラミング演習3 センサーアプリケーション C プログラミング - ポインタなんて恐くない! - 藤田悟 fujita_s@hosei.ac.jp 目標 C 言語プログラムとメモリ ポインタの関係を深く理解する C 言語プログラムは メモリを素のまま利用できます これが原因のエラーが多く発生します メモリマップをよく頭にいれて ポインタの動きを理解できれば C 言語もこわくありません 1. ポインタ入門編 ディレクトリの作成と移動 mkdir

More information

Microsoft PowerPoint - prog07.ppt

Microsoft PowerPoint - prog07.ppt プログラミング言語 2 第 07 回 (2007 年 06 月 18 日 ) 1 今日の配布物 片面の用紙 1 枚 今日の課題が書かれています 本日の出欠を兼ねています 2/32 1 今日やること http://www.tnlab.ice.uec.ac.jp/~s-okubo/class/language/ にアクセスすると 教材があります 2007 年 06 月 18 日分と書いてある部分が 本日の教材です

More information

gengo1-8

gengo1-8 問題提起その 1 一文字ずつ文字 ( 数字 ) を読み込み それぞれの文字が何回入力されたかを数えて出力するプログラム int code, count_0=0, count_1=0, count_2=0, count_3=0,..., count_9=0; while( (code=getchar())!= EOF ){ } switch(code){ case 0 : count_0++; break;

More information

7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 1

7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 1 7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 10001 番地とすると, そこから int 型のサイズ, つまり 4 バイト分の領域が確保される.1

More information

C言語によるアルゴリズムとデータ構造

C言語によるアルゴリズムとデータ構造 Algorithms and Data Structures in C 4 algorithm List - /* */ #include List - int main(void) { int a, b, c; int max; /* */ Ÿ 3Ÿ 2Ÿ 3 printf(""); printf(""); printf(""); scanf("%d", &a); scanf("%d",

More information

コマンドラインから受け取った文字列の大文字と小文字を変換するプログラムを作成せよ 入力は 1 バイトの表示文字とし アルファベット文字以外は変換しない 1. #include <stdio.h> 2. #include <ctype.h> /*troupper,islower,isupper,tol

コマンドラインから受け取った文字列の大文字と小文字を変換するプログラムを作成せよ 入力は 1 バイトの表示文字とし アルファベット文字以外は変換しない 1. #include <stdio.h> 2. #include <ctype.h> /*troupper,islower,isupper,tol コマンドラインから受け取った文字列の大文字と小文字を変換するプログラムを作成せよ 入力は 1 バイトの表示文字とし アルファベット文字以外は変換しない 1. #include 2. #include /*troupper,islower,isupper,tolowerを使うため宣言*/ 3. 4. int get_n(char *); 5. void replace(char

More information

Microsoft PowerPoint ppt

Microsoft PowerPoint ppt 基礎演習 3 C 言語の基礎 (5) 第 05 回 (20 年 07 月 07 日 ) メモリとポインタの概念 ビットとバイト 計算機内部では データは2 進数で保存している 計算機は メモリにデータを蓄えている bit 1bit 0 もしくは 1 のどちらかを保存 byte 1byte 1bitが8つ集まっている byte が メモリの基本単位として使用される メモリとアドレス メモリは 1byte

More information

プログラミング基礎

プログラミング基礎 C プログラミング Ⅱ 演習 2-1(a) BMI による判定 文字列, 身長 height(double 型 ), 体重 weight (double 型 ) をメンバとする構造体 Data を定義し, それぞれのメンバの値をキーボードから入力した後, BMI を計算するプログラムを作成しなさい BMI の計算は関数化すること ( ) [ ] [ ] [ ] BMI = 体重 kg 身長 m 身長

More information

1 26 0. 1. 2. 3. 1 1 26 / sample program for a Information class DATE: 2015-01-26 matrix operation / #include void matrix print(double, int, int); void matrix xchgr(double, int, int); void matrix

More information

Prog1_6th

Prog1_6th 2019 年 10 月 31 日 ( 木 ) 実施配列同種のデータ型を有する複数のデータ ( 要素 ) を番号付けして, ひとまとまりの対象として扱うものを配列と呼ぶ 要素 point[0] point[1] point[2] point[3] point[4] 配列 配列の取り扱いに関して, 次のような特徴がある 1. プログラム中で用いる配列変数 ( 配列の本体を参照する参照型の変数 ) は必ず宣言しておく

More information

関数の動作 / printhw(); 7 printf(" n"); printhw(); printf("############ n"); 4 printhw(); 5 関数の作り方 ( 関数名 ) 戻り値 ( 後述 ) void である. 関数名 (

関数の動作 / printhw(); 7 printf( n); printhw(); printf(############ n); 4 printhw(); 5 関数の作り方 ( 関数名 ) 戻り値 ( 後述 ) void である. 関数名 ( 概要 プログラミング 関数 http://www.ns.kogakuin.ac.jp/~ct40/progc/ A- 関数の作り方を学ぶ 関数名, 引数, 戻り値 プログラミング で最も重要な事項 関数 プログラミング で最も重要な事項 制御 (for, if) プログラミング で最も重要な事項 ポインタ A- 関数名 引数 戻り値 E- E-4 関数の概要 0/ 関数とは, 複数の処理をひとまとめにしたもの.

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 基幹 7 ( 水 5) 09: ポインタ 文字列 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2016-06-08 1 関数できなかったこと 配列を引数として渡す, 戻り値として返す 文字列を扱う 呼び出し元の変数を直接書き換える 例 : 2 つの変数の値を入れ替える関数

More information

CプログラミングI

CプログラミングI C プログラミング I Swap 関数を作る Stack データ構造のための準備 整数変数 x と y の値を取り替える関数 swap を作る 最初の試み : swap-01.c #include void swap(int a, int b) { int tmp; tmp = a; a = b; b = tmp; int main(void) { int x=10, y=30;

More information

Microsoft PowerPoint - 11th.ppt [互換モード]

Microsoft PowerPoint - 11th.ppt [互換モード] 工学部 6 7 8 9 10 組 ( 奇数学籍番号 ) 担当 : 長谷川英之 情報処理演習 第 11 回 2010 年 12 月 16 日 1 課題 R1-20101125 の解答例 #include #include #define nn 90000 #define pi 3.1415 main() int i,j,n; float sound[nn],ei[nn],er[nn];

More information

Microsoft PowerPoint - prog06.ppt

Microsoft PowerPoint - prog06.ppt プログラミング言語 2 第 06 回 (2007 年 06 月 11 日 ) 今日の配布物 片面の用紙 1 枚 今日の課題が書かれています 本日の出欠を兼ねています 1 今日やること http://www.tnlab.ice.uec.ac.jp/~s-okubo/class/language/ にアクセスすると 教材があります 2007 年 06 月 11 日分と書いてある部分が 本日の教材です 本日の内容

More information

PowerPoint Presentation

PowerPoint Presentation 工学部 6 7 8 9 10 組 ( 奇数学籍番号 ) 担当 : 長谷川英之 情報処理演習 第 9 回 2010 年 12 月 2 日 1 今回のメインテーマ : 関数呼び出し main 関数以外に所望の処理を行う関数 ( サブルーチン ) を定義して, その関数を main 関数の中で呼び出して仕事をさせること. これも重要な概念です. 頑張って理解して下さい. 2 #include

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 基幹 2 ( 月 4) 09: ポインタ 文字列 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2014-06-09 1 関数できなかったこと 配列を引数として渡す, 戻り値として返す 文字列を扱う 呼び出し元の変数を直接書き換える 例 : 2 つの変数の値を入れ替える関数

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 基幹 7 ( 水 5) 09: ポインタ 文字列 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/teachers/w 483692/CPR/ 207-06-4 関数できなかったこと 2 配列を引数として渡す, 戻り値として返す 文字列を扱う 呼び出し元の変数を直接書き換える 例 : 2 つの変数の値を入れ替える関数

More information

プログラミング実習I

プログラミング実習I プログラミング実習 I 05 関数 (1) 人間システム工学科井村誠孝 m.imura@kwansei.ac.jp 関数とは p.162 数学的には入力に対して出力が決まるもの C 言語では入出力が定まったひとまとまりの処理 入力や出力はあるときもないときもある main() も関数の一種 何かの仕事をこなしてくれる魔法のブラックボックス 例 : printf() 関数中で行われている処理の詳細を使う側は知らないが,

More information

プログラミング実習I

プログラミング実習I プログラミング実習 I 03 変数と式 人間システム工学科井村誠孝 m.imura@kwansei.ac.jp 3.1 変数と型 変数とは p.60 C 言語のプログラム中で, 入力あるいは計算された数や文字を保持するには, 変数を使用する. 名前がついていて値を入れられる箱, というイメージ. 変数定義 : 変数は変数定義 ( 宣言 ) してからでないと使うことはできない. 代入 : 変数には値を代入できる.

More information

Microsoft PowerPoint - 第3回目.ppt [互換モード]

Microsoft PowerPoint - 第3回目.ppt [互換モード] 第 3 回プログラミング応用 目的ファイル入出力 1. ファイルの概念 2. ファイルの読み込み 3. ファイルの書き込み CPU 演算 判断 ファイルの概念 内部記憶装置 OS 機械語プログラム 入力装置 キーボード 出力装置 ディスプレイ ファイル 外部記憶装置ハードディスク CD-ROM CPU が外部とデータをやり取りするための媒介 printf 関数や scanf 関数でもうすでにファイルのやり取りの基本は学んでいる

More information

今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること

今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること C プログラミング演習 1( 再 ) 4 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順

More information

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdiu.h> #define InFile "data.txt" #define OutFile "surted.txt" #def

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdiu.h> #define InFile data.txt #define OutFile surted.txt #def C プログラミング演習 1( 再 ) 6 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include #define InFile "data.txt" #define OutFile "surted.txt"

More information

[1] #include<stdio.h> main() { printf("hello, world."); return 0; } (G1) int long int float ± ±

[1] #include<stdio.h> main() { printf(hello, world.); return 0; } (G1) int long int float ± ± [1] #include printf("hello, world."); (G1) int -32768 32767 long int -2147483648 2147483647 float ±3.4 10 38 ±3.4 10 38 double ±1.7 10 308 ±1.7 10 308 char [2] #include int a, b, c, d,

More information

Microsoft PowerPoint - C言語の復習(配布用).ppt [互換モード]

Microsoft PowerPoint - C言語の復習(配布用).ppt [互換モード] if 文 (a と b の大きい方を表示 ) C 言語 Ⅰ の復習 条件判定 (if, 条件式 ) ループ (for[ 二重まで ], while, do) 配列 ( 次元 次元 ) トレース int a, b; printf( 整数 a: ); scanf( %d, &a); printf( 整数 b: ); scanf( %d, &b); //つのif 文で表現する場合間違えやすい どっちに =

More information

C のコード例 (Z80 と同機能 ) int main(void) { int i,sum=0; for (i=1; i<=10; i++) sum=sum + i; printf ("sum=%d n",sum); 2

C のコード例 (Z80 と同機能 ) int main(void) { int i,sum=0; for (i=1; i<=10; i++) sum=sum + i; printf (sum=%d n,sum); 2 アセンブラ (Z80) の例 ORG 100H LD B,10 SUB A LOOP: ADD A,B DEC B JR NZ,LOOP LD (SUM),A HALT ORG 200H SUM: DEFS 1 END 1 C のコード例 (Z80 と同機能 ) int main(void) { int i,sum=0; for (i=1; i

More information

情報処理Ⅰ演習

情報処理Ⅰ演習 C プログラミング Ⅱ の基礎 アドレス 変数のために用意されたメモリ領域の位置 アドレス 0x1000 0x1001 0x100 0x1003 0x1004 0x100 0x1006 0x1007 0x1008 0x1009 0x100A 0x100B メモリ 整数型の変数を宣言 int ; アドレス 0x1000 0x1001 0x100 0x1003 0x1004 0x100 0x1006 0x1007

More information

Microsoft Word - Cプログラミング演習(12)

Microsoft Word - Cプログラミング演習(12) 第 12 回 (7/9) 4. いくつかのトピック (5)main 関数の引数を利用したファイル処理 main 関数は, 起動する環境から引数を受け取ることができる 例えば 次に示すように,main 関数に引数を用いたプログラムを作成する 01 /* sample */ 02 /* main 関数の引数 */ 03 #include 04 05 main(int argc, char

More information

program7app.ppt

program7app.ppt プログラム理論と言語第 7 回 ポインタと配列, 高階関数, まとめ 有村博紀 吉岡真治 公開スライド PDF( 情報知識ネットワーク研 HP/ 授業 ) http://www-ikn.ist.hokudai.ac.jp/~arim/pub/proriron/ 本スライドは,2015 北海道大学吉岡真治 プログラム理論と言語, に基づいて, 現著者の承諾のもとに, 改訂者 ( 有村 ) が加筆修正しています.

More information

2. 整数の値を 3 つ 引数として受け取ってそのうち最大の値を返す関数 int max(int a,int b,int c) 3 つの中からの最大値, と値が少ないので, 配列を使わずにごり押しで最大値を求めてみ ました. 配列を使う方法については今までの解答を見ればわかるはずです. その場合受け

2. 整数の値を 3 つ 引数として受け取ってそのうち最大の値を返す関数 int max(int a,int b,int c) 3 つの中からの最大値, と値が少ないので, 配列を使わずにごり押しで最大値を求めてみ ました. 配列を使う方法については今までの解答を見ればわかるはずです. その場合受け 解答 解答とは言っても一例にすぎません. 若干異なっていたとしてもプログラムが動きさ えすれば問題ありません. ソフトゼミ A 練習問題解答 1. 円の直径の長さを引数として受け取って その面積を返す関数 ただし円周率は 3.14 としてよい double Circle(double d) 引数が 直径 であることに注意しましょう. 半径ではありません. 計算した面積の値は 実数になるので, 関数の型

More information

6 関数 6-1 関数とは少し長いプログラムを作るようになると 同じ処理を何度も行う場面が出てくる そのたびに処 理を書いていたのでは明らかに無駄であるし プログラム全体の見通しも悪くなる そこで登場す るのが 関数 である 関数を使うことを 関数を呼び出す ともいう どのように使うのか 実際に見て

6 関数 6-1 関数とは少し長いプログラムを作るようになると 同じ処理を何度も行う場面が出てくる そのたびに処 理を書いていたのでは明らかに無駄であるし プログラム全体の見通しも悪くなる そこで登場す るのが 関数 である 関数を使うことを 関数を呼び出す ともいう どのように使うのか 実際に見て 6 関数 6-1 関数とは少し長いプログラムを作るようになると 同じ処理を何度も行う場面が出てくる そのたびに処 理を書いていたのでは明らかに無駄であるし プログラム全体の見通しも悪くなる そこで登場す るのが 関数 である 関数を使うことを 関数を呼び出す ともいう どのように使うのか 実際に見てみよう 次のプログラムは 2 つの数字のうち 大きい方を求 めるものである int max(int a,

More information

C¥×¥í¥°¥é¥ß¥ó¥° ÆþÌç

C¥×¥í¥°¥é¥ß¥ó¥° ÆþÌç C (3) if else switch AND && OR (NOT)! 1 BMI BMI BMI = 10 4 [kg]) ( [cm]) 2 bmi1.c Input your height[cm]: 173.2 Enter Input your weight[kg]: 60.3 Enter Your BMI is 20.1. 10 4 = 10000.0 1 BMI BMI BMI = 10

More information

Microsoft PowerPoint - 13th.ppt [互換モード]

Microsoft PowerPoint - 13th.ppt [互換モード] 工学部 6 7 8 9 10 組 ( 奇数学籍番号 ) 担当 : 長谷川英之 情報処理演習 第 13 回 2011 年 1 月 13 日 1 本日の講義の内容 1. 配列データを main 以外の関数とやりとりする方法 2. データの型構造体, 共用体という新しいデータ型を学習します. 2 2 次元ベクトルのノルム ( 長さ ) を計算するプログラム 2 次元ベクトル a(x, y) のノルム (

More information

gengo1-10

gengo1-10 関数 C 言語では 関数を組み合わせてプログラムを構成する pritnf(), scanf() などは 処理系があらかじめ備えている標準ライブラリ関数 math.h で定義されている算術関数も標準ライブラリ関数の 1 つ データを与えて それに基づき何か動作をおこなうものが関数 数学の関数 y = f(x) のイメージ f(x) x を与える f(x) を計算して返す f(x) はある意味ブラックボックス

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 基幹 7 ( 水 5) 12: コマンドライン引数 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2016-06-29 1 まとめ : ポインタを使った処理 内容呼び出し元の変数を書き換える文字列を渡す 配列を渡すファイルポインタ複数の値を返す大きな領域を確保する

More information

<4D F736F F D20438CBE8CEA8D758DC03389F0939A82C282AB2E646F63>

<4D F736F F D20438CBE8CEA8D758DC03389F0939A82C282AB2E646F63> C 言語講座第 3 回 キャスト ( 型変換 ) 強制的に式の型を変換する ( 変換したい型名 ) 変換元で記述する int num_a = 10, num_b = 3; float result1, result2; // 結果格納用 // 計算用 result1 = num_a / num_b; // 通常のint/int 割り算 result2 = (float)num_a / num_b;//

More information

FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作り

FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作り FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作ります FORTRAN の場合 OPEN 文でファイルを開いた後 標準入力の場合と同様に READ 文でデータを読みこみます

More information

Microsoft Word - no11.docx

Microsoft Word - no11.docx 3. 関数 3.1 関数関数は数学の関数と同じようなイメージを持つと良いでしょう 例えば三角関数の様に一つの実数値 ( 角度 ) から値を求めますし 対数関数の様に二つの値から一つの値を出すものもあるでしょう これをイメージしてもらえば結構です つまり 何らかの値を渡し それをもとに何かの作業や計算を行い その結果を返すのが関数です C 言語の関数も基本は同じです 0 cos 1 cos(0) =

More information

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdio.h> #define InFile "data.txt" #define OutFile "sorted.txt" #def

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdio.h> #define InFile data.txt #define OutFile sorted.txt #def C プログラミング演習 1( 再 ) 6 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include #define InFile "data.txt" #define OutFile "sorted.txt"

More information

Microsoft PowerPoint - 説柔5_間勊+C_guide5ï¼›2015ã•’2015æŒ°æŁŽæš’å¯¾å¿œç¢ºèª“æ¸‹ã†¿ã•‚.pptx

Microsoft PowerPoint - 説柔5_間勊+C_guide5ï¼›2015ã•’2015æŒ°æŁŽæš’å¯¾å¿œç¢ºèª“æ¸‹ã†¿ã•‚.pptx 情報ネットワーク導入ユニット Ⅰ C 言語 配列 5 章 : 配列同じ型 (int, double など ) の変数の集まりを 番号 ( 添字 ) で管理する変数 int vc[5]; // 要素数が 5 の配列 vc[0] = 1; vc[1] = 2; vc[2] = 3; vc[3] = 4; vc[4] = 5; printf("vc[0] = %d n", vc[0] ); printf("vc[1]

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 講座準備 講座資料は次の URL から DL 可能 https://goo.gl/jnrfth 1 ポインタ講座 2017/01/06,09 fumi 2 はじめに ポインタはC 言語において理解が難しいとされる そのポインタを理解することを目的とする 講座は1 日で行うので 詳しいことは調べること 3 はじめに みなさん復習はしましたか? 4 & 演算子 & 演算子を使うと 変数のアドレスが得られる

More information

PowerPoint プレゼンテーション - 物理学情報処理演習

PowerPoint プレゼンテーション  -  物理学情報処理演習 物理学情報処理演習 9. C 言語 5 2015 年 6 月 19 日 本日の推奨作業 directory lesson09 9.1 乱数 9.2 ポインタ 参考文献 やさしい C++ 第 4 版高橋麻奈 ( 著 ) ソフトバンククリエイティブ プログラミング言語 C++ 第 4 版ビャーネ ストラウストラップ, Bjarne Stroustrup, 柴田望洋 Numerical Recipes:

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 基幹 7 ( 水 5) 11: 動的メモリ確保 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2016-06-22 1 まとめ : ポインタを使った処理 内容呼び出し元の変数を書き換える文字列を渡す 配列を渡すファイルポインタ複数の値を返す大きな領域を確保する

More information

Microsoft PowerPoint - lec10.ppt

Microsoft PowerPoint - lec10.ppt 今日の内容, とポインタの組み合わせ, 例題 1. 住所録例題 2. と関数とは. を扱う関数. 例題 3. のリスト とポインタの組み合わせ 今日の到達目標 自分で を定義する 自分で定義したについて, 配列やポインタを作成する データ型 基本データ型 char 文字 (1 文字 ) int 整数 double 浮動小数など その他のデータ型配列 データの並び ( 文字列も, 文字の並び ) ポインタ

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 総機 1 ( 月 1) 11: 動的メモリ確保 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2015-06-22 1 まとめ : ポインタを使った処理 内容 説明 呼び出し元の変数を書き換える第 9 回 文字列を渡す 配列を渡す 第 10 回 ファイルポインタ

More information

C言語講座 後半

C言語講座 後半 これまではあまり気にしてきませんでしたが それぞれ変数の型が持つ特性を気にかけていないと困る場合があります 例えば double 型と int 型を混ぜて使う場合を考えてみましょう int a; double b; a = 5; b = a/2.0; printf("b : %lf",b); int 型の a に整数 5 を代入し double 型の b には それを 2 で割った 2.5 を代入したいとします

More information

Prog1_13th

Prog1_13th 2018 年 7 月 12 日 ( 木 ) 実施 応用プログラム (1) 統計処理 ここでは, 統計処理で最も基本的な平均値と分散とを求めるプログラムを扱う 平均値 x は データの値の合計をデータ数で割ったもので,i 番目のデータ値を xi, データ数を N とすれば, x = 1 N (x + x + + x ) = 1 N x と表される 分散 σ は平均値と個々のデータ値との差の二乗の平均値で,

More information

関数 C 言語は関数の言語 関数とは 関数の定義 : f(x) = x * x ; 使うときは : y = f(x) 戻り値 引数

関数 C 言語は関数の言語 関数とは 関数の定義 : f(x) = x * x ; 使うときは : y = f(x) 戻り値 引数 関数 C 言語は関数の言語 関数とは 関数の定義 : f(x) = x * x ; 使うときは : y = f(x) 戻り値 引数 関数の定義 戻り値の型 関数名 引数の型 引数の名前 int funcname ( int a, char b) { int c ; c = a * b ; return c ; 引数の型 引数の名前 戻り値 戻り値の型は int 変数 c の型も int return

More information

PowerPoint Presentation

PowerPoint Presentation プログラミング基礎 第 2 週 (4,5,6 回 ) 2011-10-07 出村公成 この資料の再配布を禁止します 予定 プログラミング入門 (45 分 ) 変数 入出力 分岐 演習 (90 分 ) タッチタイプ練習 統合開発環境 Codeblocksの使い方 教科書例題の打ち込みと実行 プログラミング入門 C 言語の簡単な例を体験 変数 入出力 分岐 プログラムの例リスト 2.1 改 #include

More information

Microsoft PowerPoint - CproNt02.ppt [互換モード]

Microsoft PowerPoint - CproNt02.ppt [互換モード] 第 2 章 C プログラムの書き方 CPro:02-01 概要 C プログラムの構成要素は関数 ( プログラム = 関数の集まり ) 関数は, ヘッダと本体からなる 使用する関数は, プログラムの先頭 ( 厳密には, 使用場所より前 ) で型宣言 ( プロトタイプ宣言 ) する 関数は仮引数を用いることができる ( なくてもよい ) 関数には戻り値がある ( なくてもよい void 型 ) コメント

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅰ 8 回目 for 文 今日の講義で学ぶ内容 for 文 変数のスコープ for 文の入れ子 繰り返し文 1 for 文 for 文最初に一度だけ初期化の式を処理します条件が true の場合 文を実行し 更新の式を処理して繰り返します条件が false の場合 for 文を終了します 条件は boolean 型で 関係演算子で表現される式などを記述します for( 初期化の式

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 基幹 2 ( 月 4) 11: 動的メモリ確保 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2014-06-22 1 まとめ : ポインタを使った処理 内容 説明 呼び出し元の変数を書き換える第 9 回 文字列を渡す 配列を渡す 第 10 回 ファイルポインタ

More information

数値計算

数値計算 数値計算 垣谷公徳 17 号館 3 階電子メール : kimi@ee.ous.ac.jp プログラミング言語の一般論 データ型 ( 定数と変数 配列 ) 代入 基本演算 ( 四則演算 ) 入出力 分岐 繰返処理 関数 外部手続き 1 2 入力関数 入出力 getchar, getc, fgetc ; 一文字入力 gets, fgets, fread ; 文字列 ( データ列 ) 入力 scanf,

More information

‚æ4›ñ

‚æ4›ñ ( ) ( ) ( ) A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9 (OUS) 9 26 1 / 28 ( ) ( ) ( ) A B C D Z a b c d z 0 1 2 9 (OUS) 9

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 講座を行う前に 自己紹介 僕と上回生について 1 年生同士で少しお話しよう! オリエンテーションの宿題 アルゴロジック http://home.jeita.or.jp/is/highschool/algo/index3.html どこまでできましたか? あまりできなかった人はこれから全部クリアしよう! 2016 年度 C 言語講座 第一回目 2016/6/11 fumi 今回の目標 プログラムを書いて実行するやり方を覚える

More information

C#の基本2 ~プログラムの制御構造~

C#の基本2 ~プログラムの制御構造~ C# の基本 2 ~ プログラムの制御構造 ~ 今回学ぶ事 プログラムの制御構造としての単岐選択処理 (If 文 ) 前判定繰り返し処理(for 文 ) について説明を行う また 整数型 (int 型 ) 等の組み込み型や配列型についても解説を行う 今回作るプログラム 入れた文字の平均 分散 標準偏差を表示するプログラム このプログラムでは calc ボタンを押すと計算を行う (value は整数に限る

More information

基礎プログラミング2015

基礎プログラミング2015 応用プログラミング 第 11 回 関数の名前 2017 年 11 月 29 日 ( 水 ) 第 12 章 関数の名前 今日の内容 * これまでの関数 必ず main 関数 ( 呼び出し元 ) の前に関数定義をする 宣言した仮引数の数と実引数として渡す値の数は同じ 仮引数の型に合わせた値渡し (1) 関数宣言 : 関数の戻り値の型, 名前, 引数の型のみ先行指定 (2) 多重定義 : 引数が異なる同じ名前の関数の作成

More information

Prog1_10th

Prog1_10th 2012 年 6 月 20 日 ( 木 ) 実施ポインタ変数と文字列前回は, ポインタ演算が用いられる典型的な例として, ポインタ変数が 1 次元配列を指す場合を挙げたが, 特に,char 型の配列に格納された文字列に対し, ポインタ変数に配列の 0 番の要素の先頭アドレスを代入して文字列を指すことで, 配列そのものを操作するよりも便利な利用法が存在する なお, 文字列リテラルは, その文字列が格納されている領域の先頭アドレスを表すので,

More information

* ライブラリ関数 islower(),toupper() を使ったプログラム 1 /* 2 Program : trupper.c 3 Student-ID : K 4 Author : TOUME, Kouta 5 Comments : Used Library function i

* ライブラリ関数 islower(),toupper() を使ったプログラム 1 /* 2 Program : trupper.c 3 Student-ID : K 4 Author : TOUME, Kouta 5 Comments : Used Library function i 1. ライブラリ関数 islower(), toupper() を使い 下記の trlowup プログラムを書き換えて 新規に trupper プログラムを作成せよ * サンプルプログラム 1 /* 2 Program : trlowup.c 3 Comments : translate lower case characters into upper case ones. 4 */ 5 6 #include

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 基幹 7 ( 水 5) 1 11: 動的メモリ確保 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/teachers/w48369 2/CPR1/ 2017-06-28 まとめ : ポインタを使った処理 2 内容呼び出し元の変数を書き換える文字列を渡す 配列を渡すファイルポインタ複数の値を返す大きな領域を確保する

More information

8 / 0 1 i++ i 1 i-- i C !!! C 2

8 / 0 1 i++ i 1 i-- i C !!! C 2 C 2006 5 2 printf() 1 [1] 5 8 C 5 ( ) 6 (auto) (static) 7 (=) 1 8 / 0 1 i++ i 1 i-- i 1 2 2.1 C 4 5 3 13!!! C 2 2.2 C ( ) 4 1 HTML はじめ mkdir work 作業用ディレクトリーの作成 emacs hoge.c& エディターによりソースプログラム作成 gcc -o fuga

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 2018/10/05 竹島研究室創成課題 第 2 回 C 言語演習 変数と演算 東京工科大学 加納徹 前回の復習 Hello, world! と表示するプログラム 1 #include 2 3 int main(void) { 4 printf("hello, world! n"); 5 return 0; 6 } 2 プログラム実行の流れ 1. 作業ディレクトリへの移動 $ cd

More information

プログラミング及び演習 第1回 講義概容・実行制御

プログラミング及び演習 第1回 講義概容・実行制御 プログラミング及び演習 第 7 回ポインタ ( 教科書第 10 章 ) (2014/05/23) 講義担当情報連携統轄本部情報戦略室大学院情報科学研究科メディア科学専攻教授森健策 本日の講義 演習の内容 ポインタ ポインタ第 10 章 講義 演習ホームページ http://www.newves.org/~mori/14programming ところで, さあ いよいよポインタです コツさえわかれば難しくないので安心してください

More information

Microsoft PowerPoint - kougi7.ppt

Microsoft PowerPoint - kougi7.ppt C プログラミング演習 第 7 回メモリ内でのデータの配置 例題 1. 棒グラフを描く 整数の配列から, その棒グラフを表示する ループの入れ子で, 棒グラフの表示を行う ( 参考 : 第 6 回授業の例題 3) 棒グラフの1 本の棒を画面に表示する機能を持った関数を補助関数として作る #include "stdafx.h" #include void draw_bar( int

More information

memo

memo 計数工学プログラミング演習 ( 第 1 回 ) 2016/04/05 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 担当メンバー : 担当 : 担当教員 : 定兼 ( 数理 2 研 ) 補佐 : 松島 ( 数理 6 研 ) 学生アシスタント : 鈴木, 石山, 中村 担当へのコンタクト e メールアドレス ( 演習についての一般的な相談 ): miprogramming2016+general@gmail.com

More information

フローチャートの書き方

フローチャートの書き方 アルゴリズム ( 算法 ) 入門 1 プログラムの作成 機械工学専攻泉聡志 http://masudahp.web.fc2.com/flowchart/index.html 参照 1 何をどのように処理させたいのか どのようなデータを入力し どのような結果を出力させるのか問題を明確にする 2 問題の内容どおりに処理させるための手順を考える ( フローチャートの作成 )~アルゴリズム( 算法 ) の作成

More information

Microsoft PowerPoint - 11.ppt [互換モード]

Microsoft PowerPoint - 11.ppt [互換モード] 第 11 回ポインタの基礎 ( アドレスとポインタ ) 1 今回の目標 C 言語におけるポインタを理解する 変数のアドレスを理解する ポインタ型を理解する アドレス演算子 参照演算子の効果を理解する NULL というアドレスを理解する 複数の関数内で変数のアドレスを表示するプログラムを作成する 2 ポインタ ポインタとは 変数のアドレスを入れる変数である ポインタの型はこれまでのどの型 (char,int,double)

More information

演習課題No12

演習課題No12 演習課題 No.12 ( 課題は 3 題ある ) 課題 12-1 時間内提出 従来の C 言語には複素数を直接扱うデータ型はないので (*), 構造体で複素数 ( 英語で complex) を表すことにする. 複素数を表す構造体を以下のように定義する. struct complex float r; // 実部 ( 英語で real) float i; // 虚部 ( 英語で imaginary)

More information

Microsoft PowerPoint - 09.pptx

Microsoft PowerPoint - 09.pptx 情報処理 Ⅱ 第 9 回 2014 年 12 月 22 日 ( 月 ) 関数とは なぜ関数 関数の分類 自作関数 : 自分で定義する. ユーザ関数 ユーザ定義関数 などともいう. 本日のテーマ ライブラリ関数 : 出来合いのもの.printf など. なぜ関数を定義するのか? 処理を共通化 ( 一般化 ) する プログラムの見通しをよくする 機能分割 ( モジュール化, 再利用 ) 責任 ( あるいは不具合の発生源

More information

C 言語講座 Vol 年 5 月 29 日 CISC

C 言語講座 Vol 年 5 月 29 日 CISC C 言語講座 Vol.3 2009 年 5 月 29 日 CISC 字下げ 見やすく書こう! #include int main(void) int a; printf(" 値 =>"); scanf("%d",&a); if(a>10) printf("10 より大きい値です \n"); else printf("10 以下の値です \n"); return 0; #include

More information

Microsoft PowerPoint - 12.ppt [互換モード]

Microsoft PowerPoint - 12.ppt [互換モード] 第 12 回構造体 1 今回の目標 構造体を理解する 構造体の定義の仕方を理解する 構造体型を理解する 構造体型の変数 引数 戻り値を理解する 複素数同士を足し算する関数を作成し その関数を利用するプログラムを作成する 2 複素数の足し算 複素数は実部と虚部の2つの実数で 表現される 表現される z = a+ bi 2 つの複素数 z 1 = a 1+ bi 1 と z2 = a2 + b2i の和

More information

関数の中で宣言された変数の有効範囲はその関数の中だけです さっきの rectangle _s で宣言されている変数 s は他の関数では使用できません ( 別の関数で同じ名前の変数を宣言することはできますが 全く別の変数として扱われます このように ある関数の中で宣言されている変数のことをその関数の

関数の中で宣言された変数の有効範囲はその関数の中だけです さっきの rectangle _s で宣言されている変数 s は他の関数では使用できません ( 別の関数で同じ名前の変数を宣言することはできますが 全く別の変数として扱われます このように ある関数の中で宣言されている変数のことをその関数の ソフトゼミ A 第 6 回関数 はじめに今まで printf や scanf など 予め用意されていた関数を使ってきました これら標準で用意されている関数を作ることは ( 特に入出力系は ) とても難しいのですが 関数は自作することができます というわけで 今回は自分で関数を定義して使っていく方法について学びましょう 関数とは C 言語での 関数 は 処理の途中で呼び出すことによって 定義されている

More information

untitled

untitled プログラミング入門第 13 回講義 ~ 最終回 ~ よいプログラミングのスタイル Prog-0 2006 Lec 13-1 よいプログラムとは何か 動けばよいというわけではない プログラムがわかりやすい 見た目がきれい修正 変更がしやすい 効率が良い 実行速度が速い無駄な変数がない Prog-0 2006 Lec 13-2 何故分かり易いプログラムが良いのか? 他人にも 自分にも理解しやすい 1 ヶ月後の自分は他人である

More information

NUMAの構成

NUMAの構成 メッセージパッシング プログラミング 天野 共有メモリ対メッセージパッシング 共有メモリモデル 共有変数を用いた単純な記述自動並列化コンパイラ簡単なディレクティブによる並列化 :OpenMP メッセージパッシング 形式検証が可能 ( ブロッキング ) 副作用がない ( 共有変数は副作用そのもの ) コストが小さい メッセージパッシングモデル 共有変数は使わない 共有メモリがないマシンでも実装可能 クラスタ

More information

スライド 1

スライド 1 プログラミング 第 3 週 静岡大学工学部機械工学科知能 材料コースロボット 計測情報分野臼杵深光電 精密コース光ナノバイオ分野居波渉 講義の前に 講義資料や演習課題 LiveCampusよりダウンロード可能 成績評価期末試験および課題により行う. 評価の配分は, おおむね試験 90%, 課題 10% である. 再試験期末試験で40 点以上 60 点未満の場合, 再試験となる. 2 月 26 日 (

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 基幹 7 ( 水 5) 1 12: コマンドライン引数 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/teachers/w48369 2/CPR1/ 2017-07-05 まとめ : ポインタを使った処理 2 内容呼び出し元の変数を書き換える文字列を渡す 配列を渡すファイルポインタ複数の値を返す大きな領域を確保する

More information

C 言語第 7 回 掛け算 (multiply number) ìz1 = x1 + iy1 í îz = x + iy 割り算 (devide number) ( )( ) ( ) Þ z z = x + iy x + iy = x x - y y + i y x + x y

C 言語第 7 回 掛け算 (multiply number) ìz1 = x1 + iy1 í îz = x + iy 割り算 (devide number) ( )( ) ( ) Þ z z = x + iy x + iy = x x - y y + i y x + x y C 言語第 7 回 複素数の使用法 ( シラバス 1 回目 ) 1 1 複素数 複素数 (complex numbers) z は虚数単位 ìi í i = - î 1 を使って つの実数 x, y から z = x + iy と作ります とくに x を z の実数部 (real part): x = Re( z) y を z の虚数部 (imarginary part): y = Im ( z)

More information

Microsoft PowerPoint - prog08.ppt

Microsoft PowerPoint - prog08.ppt プログラミング言語 2 第 07 回 (2007 年 06 月 25 日 ) 1 今日の配布物 片面の用紙 1 枚 今日の課題が書かれています 本日の出欠を兼ねています 2/27 1 今日やること http://www.tnlab.ice.uec.ac.jp/~s-okubo/class/language/ にアクセスすると 教材があります 2007 年 06 月 25 日分と書いてある部分が 本日の教材です

More information

目次

目次 プログラミング I 数理物理, 総合理学等向け 2019 年 1 月 21 日 海谷治彦 1 目次 ポインタその 2 11 章 [ レ ] 10 章 [ 明 ] ポインタ C 言語の最大難関といわれています 関数の引数とポインタ まとめ 2 ポインタとは何か? ( まとめ ) 1. コンピュータのメモリは, プログラムの全域から, アクセスすることのできる配列のようなものである. アドレス 0028FEE2

More information