CS 기초/C언어 6

[CS50] 하드웨어의 한계

컴퓨터는 프로그램을 구동하기 위해서 다양한 물리적 장치를 이용합니다. 그중 하나가 아래 보이는 메모리 혹은 램이라는 것으로 프로그램이 필요한 정보가 저장되는 곳입니다. 이러한 램의 용량은 유한하기 때문에 때로는 프로그램에서 의도하지 않은 오류가 발생하기도 합니다. 지금까지는 의도적이던 아니던 사용자의 실수로 인해 에러가 발생했는데 램(RAM : Random Access Memory)은 유한한 크기의 비트만 저장할 수 있기 때문에 때로는 컴퓨터에서 부정확한 결과를 나타내기도 합니다. 그렇다면 어떠한 예시가 있는지 알아봅시다. 부동 소수점 부정확성 x / y의 결과를 출력하는 코드를 작성해보겠습니다. #include #include int main(void){ float x = get_float("x : "..

CS 기초/C언어 2021.08.03

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

프로그래밍을 하다 보면 반복적으로 같은 코드를 작성해야 할 때가 있는데, 이때 코드를 여러 번 쓰는 게 아니라 함수 형태로 지정해두면 코드를 간결하게 사용이 가능합니다. 더불어 하나의 루프로 수행하기 힘든 작업을 중첩 루프를 사용해 해결하는 방법도 공부해보도록 하겠습니다. 만약 "에취!"라고 세번 말하는 C 프로그램을 작성할 때 가장 간단한 방법은 단순히 3번 출력하게 만들어주는 것입니다. #include int main(void){ printf("에취!\n"); printf("에취!\n"); printf("에취!\n"); } 그렇다면 이것을 좀 더 간단하게 코딩해본다면 어떻게 될까요? 지난 시간에 배운 루프를 사용하면 더 간단히 표현할 수 있습니다. #include int main(void){ for(..

CS 기초/C언어 2021.08.02

[CS50] 자료형, 형식 지정자, 연산자

C는 정수형이나 문자열 이외에도 다양한 데이터 타입이 정의되어 있는데 어떠한 타입이 있는지, 또 그것을 다양한 연산자를 통해 조건문이나 반복문으로 설정해 값을 계산하는 방법을 공부해보도록 하겠습니다. 먼저 데이터 타입으로 정의되어 있는 것 - int : 특정 크기 또는 특정 비트까지의 정수 (예) 1, 5, 40, -4, 0 - long : 더 큰 크기의 정수 - float : 부동소수점을 갖는 실수 (예) 3.14, 0.0, -29.34 - double : 부동소수점을 포함한 더 큰 실수 - char : 문자 하나 (예) 'a', 'B', '?' - string : 문자열 - bool : 불리언 (예) true, false, 1, 0, yes, no 그렇다면 왜 다양한 데이터 타입이 필요할까요? 기본적..

CS 기초/C언어 2021.08.01

[CS50] 조건문과 루프

오늘은 조건문과 루프는 C에서 어떻게 표현하는지에 대해 공부해보겠습니다. 저번 포스팅에서 C는 오래된 언어이기 때문에 저장하고자 하는 변수의 종류를 꼭 알려줘야 한다고 했습니다. 만약 counter라는 변수에 숫자를 저장하려면 어떻게 표시해야 할까요? 여기서 int는 변수가 정수(Integer)라는 것을 알려주는 것이고 counter라는 변수의 값에 0을 저장하는 것입니다. 마찬가지로 저번 포스팅에서 설명했듯이 = 표시는 같다의 등호(=)가 아닌 오른쪽의 값을 왼쪽으로 할당한다는 할당 연산자로 사용된 것입니다. 그렇다면 변수의 값을 1씩 증가시키려면 어떻게 해야 할까요? 즉 counter에 1을 더한 값을 다시 counter에 할당하면 됩니다. (여기서는 위에서 int counter를 선언했기 때문에 변..

CS 기초/C언어 2021.07.30

[CS50] 문자열

모든 언어가 그렇듯 문자열을 다루기 위해서는 문자열 형식을 가진 변수부터 선언해줘야 합니다. 오늘은 사용자로부터 문자열을 입력받고 입력받은 문자열을 다른 문자열과 합쳐서 출력하는 프로그램을 작성해보겠습니다. 혹시나 실습이 필요하신분들은 https://sandbox.cs50.io/ CS50 Sandbox Temporary programming environments for students and teachers. sandbox.cs50.io 여기서 바로 create눌러서 시작하시면 실습하기 수월합니다. 이렇게 만들어진 스크래치 블록이 있다고 한다면 C로는 어떻게 표현해야 할까요? 지난 포스팅에 say는 printf와 같은 역할을 한다고 공부했습니다. 그렇다면 ask는 어떨까요? ask함수를 C로 가져왔을 ..

CS 기초/C언어 2021.07.29

[CS50] C 기초

그래픽 인터페이스인 스크래치(skratch)를 사용해서도 간단한 프로그래밍이 가능하지만, 텍스트 기반 프로그래밍 언어인 C를 사용해도 컴퓨터에게 동일한 일을 시킬 수 있습니다. C 언어란? 벨 연구소의 데니스 리치가 만든 프로그래밍 언어로 정식 명칭은 'C'지만 한국에서는 'C언어'라고 부른다. 세계적으로 가장 많이 쓰이는 프로그래밍 언어 중 하나이다.(출처 : 나무위키) 우선 저번 시간에 했던 스크래치와 비교해볼 텐데 혹시라도 저번에 스크래치를 사용해보지 않으셨다면 https://darmk.tistory.com/entry/CS50-%EC%8A%A4%ED%81%AC%EB%9E%98%EC%B9%98-%EC%82%AC%EC%9A%A9%ED%95%B4%EB%B3%B4%EA%B8%B0?category=96447..

CS 기초/C언어 2021.07.28