はじめに
どうも! みなため(@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
三角関数の表が出力されました!
今回はここまでです。お疲れさまでした。