CS50 3강 - 프로그래밍 기초 - 1

📅 TIL #150




🎯 Achievement Goals

Topic2: 프로그래밍의 기본 문장을 출력할 수 있을까요?
Topic3: 자주 사용할 데이터를 저장하는 방법에는 무엇이 있나요?
Topic4: 숫자, 문자 구별하여 프로그래밍할 수 있나요?






Intro.

CS50 3강을 들으면서 C언어의 기초를 학습할 수 있어서 재미있었다. C언어를 통해 프로그래밍 기초에 대해 개념 정리를 하는 단계라고 생각하고 수업을 들었다.

이미 다 알고 있는 선언, 할당, 자료형 등등 내용이였지만 기초를 리마인드하는 느낌으로 학습하니 재미있었다.






문법 - Topic2: 프로그래밍의 기본 문장을 출력할 수 있을까요?


int main(void) {
  printf(hello world\n)
}


위 코드에서 오류는 몇개가 있을까요? 오류를 찾아내어 올바른 코드로 작성해 봅시다.


총 3개의 오류가 있다.

첫번째는, C 코드에서 #include 라는 코드를 사용해서 프로그램이 stdio.h라는 파일 안에 들어 있는 미리 작성된 함수들에 접근할 수 있도록 해주어야 한다.

두번째는, printf는 문자열을 화면에 출력하는 함수이다. 그렇기 때문에 항상 큰 따옴표 안에 작성해야 한다.

세번째는, 코드에서 명령문의 마지막을 알려주는 기호로 세미콜론(;)을 붙여주어야 한다.


#include <stdio.h>

int main(void) {
  printf("hello world\n");
}






변수 - Topic3: 자주 사용할 데이터를 저장하는 방법에는 무엇이 있나요?


[코딩실습과제] int형 변수를 선언하여 100을 저장하고, 그 변수를 출력하기


#include <stdio.h> //printf 함수가 포함된 라이브러리입니다.

int main() 
{
  //이 아래부터 코드를 작성합니다.
  //int형 변수를 선언합니다.
  int n;

  //변수에 100을 저장합니다.
  n = 100;

  //변수를 출력합니다.
  printf("%d", n);
  
  return 0; //main 함수를 종료합니다.
}






자료형 - Topic4: 숫자, 문자 구별하여 프로그래밍할 수 있나요?


1. 왜 C언어는 자료형에 대해 융통성이 없을까요? 비교적 최근에 나온 언어와 연관하여 생각해보세요.

C언어는 정적 언어로 분류된다. 정적 의미 분석이라고 하면 프로그램 실행 전에 정적인 분석을 의미한다. C언어와 같은 정적 언어는 선언문을 통해 식별자의 형을 파악하는 것이 중요하다. 프로그램 실행 전 규칙에 따라 올바르게 사용되고 있는지를 검사하는 형 검사를 수행하기에 융통성이 없다고 볼 수 있다.

반면에 현재 내가 공부하고 있는 자바스크립트는 동적 언어로 분류된다. 동적인 언어는 프로그램 실행 시에 변수의 자료형을 유추하고 모든 것을 결정하므로 C언어와 같은 정적 의미 분석이 필요하지 않을 수도 있다.


2. 어떤 경우에 float형보다 double형을 사용하는 것이 좋을까요?

double형은 실수형으로 float보다 더 정확한 값을 표현하기 위해 사용된다. float은 4byte의 공간을 차지하지만 double형은 8byte의 공간을 차지한다.




edwith X 커넥트재단: CS50 강의 들으러 가기