블로그 이미지
하루, 글. 그림. 영상매체. 표현을 도와주는 기기들. 도전 중. 동화다아아
    동화다아아

    카테고리

    분류 전체보기 (176)
    잡담 (1)
    IT 기기-리뷰&뉴스 (7)
    리뷰 - 도서 (1)
    리뷰 - 영상 (0)
    리뷰 - 그림/음악 (1)
    내장형 하드웨어 (163)
    Total
    Today
    Yesterday

     

    예제 p3_4.c

    #include<stdio.h>

    int main()

    {

            int num1, num2, bigger; // 4바이트 정수형 변수 선언

            printf("Please enter two intergers: ");

            scanf("%d %d", &num1, &num2);

            bigger = num1; //num1의 값을 bigger에 대입한다.


            
    if(num1<num2) //num2가 num1보다 클 경우 {}부분이 실행된다.

            {

                    bigger = num2; // num2가 num1보다 클 경우 bigger에 대입된다.

            }

            printf("The larger number is : %3d\n",bigger);


            return 0;

    }


    흐름도(flow chart)



    예제 p3_6.c

    #include<stdio.h>

    int main()

    {

            int num1, num2, bigger, smaller;

            

            printf("Please enter two integers: ");

            scanf("%d %d", &num1, &num2);

            if(num1 < num2) // num2가 num1보다 클 경우 { } 부분 실행

            {

                    bigger = num2;

                    smaller = num1;

            }

            else //num1이 num2 보다 작지 않다면 실행

            {

                    bigger = num1;

                    smaller = num2;

            }

            printf("%d is larger than %3d\n", bigger, smaller);


            return 0;

    }


    ⇒ if와 else는 조건을 나타내는 논리식의 값이 참이면 if 절이 실행되고, 거짓이면 else 절이 실행된다.

    ⇒ if(num1<num2)

       ① CPU num1 값을 메모리에서 불러온다.

       ② CPU num2 값을 메모리에서 불러온다.

       ③ ALU가 num1과 num2 값을 비교하여 num1이 num2보다 작으면 1(참), 크면 2(거짓)으로 인식한다.

    ⇒ 비교와 계산은 다르다.

       ․ 비교할 때 왼쪽에서 오른쪽으로 값을 분석한다.

       ․ 계산할 때 오른쪽에서 왼쪽으로 값을 분석한다.

    ⇒  if(0.1), if(100), if(-100)… 등을 넣어보면 모두 참으로 인식되며 if(0)의 값만이 거짓이다. 컴퓨터의 논리는 0 이외에는 모두 참으로 인식되므로 if문 안에 0, 0.1, 10, -100 등을 넣어도 모두 참으로 인식한다는 것이다.


    예제 p3_7.c

    #include<stdio.h>

    int main()

    {

            int score;

            char grade = 'X'; // grade를 X로 초기화 하지 않으면 score 값의 입력이 잘못된 경우에 grade가 미정값을 가져서 마지막 printf문에서 예상할 수 없는 값을 출력할 수 있다.

            printf("Please enter examination score: ");

            scanf("%d", &score);

            if((score <= 100) && (score >= 90)) // 논리 연산자 &&를 이용한 논리식으로 두 조건이 만족되어야 참이 된다.

            {

                    grade = 'A';

            }

            else if((score < 90) && (score >= 80))

            {

                    grade = 'B';

            }

            else if((score < 80) && (score >= 70))

            {

                    grade = 'C';

            }

            else if((score < 70) && (score >= 60))

            {

                    grade = 'D';

            }

            else if((score < 60) && (score >= 0))

            {

                    grade = 'F';

            }

            else

            {

                    printf("worng score\n");

            }

            printf("The grade is %c\n", grade);


            return 0;

    }

    ⇒ 이 예제에서 점수가 60점 이하일 경우는 F를 받게 되며, 100점 이상일 경우에는 X를 받게 된다. 일반적으로 시험점수는 0에서 100점 사이지만 사용자가 실수로 100점 이상의 점수를 입력할 수 있다. 이런 실수로 프로그램이 종료되거나 실행시간 오류를 일으키지 않도록 프로그램이 대비되어야 하는데, 이렇게 사용자의 비정상적인 입력에도 프로그램이 정상적으로 작동하는 것을 프로그램의 강건성(robustness)라고 한다.


    - 올바른 다중 if문 코드 예

    if(height>=160) //165보다 height가 같거나 클 경우 아래를 실행한다.

    {

            if(height<=195)  // 165 <= height <= 195, height가 165보다 크거나 같고 195보다 작거나 같다.

            {

                    pass=1;

            }

            else // 195 < height, 195보다 height가 클 경우 실행된다.

            {

                    pass=0;

    }

    - switch 문


    #include<stdio.h>

    int main()

    {

            int iNum;

            scanf("%d", &iNum);

            switch(iNum)

            {

                    case 1 :

                            printf("1\n");

                            break;

                    case 2 :

                            printf("2\n");

                            break;

                    default: 

                            printf("잘못된 입력\n");

                            break;

            }

            return 0;

    }

    ⇒ switch()에서 ()안에는 변수, case 다음에 오는 것은 상수로 한다.

    ⇒ :(라벨)은 표시 역할을 의미


    Posted by 동화다아아
    , |

    최근에 달린 댓글

    최근에 받은 트랙백

    글 보관함