投稿

2022の投稿を表示しています

三角関数のグラフ <C言語>

イメージ
C言語には三角関数を計算する関数が用意されています。 したがって、y = sinxの正弦曲線を簡単に書くことができます。 <書式> #include <math.h> double sin(double x) 0度から360度までを20度刻みで sin関数の引数に渡しています。 ただし、渡す値は度数ではなくラジアンです。 度数×円周率÷180 の計算式で、度数をラジアンに変換しています。 円周率はヘッダファイル(math.h)にM_PIとして定義されていることが多いです。 定義されていない場合はマクロで定義してください。     17          for (int i = 0; i <= 360; i = i+DEG){     18                  radian = i*M_PI/180;     19                  tmp = sin(radian);     20     21                  y = (int) (tmp*10);     22     23                  locate(x, 10-y);     24                  printf("%s", "+");     25     26                  x = x+2;   ...

行番号をつけてファイル出力 <C言語>

イメージ
fopne()でファイルをオープンします。 fnameが示すファイルを指定したモードでオープンします。 モードは、"r"でread、"w"でwrite、"a"でappend、"w+" と ”r+”でupdateです。 戻り値はFILE構造体のポインタを返します。オープンに失敗するとNULLを返します。 <書式> #include<stdio.h> FILE * fopen(char * fname, const char * mode)     11:         FILE * fp = NULL;     12:         fp = fopen(argv[1],"r");     13:         if (fp == NULL){     14:                 fprintf(stderr,"Can't opne File\n");     15:                 return 1;     16:         } fgets()でfpが示すファイルストリームから改行、またはbsize - 1までの1行分の文字列をbuffが示す領域に読み込みます。 戻り値はbuffのポインタを返します。読み込みに失敗したりEOFを検出するとNULLを返します。 <書式> #include<stdio.h> char * fgets(char * buff, int bsize, FILE * fp)     21:         while((fgets(buff,bsize,fp)) != NULL){    ...

乱数の生成 <C言語>

イメージ
time()でtime_t型の整数値を取得します。 <書式> #include<time.h>               time_t time(time_t *timer); time_t timer; time(&timer); time_t型の整数値を符号なし整数型にキャストして乱数系列を初期化するseed値とします。 unsigned int seed; seed = (unsigned int) timer; srand()で乱数系列を初期化します。 <書式> #include <stdlib .h>                void srand (unsigned int seed); srand(seed); rand()で0からRAND_MAXの範囲内の擬似乱数を生成します。 <書式> #include <stdlib .h> int rand (void); printf("%d\n", rand()); サンプルコード #include<stdio.h> #include<stdlib.h> #include<time.h> int main(void){         time_t timer;         time(&timer);         unsigned int seed;         seed = (unsigned int) timer;         srand(seed);         int i;         printf("0~%dまでの乱数\n", RAND_MAX);         for(i ...