모두를 위한 컴퓨터 과학 (CS50 2019) - C언어
4041 단어 computer sciencecomputer science
1강. C 기초
C언어
- C는 아주 오래되고 전통적인 순수 텍스트 기반의 언어
- int main(void)는 스크래치의 "초록색 깃발을 클릭했을 때" 블록과 같은 역할
- #include <stdio.h>는 "stdio.h"라는 이름의 파일을 찾아서 "printf"함수에 접근할 수 있도록 해줌.
컴파일러
- 우리가 직접 작성한 코드는 "소스 코드"라고 불린다. 이를 2진수로 작성된 "머신 코드"로 변환해야 컴퓨터가 이해할 수 있다. 이러한 작업을 컴파일러라는 프로그램이 수행해준다.
- clang hello.c 라는 명령어는 "clang"이라는 컴파일러로 "hello.c"라는 코드를 컴파일하라는 의미.
- 그 결과로 ./a.out이라는 파일이 생성되고 이를 실행하면 현재 디렉토리에 있는 a.out라는 프로그램을 실행.
2강. 문자열
- C는 오래된 언어이기 때문에 변수가 저장하는 데이터의 종류를 아주 정확하게 명시해줘야 한다.
- 문자열(string) / 이때 string을 형식지정자라고 한다.
- 프로그래밍 언어에서 '='은 오른쪽에서 왼쪽으로 가는 화살표와 비슷하다. 이를 할당연산자라고 한다.
- 터미널창에 아래 명령어를 입력하여 컴파일을 할 수 있다.
$ clang -o string string.c -lcs50
-> 여기서 -o string은 string.c를 string.out이라는 머신코드로 저장하도록 하는 명령어
-> lcs50은 "link"라는 의미를 지닌 -l이라는 인자에 추가로 포함한 "cs50"파일을 합친 것.
- 다소 복잡한 이런 과정 대신에, 아래 make 명령어를 통해 간단하게 컴파일을 수행할 수 있다.
$make string
3강. 조건문과 루프
- if 조건문의 사용은 파이썬과 비슷
-> +=1 을 ++ 로 ok.
-'=='는 일치연산자
- 루프도 C에서 while이나 for을 통해서 구현가능하고, 파이썬과 비슷.
4강. 자료형, 형식 지정자, 연산자
데이터 타입
- 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: 부동소수점을 포함한 더 큰 실수
CS50 라이브러리 내의 get함수
- get_ 뒤에 데이터 타입 붙혀서 사용.
형식 지정자
- printf함수에서는 각 데이터 타입을 위한 형식 지정자를 사용할 수 있음.
- %c : char
- %f : float, double
- %i : int
- %li : long
- %s : string
기타 연산자 및 주석
- +: 더하기
- -: 빼기
- *: 곱하기
- /: 나누기
- %: 나머지
- &&: 그리고
- ||: 또는
- //: 주석
정수와 실수를 받아서 출력해보기
- 정수
# include <cs50.h>
# include <stdio.h>
int main(void)
{
printf("Your are at least %i days old.\n", get_int("what's your age?\n") * 365);
}
- 실수
# include <cs50.h>
# include <stdio.h>
int main(void)
{
float price = get_float("What's the price?\n");
printf("Your total is %f\n", price*1.0625);
}
짝수인지 홀수인지 알려주는 코드짜기
#include <cs50.h>
#include <stdio.h>
int main(void)
{
int n = get_int("n: ");
if (n % 2 == 0)
{
printf("even\n");
}
else
{
printf("odd\n")
}
}
퀴즈
-> +=1 을 ++ 로 ok.
-'=='는 일치연산자
데이터 타입
- 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: 부동소수점을 포함한 더 큰 실수
CS50 라이브러리 내의 get함수
- get_ 뒤에 데이터 타입 붙혀서 사용.
형식 지정자
- printf함수에서는 각 데이터 타입을 위한 형식 지정자를 사용할 수 있음.
- %c : char
- %f : float, double
- %i : int
- %li : long
- %s : string
기타 연산자 및 주석
- +: 더하기
- -: 빼기
- *: 곱하기
- /: 나누기
- %: 나머지
- &&: 그리고
- ||: 또는
- //: 주석
정수와 실수를 받아서 출력해보기
- 정수
# include <cs50.h>
# include <stdio.h>
int main(void)
{
printf("Your are at least %i days old.\n", get_int("what's your age?\n") * 365);
}
- 실수
# include <cs50.h>
# include <stdio.h>
int main(void)
{
float price = get_float("What's the price?\n");
printf("Your total is %f\n", price*1.0625);
}
짝수인지 홀수인지 알려주는 코드짜기
#include <cs50.h>
#include <stdio.h>
int main(void)
{
int n = get_int("n: ");
if (n % 2 == 0)
{
printf("even\n");
}
else
{
printf("odd\n")
}
}
퀴즈
Author And Source
이 문제에 관하여(모두를 위한 컴퓨터 과학 (CS50 2019) - C언어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@alexms0316/모두를-위한-컴퓨터-과학-CS50-2019-C언어저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)