컴퓨터공학/C언어 6

하드웨어의 한계

들어가기 전에 컴퓨터는 우리가 작성한 프로그램을 구동하기 위해 다양한 물리적 장치를 사용합니다. 그 중 하나는 메모리로, 프로그램이 필요한 정보가 저장되는 곳입니다. 메모리의 용량은 무한하지 않기 때문에, 때때로 프로그램에서 우리가 의도하지 않은 오류가 발생하기도 합니다. 학습 목표 메모리 용량이 프로그램의 구동에 미치는 영향을 설명할 수 있습니다. 핵심 단어 메모리 오버플로우 컴퓨터는 RAM(랜덤 액세스 메모리)이라는 물리적 저장장치를 포함하고 있습니다. 우리가 작성한 프로그램은 구동 중에 RAM에 저장되는데요, RAM은 유한한 크기의 비트만 저장할 수 있기 때문에 때때로 부정확한 결과를 내기도 합니다. 부동 소수점 부정확성 아래와 같이 실수 x, y를 인자로 받아 x 나누기 y를 하는 프로그램이 있다..

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

들어가기 전에 프로그래밍을 하다 보면 가끔 반복적으로 작성해야 하는 코드가 있습니다. 이런 코드를 여러번 쓰지 않고 함수 형태로 저장해두면 코드를 간결하고 이해하기 쉽게 만들 수 있습니다. 사용자 정의 함수를 사용 하는 방법을 배워봅니다. 더불어서 하나의 루프로 수행하기 힘든 작업을 중첩 루프를 이용하여 해결하는 방법도 배워 보겠습니다. 학습 목표 사용자 정의 함수와 중첩 루프를 작성할 수 있습니다. 핵심 단어 사용자 정의 함수 중첩 루프 사용자 정의 함수 우리가 스크래치에서 했던 것 처럼 “cough”라고 세 번 말하는 C 프로그램을 작성하고 싶으면 어떻게 해야 할까요? 가장 간단한 방법은 아래처럼 작성하는 것입니다. #include int main(void) { printf("cough\n"); pr..

자료형, 형식지정자, 연산자

들어가기 전에 C에서는 정수나 문자열 외에도 다양한 데이터 타입이 정의되어 있습니다. 또한 각 타입에 맞는 형식 지정자를 통해 적절한 포맷으로 출력하고, 다양한 연산자를 통해 조건문을 설정하거나 데이터 값을 계산할 수 있습니다. 학습 목표 다양한 데이터 타입과 형식 지정자를 나타내는 방법을 학습합니다. 다양한 연산자를 이용하여 조건문을 표현하는 방법을 학습합니다. 핵심단어 char long float double % && || 데이터 타입 아래 목록은 변수의 데이터 타입으로 사용할 수 있는 것들입니다. bool: 불리언 표현, (예) True, False, 1, 0, yes, no char: 문자 하나 (예) 'a', 'Z', '?' string: 문자열 int: 특정 크기 또는 특정 비트까지의 정수 (..

조건문과 루프

학습 목표 조건문과 루프를 c로 작성할 수 있습니다. 핵심 단어 int if while for 스크래치에서 counter 라는 변수를 생성하고 0을 저장하기 위해서는 아래와 같은 블록을 사용하였었습니다. 저번 강의에서 말씀드렸던 C는 오래된 언어라 저장하고자 하는 변수의 종류를 꼭 알려줘야 한다는 것을 기억하시나요? 우리는 counter라는 변수에 숫자를 저장하고 싶습니다. 여기서 int 는 변수가 정수(integer)라는 것을 알려주는 것이고, counter는 변수의 이름, 0은 그 값에 0을 저장(초기화)하는 것입니다. 그리고 코드의 마지막은 세미콜론(;)을 붙여주는 것도 잊으시면 안됩니다! 저번 강의에서도 말씀드렸듯이 여기서 등호(=)는 같다는 의미가 아닌, 오른쪽에 있는 값을 왼쪽에 할당한다는 의..

문자열

학습 목표 C로 문자열 형식을 가진 변수를 선언하고 출력하는 프로그램을 만들 수 있습니다. 핵심단어 형식지정자 string make 저번 강의에서는 간단하게 Hello World를 출력해보았습니다. 이번 시간에는 좀 더 다이나믹한 것을 해보도록 하죠 스크래치 강의에서 사용자의 이름을 입력으로 받고 그리고 그 사람의 이름을 불러서 인사를 했습니다. 스크래치 블록은 아래와 같았습니다. 그럼 이것을 C로 해보면 어떻게 될까요? CS50 Sandbox에서는 스크래치의 ask함수와 가장 비슷한 것은 get_string 함수입니다. String은 단어나 구절, 문장을 부르는 말입니다. (숫자와는 다른 종류의 데이터 입니다.) 사용자의 이름을 받아서 저장할 변수를 스크래치와 같이 answer이라고 정해보겠습니다. 이..

C기초

들어가기 전에 그래픽 인터페이스로 상호작용성이 좋은 스크래치로도 간단한 프로그래밍을 할 수 있지만, 텍스트 기반의 프로그래밍 언어를 이용해도 컴퓨터에게 동일한 일을 하게 할 수 있습니다. 가장 널리 쓰이는 프로그래밍 언어중 하나인 C의 기초를 배워보겠습니다. 학습 목표 C로 “hello, world”를 출력하는 프로그램을 만들 수 있습니다. 핵심단어 stdio.h clang 컴파일러 C언어 #include int main(void) { printf("hello, world\n"); } C는 아주 오래되고 전통적인 순수 텍스트 기반의 언어입니다. 여러분들 중에서는 C를 이미 공부하신 분들도 있을 수 있고, 처음 접하하는 분들은 이런 이상한 영어들이 적혀있는 것을 보면 두려움이 생기실 수도 있습니다. 하지만..