kiso2-09.key

Similar documents
kiso2-06.key

kiso2-03.key

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

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (2018) - Â裵²ó ¨¡ À©¸æ¹½Â¤¡§¾ò·ïʬ´ô ¨¡

プログラミング基礎

cp-7. 配列

プログラミング基礎

Microsoft PowerPoint - 説明3_if文switch文(C_guide3)【2015新教材対応確認済み】.pptx

スライド 1

Microsoft PowerPoint - C4(反復for).ppt

PowerPoint プレゼンテーション

C 言語第 3 回 2 a と b? 関係演算子 a と b の関係 関係演算子 等しい a==b 等しくない a!=b より大きい a>b 以上 a>=b より小さい a<b 以下 a<=b 状態 真偽 値 条件が満たされた場合 TRUE( 真 ) 1(0 以外 ) 条件が満たされなかった場合 F

Microsoft Word - 3new.doc

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

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

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

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

Taro-再帰関数Ⅱ(公開版).jtd

プログラミング実習I

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

Taro-リストⅠ(公開版).jtd

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

Cプログラミング1(再) 第2回

memo

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

講習No.9

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

gengo1-11

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

演習課題No12

PowerPoint Presentation

Microsoft PowerPoint - lec4.ppt

プログラミング基礎

1. 関数 scanf() 関数 printf() は変数の値を画面に表示しますが それに対し関数 scanf() はキーボードで入力した値を変数に代入します この関数を活用することで対話式 ( ユーザーの操作に応じて処理を行う ) プログラムを作ることができるようになります 整数の和

gengo1-2

4-4 while 文 for 文と同様 ある処理を繰り返し実行するためのものだが for 文と違うのは while 文で指定するのは 継続条件のみであるということ for 文で書かれた左のプログラムを while 文で書き換えると右のようになる /* 読込んだ正の整数値までカウントアップ (for

1 4 2 EP) (EP) (EP)

講習No.8

Prog1_6th

PowerPoint プレゼンテーション

Microsoft Word - 03

C 2 / 21 1 y = x 1.1 lagrange.c 1 / Laglange / 2 #include <stdio.h> 3 #include <math.h> 4 int main() 5 { 6 float x[10], y[10]; 7 float xx, pn, p; 8 in

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

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

Microsoft Word - no11.docx

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

Taro-ポインタ変数Ⅰ(公開版).j

memo

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

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

Microsoft PowerPoint - class04.ppt

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

Taro-最大値探索法の開発(公開版

Microsoft PowerPoint - prog04.ppt

プログラミング方法論 II 第 14,15 回 ( 担当 : 鈴木伸夫 ) 問題 17. x 座標と y 座標をメンバに持つ構造体 Point を作成せよ 但し座標 は double 型とする typedef struct{ (a) x; (b) y; } Point; 問題 18. 問題 17 の

memo

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

講習No.10

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

第2回講義:まとめ

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

Microsoft Word - no02.doc

Microsoft Word - no202.docx

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

<4D F736F F D20438CBE8CEA8D758DC03389F0939A82C282AB2E646F63>

プログラミング基礎

PowerPoint プレゼンテーション

計算機プログラミング

Microsoft PowerPoint - lec10.ppt

本サンプル問題の著作権は日本商工会議所に帰属します また 本サンプル問題の無断転載 無断営利利用を厳禁します 本サンプル問題の内容や解答等に関するお問 い合わせは 受け付けておりませんので ご了承ください 日商プログラミング検定 STANDARD(C 言語 ) サンプル問題 知識科目 第 1 問 (

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

物質工学科 田中晋

講習No.1

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

C 言語の式と文 C 言語の文 ( 関数の呼び出し ) printf("hello, n"); 式 a a+4 a++ a = 7 関数名関数の引数セミコロン 3 < a "hello" printf("hello") 関数の引数は () で囲み, 中に式を書く. 文 ( 式文 ) は

gengo1-8

Taro-ファイル処理(公開版).jtd

18 C ( ) hello world.c 1 #include <stdio.h> 2 3 main() 4 { 5 printf("hello World\n"); 6 } [ ] [ ] #include <stdio.h> % cc hello_world.c %./a.o

Microsoft Word - no103.docx

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

Taro-スタック(公開版).jtd

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

fuga scanf("%lf%*c",&fuga); 改行文字を読み捨てる 10 進数の整数 おまじない取り込んだ値を代入する変数 scanf( %d%*c,&hoge); キーボードから取り込め という命令 1: scanf 1 1: int double scanf %d %lf printf

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

講習No.12

program7app.ppt

Microsoft PowerPoint - prog07.ppt

PowerPoint プレゼンテーション

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


3. 標準入出力

Microsoft Word - no13.docx

Microsoft PowerPoint - C_Programming(3).pptx

次に示す数値の並びを昇順にソートするものとする このソートでは配列の末尾側から操作を行っていく まず 末尾の数値 9 と 8 に着目する 昇順にソートするので この値を交換すると以下の数値の並びになる 次に末尾側から 2 番目と 3 番目の 1

フローチャートの書き方

第9回 配列(array)型の変数

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

情報処理演習 B8クラス

Microsoft PowerPoint - 4.pptx

Transcription:

座席指定はありません 計算機基礎実習II 2018 のウェブページか 第9回 ら 以下の課題に自力で取り組んで下さい 計算機基礎実習II 第7回の復習課題(rev07) 第9回の基本課題(base09)

第8回試験の結果

中間試験に関するコメント コンパイルできない不完全なプログラムなど プログラミングに慣れていない あるいは複雑な問題は 要件 をバラして段階的にプログラムを作成する exam08-2.c 3つの実数 x, y, z の値を順に入力すると (x+y)z と (x^2+..)の 値を出力することを繰り返すプログラム... ただし x, y, z の値 にすべて 0 が入力されたときはプログラムを終了するものとする 1. 2. 3. 4. 5. 6. 7. x,y,z を入力して x,y,z の値を出力するプログラム 1 の入力と出力を繰り返すプログラム x,y,z を入力して (x+y)z の値を出力するプログラム 3 に加えて x^2+y^2+z^2 の値を出力するプログラム 3 に加えて (x^2+y^2+z^2) の値を出力するプログラム 4 に加えて x に 0 が入力されると終了するプログラム 4 に加えて x, y, z 全てが 0 のとき終了するプログラム

中間試験に関するコメント 複数条件の組み合わせ if (a<x<b) if (a<x && x<b) C言語の比較演算子は 二項演算子 です a < b が成立すれば 1 成立しなければ 0 を返すような演算子 < したがって if (a < x < b) のような式は a=1, x=-1, b=3 とすると 1. (a < x) は 1<-1 を満たさないので (a < x) 0 2. (a < x < b) は 1. より (0 < b) となり 0<3 なので (a < x < b) (0 < b) (0 < 3) 1 3. (a < x < b) は 1 < -1 < 3 が満たされていないので偽 しかし プログラムでは (a < x < b) 1 となり真

中間試験に関するコメント プログラミングが書けない人ほどインデント(字下げ)しない プログラムコードは人間のためのものです #include <stdio.h> int main() { int a; scanf("%d", &a); return a/2; #include<stdio.h> int main(){int a;scanf("%d",&a);return a/2; 0016140 0016160 0016200 0016220 0016240 0016260 0016300 0016320 0016340 0016360 0e10 00b8 00c3 0e20 0060 0060 0004 0001 0004 fff1 0011 fff1 : 0099 0001 0740 00d1 00dd 0040 0001 0004 0001 0012 fff1 0014 0012

評価の分布

解答数の分布

自己採点と素点の分布

第8回試験の解答例

exam08-1.c #include <stdio.h> int main() { int a; scanf("%d", &a); return a/2;

exam08-2.c #include <stdio.h> #include <math.h> int main() { double x, y, z; while(1) { printf("x y z? "); scanf("%lf%lf%lf", &x, &y, &z); if (x==0 && y==0 && z==0) break; printf("%f %f\n", (x+y)*z, sqrt(x*x+y*y+z*z)); return 0;

exam08-3.c #include <stdio.h> #include <stdlib.h> int main() { int a, b; double x; //printf("範囲 a b? "); scanf("%d%d", &a, &b); if (a > b) exit(1); while(1) { //printf("x? "); scanf("%lf", &x); if (x < a b < x) printf("範囲外です \n"); else printf("範囲に含まれています \n"); if (x == a x == b) { printf("端点です 終了します \n"); break; return 0;

exam08-4.c #include <stdio.h> #include <stdlib.h> int main() { char c; //printf("c? "); scanf("%c", &c); if (c<65 90<c) exit(1); int i; for (i=c; i<=90; i++) printf("%c ", i); printf("\n"); return 0;

exam08-5.c #include <stdio.h> #include <math.h> int main() { double x; double tr = M_PI/(2*sqrt(3)); double sum = 0; scanf("%lf", &x); int k=0; while (1) { sum += pow(-1, k) / ((2*k+1) * pow(3, k)); printf("n=%2d: %.10f\n", k, sum); if (fabs(sum-tr) < x) break; k++; return 0;

exam08-6.c #include <stdio.h> int main() { int a, b; printf("a b? "); scanf("%d%d", &a, &b); int i; for (i=a; i<=b; i++) if (i%2 == 1 i%2 == -1) printf("%d ", i); printf("\n"); return 0;

exam08-7.c #include <stdio.h> #include <math.h> #include <float.h> int main() { double x; double ep = DBL_MAX; double sum = 0; int n = 0; while (1) { //printf("x? "); scanf("%lf", &x); n++; sum += x; if (fabs(x) < fabs(ep)) ep = x; printf("n = %d, emin = %f\n", n, ep); if (ep == 0.0) break; return 0;

第9回の内容 配列変数の宣言 配列変数の参照 代入 配列変数の初期化

配列変数とは int main() { int a; a という名前の整数型の変数を1つ用意 int b[10]; : a b[0], b[1],..., b[9] という名前の整数型の 変数を合計10こ用意 b[0] b[1] b[2] b[3] b[4] b[5] b[6] b[7] b[8] b[9] b という整数型の変数は存在しない b[0] や b[9] が一つの変数 b[n] と宣言すると b[0] から b[n-1] までが使える b[n] は使えない 配列変数の [ ] の中の何番目かを表す0以上の整数を 添字 と呼ぶ

配列変数の何がうれしいのか 例えば 1000個の変数が必要なときに int a0, a1, a2, a3,..., a998, a999; としなくても int a[1000]; こうして宣言できる また for 文などを使って こんなふうに使える for (i=0; i<1000; i++) { a[i] = i; 配列変数が無ければ a0=0; a1=1; a2=2; a3=3;... a999=999;

配列変数の参照 代入 添字が付く以外は 通常の変数と同じ int a[10]; a[0] = 0; a[1] = 1; a[2] = a[0] + a[1]; ただし 添字を整数で表現できるので double x[10]; int i = 0; x[i] = 0.1; i++; x[i] = 0.2; x[i*3] = x[i] * x[0]; // // // // x[0] = 0.1 i = 1 x[1] = 0.2 x[3] = x[1] * x[0]

ex09-1.c 整数型の配列変数 a を大きさ(要素の数)10で宣言し さらに この配列変数 a の i 番目 の要素の値を i*2 で初期化しなさい このように宣言 初期化された配列変数 a の全て の要素(添字)番号 i と a の i 番目の要素の値 a[i] を順に出力する #include <stdio.h> int main() { int i; int a[10]; for (i=0; i<10; i++) a[i] = i*2; for (i=0; i<10; i++) printf("a[%d]=%d\n", i, a[i]); return 0;

配列変数の初期化 基本的には全ての要素に逐一代入する for (i=0; i<10; i++) a[i] = i*2; 宣言時に定数で初期化することもできる int a[10] = {0, 2, 4, 6, 8, 10, 12, 14, 16, 18;

配列変数の初期化 宣言時に初期化することもできる...が int a[10] = {0, 2, 4, 6, 8, 10, 12, 14, 16, 18; もし 要素数より多くの値で初期化すると int a[10] = {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20; コンパイル時に警告(Warning)される(エラーではない) もし 要素数より少ない値で初期化すると int a[10] = {0, 2, 4, 6; 以降の要素は全て 0 で初期化される 宣言時の要素数を省略すると 初期化値の数でサイズが決まる int a[] = {0, 2, 4, 6, 8; // int a[5] = {0, 2, 4, 6, 8;

ex09-2.c 大きさ(要素の数)が10の実数型の配列変数 x に対して 各要素 x[0] から x[9] までの値 を順にキーボードから入力すると 入力後に全ての x の要素の値とその総和を出力する #include <stdio.h> int main() { int i; double x[10]; double sum = 0.0; for (i=0; i<10; i++) { printf("%d? ",i); scanf("%lf", &x[i]); sum += x[i]; for (i=0; i<10; i++) printf("x[%d] = %f\n", i, x[i]); printf("sum = %lf\n", sum); return 0;