みなためラボ

【C言語】三角関数の表を作成するプログラム

文字サイズ

はじめに

どうも! みなため(@MinatameT)です。

この記事では、C言語で三角関数の表を作る方法を説明します。

対応する角度は、0°から360°までで、1°刻みで表していきます。

それでは、さっそくコードを見ていきましょう。

三角関数の表を作成するプログラム

ソースコード

#include<stdio.h>
#include<math.h>

int main(void)
{
  int deg; //角度(度数法)
  double s,c,t; //sin、cos、tan
  double p; //π(円周率)の値÷180

  p = 3.1415926536/(double)180;

  printf(" 角       sin      cos      tan \n");
  printf("--------------------------------\n");
  for(deg=0; deg<=360; deg=deg+1) //0°から360°まで1°刻みで繰り返す。
  {
    //deg*pで弧度法表記に変換。
    s = sin(deg*p); //sinの計算
    c = cos(deg*p); //cosの計算
    t = tan(deg*p); //tanの計算
    if(deg==90 || deg==270) //角度が90°、270°なら
    {
      printf("%3d°%9.4f%9.4f    なし\n",deg,s,c); //tan以外の結果表示
    }
    else //角度が90°、270°以外なら
    {
      printf("%3d°%9.4f%9.4f%9.4f\n",deg,s,c,t); //すべての結果表示
    }
  }
	
  return(0);
}

三角関数の計算のための関数を使うには、次のコードが必要です。

#include<math.h>

三角関数の計算のための関数は、それぞれ次のように記述します。

sin(x);
con(x);
tan(x);

上から順番にsin、cos、tanの計算をしていますが、xには弧度法での角度を入れる必要があります。度数法では正しく計算できないので、注意してください。

度数法を弧度法に変換するには、次のように計算します。

double p;
p = 3.1415926536/(double)180;
sin(30*p); //sin30°
cos(45*p); //cos45°
tan(60*p); //tan60°

それでは、実行結果を確認していきます。

実行結果

 角       sin      cos      tan
--------------------------------
  0°   0.0000   1.0000   0.0000
  1°   0.0175   0.9998   0.0175
  2°   0.0349   0.9994   0.0349
  3°   0.0523   0.9986   0.0524
  4°   0.0698   0.9976   0.0699
  5°   0.0872   0.9962   0.0875
  6°   0.1045   0.9945   0.1051
  7°   0.1219   0.9925   0.1228
  8°   0.1392   0.9903   0.1405
  9°   0.1564   0.9877   0.1584
 10°   0.1736   0.9848   0.1763
 11°   0.1908   0.9816   0.1944
 12°   0.2079   0.9781   0.2126
 13°   0.2250   0.9744   0.2309
 14°   0.2419   0.9703   0.2493
 15°   0.2588   0.9659   0.2679
 16°   0.2756   0.9613   0.2867
 17°   0.2924   0.9563   0.3057
 18°   0.3090   0.9511   0.3249
 19°   0.3256   0.9455   0.3443
 20°   0.3420   0.9397   0.3640
 21°   0.3584   0.9336   0.3839
 22°   0.3746   0.9272   0.4040
 23°   0.3907   0.9205   0.4245
 24°   0.4067   0.9135   0.4452
 25°   0.4226   0.9063   0.4663
 26°   0.4384   0.8988   0.4877
 27°   0.4540   0.8910   0.5095
 28°   0.4695   0.8829   0.5317
 29°   0.4848   0.8746   0.5543
 30°   0.5000   0.8660   0.5774
 31°   0.5150   0.8572   0.6009
 32°   0.5299   0.8480   0.6249
 33°   0.5446   0.8387   0.6494
 34°   0.5592   0.8290   0.6745
 35°   0.5736   0.8192   0.7002
 36°   0.5878   0.8090   0.7265
 37°   0.6018   0.7986   0.7536
 38°   0.6157   0.7880   0.7813
 39°   0.6293   0.7771   0.8098
 40°   0.6428   0.7660   0.8391
 41°   0.6561   0.7547   0.8693
 42°   0.6691   0.7431   0.9004
 43°   0.6820   0.7314   0.9325
 44°   0.6947   0.7193   0.9657
 45°   0.7071   0.7071   1.0000
 46°   0.7193   0.6947   1.0355
 47°   0.7314   0.6820   1.0724
 48°   0.7431   0.6691   1.1106
 49°   0.7547   0.6561   1.1504
 50°   0.7660   0.6428   1.1918
 51°   0.7771   0.6293   1.2349
 52°   0.7880   0.6157   1.2799
 53°   0.7986   0.6018   1.3270
 54°   0.8090   0.5878   1.3764
 55°   0.8192   0.5736   1.4281
 56°   0.8290   0.5592   1.4826
 57°   0.8387   0.5446   1.5399
 58°   0.8480   0.5299   1.6003
 59°   0.8572   0.5150   1.6643
 60°   0.8660   0.5000   1.7321
 61°   0.8746   0.4848   1.8040
 62°   0.8829   0.4695   1.8807
 63°   0.8910   0.4540   1.9626
 64°   0.8988   0.4384   2.0503
 65°   0.9063   0.4226   2.1445
 66°   0.9135   0.4067   2.2460
 67°   0.9205   0.3907   2.3559
 68°   0.9272   0.3746   2.4751
 69°   0.9336   0.3584   2.6051
 70°   0.9397   0.3420   2.7475
 71°   0.9455   0.3256   2.9042
 72°   0.9511   0.3090   3.0777
 73°   0.9563   0.2924   3.2709
 74°   0.9613   0.2756   3.4874
 75°   0.9659   0.2588   3.7321
 76°   0.9703   0.2419   4.0108
 77°   0.9744   0.2250   4.3315
 78°   0.9781   0.2079   4.7046
 79°   0.9816   0.1908   5.1446
 80°   0.9848   0.1736   5.6713
 81°   0.9877   0.1564   6.3138
 82°   0.9903   0.1392   7.1154
 83°   0.9925   0.1219   8.1443
 84°   0.9945   0.1045   9.5144
 85°   0.9962   0.0872  11.4301
 86°   0.9976   0.0698  14.3007
 87°   0.9986   0.0523  19.0811
 88°   0.9994   0.0349  28.6363
 89°   0.9998   0.0175  57.2900
 90°   1.0000  -0.0000    なし
 91°   0.9998  -0.0175 -57.2900
 92°   0.9994  -0.0349 -28.6363
 93°   0.9986  -0.0523 -19.0811
 94°   0.9976  -0.0698 -14.3007
 95°   0.9962  -0.0872 -11.4301
 96°   0.9945  -0.1045  -9.5144
 97°   0.9925  -0.1219  -8.1443
 98°   0.9903  -0.1392  -7.1154
 99°   0.9877  -0.1564  -6.3138
100°   0.9848  -0.1736  -5.6713
101°   0.9816  -0.1908  -5.1446
102°   0.9781  -0.2079  -4.7046
103°   0.9744  -0.2250  -4.3315
104°   0.9703  -0.2419  -4.0108
105°   0.9659  -0.2588  -3.7321
106°   0.9613  -0.2756  -3.4874
107°   0.9563  -0.2924  -3.2709
108°   0.9511  -0.3090  -3.0777
109°   0.9455  -0.3256  -2.9042
110°   0.9397  -0.3420  -2.7475
111°   0.9336  -0.3584  -2.6051
112°   0.9272  -0.3746  -2.4751
113°   0.9205  -0.3907  -2.3559
114°   0.9135  -0.4067  -2.2460
115°   0.9063  -0.4226  -2.1445
116°   0.8988  -0.4384  -2.0503
117°   0.8910  -0.4540  -1.9626
118°   0.8829  -0.4695  -1.8807
119°   0.8746  -0.4848  -1.8040
120°   0.8660  -0.5000  -1.7321
121°   0.8572  -0.5150  -1.6643
122°   0.8480  -0.5299  -1.6003
123°   0.8387  -0.5446  -1.5399
124°   0.8290  -0.5592  -1.4826
125°   0.8192  -0.5736  -1.4281
126°   0.8090  -0.5878  -1.3764
127°   0.7986  -0.6018  -1.3270
128°   0.7880  -0.6157  -1.2799
129°   0.7771  -0.6293  -1.2349
130°   0.7660  -0.6428  -1.1918
131°   0.7547  -0.6561  -1.1504
132°   0.7431  -0.6691  -1.1106
133°   0.7314  -0.6820  -1.0724
134°   0.7193  -0.6947  -1.0355
135°   0.7071  -0.7071  -1.0000
136°   0.6947  -0.7193  -0.9657
137°   0.6820  -0.7314  -0.9325
138°   0.6691  -0.7431  -0.9004
139°   0.6561  -0.7547  -0.8693
140°   0.6428  -0.7660  -0.8391
141°   0.6293  -0.7771  -0.8098
142°   0.6157  -0.7880  -0.7813
143°   0.6018  -0.7986  -0.7536
144°   0.5878  -0.8090  -0.7265
145°   0.5736  -0.8192  -0.7002
146°   0.5592  -0.8290  -0.6745
147°   0.5446  -0.8387  -0.6494
148°   0.5299  -0.8480  -0.6249
149°   0.5150  -0.8572  -0.6009
150°   0.5000  -0.8660  -0.5774
151°   0.4848  -0.8746  -0.5543
152°   0.4695  -0.8829  -0.5317
153°   0.4540  -0.8910  -0.5095
154°   0.4384  -0.8988  -0.4877
155°   0.4226  -0.9063  -0.4663
156°   0.4067  -0.9135  -0.4452
157°   0.3907  -0.9205  -0.4245
158°   0.3746  -0.9272  -0.4040
159°   0.3584  -0.9336  -0.3839
160°   0.3420  -0.9397  -0.3640
161°   0.3256  -0.9455  -0.3443
162°   0.3090  -0.9511  -0.3249
163°   0.2924  -0.9563  -0.3057
164°   0.2756  -0.9613  -0.2867
165°   0.2588  -0.9659  -0.2679
166°   0.2419  -0.9703  -0.2493
167°   0.2250  -0.9744  -0.2309
168°   0.2079  -0.9781  -0.2126
169°   0.1908  -0.9816  -0.1944
170°   0.1736  -0.9848  -0.1763
171°   0.1564  -0.9877  -0.1584
172°   0.1392  -0.9903  -0.1405
173°   0.1219  -0.9925  -0.1228
174°   0.1045  -0.9945  -0.1051
175°   0.0872  -0.9962  -0.0875
176°   0.0698  -0.9976  -0.0699
177°   0.0523  -0.9986  -0.0524
178°   0.0349  -0.9994  -0.0349
179°   0.0175  -0.9998  -0.0175
180°  -0.0000  -1.0000   0.0000
181°  -0.0175  -0.9998   0.0175
182°  -0.0349  -0.9994   0.0349
183°  -0.0523  -0.9986   0.0524
184°  -0.0698  -0.9976   0.0699
185°  -0.0872  -0.9962   0.0875
186°  -0.1045  -0.9945   0.1051
187°  -0.1219  -0.9925   0.1228
188°  -0.1392  -0.9903   0.1405
189°  -0.1564  -0.9877   0.1584
190°  -0.1736  -0.9848   0.1763
191°  -0.1908  -0.9816   0.1944
192°  -0.2079  -0.9781   0.2126
193°  -0.2250  -0.9744   0.2309
194°  -0.2419  -0.9703   0.2493
195°  -0.2588  -0.9659   0.2679
196°  -0.2756  -0.9613   0.2867
197°  -0.2924  -0.9563   0.3057
198°  -0.3090  -0.9511   0.3249
199°  -0.3256  -0.9455   0.3443
200°  -0.3420  -0.9397   0.3640
201°  -0.3584  -0.9336   0.3839
202°  -0.3746  -0.9272   0.4040
203°  -0.3907  -0.9205   0.4245
204°  -0.4067  -0.9135   0.4452
205°  -0.4226  -0.9063   0.4663
206°  -0.4384  -0.8988   0.4877
207°  -0.4540  -0.8910   0.5095
208°  -0.4695  -0.8829   0.5317
209°  -0.4848  -0.8746   0.5543
210°  -0.5000  -0.8660   0.5774
211°  -0.5150  -0.8572   0.6009
212°  -0.5299  -0.8480   0.6249
213°  -0.5446  -0.8387   0.6494
214°  -0.5592  -0.8290   0.6745
215°  -0.5736  -0.8192   0.7002
216°  -0.5878  -0.8090   0.7265
217°  -0.6018  -0.7986   0.7536
218°  -0.6157  -0.7880   0.7813
219°  -0.6293  -0.7771   0.8098
220°  -0.6428  -0.7660   0.8391
221°  -0.6561  -0.7547   0.8693
222°  -0.6691  -0.7431   0.9004
223°  -0.6820  -0.7314   0.9325
224°  -0.6947  -0.7193   0.9657
225°  -0.7071  -0.7071   1.0000
226°  -0.7193  -0.6947   1.0355
227°  -0.7314  -0.6820   1.0724
228°  -0.7431  -0.6691   1.1106
229°  -0.7547  -0.6561   1.1504
230°  -0.7660  -0.6428   1.1918
231°  -0.7771  -0.6293   1.2349
232°  -0.7880  -0.6157   1.2799
233°  -0.7986  -0.6018   1.3270
234°  -0.8090  -0.5878   1.3764
235°  -0.8192  -0.5736   1.4281
236°  -0.8290  -0.5592   1.4826
237°  -0.8387  -0.5446   1.5399
238°  -0.8480  -0.5299   1.6003
239°  -0.8572  -0.5150   1.6643
240°  -0.8660  -0.5000   1.7321
241°  -0.8746  -0.4848   1.8040
242°  -0.8829  -0.4695   1.8807
243°  -0.8910  -0.4540   1.9626
244°  -0.8988  -0.4384   2.0503
245°  -0.9063  -0.4226   2.1445
246°  -0.9135  -0.4067   2.2460
247°  -0.9205  -0.3907   2.3559
248°  -0.9272  -0.3746   2.4751
249°  -0.9336  -0.3584   2.6051
250°  -0.9397  -0.3420   2.7475
251°  -0.9455  -0.3256   2.9042
252°  -0.9511  -0.3090   3.0777
253°  -0.9563  -0.2924   3.2709
254°  -0.9613  -0.2756   3.4874
255°  -0.9659  -0.2588   3.7321
256°  -0.9703  -0.2419   4.0108
257°  -0.9744  -0.2250   4.3315
258°  -0.9781  -0.2079   4.7046
259°  -0.9816  -0.1908   5.1446
260°  -0.9848  -0.1736   5.6713
261°  -0.9877  -0.1564   6.3138
262°  -0.9903  -0.1392   7.1154
263°  -0.9925  -0.1219   8.1443
264°  -0.9945  -0.1045   9.5144
265°  -0.9962  -0.0872  11.4301
266°  -0.9976  -0.0698  14.3007
267°  -0.9986  -0.0523  19.0811
268°  -0.9994  -0.0349  28.6363
269°  -0.9998  -0.0175  57.2900
270°  -1.0000   0.0000    なし
271°  -0.9998   0.0175 -57.2900
272°  -0.9994   0.0349 -28.6363
273°  -0.9986   0.0523 -19.0811
274°  -0.9976   0.0698 -14.3007
275°  -0.9962   0.0872 -11.4301
276°  -0.9945   0.1045  -9.5144
277°  -0.9925   0.1219  -8.1443
278°  -0.9903   0.1392  -7.1154
279°  -0.9877   0.1564  -6.3138
280°  -0.9848   0.1736  -5.6713
281°  -0.9816   0.1908  -5.1446
282°  -0.9781   0.2079  -4.7046
283°  -0.9744   0.2250  -4.3315
284°  -0.9703   0.2419  -4.0108
285°  -0.9659   0.2588  -3.7321
286°  -0.9613   0.2756  -3.4874
287°  -0.9563   0.2924  -3.2709
288°  -0.9511   0.3090  -3.0777
289°  -0.9455   0.3256  -2.9042
290°  -0.9397   0.3420  -2.7475
291°  -0.9336   0.3584  -2.6051
292°  -0.9272   0.3746  -2.4751
293°  -0.9205   0.3907  -2.3559
294°  -0.9135   0.4067  -2.2460
295°  -0.9063   0.4226  -2.1445
296°  -0.8988   0.4384  -2.0503
297°  -0.8910   0.4540  -1.9626
298°  -0.8829   0.4695  -1.8807
299°  -0.8746   0.4848  -1.8040
300°  -0.8660   0.5000  -1.7321
301°  -0.8572   0.5150  -1.6643
302°  -0.8480   0.5299  -1.6003
303°  -0.8387   0.5446  -1.5399
304°  -0.8290   0.5592  -1.4826
305°  -0.8192   0.5736  -1.4281
306°  -0.8090   0.5878  -1.3764
307°  -0.7986   0.6018  -1.3270
308°  -0.7880   0.6157  -1.2799
309°  -0.7771   0.6293  -1.2349
310°  -0.7660   0.6428  -1.1918
311°  -0.7547   0.6561  -1.1504
312°  -0.7431   0.6691  -1.1106
313°  -0.7314   0.6820  -1.0724
314°  -0.7193   0.6947  -1.0355
315°  -0.7071   0.7071  -1.0000
316°  -0.6947   0.7193  -0.9657
317°  -0.6820   0.7314  -0.9325
318°  -0.6691   0.7431  -0.9004
319°  -0.6561   0.7547  -0.8693
320°  -0.6428   0.7660  -0.8391
321°  -0.6293   0.7771  -0.8098
322°  -0.6157   0.7880  -0.7813
323°  -0.6018   0.7986  -0.7536
324°  -0.5878   0.8090  -0.7265
325°  -0.5736   0.8192  -0.7002
326°  -0.5592   0.8290  -0.6745
327°  -0.5446   0.8387  -0.6494
328°  -0.5299   0.8480  -0.6249
329°  -0.5150   0.8572  -0.6009
330°  -0.5000   0.8660  -0.5774
331°  -0.4848   0.8746  -0.5543
332°  -0.4695   0.8829  -0.5317
333°  -0.4540   0.8910  -0.5095
334°  -0.4384   0.8988  -0.4877
335°  -0.4226   0.9063  -0.4663
336°  -0.4067   0.9135  -0.4452
337°  -0.3907   0.9205  -0.4245
338°  -0.3746   0.9272  -0.4040
339°  -0.3584   0.9336  -0.3839
340°  -0.3420   0.9397  -0.3640
341°  -0.3256   0.9455  -0.3443
342°  -0.3090   0.9511  -0.3249
343°  -0.2924   0.9563  -0.3057
344°  -0.2756   0.9613  -0.2867
345°  -0.2588   0.9659  -0.2679
346°  -0.2419   0.9703  -0.2493
347°  -0.2250   0.9744  -0.2309
348°  -0.2079   0.9781  -0.2126
349°  -0.1908   0.9816  -0.1944
350°  -0.1736   0.9848  -0.1763
351°  -0.1564   0.9877  -0.1584
352°  -0.1392   0.9903  -0.1405
353°  -0.1219   0.9925  -0.1228
354°  -0.1045   0.9945  -0.1051
355°  -0.0872   0.9962  -0.0875
356°  -0.0698   0.9976  -0.0699
357°  -0.0523   0.9986  -0.0524
358°  -0.0349   0.9994  -0.0349
359°  -0.0175   0.9998  -0.0175
360°   0.0000   1.0000   0.0000

三角関数の表が出力されました!

今回はここまでです。お疲れさまでした。


 

みなためじゃんけん

このコーナーは、私と擬似的にじゃんけんできるコーナーです。

みなためじゃんけん、じゃんけんぽん!

私が出したのは……





パー

パーでした! チョキの勝利です!



この記事をSNSでシェアする

プログラミングカテゴリーの最新記事(5件)

最新記事(10件)

管理人のTwitter

内部リンク集