본문 바로가기

전체 글407

3: 배열-2(버그와 디버그) 2. 디버깅 1) 버그와 디버깅 버그(bug): 코드에 들어있는 오류 버그로 인해 프로그램의 실행에 실패하거나 프로그래머가 원하는 대로 동작하지 않게 됨 디버깅(debugging)은 코드에 있는 버그를 식별하고 고치는 과정 프로그래머는 디버거라고 불리는 프로그램을 사용해 디버깅을 하게 됨 2) 디버깅의 기본 디버거는 프로그램을 특정 행에서 멈출 수 있게 해 주기 때문에 버그를 찾는데 도움이 됨 프로그래머는 멈춰진 지점에서 무슨 일이 일어나는지 볼 수 있음 프로그램이 멈추는 특정 지점을 중지점(break point)이라고 함 프로그래머가 프로그램을 한 번에 한행씩 실행할 수 있게 해 줘서 프로그래머는 프로그램이 내리는 모든 결정들을 단계별로 따라갈 수 있게 됨 3) help 50 help50은 cs50파일.. 2021. 11. 25.
3: 배열-1(컴파일링) 1. 컴파일링 간단하게 말하면 소스코드(원시코드)를 목적코드(머신코드)로 변환하는 것 make나 clang 명령어를 사용해서 프로그램을 실행할 때(컴파일을 할 때) 네 단계를 거치게 됨 전처리(Precompile) - 컴파일링 - 어셈블링 - 링킹 1) 전처리(Precompile) 전처리기에 의해 전처리가 수행됨 #으로 시작되는 C 소스 코드는 전처리기에게 실질적인 컴파일이 이루어지기 전에 무언가를 실행하라고 알려줌 예) #include는 전처리기에게 다른 파일의 내용을 포함시키라고 알려줌. 프로그램의 소스코드에 #include와 같은 줄을 포함하면 전처리기는 새로운 파일을 생성하는데 이 파일은 여전히 C 소스 코드 형태이고 stdio.h 파일의 내용이 #include 부분에 포함됨 2) 컴파일(Comp.. 2021. 11. 25.
2: C언어-6(오버플로우) 6. 하드웨어의 한계 컴퓨터는 RAM이라는 저장장치를 포함하는데 RAM은 유한한 크기의 비트만 저장할 수 있기 때문에 때때로 부정확한 결과를 내기도 함 오버플로우: 컴퓨터 하드웨어의 한계로 인해 발생하는 문제 중 하나로, 변수가 담을 수 있는 최대 허용 범위를 벗어난 값을 저장해 예상치 못한 결과가 나오는 현상 *부동 소수점 부정확성* 나눈 결과를 소수점 50자리까지 출력하기로 하기 때문에 %.50f라고 씀! x에 1을 y에 10을 입력하면 정확한 결과는 0.1이 되어야 하지만, float 에서 저장 가능한 비트 수가 유한하기 때문에 부정확한 결과를 내게 되는 것 https://www.boostcourse.org/cs112/joinLectures/41307 모두를 위한 컴퓨터 과학 (CS50 2019) .. 2021. 11. 24.
2: C언어-5(중첩 루프) 5. 사용자 정의 함수, 중첩 루프 1) 사용자 정의 함수 void를 입력하고 원하는 함수명(cough)을 적은 뒤 괄호 안에 void를 적기 printf로 cough를 출력하는 코드 작성 함수의 이름을 cough로 정하고 int main(void)의 안에 cough(함수명) 사용 하지만 계속해서 새로운 함수를 만들면 main 함수는 아래로 내려 감 오류를 방지하기 위해서 void cough(void)를 세미콜론과 함께 위로 올림 cough 함수를 본 적은 없지만 이름은 있지만 main 함수에 나올 때까지 코드를 계속 읽도록 함 * Cough 함수에 원하는 만큼의 횟수만 cough를 출력하기!* void cough( ) 안의 int n은 함수가 입력값을 받아서 int 형식을 갖는 n이라는 변수에 저장하겠.. 2021. 11. 24.
2: C언어-4(자료형, 연산자) 4. 자료형, 형식 지정자, 연산자 bool: boolean표현(True, False, 1, 0, yes, no) char: 문자 하나(‘a’, ‘Z’, ‘?’) string: 문자열 int: 특정 크기 또는 특정 비트까지의 정수(5, 28, -3, 0) long: 더 큰 크기의 정수 float: 부동소수점을 갖는 실수(3.14, 0.0, -28.35) double: 부동소수점을 포함한 더 큰 실수 *int는 대략 40억까지 셀 수 있기 때문에 40억 개 이상의 데이터를 가진 기업과 같은 상황이 아니면 일반 사용자들은 대부분 정수에 int를 사용 형식 지정자 printf 함수에서는 각 데이터 타입을 위한 형식 지정자를 사용할 수 있음 %c: char, %f: float, double, %i: int, %.. 2021. 11. 24.
2: C언어-3(조건문과 반복문) 3. 조건문과 루프 Int는 변수가 정수(integer)라는 것을 알려줌 counter는 변수의 이름, 그 값에 0 저장(초기화)하는 것 counter에 1을 더한 값을 다시 counter에 저장(할당)한다는 의미! 이미 counter를 선언을 하면 그다음에는 선언을 해주지 않아도 됨 1) 조건문 2) 루프 while과 for로 구현 가능! while ( )의 괄호 안에 조건을 넣고 { } 안에 수행할 작업을 포함시키기 이 코드는 계속해서 “hello world”를 무한정 출력할 것임 특정횟수만큼 작업 가능! 변수 선언 – while(조건) – 수행할 작업 – 변수 증가 For 안에 (변수 초기화; 변수 조건; 변수 증가)에 해당하는 코드를 넣어서 while보다 더 간단하게 표현 가능! *실제 예제* “.. 2021. 11. 24.