-
<새롭게 알게된 것들>
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 - #include <stdio.h> : 컴퓨터에게 그 함수가 어디에 구현되어 있는지 혹은 어디에 저장되어 있는 지 알려줘야함.