프로그램이란
어떤 문제를 해결하기 위해서 순서나 규칙을 정확하게 기술한 것
즉, 해결해야 되는 문제를 효과적으로 처리하기 위해서 순서나 규칙을 정확하게 기술한 것
프로그램 작성 단계
입출력 정의 → 절차 정의 → 프로그램 코드 작성
입출력 정의
해결해야 되는 문제가 무엇인지를 명확하게 기술하는 단계
해결해야 되는 문제에서 입력 값이 무엇이고 그 문제를 해결했을 때에 어떠한 결과 값이 나와야 되는지를 명확하게 기술
절차정의(알고리즘 설계)
문제를 작게 분해하고 분해한 작은 문제를 순차적으로 혹은 선택적으로 혹은 반복적으로 문제를 해결하기 위한 방법들 순서나 규칙을 기술하는 단계
프로그래밍 언어
기계어, 어셈블리어, 고급언어로 구성
기계어는 사람이 사용하는 언어가 아닌 컴퓨터가 사용하는 언어로 컴퓨터 명령어를 2진수로 표기
어셈블리어는 컴퓨터 명령어를 2진수가 아닌 영어의 약자인 기호로 표기
고급 언어는 사람이 사용하는 언어인 자연어에 가깝게 표현된 언어로써 컴퓨터나 컴퓨터의 구조나 프로세서에 무관하게 독립적으로 프로그램을 작성할 수 있다
c언어의 특징
1. 이식성이 좋다 - c언어로 작성한 소스 코드는 윈도우 분 아니라 유닉스나 리눅스 운영체제에서도 동작한다.
2. 하드웨어와 관려된 부분까지 접근 가능하다 - 메모리 주소를 관리하기 위한 포인터 및 비트 단위 연산자를 가지고 있다.
3. 범용 프로그래밍 언어이다. - 과학계산, 하드웨어 제어, 시스템 개발 등의 모든 응용 분야에서 사용되고 있다
4. 간결하고 효율적이다. - 구문이 간견하고, 프로그램의 크기가 작아 실행 속도가 빠르며 메모리를 효과적으로 사용한다.