Download presentation
Presentation is loading. Please wait.
Published byHeinz Waltz Modified 6년 전
1
C언어응용 제1주 강의 안내, C로 프로그램 개발하기 컴퓨터시뮬레이션학과 2013년 가을학기 담당교수 : 이형원
E304호,
2
강의소개 담당교수 : 컴퓨터시뮬레이션학과 이형원 교재 : 알고리즘기반 자료구조 강의시간 : 화1,2,3,4교시, E323
평가방법 네 번의 필기 시험 : 총 30% 1,3차 시험 : 각 5% 중간, 기말 필기고사 : 각 10% 두 번의 실기 시험 : 총 30%(각 15%) 10번의 숙제 : 총 20% 수업참여 : 10% 출석 : 총 10%
3
강의자료 로그인 후 사용
4
강의자료
5
강의 일정 1주차 : 강의 안내, C로 프로그램 개발하기(1학기 복습)
2주차 : 자료구조와 알고리즘 소개, 자료표현(1,2장) 3주차 : 자료구조 응용(3장) 4주차 : 1차 필기시험 5주차 : 재귀와 분할 정보(4장) 6주차 : 그리디 알고리즘과 문제해결(5장) 7주차 : 그리디 알고리즘과 문제해결(5장) 8주차 : 중간고사 필기 및 실기 시험
6
강의일정(계속) 9주차 : 정렬기법(6장) 10주차 :정렬기법(6장) 11주차 : 탐색기법(7장) 12주차 : 3차필기 시험
13주차 : 그래프기법(8장) 14주차 : 그래프기법(8장) 15주차 : 트리(9장) 16주차 : 기말고사 필기 및 실기 시험
7
강의 진행 강의 노트 준비 지난 주 실습 내용 토론하기 내용에 대한 질문과 답하기 새로운 단어 이해하기
실습 내용 설명 및 실습시간에 실습하기 다음 주 강의 내용 교재 읽어오기 숙제 해서 제출하기
8
시험 준비 각자 A4의 ¼ 크기의 요약집을 준비 한다. (10 점 제공, 시험시간에 제출)
9
즐겁게 공부합시다
10
토론을 위한 질문 실행파일을 만드는 과정은 어떻게 되나요? 비주얼스투디오에서 프로젝트를 생성하려면 어떻게 하면 되나요?
C의 기본 자료형은 무엇인가? 함수란 무엇인가? 함수의 원형은 무엇인가? 프로그램을 작성하기 위한 기본 논리는 무엇인가?
11
책 읽기 퀴즈 컴퓨터 프로그램은 수집한 여러 가지 ( )에 대해 정해진 ( ) 대로 특별한 처리를 수행하여, 의사결정에 사용할 수 있는 ( )를 얻 기 위해 컴퓨터에게 내리는 ( )을 모아놓은 것이다. 컴퓨터를 구성하는 물리적 장치인 하드웨어는 중앙처리장치, ( ), 입력장치, ( )로 구성된다. ( )란 오디오 시스템에서 재생되는 노래처럼 컴퓨터하드웨어 에 의해 실행될 프로그램을 말한다. 컴퓨터에게 명령을 내릴 때는 컴퓨터가 이해할 수 있는 유일한 언어인 ( )를 이용해야 한다.
12
단어 퀴즈 중앙처리장치 소프트웨어 프로그램 기계어 프로그램언어 콤파일 링크 실행 라이브러리 디버깅
13
예제 문제 다음 빈칸을 채우시오 프로그램을 개발하는 데 필요한 컴파일러, 디버거, 에디터 등을 통합적으로 제공하는 개발 환경을 ( )이라 한다.
14
다음 주 과제 실습하기 1,2장 읽어오기 숙제 해서 제출하기
15
C로 프로그램 개발하기(1학기 복습) 컴퓨터 프로그램 응용(application) 프로그램 프로그램 실행 과정
수집한 여러 가지 데이터(data)에 대해 정해진 절차대로 특별한 처리를 수행하여 의사 결정에 사용할 수 있는 정보(information)를 얻기 위해 컴퓨터에게 내리는 명령을 모아놓은 것 응용(application) 프로그램 운영체제 외에 사용자의 목적에 맞게 개발되어 배포되는 프로그램 워드 프로세서(아래아 한글, MS-워드 등) 그래픽 편집 프로그램(포토샵 등) 프레젠테이션 제작 도구(MS-파워포인트 등) 스프레드시트(MS-엑셀 등) 프로그램 실행 과정 프로그램은 주기억장치에 저장 즉 적재(loading)된 후 CPU에 의해 명령이 하나씩 해석된 후 적절한 장치에 의해 실행된다.
16
1.3 프로그램 개발 과정 p.26 프로그램 개발 과정
17
1.4.1 비주얼 C++ 2010 익스프레스 설치 p.30 비주얼 C++ 2010 익스프레스
교육이나 비상업적 목적으로 무료로 설치할 수 있는 C/C++ 프로그램 개발 도구(tool) 소스 코드 편집기, 컴파일러, 링커, 디버거(디버깅을 도와주는 프로그램) 등 을 통합하여 한꺼번에 제공하는 통합 개발 환경(IDE: Integrated Development Environments) 마이크로소프트 다운로드 사이트에서 다운받을 수 있음
18
비주얼 C 익스프레스 설치 p.30 접속하여 다운 받기 사이트가 변경되었음
19
1.4.1 비주얼 C++ 2010 익스프레스 설치 p.30 2. 바탕화면에 다운로드한 파일 ‘vc_web.exe’를 더블 클릭
① [설치 시작] 창의 [다음] 단추를 클릭 사용 약관 동의 창 ② [사용 약관] 창의 [동의함]을 선택한 후 ③ [다음] 단추를 클릭
20
비주얼 C 익스프레스 설치 p.31 3. 설치 옵션 설정하기
21
1.4.1 비주얼 C++ 2010 익스프레스 설치 p.32 4. 비주얼 C++ 2010 익스프레스 시작하기
윈도우즈 작업 표시줄 왼쪽의 [시작] 단추 [프로그램] [Microsoft Visual Studio 2010 Express] [Microsoft Visual C Express] 선택 비주얼 C 익스프레스가 시작됨
22
비주얼 C 익스프레스 사용 p.32 솔루션(solution) 프로젝트(project) 소스 파일의 관계 프로젝트 프로그래머가 작성한 소스 파일 및 프로그램 개발 과정에서 생성되는 모든 파일은 프로젝트에서 관리됨 프로젝트 단위로 프로그램을 개발 솔루션 여러 개의 프로젝트를 개발해야 할 때 프로젝트들을 묶어서 관리하게 해주는 것이 솔루션 책상(솔루션)에 C 언어에 관한 책(소스 파일)이 여러 권 쌓여 있는 것(프로젝트) 영어 회화에 관한 책(소스 파일)이 여러 권 쌓여 있는 것(프로젝트) 과 같은 개념 프로그램을 개발하려면 솔루션 안에 개발할 프로젝트가 포함되어 있어야 하고 프로젝트 안에는 소스 프로그램 파일 및 관련 파일들이 포함되어 있어야 함 솔루션(C실습) 프로젝트1 (표준편차구하기 ) 소스파일 (표준편차.cpp) 프로젝트2 (정렬하기 ) 소스파일 (정렬.cpp)
23
프로젝트 만들기 p.32 프로젝트 만들기 비주얼 C++ 2010 창의 [시작 페이지] 창 [새 프로젝트] 클릭
기존의 프로젝트를 실행하다가 새 프로젝트를 만들 때는 [파일] [새로 만들기] [프로젝트] 메뉴를 선택하여 만들 수 있다
24
프로젝트 만들기 p.33 2. 다른 것을 선택하지 않도록 주의한다.
25
프로젝트 만들기 p.34 3. ① [Win32 응용 프로그램 마법사 시작] 창의 [다음] 단추 클릭 ② [응용 프로그램 설정] 창에서 [콘솔 응용 프로그램]을 선택 ③ 추가 옵션을 [빈 프로젝트]로 선택한 후 ④ [마침]을 클릭
26
프로젝트에 소스 파일 추가하기 p.34 1. ① [솔루션 탐색기]의 [소스 파일]에서 마우스 오른쪽 버튼을 누르고 ② [추가]-[새 항목]을 클릭 또는 이 새 항목 추가 단추를 클릭한 후 [새 항목 추가]를 선택해도 된다.
27
프로젝트에 소스 파일 추가하기 p.35 2. 추가할 항목의 종류와 이름 지정
소스 파일명 지정 확장자를 생략하고‘hello’만 입력하면 자동으로 확장자가 cpp로 지정되므로 소스 파일의 이름은 ‘hello.cpp’가 된다. 『주의』 확장자가 ‘.cpp’면 C++ 언어에 맞게 컴파일되므로 C언에서만 제공하는 기능을 사용하려면 반드시 확장자를 ‘.c’로 직접 입력해서 파일명을‘hello.c’로 해야 C언어에 맞게 컴파일된다. 추가할 항목으로 [C++ 파일(.cpp)]을 선택한다. (‘C 파일’이란 항목을 제공하지 않으므로 C++ 파일을 선택한다.)
28
프로젝트에 소스 파일 추가하기 p.35 3. 프로젝트에 소스 파일이 추가된 후 편집 창에서 소스 프로그램을 입력
29
프로젝트에 소스 파일 추가하기 p.36 4. 빌드(컴파일 & 링크)하기
① 소스 프로그램 작성 후 [디버그]-[솔루션 빌드] 메뉴를 선택 (단축 키 [F7]) ② [출력] 창에 빌드 결과가 나타남
30
프로젝트에 소스 파일 추가하기 p.36 5. 프로그램 실행하기 ① [Ctrl]+[F5]를 눌러 실행
31
프로젝트에 소스 파일 추가하기 p.37 6. 프로젝트 저장: [파일] [모두 저장]을 선택
32
프로젝트에 소스 파일 추가하기 p.37 7. 솔루션 닫기: [파일] [솔루션 닫기]를 선택
33
프로젝트에 소스 파일 추가하기 p.38 8. 솔루션 열기 ① [파일] [열기] [프로젝트/솔루션] 선택 솔루션에 관련된 정보가 저장된 *.sln 파일은 프로젝트를 만들 때 [위치]에서 지정한 폴더에 저장되어 있다. ② sample.sln 파일을 연다. 팁) [파일] [최근에 사용한 프로젝트 및 솔루션] 메뉴에는 최근에 작업한 순서로 솔루션 목록이 나타나므로 솔루션 폴더를 찾아가는 번거로움을 덜 수 있다.
34
컴파일 시간 에러(구문 에러) 수정하기 p.39 1. 컴파일 에러를 내기 뒤해 printf 함수 호출문 끝의 ‘;’을 모두 지우기 소스 프로그램에서 printf 함수 호출문 끝에 있는 ‘;’을 지우면 다시 빌드를 하지 않아도 확인 가능한 에러가 있다면 즉시 소스 코드에 빨간 밑줄이 나타나며 마우스를 가져가면 에러에 관한 정보가 팁으로 나타난다.
35
컴파일 시간 에러(구문 에러) 수정하기 p.39 2. [디버그]-[솔루션 빌드] 메뉴 또는 [F7] 키를 눌러 다시 빌드
36
컴파일 시간 에러(구문 에러) 수정하기 p.40 팁) 에러는 가능한 앞에 있는 것부터 수정한다.
컴파일러는 소스 코드를 번역할 때 차례로 번역하다. 에러 메시지만으로 해당 행의 에러를 찾지 못하는 경우에는 그 이전의 행을 분석해야 한다. 앞의 에러로 인해 컴파일러가 올바른 문장도 잘못 번역하는 경우가 많기 때 문에 한 개의 에러를 수정하면 그 뒤의 에러가 자동으로 제거되기도 한다. 프로그램 작성 초기에는 에러를 한 개 수정한 후 바로 다시 빌드하면 에러를 빨리 제거할 수 있다. 첫 에러(6행의 에러)는 이전 행인 5행의 끝에 ‘;’이 빠져서 발생한 에러. 두 번째 에러(8행) 역시 8행 이전 즉 6행 끝에 ‘;’이 빠져서 발생한 에러. 5행과 6행 뒤에 ;을 추가한 후 빌드하면 에러가 없음을 확인할 수 있다.
37
컴파일 시간 에러(구문 에러) 수정하기 p.40 팁) 에러 수정 후 곧바로 [Ctrl]+[F5] 키를 눌러 실행하기
[주의] 빌드 단계에서 에러가 있을 때 나타나는 대화 상자 에러를 수정하기 위해 [아니오] 단추를 눌러서 [출력] 창의 에러 메시지를 확인하고 에러를 수정하는 작업을 반복한다.
38
링크 시간 에러 수정하기 p.41 링크 에러를 내기 위해 main( )을 mein( )으로 수정 후 [디버그]-[솔루션 빌드] (또는 [F7]) 를 선택한 결과 프로그램 안에 main 함수가 반드시 포함되어야 하는데 mein으로 작성되어 main 함수를 찾지 못하여 발생한 링크 에러 링크 에러는 대부분 main 철자를 잘못 적거나, main 함수를 포함하고 있는 두 개의 프로그램을 소스 파일에 같이 추가하여(프로젝트의 소스 파일에는 main 함수가 하나만 있어야 한다) 발생한다. 후자의 경우는 실행하지 않을 프로그램을 프로젝트의 소스 파일에서 제거해야 한다.
39
프로그램 기본 논리 순차(sequence) 분기(branch) 반복(loop) if, if~else, switch for
while do~while
40
제1주 실습 프로그램 반지름을 입력 받아서 원의 둘레와 면적, 그리고 구의 부피를 구한 결과를 소수 둘 째 자리까지 출력하고 소수점에 줄의 맞추어 출력하시오.(Project : w01p01) 시작 년도와 마지막 년도를 입력 받아서 시작 년도의 1월1일 부터 마지막 년도의 12월 31일 까지의 날 수를 계산하여 출력하시오.(Project : w01p02) 1부터 100까지 제곱근의 합을 계산하여 출력하시오.(Project : w01p03) 어느 통신회사의 통화요금 계산을 다음과 같이 한다고 한다. 음성통화 10 초당 7.6원 문자 메시지 건당 50원이다. 그리고 통신비 총액이 60,000원을 넘으면 5%를 할인해 준다고 한다. 이제 사용자로부터 음성 통화량을 초로, 메시지 건수를 받아들여서 총 통화요금을 계산하여 출력하시오.(Project : w01p04) 질량, 좌표x, 좌표y(모두 실수)를 저장하는 구조체를 선언하고 사용자로부 터 5개의 물체에 대한 정로를 읽어 들인 후에 이 물체들의 질량 중심을 계 산하여 출력하시오. 질량중심은 𝒙= 𝒎 𝒊 × 𝒙 𝒊 𝒎 𝒊 ,𝒚= 𝒎 𝒊 × 𝒚 𝒊 𝒎 𝒊 로 계산한다.
Similar presentations