ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2주차. C언어
    알고리즘 2021. 1. 17. 12:20

    <새롭게 알게된 것들>

    1) 기초

    • #include <stdio.h> : 컴퓨터에게 그 함수가 어디에 구현되어 있는지 혹은 어디에 저장되어 있는 지 알려줘야함.
      stdio.h 라는 이름의 파일을 찾아서 printf 함수에 접근할 수 있도록 해줌
    • int main(void)는 스크래치의 “초록색 깃발을 클릭했을 때” 블록과 같은 역할을 합니다.
      즉 '시작한다'의 의미를 가지고 있다
    • 글자나 단어, 문장을 적을때는 언제나 텍스트에 "" 쌍따옴표로 감싼다.
    • 문장에 마침표를 찍는것 처럼 세미콜론(;)을 만드시 붙여야 한다.
    • \n 는 줄바꿈 기능 : ENTER 과 같은 기능
    • 파일이름.c 로 확장자 붙여서 저장함
    • 우리가 직접 작성한 코드 = 소스코드
      2진수로 작성된 코드 = 머신코드
      소스코드를 머신코드로 바꿔주는 것을 컴파일러가 수행함
      clang hello.c 라는 명령어는 “clang” 이라는 컴파일러로 “hello.c”라는 코드를 컴파일하라는 의미
      새로 수정된 것이 있을 경우 다시 clang을 해야지 update 된다.
    • clang -o hello hello.c //-o hello는 hello 라는 이름으로 outd을 출력하겠다는 옵션
    • ./a.out :  컴퓨터가 현재 디렉토리에 있는 a.out이라는 프로그램을 실행하도록 한다.
    • ls : 현재 폴더나 디렉토리에 있는 파일의 리스트를 보여줌
    • a.out* //*은 실행가능한 머신코드라는 의미, 없으면 소스코드
    • rm : 파일 지움,  mkdir: 디렉토리 만듬

    2) 문자열

    • string answer = get_string("What's your name?\n");
      형식지정자 변수  =(지정) 함수
      문자열(string) = 단어, 구절, 문장을 부르는 말
    • printf("hello, %s\n, answer);
      %s(string) : 변수에 있는 이름을 출력해야하므로 필요, 어떤 종류인지 확인 =>string|
      , 변수명: 컴퓨터에게 가져와야할 값
    • "make 출력하고 싶은 이름" 로 간단하게 컴파일 할 수 도 있음 

    3) 조건문과 루프

    • counter += 1;
      counter++;
    • if(조건){
         print("");
      } else if(조건) {
         print("");
      } else (조건) {
         print("");
      }
    • while 루프
      int i  = 0;
      while(i <50){
         printf("hello, world\n");
         i= i+1;
      }
    • for (int i=0; i<50; i++)
      {
         printf("hello, world\n);
      }

    4) 자료형, 형식 지정자(placeholder), 연산자

    • 데이터 타입
      • bool: 불리언 표현, (예) True, False, 1, 0, yes, no
      • char: 문자 하나 (예) 'a', 'Z', '?'
      • string: 문자열
      • int: 특정 크기 또는 특정 비트까지의 정수 (예) 5, 28, -3, 0
      • long: 더 큰 크기의 정수
      • float: 부동소수점을 갖는 실수 (예) 3.14, 0.0, -28.56
      • double: 부동소수점을 포함한 더 큰 실수
    • 형식 지정자
      • %c : char
      • %f : float, double
      • %i : int
      • %li : long
      • %s : string
    • %f에서 f앞에 '.원하는 자리수'를 넣어 %.2f로 소수점 2번째 자리까지 나오게 할 수 있습니다

     

    • &&: 그리고
    • ||: 또는
    • //: 주석

    5) 사용자 정의 함수, 중첩 루프

    • #include <stdio.h>
      void cough(int n);
      int main(void)
      {
          cough(3);
      }

      void cough(int n)
      {
          for (int i = 0; i < n; i++)
          {
               printf("cough\n");
           }
      }
    • int get_positive_int(void)
      {
          int n;
          do
          {
              n = get_int("Positive Integer: ");
          }
          while (n < 1);
          return n;
      }

    int쪽이 출력 void(입출력이 없을경우 둘다) 입력

    int get_positive_int(void) 파란색 글씨는 void가 아니고 int가 됩니다.

    함수 왼쪽에 있는 단어(파란색) 출력의 종류를 의미 합니다.

    int get_positive_int(void) 괄호 안의 빨간색 단어(void) 입력의 종류를 뜻합니다.

    만약 입출력이 없다면 void를 적어주시면 됩니다

     

    do-while의 루프

    이 불리언 표현 while(n<1); 이 참일때 다음을 수행하라는 뜻입니다.

    만약 n이 1보다 작다면 계속해서 질문을 반복하는 것입니다.

    while을 단독으로 사용하면 while의 조건이 참이어야만 수행을 합니다.

    하지만 do-while은 do에서 무조건 한 번은 먼저 수행하게 해줍니다.

     

    중첩루프

    for (int i = 0; i < n; i++)
    {
       for (int j = 0; j < n; j++)
       {
         
    printf("#");
       }
       printf("\n");
    }

     

    6) 하드웨어의 한계

    RAM(랜덤 액세스 메모리)이라는 물리적 저장장치, 모든 프로그램이 실행 중 저장됨. 모든 파일들이 열려있는 동안 저장

    되는 곳, 유한한 크기를 가짐

    부동 소수점 부정확성

    float 에서 저장 가능한 비트 수가 유한하기 때문에 다소 부정확한 결과를 내게 되는 것

     

    정수 오버플로우

    변수가 담을 수 있는 최대 허용 범위를 벗어난 값을 저장해 예상치 못한 결과가 나오는 현상

     

     

    '알고리즘' 카테고리의 다른 글

    6주차. 자료구조  (0) 2021.02.19
    5주차. 메모리  (0) 2021.02.08
    4. 알고리즘  (0) 2021.01.31
    1주차. 컴퓨팅 사고  (0) 2021.01.11
Designed by Tistory.