강의록 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
경보음을 낸다(삑 소리가 난다).
큰 따옴표나 백슬래시 자체를 출력할 때도 백슬래시를 사용한다.