基本骨格 #include <ヘッダ1> #include <ヘッダ2> : int main(void) { 変数の宣言 実行すること return 0; } #include <stdio.h> int main(void) { int i; printf(”Hello world!\n”);

Slides:



Advertisements
Similar presentations
プログラミング論 第八回数字の計算,整数の入出力. 本日の内容 前回の課題(続き) 前回の課題(続き) 数字の計算をする 数字の計算をする – 加減乗除を行う – インクリメント演算子とデクリメン ト演算子.
Advertisements

2.5 プログラムの構成要素 (1)文字セット ① ASCII ( American Standard Code for Interchange ) JIS コードと同じ ② EBCDIC ( Extended Binary Coded Decimal for Information Code ) 1.
オブジェクト指向言語・ オブジェクト指向言語演習 中間試験回答例. Jan. 12, 2005 情報処理技術基礎演習 II 2 オブジェクト指向言語 中間試験解説 1  (1) 円柱の体積(円柱の体積 = 底面の円の面積 x 高さ) を求めるプログラムを作成しなさい。ただし、出力結果は、入 力した底面の円の半径.
コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル
コンピュータープログラミング(C言語)(3) 1.関数と分割コンパイル (復習) 2.キーボード入力
コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
C言語 第2講 生物機能制御学講座 濱田 農学部7号館209室.
第2回ネットワークプログラミング 中村 修.
基礎プログラミング (第五回) 担当者: 伊藤誠 (量子多体物理研究室) 内容: 1. 先週のおさらいと続き (実習)
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
精密工学科プログラミング基礎 第9回資料 (12/11 実施)
コンピュータープログラミング (C言語)(11) 1.ファイル入出力(復習) 2.物理現象とプログラミング
第7回 条件による繰り返し.
情報基礎及び演習 プログラミング基礎① 電気・佐藤亮一.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
プログラミング演習 バージョン1 担当教員:綴木 馴.
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
プログラムの制御構造 選択・繰り返し.
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
Cプログラミング演習.
アルゴリズムとプログラミング (Algorithms and Programming)
プログラムはどこに保存され,どこで実行されるのか?
プログラミング演習I 2003年5月7日(第4回) 木村巌.
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
04: 式・条件分岐 (if) C プログラミング入門 基幹7 (水5) Linux にログインし、以下の講義ページ を開いておくこと
第7回 条件による繰り返し.
コンピュータープログラミング(C言語)(4) 1.キーボード入力(復習) 2.条件分岐(if文)
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
プログラムはどこに保存され,どこで実行されるのか?
コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
精密工学科プログラミング基礎Ⅱ 第4回資料 今回の授業で習得してほしいこと: 文字列の扱い ファイル入出力の方法 コマンドライン引数の使い方
整数データと浮動小数データ.
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
疑似乱数, モンテカルロ法によるシミュレーション
C言語 はじめに 2016年 吉田研究室.
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
C言語ファミリー C# 高級言語(抽象的) Java オブジェクト指向 C++ C 機械語(原始的)
地域情報学 C言語プログラミング 第1回 導入、標準出力、変数 2017年10月13日
地域情報学 C言語プログラミング 第2回 変数・配列、型変換、入力 2017年10月20日
IF文 START もしも宝くじが当たったら 就職活動する 就職活動しない YES END NO.
x y 復習 変数とその種類 変数とは何か? →データ(数値)を入れておく箱 変数名 変数名とは何か?
復習 breakとcontinueの違い int i; for (i = 1; i <= 100; i++) { ・・・処理1・・・・
復習 Cにおけるループからの脱出と制御 break ループを強制終了する.if文と組み合わせて利用するのが一般的. continue
情報処理Ⅱ 第2回 2005年10月14日(金).
情報処理Ⅱ 第2回 2006年10月13日(金).
復習 breakとcontinueの違い int i; for (i = 1; i <= 100; i++) { ・・・処理1・・・・
前回の復習.
cp-3. 計算 (C プログラミング演習,Visual Studio 2019 対応)
コンパイラ 2012年10月11日
プログラミング 4 文字列.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
情報処理Ⅱ 第2回 2004年10月12日(火).
モバイルプログラミング第2回 C言語の基礎 (1).
第3回簡単なデータの入出力.
四則演算,変数 入力文,出力文,代入文, ライブラリ関数
コンピュータープログラミング (C言語)(10) 1.ファイル入出力
printf・scanf・変数・四則演算
知能情報工学演習I 第9回(後半第3回) 課題の回答
復習 いろいろな変数型(2) char 1バイト → 英数字1文字を入れるのにぴったり アスキーコード → 付録 int
C言語講座 四則演算  if ,  switch 制御文.
分岐(If-Else, Else if, Switch) ループ(While, For, Do-while)
第1章 文字の表示と計算 printfと演算子をやります 第1章 文字の表示と計算.
第1章 文字の表示と計算 printfと演算子をやります.
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
Presentation transcript:

基本骨格 #include <ヘッダ1> #include <ヘッダ2> : int main(void) { 変数の宣言 実行すること return 0; } #include <stdio.h> int main(void) { int i; printf(”Hello world!\n”); return 0; }

変数の宣言 #include <ヘッダ> int main(void) { 変数の宣言1 変数の宣言2 : return 0; } #include <stdio.h> int main(void) { int i; float x; return 0; }

変数の型と表記 型 扱える範囲(gcc-cygwin) printf 中の表記 文字型 char -127 〜 128 (文字) -127 〜 128 (文字) %c(文字), %d(値) 整数型  int 2147483648 〜 2147483647 %d 倍長整数型  long - 9223372036854775808  〜 9223372036854775807 %ld 単精度浮動小数点型  float 有効数字6桁の実数 3.4E-38 〜 3.4E+38 %f 倍精度浮動小数点型  double 有効数字15桁の実数 1.7E-308 〜 1.7E+308 変数の名付け規則: 先頭文字は英字(a-z, A-Z)または下線( _ ) 2文字目以降は英字,下線,数字 大文字と小文字は区別 先頭から31文字までが有効,予約語(do, for, …)などは不可

変数宣言と初期値代入 #include <ヘッダ> int main(void) { 変数の宣言、初期値代入1 変数の宣言、初期値代入2 return 0; } #include <stdio.h> int main(void) { int i=0; float x=1.3E3; return 0; }

変数宣言と後から代入 #include <ヘッダ> int main(void) { 変数の宣言1 変数の宣言2 変数の代入1 変数の代入2 return 0; } #include <stdio.h> int main(void) { int i; float x; i=0; x=1.3E3; return 0; }

画面に「数値」出力 #include <stdio.h> int main(void) { 変数の宣言と初期値代入 画面への出力命令 return 0; } #include <stdio.h> int main(void) { int i=3; printf(”%d\n”,i); return 0; }

画面に「文章」出力 #include <stdio.h> int main(void) { 画面への出力命令 return 0; } #include <stdio.h> int main(void) { printf(”Hello world!\n”); return 0; }

変数に記憶した「文章」を画面出力 #include <stdio.h> int main(void) { 文字列用変数の宣言と代入 画面への出力命令 return 0; } #include <stdio.h> int main(void) { char s[]=“Hello world!\n”; printf(”%s”,s); return 0; }

キーボードから「数値」入力 #include <stdio.h> int main(void) { 変数の宣言 キーボードからの入力命令 return 0; } #include <stdio.h> int main(void) { int a; scanf(”%d”,&a); return 0; }

キーボードから「一文字」入力 #include <stdio.h> int main(void) { 変数の宣言 キーボードからの入力命令 return 0; } #include <stdio.h> int main(void) { char a; scanf(”%c”,&a); return 0; }

キーボードから「文章」入力 #include <stdio.h> int main(void) { 変数の宣言 キーボードからの入力命令 return 0; } #include <stdio.h> int main(void) { char a[20]; scanf(”%s”,a); return 0; }

入出力の方法 printf(), scanf() 変換指定文字 意味 使われるデータ型 %c 1文字として出力 文字型 %d (%ld) 10進数で出力 (long型のデータの場合) 整数型 %x 16進数で出力 %o 8進数で出力 %f (%lf) [-]dddd.dddddの形式で出力 (double型のデータの場合) 浮動小数点型 %e 指数形式で出力 %s 文字列として出力

出力幅の指定 (例) int a=123; の場合 (例) float x=123.4567890; の場合 プログラム 実行結果 printf(“%d\n”,a); 123 (指定のない場合) printf(“%5d\n”,a); ..123 スペースを含めて5文字 printf(“%10d\n”,a); …….123 スペースを含めて10文字 (例) float x=123.4567890; の場合 プログラム 実行結果 printf(“%f\n”,x); 123.456787 (指定のない場合) printf(“%12f\n”,x); ..123.456787 小数点を含めて12桁,    小数点以下は標準の桁数 printf(“%9.2f\n”,x); …123.46 小数点を含めて9桁,小数点以下2桁

算術関数の使用 #include <math.h> int main(void) { 変数の宣言 算術関数の使用1 算術関数の使用2 return 0; } #include <math.h> int main(void) { float a,b,c=0.7854; a=sin(0.7854); b=sin(c); return 0; } コンパイル時に 「-lm」をつける $ cc –lm ex-1.c

「#include <math.h>」とコンパイル時「-lm」必要 算術演算子,算術関数 意味 数学記号 C言語での書き方 加算 + 減算 - 乗算 × * 除算 ÷ / あまり … % 分類 「#include <math.h>」とコンパイル時「-lm」必要 三角関数、逆三角関数 sin(x) cos(x) tan(x) asin(x) acos(x) atan(x) atan2(x,y) 指数関数、対数関数 sqrt(x) exp(x) log(x) log10(x) ベキ乗: pow(x,y) その他 切り上げ: ceil(x) 切り捨て: floor(x) 絶対値: fabs(x) …

乱数(古い) #include <stdlib.h> #include <time.h> int main(void) { int a,b; 乱数系列の初期化 乱数の使用1(0~最大) 最大: RND_MAX=2147483647 乱数の使用2(0~9) return 0; } #include <stdlib.h> #include <time.h> int main(void) { int a,b; srand((unsigned int)time(NULL)); a=rand(); b=rand()%10; return 0; }

乱数(新しい) #include <stdlib.h> #include <time.h> int main(void) { int a,b; 乱数系列の初期化 乱数の使用1(0~最大) 最大: RND_MAX=2147483647 乱数の使用2(0~9) return 0; } #include <stdlib.h> #include <time.h> int main(void) { long a,b; srandom((unsigned long)time(NULL)); a=random(); b=random()%10; return 0; }

条件分岐(2重) #include <ヘッダ> int main(void) { 条件式用の変数宣言 if(条件式){ 条件が成り立つとき実行 } else{ 条件が成り立たないとき実行 return 0; #include <stdio.h> int main(void) { int i; if(i==0){ printf(”iは0です。\n”); } else{ printf(”iは0以外です。\n”); return 0;

関係演算子 数学記号 C言語 = == > < ≧ >= ≦ <= ≠ != 条件式の書き方 意味 数学記号 C言語 等しい = == より大きい > より小さい < 等しいか, ≧ >= ≦ <= 等しくない ≠ != 条件式の書き方 (Ex.1) a+b = c  a+b == c (Ex.2) a+b ≧c  a+b >= c

論理演算 A, B のそれぞれを条件式として 意味 名前 C言語での表現 A && B A || B !A 論理積 AND A && B A, Bのどちらかが成立すれば  真 論理和 OR A || B Aが成立しなければれば 真 否定 NOT !A (Ex.1) “x+y = c” と “z > 0” の両方が成立すれば真      x+y == c && z > 0 (Ex.2) “0 < x < 100 ”   0 < x && x < 100 (Ex.3) “x = y = 1”   x == 1 && y == 1 (注) || よりも && の方が優先順位は高い. 同じ順位の間では左から順   に評価される.また,( ) でくくってあればその中が先に評価される.

条件分岐(多重、数値) #include <ヘッダ> int main(void) { 条件式用の変数宣言 switch(i){ case 0: i=0の時実行すること ブレーク文(以後実行せず) case 1: i=1の時実行すること ブレーク文 case 2: i=2の時実行すること default: 上に当てはまらないとき } return 0; #include <stdio.h> int main(void) { int i; switch(i){ case 0: printf(”iは0です。\n”); break; case 1: printf(”iは1です。\n”); case 2: printf(”iは2です。\n”); default: printf(”0,1,2以外です。\n”); } return 0;

条件分岐(多重、文字) #include <ヘッダ> int main(void) { 条件式用の変数宣言 switch(i){ case ’a’: i=aの時実行すること ブレーク文(以後実行せず) case ’b’: i=bの時実行すること ブレーク文 case ’c’: i=cの時実行すること default: 上に当てはまらないとき } return 0; #include <stdio.h> int main(void) { char i; switch(i){ case ’a’: printf(”iはaです。\n”); break; case ’b’: printf(”iはbです。\n”); case ’c’: printf(”iはcです。\n”); default: printf(”a,b,c以外です。\n”); } return 0;

繰り返し(for文) #include <ヘッダ> int main(void) { 繰り返し用変数の宣言 for(初期値; 条件式; ループ後処理){ 繰り返し処理 } return 0; #include <stdio.h> int main(void) { int i; for(i=0; i<10; i++){ printf(“Hello world! No. %d\n”,i); } return 0;

繰り返し(while文) #include <ヘッダ> int main(void) { 繰り返し用変数の宣言と初期化 while(条件式){ 繰り返し処理1 繰り返し処理2 } return 0; #include <stdio.h> int main(void) { int i=0; while(i<10){ printf(“Hello world! No. %d\n”,i); i++; } return 0;

繰り返し(do, while文) #include <ヘッダ> int main(void) { 繰り返し用変数の宣言と初期化 do{ 繰り返し処理1 繰り返し処理2 }while(条件式); return 0; } #include <stdio.h> int main(void) { int i=0; do{ printf(“Hello world! No. %d\n”,i); i++; }while(i<10); return 0; }

C言語独特の表現 #include <ヘッダ> int main(void) { 変数の宣言 変数に値代入 値を計算して変数に代入し直し 値を1増やす 値を1減らす 値を一定値増やす; return 0; } #include <stdio.h> int main(void) { int i; i=1; i=i+1; i++; i--; i+=2; return 0; }

独自関数の定義と使用 #include <ヘッダ> 独自関数使用宣言 int main(void) { 変数の宣言 独自関数の使用 return 0; } 独自関数の定義 独自関数で実行する内容 結果を返す #include <stdio.h> int f(int i); int main(void) { int i=0,j; j=f(i); return 0; } int f(int i) int j; j=i*3; return j;

ファイルに出力 #include <stdio.h> #include <stdlib.h> int main(void) { ファイル用変数(ファイルポインタ)の 宣言 ファイルをオープン ファイルへの書き込み ファイルをクローズ return 0; } #include <stdio.h> #include <stdlib.h> int main(void) { FILE *f; if((f = fopen(”test.txt”,”w”))==NULL){ printf(”オープン失敗\n”); exit(1); } fprintf(f, ”Hello world!\n”); fclose(f); return 0;

ファイルから入力 #include <stdio.h> #include <stdlib.h> int main(void) { ファイル用変数(ファイルポインタ)の 宣言 ファイルをオープン ファイルから読み込み ファイルをクローズ return 0; } #include <stdio.h> #include <stdlib.h> int main(void) { FILE *f; int i; if((f = fopen(”test.txt”,”r”))==NULL){ printf(”オープン失敗\n”); exit(1); } fscanf(f, ”%d”,&i); fclose(f); return 0;

数列の和とループ計算 数列の和⇒繰り返し(for文)で計算 項を数える変数「i」の宣言 最終項の変数宣言と設定 「和」用変数の宣言と初期値設定 変数iを実数として扱うための変数宣言 ループ計算 整数変数を実数変数(float)に変換 項の加算 #include <stdio.h> int main(void) { int i; int n=10; float s=0; float a; for(i=1; i<=n; i++){ a=(float)i; s=s+a; } return 0;