프로그래밍이란?
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가 나온 경우 |