cyphen156
Chapter1 과제 본문
개인 문제풀이임으로 오답이 있을 수 있습니다.
- 컴파일러, 어셈블러, 링커, 로더의 차이점을 설명하라.
컴파일러 : 특정 프로그래밍 언어로 작성된 소스 코드를 저급 언어인 어셈블리언어로 바꿔 목적 코드를 생성해주는 소프트웨어이다
어셈블러 : 목적 코드를 컴퓨터가 이해할 수 있는 기계어로 변환시켜주는 소프트웨어이다.
링커 : 함수와 함수 또는 여러 개의 목적 코드 연결시켜 실행파일을 만들어주는 소프트웨어이다.
로더 : 실행파일을 컴퓨터가 실행시켰을 때 주 메모리에 적재시켜 프로그램을 실행시켜주는 프로그램이다. - 소스 파일, 오브젝트 파일, 실행 파일의 차이점을 설명하라.
소스 파일 : 프로그래밍 언어로 작성된 원시 코드
오브젝트 파일 : 원시 코드를 컴파일러가 기계어와 매칭시키기 위해 어셈블리어로 변환시킨 파일/목적 파일
실행 파일 : 프로그램 실행을 위해 링커가 오브젝트 파일들을 연결시켜 만들어준 파일 - 리턴 타입, 함수명, 함수 본체, 리턴 값 등의 용어를 설명하라.
리턴 타입 : 함수 정의시 리턴 값에 따라 명시된 자료형
함수명 : 특정 기능을 수행하기 위한 명령어의 집합의 이름
함수 본체 : 함수를 호출했을 때 수행되는 명령어가 작성된 부분
리턴 값 : 함수 실행 결과 돌려주는 값 - 문법 오류, 의미상 오류, 논리 오류의 차이점을 설명하라.
문법 오류 : 프로그래밍 언어의 작성 규칙에 맞지 않는 명령어를 작성한 경우 발생한다.
의미상 오류 : 문법은 알맞게 작성하였지만 작성된 명령어가 프로그래머의 의도와 컴퓨터가 이해한 것이 서로 달라 오류가 발생한 경우
논리 오류 : 프로그램을 잘못 설계한 경우 발생한다. - 지시어와 명령어의 차이점을 설명하라.
지시어 : 컴파일러가 프로그램을 번역하기 전에 먼저 전처리기가 수행해야 하는 언어, 주로 주석을 제거하고, 컴파일 환경을 조성해준다.
명령어 : 컴파일러가 번역하여 실제 프로그램 실행시 수행되야 하는 부분 - 라면을 끓이는 알고리즘을 단계별로 설명하되 10줄 이상의 의사 코드 1를 써서 설명하라.
- 냄비를 꺼낸다.
- 꺼낸 냄비를 인덕션 위에 올린다.
- 냄비에 물을 붓는다.
- 라면 봉지를 뜯어 분말 스프와 후레이크를 냄비에 넣는다.
- 인덕션을 켜서 물을 끓인다.
- 물이 끓기 시작하면 라면을 넣고 같이 끓인다.
- 취향에 따라 계란과 치즈 등 여러가지 부재료를 넣고 끓인다.
- 라면이 다 끓으면 인덕션을 끈다
- 끓은 라면을 식탁으로 옮겨 반찬과 같이 먹는다
- 다먹었으면 설거지를 한다.
- 일상의 문제점을 하나 선택하여 그것을 해결하기 위한 알고리즘을 의사 코드로 설명하라.
- 같은 크기의 공이 아홉개 있다. 그 중 여덟 개는 무게가 같고 하나만 더 무겁다. 천칭(Balance)을 써서 무게를 재되 단 두 번만 재어 더 무거운 공을 찾아내는 알고리즘을 의사 코드로 써 보라.
- 공 아홉개를 3개씩 나눠 3개의 그룹으로 나눈다.(A, B, C)
- 이 중 두 개의 그룹(A, B)을 각각 저울에 재본다.
- 저울에 재본 두 그룹(A, B)의 무게가 같은 경우(C를 재본다)
- 저울에 재보지 않은 나머지 그룹(C)중 한 개씩 두 개를 재본다.
1) 저울에 재본 두 개의 무게가 같은 경우
무게를 재지 않은 남은 1개가 무거운 경우이다.
2) 저울에 재본 두 개의 무게가 다른 경우
더 무거운 쪽으로 기운 것이 무게가 다른 경우이다.
- 저울에 재보지 않은 나머지 그룹(C)중 한 개씩 두 개를 재본다.
- 저울에 재본 두 그룹의 무게가 다른 경우
- 더 무거운 쪽으로 기운 것들 중 두 개를 골라 다시 재본다.
- 무게를 잰 두 개의 무게가 서로 같은 경우나머지 1개만 무게가 무거운 경우이다.
- 무게를 잰 두 개의 무게가 서로 다른 경우
더 무거운 쪽으로 기운 것이 무게가 다른 경우이다.
- 무게를 잰 두 개의 무게가 서로 같은 경우나머지 1개만 무게가 무거운 경우이다.
- 더 무거운 쪽으로 기운 것들 중 두 개를 골라 다시 재본다.
- 저울에 재본 두 그룹(A, B)의 무게가 같은 경우(C를 재본다)
//모든 예제 소스는 한빛 미디어홈페이지에서 찾으실 수 있습니다.
IT CookBook, 전공자를 위한 C 언어 프로그래밍 (hanbit.co.kr)
또는 cyphen156/Work-space: Studying (github.com)에서 찾으실 수 있습니다.
- 의사코드 : 실제 프로그램 언어가 아닌 사람의 언어를 통해 프로그램이 해야 할 일을 작성하는 예시 명령어 [본문으로]
'프로그래밍 > C언어' 카테고리의 다른 글
Chapter3 과제 (0) | 2023.02.03 |
---|---|
Chapter3 변수와 상수, 대입문과 연산 (0) | 2023.02.01 |
Chapter2 과제 (0) | 2023.01.05 |
Chapter2 C언어의 자료형과 표준 입출력 함수 (0) | 2023.01.04 |
Chapter1 C언어와 컴파일러 (0) | 2022.12.22 |