Lab-05: C Programming,
Loop
1. ÀÌ·Ð
1.1 LoopÀÇ È帧 Á¦¾î¹®
break; // loop¿¡¼ ºüÁ® ³ª¿È
continue; // loop ÀýÂ÷ ¼öÇà
getch(); // stdio.h¿¡ µé¾î ÀÖ´Â ¸¶Å©·Î ÇÔ¼ö. ±ÛÀÚ 1°³ ÀÔ·Â ´ë±â. ÀÔ·ÂµÇ¸é ´ÙÀ½ ´Ü°è ÁøÇà
sytem("pause"); // '°è¼ÓÇÏ·Á¸é ¾Æ¹« Å°³ª ´©¸£½Ê½Ã¿À....' Ç¥½ÃÇÏ°í ±ÛÀÚ 1°³ ÀÔ·Â ´ë±â. ÀÔ·ÂµÇ¸é ´ÙÀ½ ´Ü°è ÁøÇà
1.2 Increment
1) Pre-increment: º¯¼ö°¡ ¸ÕÀú 1Áõ°¡ÇÑ ÈÄ¿¡ ½Ä¿¡ »ç¿ëµÊ.
Post-increment:
º¯¼ö°¡ ¸ÕÀú »ç¿ëµÈ ÈÄ¿¡ 1Áõ°¡µÊ.
int i=0, j;
j=++i;
// j=1, i=1. This is pre-increment.
j=i++;
// j=0, i=1. This is post-increment.
¿¹Á¦:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
main()
{
int
i,ipost,ipre,itest;
while (1) {
printf("Test
type(pre:1, post:2)="); scanf("%d", &itest);
printf("i=");
scanf("%d", &i);
if
(itest == 1) {
ipre
= ++i;
printf("ipre=++i=%d\n++i=%d\n",
ipre, i);
}
else
{
ipost
= i++;
printf("ipost=i++=%d\ni++=%d\n",
ipost, i);
}
}
}
3) increment ¿¬»êÀº ½Ç¼öÀÇ °æ¿ìµµ °¡´É
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
main()
{
float
i,ipost,ipre,itest;
while (1) {
printf("Test
type(pre:1, post:2)="); scanf("%f", &itest);
printf("i=");
scanf("%f", &i);
if
(itest == 1) {
ipre
= ++i;
printf("ipre=++i=%f\n++i=%f\n",
ipre, i);
}
else
{
ipost
= i++;
printf("ipost=i++=%f\ni++=%f\n",
ipost, i);
}
}
}
1.5 for statement
for
(init; condition; increment) {statement(s);}: conditionÀÌ ÂüÀÏ °æ¿ì {...}¸¦ ¼öÇàÇÏ°í count¸¦ ¾÷µ¥ÀÌÆ®ÇÏ°í condition üũÇÏ´Â ·çÇÁ¸¦ ¹Ýº¹. conditionÀÌ ÂüÀÌ ¾Æ´Ò °æ¿ì {...}¸¦ ¼öÇàÇÏÁö ¾Ê°í ºüÁ® ³ª°¨.
¿¹ 1: Á¤¼ö count
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void main(){
int i,n,isum;
while(1){
printf("n=");scanf_s("%d",&n);
isum=0;
for
(i=1;i<=n;++i){isum=isum+i;}
printf("1+...+n=%d\n",isum);
}
}
¿¹ 2: ½Ç¼ö count
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void main(){
float
x,xs,xe,xd;
while(1){
printf("xs,xe,xd=");scanf_s("%f%f%f",&xs,&xe,&xd);
for
(x=xs;x<=(xe+xd*0.01);x=x+xd){printf("x=%f\n",x);}
}
}
1.6 while statement
while(condition) {statement(s);}: conditionÀÌ ÂüÀÏ °æ¿ì¿¡¸¸ { ... } ¼öÇà
¿¹ 1: while Á¶°ÇÀÌ ¸ÂÁö ¾ÊÀ¸¸é 1ȸµµ ¼öÇàµÇÁö ¾ÊÀ½.
#include <stdio.h>
main()
{
int i=0;
while (i<0){
i
= i + 1; printf("i=%d", i); system("pause");
}
}
¿¹ 2: while Á¶°Ç¿¡ ½Ç¼ö ¿¬»ê Á¶°Ç¹®ÀÌ µé¾î°¡µµ µÊ.
#include <stdio.h>
main()
{
float x = 0.0;
while
(x<5.*1.2){
x
= x + 1.0; printf("x=%f\nEnter any to contiue.\n", x); getch();
}
}
1.7 do ... while
statement
do
{statement(s);} while (condition); // {...}¸¦ ¸ÕÀú ¼öÇàÇÑ ÈÄ condition È®ÀÎ. µû¶ó¼ Á¶°ÇÀÌ ¸ÂÁö ¾Ê´õ¶óµµ ¹«Á¶°Ç 1ȸ´Â ¼öÇà
¿¹ 1: ¾Æ·¡ ¿¹¿¡¼ whileÀÇ Á¶°ÇÀÌ ¸ÂÁö ¾Ê´õ¶óµµ ÃÖ¼Ò 1ȸ ¼öÇà
#include <stdio.h>
main()
{
int i=0;
do {
i
= i + 1; printf("i=%d\n", i); system("pause");
} while (i <
0);
}
¿¹ 2:
#include <stdio.h>
main()
{
float x = 0.0;
do{
x
= x + 1.0; printf("x=%f\nEnter any to contiue.\n", x); getch();
} while (x <
5.*1.2);
}
2. ¿¹Á¦
2.1 n! °è»ê
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
main()
{
int n,i;
unsigned long
long f;
while(1){
f=1;printf("n=");scanf("%d",&n);
if(n<0){printf("n
should be positive.\n");}
else{for(i=1;i<=n;++i){f=f*i;}
printf("n!= %llu\n", f);}
}
}
2.2 ¿¹Á¦: exp(x) °è»ê
¾Æ·¡ ÇÁ·Î±×·¥À» f(x)
= exp(x)¸¦ Taylor
series·Î °è»êÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. x´Â ÀÓÀÇÀÇ ½Ç¼öÀÌ´Ù.
¸¦ Á¤È®µµ 10-6·Î °è»êÇÏ·Á¸é ¸¶Áö¸·À¸·Î ´õ ÇÏ´Â °ªÀÌ ÇöÀç exp(x) °ªº¸´Ù 1e-6 ¹è ÀÛÀ¸¸é µÈ´Ù.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
void main(){
double term,sum,x;float
epsi;int k;
p100:
printf("x,epsi=");scanf_s("%lf%f",&x,&epsi);k=0;term=1.0;sum=1.0;
while(1){
k=k+1;term=term*(double)x/(double)k;sum=sum+term;
printf("k,term,sum=%d
%lf %lf\n",k,term,sum);
if(fabs(term)<fabs(sum*epsi)){
break; }
}
//
fabs(term)<fabs(sum*epsi) does not work in while()
printf("exp(x)=%lf\n",sum);
goto p100;
}
2. ½Ç½À
2.1
x (½Ç¼ö, ¾ç¼ö À½¼ö ¸ðµÎ °¡´É) ÀÌ ÁÖ¾îÁú °æ¿ì ´ÙÀ½ÀÇ f(x)À» °è»êÇÏ´Â ÇÁ·Î±×·¥ ÀÛ¼º
nÀº | x | º¸´Ù Å©Áö ¾ÊÀº ÃÖ´ë Á¤¼ö
(Âü°í) n = abs(x) ¶ó Çϸé abs(x)ÀÇ ¼Ò¼ö ÀÌÇÏ´Â ¹ö¸®°í Á¤¼ö¸¸ n¿¡ ÀúÀåµÈ´Ù)
2.2
¾Æ·¡ ÇÔ¼ö¸¦ 1e-6ÀÇ Á¤È®µµ·Î °è»êÇÏ´Â C ÇÁ·Î±×·¥À» ÀÛ¼ºÇ϶ó.
ÀÔ·Â: x,
epsi; Å°º¸µå·ÎºÎÅÍ
Ãâ·Â: ¸ð´ÏÅÍ¿¡ Ç¥½Ã
°è»ê°úÁ¤ k, x, f(x)
ÃÖÁ¾ °ª f(x)
¸ð´ÏÅÍ¿¡ Ãâ·Â