Microsoft PowerPoint - kougi4.ppt
|
|
|
- えみ すみい
- 6 years ago
- Views:
Transcription
1 C の実行モデル
2 自由落下距離 前回の授業の 例題 1 の復習と重要事項 の確認 地上で物を落とし始めた後の自由落下距離を 求める 重力加速度 g は 9.8 とする 自由落下距離を求めるために, プログラム中に, 計算式 y = ( 9.8 / 2.0 ) * x * x を書く
3 C++ ソースファイルの編集 編集画面 編集中のファイル名 関係するファイルなどが表示される ビルド結果などが表示される画面
4 #include "stdafx.h" #include <math.h> int _tmain(int argc, _TCHAR* argv[]) { double x; double y; char buf[256]; int i; double start_x; double step_x; FILE* fp; printf( "start_x =" ); fgets( buf, 256, stdin ); sscanf( buf, "%lf n", &start_x ); printf( "step_x =" ); fgets( buf, 256, stdin ); sscanf( buf, "%lf n", &step_x ); fp = fopen( "z: data.csv", "w" ); for( i = 0; i < 20; i++ ) { x = start_x + ( i * step_x ); y = ( 9.8 / 2.0 ) * x * x; printf( "x= %f, y= %f n", x, y ); fprintf( fp, "x=, %f, y=, %f n", x, y ); fprintf( stderr, "file z: data.csv created n" ); fclose( fp ); return 0; キーボードからのデータ読み込みを行っている部分 計算を行っている部分 ( 自由落下距離 ) ファイルへの書き出しを行っている部分
5 #include "stdafx.h" #include <math.h> int _tmain(int argc, _TCHAR* argv[]) { double x; double y; char buf[256]; int i; double start_x; double step_x; FILE* fp; printf( "start_x =" ); fgets( buf, 256, stdin ); sscanf( buf, "%lf n", &start_x ); printf( "step_x =" ); fgets( buf, 256, stdin ); sscanf( buf, "%lf n", &step_x ); fp = fopen( "z: data.csv", "w" ); for( i = 0; i < 20; i++ ) { x = start_x + ( i * step_x ); y = sin( x ); printf( "x= %f, y= %f n", x, y ); fprintf( fp, "x=, %f, y=, %f n", x, y ); fprintf( stderr, "file z: data.csv created n" ); fclose( fp ); return 0; 変数 x, y, buf, i, start_x, step_x, fp をメモリエリア中に確保 ここで変数を使用
6 #include "stdafx.h" #include <math.h> int _tmain(int argc, _TCHAR* argv[]) { Cプログラムはメイン関数から実行開始 double x; double y; char buf[256]; int i; double start_x; double step_x; FILE* fp; printf( "start_x =" ); fgets( buf, 256, stdin ); sscanf( buf, "%lf n", &start_x ); printf( "step_x =" ); fgets( buf, 256, stdin ); sscanf( buf, "%lf n", &step_x ); fp = fopen( "z: data.csv", "w" ); for( i = 0; i < 20; i++ ) { x = start_x + ( i * step_x ); y = sin( x ); printf( "x= %f, y= %f n", x, y ); fprintf( fp, "x=, %f, y=, %f n", x, y ); fprintf( stderr, "file z: data.csv created n" ); fclose( fp ); return 0; プログラムは順次実行 この部分は繰り返し処理 (for 文による繰り返し ) この部分を繰り返す 実行の流れが今日の授業のポイント
7 #include "stdafx.h" #include <math.h> int _tmain(int argc, _TCHAR* argv[]) { double x; double y; char buf[256]; int i; double start_x; double step_x; FILE* fp; printf( "start_x =" ); fgets( buf, 256, stdin ); sscanf( buf, "%lf n", &start_x ); printf( "step_x =" ); fgets( buf, 256, stdin ); sscanf( buf, "%lf n", &step_x ); fp = fopen( "z: data.csv", "w" ); for( i = 0; i < 20; i++ ) { x = start_x + ( i * step_x ); y = ( 9.8 / 2.0 ) * x * x; printf( "x= %f, y= %f n", x, y ); fprintf( fp, "x=, %f, y=, %f n", x, y ); fprintf( stderr, "file z: data.csv created n" ); fclose( fp ); return 0; C プログラムはメインの関数から実行開始 printf でメッセージを表示 fgets でキーボードから 1 行を読み込み sscanf で数値を読み取って変数に格納 printf でメッセージを表示 fgets でキーボードから 1 行を読み込み sscanf で数値を読み取って変数に格納 20 回の繰り返し (i = 0, 1,... 19) x の値から ( 9.8 / 2.0 ) * x * x を求め,y に書き込む
8 #include "stdafx.h" #include <math.h> int _tmain(int argc, _TCHAR* argv[]) { double x; double y; char buf[256]; int i; double start_x; double step_x; FILE* fp; printf( "start_x =" ); fgets( buf, 256, stdin ); sscanf( buf, "%lf n", &start_x ); printf( "step_x =" ); fgets( buf, 256, stdin ); sscanf( buf, "%lf n", &step_x ); fp = fopen( "z: data.csv", "w" ); for( i = 0; i < 20; i++ ) { x = start_x + ( i * step_x ); y = sin( x ); printf( "x= %f, y= %f n", x, y ); fprintf( fp, "x=, %f, y=, %f n", x, y ); fprintf( stderr, "file z: data.csv created n" ); fclose( fp ); return 0; 変数は 4 種類使っている 整数を扱う int 型 整数は, 5, -3, 0 など 文字を扱う char 型 文字は, 1, 0, 3, -, a など数字 (1, 0, 3 など ) も文字の一種 浮動小数を扱う double 型 3.14, , 5, 0, -3 など (5, 0, -3 などの整数も浮動小数の一種 ) ファイルポインタ ファイル操作に使う変数
9 #include "stdafx.h" #include <math.h> int _tmain(int argc, _TCHAR* argv[]) { double x; double y; char buf[256]; int i; double start_x; double step_x; FILE* fp; printf( "start_x =" ); fgets( buf, 256, stdin ); sscanf( buf, "%lf n", &start_x ); printf( "step_x =" ); fgets( buf, 256, stdin ); sscanf( buf, "%lf n", &step_x ); fp = fopen( "z: data.csv", "w" ); for( i = 0; i < 20; i++ ) { x = start_x + ( i * step_x ); y = sin( x ); printf( "x= %f, y= %f n", x, y ); fprintf( fp, "x=, %f, y=, %f n", x, y ); fprintf( stderr, "file z: data.csv created n" ); fclose( fp ); return 0; double 型の変数については, sscanf では %lf を,printf, fprintf では %f を, 使う決まりになっている 変数は 4 種類使っている 整数を扱う int 型 整数は, 5, -3, 0 など 文字を扱う char 型 文字は, 1, 0, 3, -, a など数字 (1, 0, 3 など ) も文字の一種 浮動小数を扱う double 型 3.14, , 5, 0, -3 など (5, 0, -3 などの整数も浮動小数の一種 ) ファイルポインタ ファイル操作に使う変数
10 Microsoft Visual Studio.NET の起動時に 既存のプロジェクトを開く ための画面が現れた場合 プロジェクト の名前を選びクリック ( 前回の授業で作成した プロジェクト を開いている )
11 C++ ソースファイルの編集 編集中のファイル名 関係するファイルなどが表示される 編集画面
12 実行ファイル はこのフォルダの中にある *.vcproj という名前のファイルは, プロジェクトファイル. ダブルクリックにより Visual Studio.NET が起動する 編集画面での編集の対象となる C++ ソースファイル 1 つのプロジェクトは, 複数のファイルからなる Windows で, プロジェクトの保存先のファイルを見た場合
13 ビルド による実行ファイルの生成 #include "stdafx.h" #include <math.h> int _tmain(int argc, _TCHAR* argv[]) { double x; double y; char buf[256]; int i; double start_x; double step_x; FILE* fp; printf( "start_x =" ); fgets( buf, 256, stdin ); sscanf( buf, "%lf n", &start_x ); printf( "step_x =" ); fgets( buf, 256, stdin ); sscanf( buf, "%lf n", &step_x ); fp = fopen( "z: data.csv", "w" ); for( i = 0; i < 20; i++ ) { x = start_x + ( i * step_x ); y = ( 9.8 / 2.0 ) * x * x; printf( "x= %f, y= %f n", x, y ); fprintf( fp, "x=, %f, y=, %f n", x, y ); fprintf( stderr, "file z: data.csv created n" ); fclose( fp ); return 0; C++ ソースファイル ビルド により実行ファイル等が生成される ビルド Microsoft Visual Studio.NET 実行ファイル その他, ビルドの結果として生成されるファイル その他のファイル 構文エラーがあると, ビルド 時にエラーメッセージが表示される ( 実行ファイルは生成されない )
14 消去 (clean) の操作 #include "stdafx.h" #include <math.h> int _tmain(int argc, _TCHAR* argv[]) { double x; double y; char buf[256]; int i; double start_x; double step_x; FILE* fp; printf( "start_x =" ); fgets( buf, 256, stdin ); sscanf( buf, "%lf n", &start_x ); printf( "step_x =" ); fgets( buf, 256, stdin ); sscanf( buf, "%lf n", &step_x ); fp = fopen( "z: data.csv", "w" ); for( i = 0; i < 20; i++ ) { x = start_x + ( i * step_x ); y = ( 9.8 / 2.0 ) * x * x; printf( "x= %f, y= %f n", x, y ); fprintf( fp, "x=, %f, y=, %f n", x, y ); fprintf( stderr, "file z: data.csv created n" ); fclose( fp ); return 0; C++ ソースファイル ビルド Microsoft Visual Studio.NET 実行ファイル その他, ビルドの結果として生成されるファイル その他のファイル 消去 (clean) の操作により, ビルドの結果が消える ( 元のソースファイル等は消えない )
15 消去 (clean) の操作 消去 (clean) の操作を行っても, 元のソースファイルが消えるわけでは無い ( ディスク使用量の節約になる )
16 構文エラーの例 全角文字 全角文字はプログラム中の決められた場所にしか入れてはならない コメント 文字列 ( ダブルクォートで囲まれた部分 ) " 抜け ; 忘れ など
17 ビルドが正常終了し, 実行ファイルが生成できたことを示すメッセージ ビルド結果が現れる. 1 正常終了,0 失敗 ならばビルドに成功
18 構文エラーの例 (1) ここでは, セミコロン ; を入れるのを忘れている ( 人間の目では発見が難しい ) ビルドが失敗したことを示すメッセージ 6 行目に構文エラー
19 構文エラーの例 (1) エラーの付近にマークが付く ここでは, セミコロン ; を入れるのを忘れている ( 人間の目では発見が難しい ) マウスで 構文エラー とある行をダブルクリックすると エラーの原因が表示される
20 構文エラーの例 (2) ここで, doublr とあるのはスペルミス ( 正しくは,double) ビルドが失敗したことを示すメッセージ ( ミスは 1 箇所なのに, エラーは多数 ) 10 行目に doublr : 定義されていない識別子です
21 データファイル プログラムでのファイル操作 ファイル生成 ファイル読み出し ファイル書き込み
22 #include "stdafx.h" #include <math.h> int _tmain(int argc, _TCHAR* argv[]) { double x; double y; char buf[256]; int i; double start_x; double step_x; FILE* fp; printf( "start_x =" ); fgets( buf, 256, stdin ); sscanf( buf, "%lf n", &start_x ); printf( "step_x =" ); fgets( buf, 256, stdin ); sscanf( buf, "%lf n", &step_x ); fp = fopen( "z: data.csv", "w" ); for( i = 0; i < 20; i++ ) { x = start_x + ( i * step_x ); y = ( 9.8 / 2.0 ) * x * x; printf( "x= %f, y= %f n", x, y ); fprintf( fp, "x=, %f, y=, %f n", x, y ); 自由落下距離 のプログラムを実行するとデータファイルが生成される データファイルに関係している部分 fprintf( stderr, "file z: data.csv created n" ); fclose( fp ); return 0; C++ ソースファイル ビルド 実行ファイル Microsoft Visual Studio.NET データファイル その他のファイル 自由落下距離のプログラムを実行すると, データファイル data.csv が生成される
23 例題 1. 自由落下距離 自由落下距離 のプログラムについて, 実行順を確認するとともに, 変数の値の変化を観察する Microsoft Visual Studio.NET のステップ実行機能を使用 前回の授業で作成した プロジェクト を開く 注 ) 次の場合には, 開けないので, 前回の授業の手順を繰り返して, プロジェクトを作る z ドライブあるいは a ドライブに保存していなかったとき ( 九州大のパソコンの場合 )
24 #include "stdafx.h" #include <math.h> int _tmain(int argc, _TCHAR* argv[]) { double x; double y; char buf[256]; int i; double start_x; double step_x; 前回の授業の例題 1 FILE* fp; printf( "start_x =" ); と同じ fgets( buf, 256, stdin ); sscanf( buf, "%lf n", &start_x ); printf( "step_x =" ); fgets( buf, 256, stdin ); sscanf( buf, "%lf n", &step_x ); fp = fopen( "z: data.csv", "w" ); for( i = 0; i < 20; i++ ) { x = start_x + ( i * step_x ); y = ( 9.8 / 2.0 ) * x * x; printf( "x= %f, y= %f n", x, y ); fprintf( fp, "x=, %f, y=, %f n", x, y ); fprintf( stderr, "file z: data.csv created n" ); fclose( fp ); return 0;
25 1 #include "stdafx.h" #include <math.h> int _tmain(int argc, _TCHAR* argv[]) { double x; double y; char buf[256]; int i; double start_x; double step_x; FILE* fp; printf( "start_x =" ); fgets( buf, 256, stdin ); sscanf( buf, "%lf n", &start_x ); printf( "step_x =" ); fgets( buf, 256, stdin ); sscanf( buf, "%lf n", &step_x ); fp = fopen( "z: data.csv", "w" ); Visual Studio.NET のステップ実行で観察したステップ実行の順序 実際に確認しよう for( i = 0; i < 20; i++ ) { x = start_x + ( i * step_x ); y = ( 9.8 / 2.0 ) * x * x; printf( "x= %f, y= %f n", x, y ); fprintf( fp, "x=, %f, y=, %f n", x, y ); fprintf( stderr, "file z: data.csv created n" ); fclose( fp ); return 0; 20 回の繰り返し (i = 0, 1,... 19)
26 ビルド後の画面 ビルドの手順 : ビルド のビルド ビルドが正常終了しないときは, プログラム中の構文エラーを疑う ビルドが正常終了したことを示すメッセージ 1. 正常終了 を確認
27 実行を示すマーク 実行ウインドウが開く F10 キーを押すとステップ実行が始まる.( マウスカーソルは, Microsoft Visual Studio.NET 内に入れておく )
28 マークが進む 変数の値を観察できる さらに F10 キーを押すとステップ実行が続く
29 表示されたメッセージ printf( "start_x=" ); の実行が終わったので, メッセージが出る マークが進む 変数の値を観察できる さらに F10 キーを押すとステップ実行が続く
30 マークは消える ( 正常な動作 ) 入力待ち状態 ( fgets( buf, 256, stdin ); の実行が終わったので, 実行ウインドウにおけるキーボードからの入力待ち状態に入っている ) 変数の値を観察できる さらに F10 キーを押すとステップ実行が続く ( 今度は入力待ち状態 )
31 ここでは 0 Enter 実行ウインドウで, 0 Enter とすると, ステップ実行が再開する マークが現れる 読み込んだデータが変数 buf に入ったことが確認できる 実行ウインドウで 0 Enter とすると実行が続く (0 の部分は数値なら何でも良い )
32 実行手順 ( 通常実行の場合 ) Microsoft Visual Studio.NET で デバック 開始 すると, 新しいウインドウが開く 新しいウインドウが現れるので, start_x, step_x の値をキーボードから与える例えば start_x = 0 step_x = 0.1 ウインドウは消えるが,z: ドライブに data.csv ( データファイル ) が作成されるので,Excel 等で開き確認する
33 実行手順 ( ステップ実行の場合 ) Microsoft Visual Studio.NET で F10( ファンクションの 10) すると, 新しいウインドウが開く F10 は,Microsoft Visual Studio. NET のウインドウ内にマウスカーソルを入れた状態で押すこと F10 を押すたびに,1 ステップずつ実行が進む
34 補足説明 マークが, 最後の に来たときに, F10 を押すと
35 補足説明 画面が切り替わる ( これは正常な動作 ) この授業では関係無いので, F10 を押し続ける ( すると, 元の状態に復帰する )
36 例題 2. 平方根の計算 浮動小数データを読み込んで, 平方根の計算と表示を行うプログラムを作る. 但し, 負の数の場合には, メッセージを表示する 負の数であるかどうかによって条件分岐を行うため に if 文を使う. 例 ) 9のとき : 3-1のとき: メッセージを表示
37 #include "stdafx.h" #include <math.h> int _tmain(int argc, _TCHAR* argv[]) { double x; double y; char buf[256]; int ch; printf("x="); fgets( buf, 256, stdin ); sscanf( buf, "%lf n", &x ); if ( x < 0 ) { printf(" 負なので計算できません n"); else { y = sqrt(x); printf("sqrt(%f)=%f n", x, y); ch = getchar(); ch = getchar(); return 0; 条件式 条件が成り立つ場合に実行される部分条件が成り立たない場合に実行される部分
38 #include "stdafx.h" #include <math.h> int _tmain(int argc, _TCHAR* argv[]) { double x; double y; char buf[256]; int ch; printf("x="); fgets( buf, 256, stdin ); sscanf( buf, "%lf n", &x ); if ( x < 0 ) { printf(" 負なので計算できません n"); else { y = sqrt(x); printf("sqrt(%f)=%f n", x, y); ch = getchar(); ch = getchar(); return 0; 変数は 3 種類使っている 整数を扱う int 型 整数は, 5, -3, 0 など 文字を扱う char 型 文字は, 1, 0, 3, -, a など数字 (1, 0, 3 など ) も文字の一種 浮動小数を扱う double 型 3.14, , 5, 0, -3 など (5, 0, -3 などの整数も浮動小数の一種 ) 変数 x は double 型なので, sscanf では %lf を,printf では %f を, 使う決まりになっている
39 実行順 (x<0) の場合 1{ #include "stdafx.h" #include <math.h> int _tmain(int argc, _TCHAR* argv[]) double x; double y; char buf[256]; int ch; printf("x="); fgets( buf, 256, stdin ); sscanf( buf, "%lf n", &x ); if ( x < 0 ) { printf(" 負なので計算できません n"); else { y = sqrt(x); printf("sqrt(%f)=%f n", x, y); ch = getchar(); ch = getchar(); return 0;
40 実行順 (x 0) の場合 1{ #include "stdafx.h" #include <math.h> int _tmain(int argc, _TCHAR* argv[]) double x; double y; char buf[256]; int ch; printf("x="); fgets( buf, 256, stdin ); sscanf( buf, "%lf n", &x ); if ( x < 0 ) { printf(" 負なので計算できません n"); else { y = sqrt(x); printf("sqrt(%f)=%f n", x, y); ch = getchar(); ch = getchar(); return 0;
41 平方根の計算 マークが if ( x < 0 ) { に来たときに, F10 を押すと 変数 x の値
42 y = sqrt(x); の行にジャンプする 変数 x の値
43 条件分岐とは 条件式 Yes No B A ある条件式 が成り立てば A を 成り立たなければ B を実行
44 if 文と else 文 if ( 条件式 ) { 式 ; A...; else { 式 ;...; B 条件式 B No Yes A 条件式 が成り立てば A を 成り立たなければ B を実行
45 if 文 if ( 条件式 ) { 式 ; A...; 条件式 No Yes A if 文のみを書いて,else 文を書かないこともできる ある条件 が成り立つときに限り A を実行
46 比較演算 条件式の中には, ふつう, 比較演算を書く 演算子意味 < 左辺が右辺より小さい <= 左辺が右辺以下 > 左辺が右辺より大きい >= 左辺が右辺以上 == 左辺が右辺と等しい!= 左辺が右辺と等しくない
47 比較演算の例 左辺が右辺以上 の意味 if (age >= 20 ){ printf("you may drink alcoholic beverage. "); else{ printf("you may not drink alcoholic beverage.");
48 字下げとセミコロンを忘れないこと セミコロンを忘れると プログラムは動かない 字下げを忘れると プログラムは動くが, 読みづらい 字下げ 字下げ if ( 条件式 ) { 文 ;...; セミコロン if ( 条件式 ) { 文 ;...; else { 文 ;...; セミコロン
49 例題 3. 棒グラフでのステップ実行 整数から, その長さだけの棒を表示する関数 bar を作る 例 ) 5 ***** 関数 bar を使って, 整数を読み込んで, 読み込んだ長さの棒を表示するメイン関数を作る ステップ実行 ( F10 キー ) を行う 注意点今までのプロジェクトを使ってもよい. 新しいプロジェクトを作成してもよい
50 棒グラフ #include "stdafx.h" #include <math.h> void bar( int len ) { int i; for (i=0; i<len; i++) { printf("*"); printf(" n"); return; int _tmain(int argc, _TCHAR* argv[]) { int len; char buf[256]; int ch; printf( "len =" ); fgets( buf, 256, stdin ); sscanf( buf, "%d n", &len ); bar( len ); ch = getchar(); ch = getchar(); return 0;
51 棒グラフ #include "stdafx.h" #include <math.h> void bar( int len ) { int i; for (i=0; i<len; i++) { printf("*"); bar 関数 printf(" n"); return; int _tmain(int argc, _TCHAR* argv[]) { int len; char buf[256]; int ch; printf( "len =" ); fgets( buf, 256, stdin ); sscanf( buf, "%d n", &len ); bar( len ); ch = getchar(); ch = getchar(); return 0; 複数の関数を含むプログラム プログラム実行はメイン関数から始まる main 関数
52 #include "stdafx.h" #include <math.h> void bar( int len ) { int i; for (i=0; i<len; i++) { printf("*"); printf(" n"); return; int _tmain(int argc, _TCHAR* argv[]) { int len; char buf[256]; int ch; printf( "len =" ); fgets( buf, 256, stdin ); sscanf( buf, "%d n", &len ); bar( len ); ch = getchar(); ch = getchar(); return 0; 変数は 2 種類使っている 整数を扱う int 型 整数は, 5, -3, 0 など 文字を扱う char 型 文字は, 1, 0, 3, -, a など数字 (1, 0, 3 など ) も文字の一種 変数 len は int 型なので, sscanf では %d を使う決まりになっている
53 ビルド後の画面 ビルドの手順 : ビルド のビルド ビルドが正常終了しないときは, プログラム中の構文エラーを疑う ビルドが正常終了したことを示すメッセージ
54 ステップ実行 F10 キーを押すとステップ実行が始まる.( マウスカーソルは, Microsoft Visual Studio.NET 内に入れておく )
55 マークが進む 変数の値が変化する さらに F10 キーを押すとステップ実行が続く
56 さらに F10 キーを押すとステップ実行が続く
57 実行ウインドウで 5 Enter とすると実行が続く (5 の部分は整数なら何でも良い )
58 さらに F10 キーを押すとステップ実行が続く
59 さらに F10 キーを押すとステップ実行が続く
60 さらに F10 キーを押すとステップ実行が続く
61 実行ウインドウで Enter とすると実行が続く
62 さらに F10 キーを押すとステップ実行が続く
63 さらに F10 キーを押すとステップ実行が続く
64 さらに F10 キーを押すとステップ実行が続く
65 F10 キーを押し続けると元に戻る
66 例題 3(b). 棒グラフでのステップイン ステップ実行とステップインを行う ステップ実行 ( F10 キー ) ステップイン ( F11 キー ) 例題 2 のプログラムをそのまま使う
67 プログラム実行順 普通, プログラム中の文は, 上から下へ順 に実行される このことは,C 言語が 手続き型言語 と言われる理由の 1 つ 関数呼び出しでは, 関数の先頭に ジャンプ する. 関数呼び出しの例 bar( len ); 呼び出された関数の中で return 文に出会うと, 関数呼び出しの場所に戻る.
68 プログラムの流れ プログラムの実行開始 メイン関数 関数呼び出し bar( len ); #include "stdafx.h" #include <math.h> void bar( int len ) { int i; for (i=0; i<len; i++) { printf("*"); printf(" n"); return; int _tmain(int argc, _TCHAR* argv[]) { int len; int ch; printf( "len=" ); scanf( "%d", &len ); bar( len ); ch = getchar(); ch = getchar(); return 0; bar 関数 プログラムの実行終了 return; * printf, scanf の呼び出しについては図では省略
69 #include "stdafx.h" #include <math.h> void bar( int len ) { int i; for (i=0; i<len; i++) { printf("*"); 5 printf(" n"); 6 return; 戻り 4 int _tmain(int argc, _TCHAR* argv[]) { int len; int ch; 1 printf( "len=" ); 23 scanf( "%d", &len ); bar( len ); 関数呼び出し ch = getchar(); ch = getchar(); return 0; プログラム実行順 メイン関数の先頭行がプログラム実行の始まり メイン関数内の return がプログラム実行の終わり
70 ステップイン機能 マークが bar( len ); の行に来たときに F11 キーを押して, ステップイン機能を使う
71 ステップイン機能 マークが bar 関数の内部に移る ( 後は, F10 キーでステップ実行を続ける )
72 補足説明事項
73 ブレークポイント Microsoft Visual Studio.NET のブレークポイント機能を試す ブレークポイント
74 Microsoft Visual Studio.NET でのブレークポイント設定 ここをクリックして, ブレークポイントの設定 はブレークポイント設定済みの印 ブレークポイントでプログラム実行が中断するので, 実行結果の画面が消えずに残る
Microsoft PowerPoint - kougi2.ppt
C プログラミング演習 第 2 回 Microsoft Visual Studio.NET を使ってみよう 説明 例題 1. プログラム実行の体験 コンピュータを役に立つ道具として実感する 次ページのプログラムを使って, Microsoft Visual Studio.NETでの C++ ソースファイル編集, ビルド, テスト実行の一連の過程を体験する 例題 1 のプログラムの機能 計算の繰り返し
C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ
C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 次のステップによって 徐々に難易度の高いプログラムを作成する ( 参照用の番号は よくわかる C 言語 のページ番号 ) 1. キーボード入力された整数 10 個の中から最大のものを答える 2. 整数を要素とする配列 (p.57-59) に初期値を与えておき
情報処理演習 B8クラス
予定スケジュール ( 全 15 回 ) 1 1. 終了 プログラミング言語の基礎 2. 終了 演算と型 3. 終了 プログラムの流れの分岐 (if 文,switch 文など ) 4. 終了 プログラムの流れの繰返し (do, while, for 文など ) 5. 終了 中間レポート1 6. 終了 配列 7. 終了 関数 8. 終了 文字列 ( 文字列の配列, 文字列の操作 ) 9. 終了 ポインタ
cp-7. 配列
cp-7. 配列 (C プログラムの書き方を, パソコン演習で学ぶシリーズ ) https://www.kkaneko.jp/cc/adp/index.html 金子邦彦 1 本日の内容 例題 1. 月の日数配列とは. 配列の宣言. 配列の添え字. 例題 2. ベクトルの内積例題 3. 合計点と平均点例題 4. 棒グラフを描く配列と繰り返し計算の関係例題 5. 行列の和 2 次元配列 2 今日の到達目標
PowerPoint Presentation
ファイルの入出力 芝浦工業大学情報工学科 青木義満 今回の講義内容 ファイル入出力 ファイルからのデータ読込み ファイルと配列 2 1 ファイルへのデータ書き込み ( 復習 ) ソースファイル名 :fileio1.c データをファイルに書き込み #include int main(void) { ファイルポインタ宣言 int student_id = 100; char name[
ファイル入出力
C プログラミング Ⅱ の基礎 とは ファイルへデータを書き込んだり ( 出力 ), ファイルからデータを読み込んだり ( 入力 ) する C 言語では キーボードからの入力 画面への出力と同じようなコードで 処理を実現できる プログラム 入力 出力 ファイル 出力 入力 2 入出力の基本 ストリーム プログラム上で様々な装置への入出力を行う機構様々な入出力装置を統一的な方法で扱うことができる ハードディスクなどではファイルデータによって入出力が行われる
Taro-ファイル処理(公開版).jtd
ファイル処理 0. 目次 1. はじめに 2. ファイル内容の表示 3. ファイル内容の複写 3. 1 文字単位 3. 2 行単位 4. 書式付き入出力 5. 文字配列への入出力 6. 課題 6. 1 課題 1 ( ファイル圧縮 復元 ) - 1 - 1. はじめに ファイル処理プログラムの形は次のようになる #include main() { FILE *fp1,*fp2; ファイルポインタの宣言
<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>
C 言語講座第 2 回 作成 : ハルト 前回の復習基本的に main () の中カッコの中にプログラムを書く また 変数 ( int, float ) はC 言語では main() の中カッコの先頭で宣言する 1 画面へ出力 printf() 2 キーボードから入力 scanf() printf / scanf で整数を表示 / 入力 %d 小数を表示 / 入力 %f 3 整数を扱う int 型を使う
PowerPoint Presentation
プログラミング基礎 第 2 週 (4,5,6 回 ) 2011-10-07 出村公成 この資料の再配布を禁止します 予定 プログラミング入門 (45 分 ) 変数 入出力 分岐 演習 (90 分 ) タッチタイプ練習 統合開発環境 Codeblocksの使い方 教科書例題の打ち込みと実行 プログラミング入門 C 言語の簡単な例を体験 変数 入出力 分岐 プログラムの例リスト 2.1 改 #include
Microsoft PowerPoint - prog04.ppt
プログラミング言語 2 第 04 回 (2007 年 05 月 14 日 ) 今日の配布物 片面の用紙 1 枚 今日の課題が書かれています 本日の出欠を兼ねています 1 今日やること http://www.tnlab.ice.uec.ac.jp/~s-okubo/class/language/ にアクセスすると 教材があります 2007 年 05 月 14 日分と書いてある部分が 本日の教材です 本日の内容
PowerPoint プレゼンテーション
講座を行う前に 自己紹介 僕と上回生について 1 年生同士で少しお話しよう! オリエンテーションの宿題 アルゴロジック http://home.jeita.or.jp/is/highschool/algo/index3.html どこまでできましたか? あまりできなかった人はこれから全部クリアしよう! 2016 年度 C 言語講座 第一回目 2016/6/11 fumi 今回の目標 プログラムを書いて実行するやり方を覚える
PowerPoint Presentation
工学部 6 7 8 9 10 組 ( 奇数学籍番号 ) 担当 : 長谷川英之 情報処理演習 第 7 回 2010 年 11 月 18 日 1 今回のテーマ 1: ポインタ 変数に値を代入 = 記憶プログラムの記憶領域として使用されるものがメモリ ( パソコンの仕様書における 512 MB RAM などの記述はこのメモリの量 ) RAM は多数のコンデンサの集合体 : 電荷がたまっている (1)/ いない
C言語講座 ~ファイル入出力編~
C 言語講座 ~ ファイル入出力編 ~ ポインタ使います 例 2 練習問題 3 初めに プログラムを組む上での話と今回の演習について 例えばこの画面の場合 背景の動画の描写 ノーツを流れてくるようにする ボタンを押したら違反亭ライン近くのノーツは消えるようにする処理 曲の難易度ごとに判定を追加とか残りの処理 完成 演習 1 クリア 演習 2 クリア 過程は各自で考えてください 演習 3 クリア ファイルの出入力でこれからやること
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 文で表現する場合間違えやすい どっちに =
Cプログラミング1(再) 第2回
C プログラミング 1( 再 ) 第 2 回 講義では Cプログラミングの基本を学び演習では やや実践的なプログラミングを通して学ぶ 1 前回のレポートから 前回の宿題 数あてゲーム の説明において 次のように書いていたものがいた : これはコンピュータがランダムに設定した数字を人間が当てるゲームである この説明でどこかおかしなところはないだろうか? 2 コンピュータの用語と日常的な用語の違い 物理において
ガイダンス
情報科学 B 第 2 回変数 1 今日やること Java プログラムの書き方 変数とは何か? 2 Java プログラムの書き方 3 作業手順 Java 言語を用いてソースコードを記述する (Cpad エディタを使用 ) コンパイル (Cpad エディタを使用 ) 実行 (Cpad エディタを使用 ) エラーが出たらどうしたらよいか??? 4 書き方 これから作成する Hello.java 命令文 メソッドブロック
Microsoft Word - VB.doc
第 1 章 初めてのプログラミング 本章では カウントアップというボタンを押すと表示されている値が1ずつ増加し カウントダウンというボタンを押すと表示されている値が1ずつ減少する簡単な機能のプログラムを作り これを通して Visual Basic.NET によるプログラム開発の概要を学んでいきます 1.1 起動とプロジェクトの新規作成 Visual Studio.NET の起動とプロジェクトの新規作成の方法を
画像ファイルを扱う これまでに学んだ条件分岐, 繰り返し, 配列, ファイル入出力を使って, 画像を扱うプログラムにチャレンジしてみよう
第 14 回 応用 情報処理演習 ( テキスト : 第 10 章 ) 画像ファイルを扱う これまでに学んだ条件分岐, 繰り返し, 配列, ファイル入出力を使って, 画像を扱うプログラムにチャレンジしてみよう 特定色の画素の検出 ( テキスト 134 ページ ) 画像データが保存されているファイルを読み込んで, 特定色の画素の位置を検出するプログラムを作成しなさい 元画像生成画像 ( 結果の画像 )
PowerPoint プレゼンテーション
プログラミング応用演習 第 3 回構造体, ファイル入出力 先週の出席確認へのコメント 暗号を破りたいが 平文の候補が多すぎる 人間の目で確認する代わりに どんなプログラムがあればよいか? 辞書を挙げた人が多かった 正しい着眼です 何億個もの平文候補が想定されるので 形態素解析や品詞判別を挙げた人もいます 辞書に近い回答で悪くはないのですが 平文候補ごとにあまり高機能なものを呼び出すと時間がかかる
プログラミング基礎
C プログラミング Ⅰ 授業ガイダンス C 言語の概要プログラム作成 実行方法 授業内容について 授業目的 C 言語によるプログラミングの基礎を学ぶこと 学習内容 C 言語の基礎的な文法 入出力, 変数, 演算, 条件分岐, 繰り返し, 配列,( 関数 ) C 言語による簡単な計算処理プログラムの開発 到達目標 C 言語の基礎的な文法を理解する 簡単な計算処理プログラムを作成できるようにする 授業ガイダンス
C 言語の式と文 C 言語の文 ( 関数の呼び出し ) printf("hello, n"); 式 a a+4 a++ a = 7 関数名関数の引数セミコロン 3 < a "hello" printf("hello") 関数の引数は () で囲み, 中に式を書く. 文 ( 式文 ) は
C 言語復習 C 言語の基礎 来週もこの資料を持参してください C 言語, ソースファイルの作成, コンパイル, 実行 1 C 言語 C 言語プログラミングの手順 とは, 計算機を動かす手順を記述したもの. 計算機に命令を与えて動かすには を作成する ことになる. C 言語はプログラミング言語の 1 個 手続き型言語に分類される. C/C++ は非常に多くの場面で使われる言語 C++ は C 言語をオブジェクト指向に拡張したもの
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
2 / 26 平成 26 年 4 月 11 日 ( 金 ) 午後 1 時 9 分 Visual C Express の使用法 ( 東海大学理学部物理学科 ) 無償で利用できる開発環境 (Windows XP 以降 ) Visual Studio 2010 Express
1 / 26 平成 26 年 4 月 11 日 ( 金 ) 午後 1 時 9 分 Visual C++ 2010 Express の使用法 ( 安江正樹 @ 東海大学理学部物理学科 ) Visual C++ 2010 Express の使用法 コンソールプログラムの作成方法と実行 コンピュータ物理学演習 Ⅱ 東海大学理学部物理学科 安江正樹 [email protected]
Microsoft PowerPoint - CproNt02.ppt [互換モード]
第 2 章 C プログラムの書き方 CPro:02-01 概要 C プログラムの構成要素は関数 ( プログラム = 関数の集まり ) 関数は, ヘッダと本体からなる 使用する関数は, プログラムの先頭 ( 厳密には, 使用場所より前 ) で型宣言 ( プロトタイプ宣言 ) する 関数は仮引数を用いることができる ( なくてもよい ) 関数には戻り値がある ( なくてもよい void 型 ) コメント
Microsoft PowerPoint - lec10.ppt
今日の内容, とポインタの組み合わせ, 例題 1. 住所録例題 2. と関数とは. を扱う関数. 例題 3. のリスト とポインタの組み合わせ 今日の到達目標 自分で を定義する 自分で定義したについて, 配列やポインタを作成する データ型 基本データ型 char 文字 (1 文字 ) int 整数 double 浮動小数など その他のデータ型配列 データの並び ( 文字列も, 文字の並び ) ポインタ
Microsoft PowerPoint - program.ppt [互換モード]
プログラミング演習 バージョン 1 担当教員 : 綴木馴 プログラムの決まりについて学ぶ おすすめする参考書 ザ C 戸川隼人サイエンス社 本日の予定 1. 授業の説明. 2. コンパイラーのインストール. プログラムの決まりについて学ぶ,P31 /* The most in C */ /* hello.c */ printf("hello,world n"); プログラムの決まり ( コメント )
char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く
変数 入出力 演算子ここまでに C 言語プログラミングの様子を知ってもらうため printf 文 変数 scanf 文 if 文を使った簡単なプログラムを紹介した 今回は変数の詳細について習い それに併せて使い方が増える入出力処理の方法を習う また 演算子についての復習と供に新しい演算子を紹介する 変数の宣言プログラムでデータを取り扱う場合には対象となるデータを保存する必要がでてくる このデータを保存する場所のことを
kiso2-03.key
座席指定はありません Linux を起動して下さい 第3回 計算機基礎実習II 2018 のウェブページか ら 以下の課題に自力で取り組んで下さい 計算機基礎実習II 第2回の復習課題(rev02) 第3回の基本課題(base03) 第2回課題の回答例 ex02-2.c include int main { int l int v, s; /* 一辺の長さ */ /* 体積 v
Microsoft Word - Cプログラミング演習(10)
第 10 回 (6/25) 3. ファイルとその応用 (3) ファイルの更新 シーケンシャルファイルの更新 シーケンシャルファイルでは, 各レコードが可変長で連続して格納されており, その中の特定のレコードを変更することができない そこで一般的には, マスタファイルからデータを取り出し, 更新処理を行ったあとに新マスタファイルに書き込む 注 ) マスタファイル : 主ファイル, 基本ファイルと呼ばれるファイルで内容は比較的固定的であり,
3.Cygwin で日本語を使いたい Cygwin で以下のコマンドを実行すると それ以降 メッセージが日本語になります export LANG=ja_JP.UTF-8 これは 文字コードを日本語の UTF-8 に設定することを意味しています UTF-8 は Cygwin で標準の文字コードで, 多
Cygwin 使いこなしマニュアル 2011/10/17 1.Cygwin の起動 Cygwin のインストールが完了したら 一般ユーザーで Windows にログインし Cygwin を起動してみましょう 下の図は ユーザー名 densan でログインして Cygwin を起動した後 いくつかコマンドを実行してみたところです 2.Cygwin のファイルはどこにある? Windows から Cygwin
FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作り
FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作ります FORTRAN の場合 OPEN 文でファイルを開いた後 標準入力の場合と同様に READ 文でデータを読みこみます
memo
数理情報工学演習第一 C プログラミング演習 ( 第 5 回 ) 2015/05/11 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : プロトタイプ宣言 ヘッダーファイル, プログラムの分割 課題 : 疎行列 2 プロトタイプ宣言 3 C 言語では, 関数や変数は使用する前 ( ソースの上のほう ) に定義されている必要がある. double sub(int
第 1 章 : はじめに RogueWave Visualization for C++ の Views5.7 に付属している Views Studio を使い 簡単な GUI アプリケーションの開発手順を紹介します この文書では Windows 8 x64 上で Visual Studio2010
RW View Studio Getting Started (1) : 簡単な GUI アプリケーションを作成する 目次 第 1 章はじめに...1 1.1 アプリケーションの概要... 1 1.2 Views Studio とは... 2 第 2 章 Views Studio を起動する...3 2.1 起動画面 ( メインウィンドウ ) の説明... 4 2.2 ガジェットエクステンション...
JavaScriptで プログラミング
JavaScript でプログラミング JavaScript とは プログラミング言語の 1 つ Web ページ上でプログラムを動かすことが主目的 Web ブラウザで動かすことができる 動作部分の書き方が C や Java などに似ている 2 JavaScript プログラムを動かすには の範囲を 1. テキストエディタで入力 2..html というファイル名で保存
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 日分と書いてある部分が 本日の教材です 本日の内容
実習を行う上での心構えについて
Microsoft Visual C++ 2015 と OpenCV 2.4.13.2 を使用した 画像処理プログラミング 本資料では,Microsoft Visual C++ 2015 ( 以下, VC2015) と OpenCV 2.4.13.2 を用いたプログラムの作成方法について説明する. 本授業での使用方法であれば, ここで説明する内容は, 最初に1 回設定するだけでよく. ソリューションやプロジェクトを作り直さない限り,
Microsoft PowerPoint - 14th.ppt [互換モード]
工学部 6 7 8 9 10 組 ( 奇数学籍番号 ) 担当 : 長谷川英之 情報処理演習 第 14 回 2011 年 1 月 20 日 1 今日のテーマ ファイル入出力 ですが, キーボード入力などもおさらいします 2 標準入力 キーボードで入力 : 標準入力という例 )scanf( %d,&i) 前回までの講義でファイルからデータを読み込む場合に使用した関数 : fscanf 例 )fscanf(fin,
1. 新規プロジェクト作成の準備新規プロジェクトのためのフォルダを用意して そこにプロジェクトを作成します [ 新しいフォルダー ] をクリックして希望のフォルダに新しいフォルダを作成します この例では TrST_F401N_BlinkLD2 というフォルダを作成しました TrST_F401N_Bl
NUCLEO-F401RE の TrueSTUDIO プロジェクト構築方法 V001 2014/09/24 Atollic TrueSTUDIO for ARM Lite を使用して NUCLEO-F401RE のプロジェクトを新規に作成する方法について説明します また ビルドとデバッグについても説明しています 目次 1. 新規プロジェクト作成の準備... 2 2. 新規プロジェクトの作成... 3
Taro-Basicの基礎・はじめに(公
Basic の基礎 はじめに 0. 目次 1. はじめに 1. 1 ファイル フォルダとは 1. 2 Tiny Basic の起動と停止 1. 3 Tiny Basic の実行 1. 4 簡単なプログラム - 1 - 1. はじめに 1. 1 ファイル フォルダとは データの集まりをファイルといい 名前を付けて区別する フォルダ ( ディレクトリともいう ) という特別なファイルは ファイルが登録できるようになっている
Microsoft PowerPoint - VBA解説1.ppt [互換モード]
九州大学工学部地球環境工学科船舶海洋システム工学コース 計算工学演習第一 演習資料担当 : 木村 Excel 上のマクロを利用してプログラムを組む Visual Basic for Applications (VBA) のテクニック Excel のマクロとは? 一連の操作を自動的に行う機能 例 ) セル ( マス目 ) に数字を 1 から順番に埋めていく Excel のマクロでどんなプログラムが作れるのか?
プログラミング実習I
プログラミング実習 I 05 関数 (1) 人間システム工学科井村誠孝 [email protected] 関数とは p.162 数学的には入力に対して出力が決まるもの C 言語では入出力が定まったひとまとまりの処理 入力や出力はあるときもないときもある main() も関数の一種 何かの仕事をこなしてくれる魔法のブラックボックス 例 : printf() 関数中で行われている処理の詳細を使う側は知らないが,
スクールCOBOL2002
(h) 登録集原文の指定方法 . 登録集原文の指定方法 複数の COBOL プログラムに共通の記述を別のソースファイルとしておき COPY 文で取り込むことができます 登録集原文の概念図を下欄に示します このようにすると コーディング量を削減でき 記述ミスもなくなるため 開発効率を高めることができます ここでは 第 章で実習した reidai.cbl というソースファイルの DATA0 と YYMMDD
今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること
C プログラミング演習 1( 再 ) 4 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順
ゲームプログラミング講習 第0章 導入
ゲームプログラミング講習 第 0 章 導入 ゲーム制作に必要なものをインストールします ゲームプログラミング講習第 0 章導入 1 ゲーム制作に必要なもの Microsoft Visual Studio DXライブラリ プロジェクトテンプレート C 言語の知識 ゲームプログラミング講習第 0 章導入 2 Microsoft Visual Studio とは C 言語でプログラミングして Windows
/*Source.cpp*/ #include<stdio.h> //printf はここでインクルードして初めて使えるようになる // ここで関数 average を定義 3 つの整数の平均値を返す double 型の関数です double average(int a,int b,int c){
ソフトゼミ A 第 6 回 関数 プログラムは関数の組み合わせでできています 今までのゼミAでも printf や scanf など様々な関数を使ってきましたが なんと関数は自分で作ることもできるのです!! 今日は自作関数を中心に扱っていきます ゲーム制作でも自作関数は避けては通れないので頑張りましょう そもそもまず 関数とは 基本的には 受け取った値に関数によって定められた操作をして その結果の値を返す
