kiso2-03.key

Similar documents
kiso2-06.key

プログラミング実習I

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

PowerPoint プレゼンテーション

PowerPoint Presentation

Microsoft PowerPoint - kougi2.ppt

PowerPoint プレゼンテーション

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

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

Microsoft PowerPoint - kougi4.ppt

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

プログラミング基礎

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

C言語入門

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

導入基礎演習.ppt

プログラミング実習I

memo

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

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

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

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

Microsoft Word - 【第5分科会】ConcolicTestingグループ_付録_修正_ doc

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

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

情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤

PowerPoint プレゼンテーション

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

PowerPoint Presentation

Microsoft PowerPoint ppt


メソッドのまとめ

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

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

講習No.1

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

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

P05.ppt

PowerPoint プレゼンテーション

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

gengo1-11

解きながら学ぶC言語

JavaプログラミングⅠ

Transcription:

座席指定はありません Linux を起動して下さい 第3回 計算機基礎実習II 2018 のウェブページか ら 以下の課題に自力で取り組んで下さい 計算機基礎実習II 第2回の復習課題(rev02) 第3回の基本課題(base03)

第2回課題の回答例

ex02-2.c include <stdio.h> int main { int l int v, s; /* 一辺の長さ */ /* 体積 v と表面積 s */ scanf("%d", &l) printf(立方体の一辺の長さを入力して下さい: ); printf("一辺の長さが d の立方体の体積は l*l*l です \n" l, v); s = 6 * (a*2); print("一辺の長さが %d の立方体の表面積は %d です \n", l, return 0; s);

cc ex02-2.c -o ex02-2 a00007@s01cd0542-160:~$ cc ex02-2.c -o ex02-2 ex02-2.c:1:9: error: expected =,,, ;, asm or attribute before < token include <stdio.h> ^ ex02-2.c:8:4: error: stray \347 in program printf(立方体の一辺の長さを入力して下さい: ); ^ ex02-2.c:8:4: error: stray \253 in program ex02-2.c:8:4: error: stray \213 in program : ex02-2.c: が1つのエラー

ex02-2.c をデバッグ(debug)する ソースファイルの先頭から順にデバッグする a00007@s01cd0542-160:~$ cc ex02-2.c -o ex02-2 ex02-2.c:1:9: error: expected =,,, ;, asm or attribute before < token include <stdio.h> ^ before '<' < の前で expected こんなのが期待されてるんですけど... ソースコードのこのへんで ex02-2.c というファイルの1行目の9文字目で error 発生

ex02-2.c #include <stdio.h> int main { int l int v, s; /* 一辺の長さ */ /* 体積 v と表面積 s */ scanf("%d", &l) printf(立方体の一辺の長さを入力して下さい: ); printf("一辺の長さが d の立方体の体積は l*l*l です \n" l, v); s = 6 * (a*2); print("一辺の長さが %d の立方体の表面積は %d です \n", l, return 0; s);

a00007@s01cd0542-160:~$ cc ex02-2.c -o ex02-2 ex02-2.c:3:10: error: expected =,,, ;, asm or attribute before { token int main { ^ ソースコードのこのへんで ex02-2.c というファイルの3行目の10文字目で error 発生

ex02-2.c #include <stdio.h> int main() { int l int v, s; /* 一辺の長さ */ /* 体積 v と表面積 s */ scanf("%d", &l) printf(立方体の一辺の長さを入力して下さい: ); printf("一辺の長さが d の立方体の体積は l*l*l です \n" l, v); s = 6 * (a*2); print("一辺の長さが %d の立方体の表面積は %d です \n", l, return 0; s);

ex02-2.c の main() 関数の中の... a00007@s01cd0542-160:~$ cc ex02-2.c -o ex02-2 ex02-2.c: In function main : ex02-2.c:5:4: error: expected =,,, ;, asm or attribute before int int v, s; /* 体積 v と表面積 s */ ^ ex02-2.c:7:17: error: l undeclared (first use in this function) scanf("%d", &l) ^ ex02-2.c:7:17: note: each undeclared identifier is reported only once for each function it appears in 5行目の int の前??? undecleared そんなの知りません 宣言されてません けど... #include <stdio.h> int main() { int l int v, s; /* 一辺の長さ */ /* 体積 v と表面積 s */

ex02-2.c #include <stdio.h> int main() { int l; int v, s; /* 一辺の長さ */ /* 体積 v と表面積 s */ scanf("%d", &l) printf(立方体の一辺の長さを入力して下さい: ); printf("一辺の長さが d の立方体の体積は l*l*l です \n" l, v); s = 6 * (a*2); print("一辺の長さが %d の立方体の表面積は %d です \n", l, return 0; s);

a00007@s01cd0542-160:~$ cc ex02-2.c -o ex02-2 ex02-2.c: In function main : ex02-2.c:8:4: error: expected ; before printf printf(立方体の一辺の長さを入力して下さい: ); ^ ex02-2.c:8:4: error: stray \347 in program ex02-2.c:8:4: error: stray \253 in program ex02-2.c:8:4: error: stray \213 in program ex02-2.c:8:4: error: stray \346 in program ex02-2.c:8:4: error: stray \226 in program ex02-2.c:8:4: error: stray \271 in program : 8行目の printf の前??? '\343' や \200' のような英数表記できないコードの バグの多くは 全角日本語文字 列 に関するエラー 全角の空白文字も同様のエラーの原因となる

ex02-2.c #include <stdio.h> int main() { int l; int v, s; /* 一辺の長さ */ /* 体積 v と表面積 s */ scanf("%d", &l); printf("立方体の一辺の長さを入力して下さい: "); printf("一辺の長さが d の立方体の体積は l*l*l です \n" l, v); s = 6 * (a*2); print("一辺の長さが %d の立方体の表面積は %d です \n", l, return 0; s);

a00007@s01cd0542-160:~$ cc ex02-2.c -o ex02-2 ex02-2.c: In function main : ex02-2.c:11:80: error: expected ) before l printf("一辺の長さが d の立方体の体積は l*l*l です \n" l, v); ^ ex02-2.c:13:13: error: a undeclared (first use in this function) s = 6 * (a*2); ^ ex02-2.c:13:13: note: each undeclared identifier is reported only once for each function it appears in ex02-2.c:16:3: error: expected declaration or statement at end of input return 0; ^

ex02-3.c #include <stdio.h> int main() { int a; printf("整数を入力して下さい: "); scanf("%d", &a); } printf("入力された値は %d です \n", a); return 0; ex02-1.c から修正する #include <stdio.h> int main() { int a; printf("整数 a を入力して下さい: "); scanf("%d", &a); printf("a^2 は %d です \n", a*a); printf("a^3 は %d です \n", a*a*a); return 0; }

ex02-5.c #include <stdio.h> #include <math.h> int main() { int a; printf("a の値を入力して下さい "); scanf("%d", &a); printf("1^(-2) = printf("1^(-1/2) printf("1/^(1/2) printf("1/^(2) = return 0; } %f\n", 1./(a*a)); = %f\n", 1./sqrt(a)); = %f\n", sqrt(a)); %f\n", (double)a*a);

いくつかのお知らせ 再 Visual Studio Code の使い方まとめ (GUIからVisua Studio Code を起動する) オンライン プログラミング環境 paiza.io 理工出席 アプリのテスト運用

第3回の内容 プログラミング言語Cの関数 main()関数 return 文 変数の値は有限

関数 数学の関数 f(x), x ℝ f:ℝ ℝ f プログラミング言語の関数 int a func() e.g. f(x) = x 2 y ℝ func(a) e.g. printf() int v

プログラミング言語の関数 プログラミング言語の関数 int a 入力がない場合もある 出力がない場合もある int a func() int v func() int v func() scanf() 別の入力や出力をする場合 もある int a func() printf() int v

main() 関数 C言語で最初に呼び出される関数 実行可能なCプログラムを書く main() 関数を定義する return 文によって関数の値 返り値 を定義する main という(何もしない)名前の関数 int main() { main() 0 return 0; } main は int 型の0を 返り値として 返す main は int 型を 返り値として 返す

関数と返り値とreturn文 C言語の関数は 関数名() {...} で定義される いまはmain() だけ詳細は後日 C言語の関数は 関数名() で呼び出される(利用される) C言語の関数は値をもつ もたないこともある return 文によって関数の値 返り値 が決まる scanf() 関数と printf() 関数も int 型の返り値をもつ int a, n, m; n = scanf("%d", &a); m = printf("a is %d\n", a); // n? m? int a func()

第3回の基本課題

ex03-1.c #include <stdio.h> int main() { int a; scanf("%d", &a); scanf() a main() int 2*a return 2*a; } 直前に実行したコマンドの返り値が $? に入る t180900@s01cd0542-160:~$ echo $? 2 変数 $? の値を表示する

ex03-2.c while 文の復習 繰り返し処理 この条件が成立しているあいだ繰り返す {...} で囲まれたブロック を繰り返す while (i > 0) { i *= 2; printf("%d\n", i); }

ex03-2.c 変数値の範囲は有限 t180900@s01cd0542-160:~/kiso2-2018/ex03$./ex03-2 2 4 8 16 32 64 128 134217728 268435456 536870912 1073741824-2147483648 2倍しているだけなのに突然負の値に 負の値になることも それがこの数値になることも 情報処理の基 礎 で学ぶ 2の補数表現 を理解すると きちんと説明できます