もう繰り返しの使い方はマスターできましたか?単純な繰り返しや二重になった繰り返しなど,自由自在に扱えるようにしましょう.ポイントは,初期値と終了条件です.では,グラフィックの解答です.
【演習】
for文を用いて,同心円を描く.
#include <stdio.h> #include "mogra.f" void main() { int r; g_init(640,480); for(r=1; r=<10; r++){ circle(320, 240, r*5, r); } gend(); }
【演習】
Y = A sin(X)のグラフを表示してみよう.
#include <stdio.h> #include <math.h> #include "mogra.f" void main() { int x, y; g_int(640,480); for(x=0; x<640; x++){ y = 240 - 100 * sin(3.1415*x/320); pset(x, y, 0); } gend(); }
まず,C言語の変数の型の復習をしよう
符号つき | 符号なし | ||
char | 8ビット | -128-+127 | 0-255 |
short | 16ビット | -32768-+32767 | 0-65535 |
long | 32ビット | -2147483648-+2147483647 | |
float | 32ビット | ||
double | 64ビット |
char型の変数は,1文字(1バイト=8ビット)を表す
例:
#include <stdio.h> void main() { char c; c = 'A'; printf("文字は%cです\n",c); printf("コードは%xです\n",c); }
参考:書式指定子
%d | 10進数 |
%o | 8進数 |
%x | 16進数 |
%f | 浮動小数点 |
%c | 1文字 |
%s | 文字列 |
コンピュータ内部では,全て二進数→文字はどうやって表現するの? 文字コード
1バイト分(256文字)で英数字,記号をあらわす.
日本語は→2バイト文字
文字列を表現するにはどうしたらよいか→配列を使う.
例:
#include <stdio.h> void main() { char c[5]="ABC0"; int i; for(i=0; i<5; i++){ printf("%d文字目は%cです.コードは0x%xです.\n",i+1,c[i],c[i]); } printf("与えられた文字列は%sです\n",c); }
#include <stdio.h> void main() { char c[256]; printf("文字を入力してください:"); scanf("%s",c); printf("入力された文字列は%sです\n",c); }
文字配列を扱うには,文字列を構成する文字のほかにもうひとつ文字コード"0x00"(ヌル文字)が必要となります.
配列は,実際に必要とする文字数よりも,余分に1文字分用意する必要があります.足りないと致命的なエラーとなります.ハッキングなどに良く使われる手口です.
文字 'A' 1バイトの文字
文字列 "ABC" 2バイト以上の文字,最後に必ず\0がつきます.日本語の文字も必ず文字列になる
コンピュータ内では,文字は全て数字として扱われます.では,
a = 'd'; a++; printf("%c",a); とすると,どうなるでしょう.
1. キーボードから入力された文字数を数えるプログラムを作成しよう.
2. 入力された小文字を,大文字に変換するプログラムを作成しよう.
問題2を先にやってみてください。2では、文字で演算をします。
Oh-o! Meijiのレポートから(第9,10回)のところへ,演習で作成したプログラムを送る.プログラムには必ず,学年,組,番号,氏名,メールアドレスを記入すること.