강의록 2 => 01 C 프로그래밍 첫걸음
Download
Report
Transcript 강의록 2 => 01 C 프로그래밍 첫걸음
01 C 프로그래밍 첫걸음
세종대학교 최옥경 교수
C 언어의 역사
B 언어에서 발전
C 언어는 켄 톰슨(Ken Tompson)이 개발한 B 언어에서 발전된 언
어
C 언어는 1972년경, 시스템 PDP-11에서 운용되는 운영체제 Unix
를 개발하기 위한 언어
미국전신전화국인 AT&T의 벨 연구소의 데니스 리치(Dennis
Ritchie)가 개발
C 언어가 영향을 준 언어
C++
자바
C#
C 프로그램 개발 환경
Visual C++
Visual C++는 마이크로소프트 사의 대표적인 통합개발환경
프로그램 언어 C/C++를 이용하여 응용 프로그램을 개발
Visual C++는 현재 MS의 개발 도구인 MS Visual Studio .Net의
한 제품으로 판매
C 프로그램 개발 환경
터보 C 2.0 컴파일러
http://winapi.co.kr/pds/dev/dev.htm
tc20.zip(1.0M)
볼랜드사의 터보 C 2.0 컴파일러
1988년에 릴리즈되어 발표된지 15년 이상 지났지만 아직까지도
C언어 교육용으로 가장 많이 활용
압축 파일을 푼 후 install.exe를 실행하면 하드 디스크에 설치할
수 있으며 tc.exe로 통합 개발 환경 실행
에디터
Editplus, http://www.editplus.com/kr/index.html
C 프로그램 개발 환경
Edit plus
1.
2.
다운로드
환경설정
1)
2)
3)
받기 : http://www.editplus.com =>다운로드(클릭)
메뉴의 도구 => 사용자 도구 구성 선택
추가 => 프로그램 선택
아래 그림과 같이 컴파일러와 실행을 설정해 준다.
C 프로그램 개발 과정
컴파일, 링킹, 실행 과정
Visual C++ 실행
실행 파일 실행
소스 작성
소스와 폴더 지정
첫 프로그램
first.c
main의 철자와 대소문자를 구분하여 정확히 작성
컴파일(Compiler)
목적파일 생성
링킹(Linker)
실행 파일 생성
실행(Loader)
결과가 없는 프로그램
문장 출력 프로그래밍
원하는 문장 출력
자신의 이름과 수강강좌를 출력하는 프로그램
나는 홍 길동이고 C 프로그래밍 언어를 수강합니다.
프로젝트를 이용한 프로그래밍
프로젝트 하부에 소스 작성
프로젝트를 생성할 기본 폴더 : [I:\C source\] => 본인이 생성한 개인 폴더 ex) c:\홍길동
프로젝트 이름 : myname
소스 파일 이름 : myname.c
소스 작성
파일
myname.c
컴파일, 링킹, 실행
아이콘을 이용
C 프로그램의 이해
주석 (Comments)
소스의 첫 줄에 보이는 /* … */을 주석(Comments)
프로그램 언어의 문법과는 관계없는 프로그램 설명 문장
/*
myname.c
*/
전처리기 지사자(Preprocessor directives)
#으로 시작하는 문장
컴파일 하기 전에 먼저 처리해야 할 일을 수행하도록 명령을 내리
는 문장
문장 #include는 다음에 나오는 헤더 파일(header file)을 이 문장
이 있는 부분에 삽입하는 역할을 수행
#include <헤더파일이름>
프로그램의 이해 1
main 함수
함수 main()은 C 언어에서 프로그램이 시작되는 함수
프로그램이 실행되려면 프로그램은 반드시 main() 함수를 가져야
함
함수 main()에서 기술되는 단어인 int, main, void는 모두 소문자로
대소문자를 구분하여 정확히 기술
int main(void)
{
…
}
int 와 main 사이의 공백은 단어를 구별하는 중요한 의
미가 있으므로, 하나 이상의 공백은 반드시 필요.
집합기호 {, }는 반드시 있어야 하며, 이는 main()
함수의 시작과 끝을 의미한다.
프로그램의 이해 2
printf 함수
표준출력으로 출력을 하기 위한 함수
printf(“나는 홍 길동이고 C 프로그래밍 언어를 수강합니다.
이 함수는 함수 이름인 printf 이후의 ( ) 사이에 큰 따옴표 “…” 로 둘러싸
인 문자열을 출력하는 역할을 담당
세미콜론은 C 언어에서 문장의 마지막에 반드시 나와야 하는 문자
문자열(String)
문자열을 구성하려면 문자열을 큰 따옴표로 앞과 뒤를 둘러싸야 함
문자열에서의 \n
\n 의 의미는 \n이 나타나는 이후에는 새로운 줄에 출력하라는 의미
printf("나는 홍 길동이고 ");
printf(" C 프로그래밍 언어를 수강합니다.\n");
에러 수정
에러
프로그램 과정에서 나타나는 문제
에러는 크게 컴파일 시간에 발생하는 에러와 실행 시간에 발생한 에러로
구분
디버깅
컴파일 에러나 실행 에러를 수정하는 과정을 디버깅(debugging)
• 디버깅이란 버그를 잡는다는 의미로 여기서 버그란 바로 에러를 의미
디버깅 예제
프로그램 목적
본인의 정보, 즉 이름, 학과, 수
강강좌를 세 줄에 출력하는 프
로그램
다음 소스와 오류
에러 메시지를 자세히 읽어 에
러를 수정
메시지의 이해
에러가 발생한 파일 이름
과 줄 번호
에러 번호
에러 메시지
링킹 오류
잘못된 단어 입력
Main으로 잘못 기술
컴파일은 성공하나 링킹에서 오류
논리 에러
실행
실행에는 아무 문제가 없으나 처음에 의도한 결과(3줄의 정보가 나오는 것)
와 다름
논리 에러(Logic Error)
컴파일과 실행에는 문제가 없으나 원하는 결과가 나오지 않은 것도 하나의
에러
에러수정
소스 8줄에서 \t를 \n으로 수정
• \t : 수평 탭 만큼의 이동
• \n : 다음 줄로의 이동
수정된 프로그램
바른 결과
디버깅 과정 중
5가지 수정
금주의 실습 과제 #1
다음과 같은 문장을 출력하는 프로그램을 작성하여 레포트제출 전용
사이트에 파일을 올리기 바랍니다.
제목과 파일명은 반드시 “학번_1.zip” (ex) “090203_1.zip” 로 업
로드하기 바랍니다.
프로그램 목적
다음과 같은 문장을 출력하는 프로그램을 작성
파일 구성
프로그램 저장 장소 : c(d):\자신의개인폴더
프로젝트 이름 : 학번_1 ex) 02345_1
소스 파일 이름 : 학번_1.c ex) 02345_1.c
업로드할 파일명 : 학번_1.zip ex) 02345_1.zip
소스
수정 전(보통소스)
수정 후(고급소스)
금주의 홈 과제#1
매주 수업 전까지 해당 소스 및 결과물을 레포트 제출 전용 사이트
(http://okwow.net) 에 제출한다.
제목과 파일명은 반드시 “학번_성명”으로 하며 규칙 위반 시 감점 처
리한다.
(ex) 123456_홍길동.zip, 123456.c)
(힌트)서식문자에는 줄바꿈문자 외에도 여러 가지가 있다.
서식문자
의미
기능
\n
newline
출력 위치를 다음 줄의 첫번째 칸으로 옮긴다.
\t
tab
출력 위치를 다음 탭 위치로 옮긴다.
\r
carriage return
출력 위치를 현재 줄의 첫번째 칸으로 옮긴다.
\b
backspace
출력 위치를 한 칸 뒤로 옮긴다.
\a
alert
2727
•
27
큰 따옴표나 백슬래시 자체를 출력할 때도 백슬래시를 사용한다.
금주의 홈 과제#1
28
금주의 홈 과제#1
레포트제출 전용사이트에 다음주 수업 전까지 완료 후 업로드 바람
Visual Studio download (강의 사이트에서 다운로드 가능)
: 업로드할 파일명 : 학번_홍길동.zip ex) “123456_홍길동.zip”
(힌트)서식문자에는 줄바꿈문자 외에도 여러 가지가 있다.
•
서식문자
의미
기능
\n
newline
출력 위치를 다음 줄의 첫번째 칸으로 옮긴다.
\t
tab
출력 위치를 다음 탭 위치로 옮긴다.
\r
carriage return
출력 위치를 현재 줄의 첫번째 칸으로 옮긴다.
\b
backspace
출력 위치를 한 칸 뒤로 옮긴다.
\a
alert
경보음을 낸다(삑 소리가 난다).
큰 따옴표나 백슬래시 자체를 출력할 때도 백슬래시를 사용한다.