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ÀÌ ÂüÀÌ ¾Æ´Ò °æ¿ì {...}¸¦ ¼öÇàÇÏÁö ¾Ê°í ºüÁ® ³ª°¨.

for loop in C

¿¹ 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ÀÌ ÂüÀÏ °æ¿ì¿¡¸¸ { ... } ¼öÇà

while loop in C

 

¿¹ 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ȸ´Â ¼öÇà

do...while loop in C

 

¿¹ 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)

     ¸ð´ÏÅÍ¿¡ Ãâ·Â

 

½Ç½À ÇØ´ä