[기초] C언어

프로그래밍이란?

종퐁이 2024. 5. 24. 11:06

1. 프로그램 개발

- 특정목적에 맞는 프로그램이 없을 경우 직접 개발함

EX) "비도 오는데 Rain이란 곡좀 만들어볼까?, 체육 대회 때 우리과 응원곡이 필요한데 내가 직접 만들어볼까?

 

2. 프로그램 예와 실행과정

[ 주기억장치]

(1) 키보드에서 입력한 삼각형의 밑변 값을 side란 기억장소에 저장

(1-1) CPU는 명령을 잃어와서 해석한 후 각 장치에 신호를 보내 동작을 처리하게 한다.

(2) 키보드에서 입력한 삼각형의 높이 값을 height란 기억장소에 저장

(3) side에 저장된 값과 height에 저장된 값을 곱합 후 2로 나눈 삼각형의 면적을 area란 기억장소에 저장

(4) 계산 결과 값을 모니터에 표시 

(5) 5를 입력하면 side란 기억장소에 5가 저장이 된다.

 

3. 문제를 푸는 과정

- 우선 문제를 어떤 방법으로 해결해야 할지 순서를 정한다.

- 순서대로 처리하는 과정을 명령문으로 대처 한것이 프로그램이다.

EX) 삼각형의 넓이를 구할 경우, 공식을 먼저 이해하고 밑면과 높이를 적용하는 방법을 제시한다.

 

4. 프로그래밍 언어 종류

(1) 고급언어

- 사람의 자연언어에 가깝게 작성된 언어

- C언어

(2) 저급언어

- 기계어 : 0,1로 이루어진 2진 코드형

- 어셈블리어 : 사람이 기호로 접근하도록 정의됨(ADD, STORE, MOV)

 

5. C언어란?

- 고급언어 : 사용자중심

- 다른 언어의 기반이 되는 언어

- 절차 지향적 특성, 정해진 순서의 실행 흐름

- 이식성이 용이, CPU에 상관없이 실행가능, 운영 체제가 다른 곳도 실행가능

- 성능 향상, 메모리 관리, 속도 저하요소 최소화

 

6. 프로그램 작성 단계

요구사항분석 --> 알고리즘설계(핵심과정) --> 프로그램코딩 --> 컴파일하기 --> 링킹 --> 실행

[ 디버깅 ]

- 컴파일 에러 : 컴파일하기 --> 프로그램코딩

- 링크 에러 : 링킹 --> 프로그램코딩

- 실행시간 및 논리에러 : 실행 --> 프로그램코딩

- 논리 에러 : 실행 --> 알고리즘설계 

 

7. 컴파일러란?

GCC(GNU Compiler Collection)

- 프로그래밍 언어로 작성된 소스 코드를 컴퓨터가 실행할수 있는 기계어 코드로 변환하는 프로그램이다.

인간 ---> C컴파일러 ---> 기계어 ---> 기계

 

8. 프로그램의 Error종류와 예

종류(발생 시점)
컴파일 시간 에러(컴파일 과정) - sum이란 변수를 선언하지 않고 sum=0;과 같이 변수를 사용한 경우
- int sum 선언문 뒤에 ;을 생략한 경우
링크 에러(링킹 과정) - main 함수의 이름을 main으로 잘못 지정하여 main 함수가 프로그램에 없는 경우
실행 시간 에러(실행 과정) - 나누기 연산에서 0으로 나누기를 시도한 경우
- fopen("data.txt", "r"); 을 실행할 때 data.txt 파일이 존재하지 않아 열 수 없는 경우
논리 에러(알고리즘 설계 과정) - 합을 구할 변수를 0으로 초기화하지 않아 1~10까지의 합이 55가 아닌 -858993405로 나온 경우
- 무한 반복이 되어 프로그램 실행이 끝나지 않는 경우
- a,b,c 중 실제로 제일 큰 값은 c인데 결과는 a가 나온 경우