Presentation is loading. Please wait.

Presentation is loading. Please wait.

Power C++ 제1장 C++ 소개.

Similar presentations


Presentation on theme: "Power C++ 제1장 C++ 소개."— Presentation transcript:

1 Power C++ 제1장 C++ 소개

2 이번 장에서 학습할 내용 C++에 대한 기초적인 사항들을 살펴봅니다. 프로그램이란? 프로그래밍 언어 C++ 언어의 역사
예제

3 컴퓨터는 범용적인 기계

4 프로그램이란? 프로그램은 작업 지시서

5 프로그램의 역할 Q) 컴퓨터에서 프로그램이 하는 일은 무엇인가?
프로그램이란 우리가 하고자 하는 작업을 컴퓨터에게 전달하여 주는 역할을 한다.

6 기계어 Q) 컴퓨터가 이해할 수 있는 언어는 어떤 것인가?
컴퓨터가 알아듣는 언어는 한가지이다. 즉 0과 1로 구성되어 있는 “ ”과 같은 기계어이다. 컴퓨터는 모든 것을 0과 1로 표현하고 0과 1에 의하여 내부 스위치 회로들이 ON/OFF 상태로 변경되면서 작업을 한다.

7 프로그래밍 언어의 필요성 Q) 그렇다면 인간이 기계어를 사용하면 어떤가?
기계어를 사용할 수는 있으나 이진수로 프로그램을 작성하여야 하기 때문에 아주 불편하다. 프로그래밍 언어는 자연어와 기계어 중간쯤에 위치 컴파일러가 프로그래밍 언어를 기계어로 통역

8 컴파일러

9 중간 점검 문제 1. 컴퓨터가 직접 이해할 수 있는 단 하나의 언어는 _____이다.
2. 프로그래밍 언어를 기계어로 변환시켜주는 프로그램을 ______한다. 3. 우리는 왜 기계어를 사용해서 프로그램하지 않는가?

10 C++ 언어

11 C++ 언어의 개발 C++는 1980년대 초에 AT&T 벨연구소의 Bjarne Stroustrup에 의하여 개발
C with Classes -> C++ C++는 C언어에 클래스 개념을 추가하고 이어서 가상 함수, 연산자 중복 정의, 다중 상속, 템플릿, 예외 처리 등이 기능이 차례로 추가

12 C++의 설계 철학 엄격한 타입 검사, 범용 언어, 효율적, 이식성
여러 가지의 프로그래밍 스타일을 지원 (절차 지향 프로그래밍, 데이터 추상화, 객체 지향 프로그래밍, 일반화 프로그래밍) 프로그래머가 자유롭게 선택할 수 있도록 설계 최대한 C와 호환 플랫폼에 의존적이거나 일반적이지 않은 특징은 제거

13 절차적 프로그래밍 절차적 프로그래밍에서는 데이터보다는 알고리즘(절차)을 중시

14 절차적 프로그래밍의 단점 무조건적인 점프 문장->난해

15 구조화 프로그래밍 무조건적인 점프를 없앴음 그러나 여전히 데이터와 알고리즘은 분리되어 있음

16 객체 지향 프로그래밍 객체 지향 프로그래밍에서는 데이터와 알고리즘이 묶여있음.

17 예제 예제: 직원의 월급을 계산하는 프로그램 직원에 대한 데이터와 알고리즘이 묶여있음

18 객체 지향의 개념 캡슐화: 데이터와 알고리즘을 하나의 단위(클래스)로 묶는 것이다.
정보은닉: 데이터에 대한 불필요한 접근을 차단하여서 데이터를 보호 상속: 비슷한 클래스가 이미 존재하고 있다면 그 클래스를 가져다가 사용하는 것 다형성: 같은 이름의 함수나 연산자를 중복 정의하여서 상황에 따라서 가장 적절한 함수나 연산자를 프로그램이 자동적으로 선택 앞으로 하나씩 학습할 것임.

19 객체 지향의 최종 목표 최종 목표: 코드의 재사용

20 일반화 프로그래밍 하나의 코드로 다양한 타입의 데이터를 처리하는 기법

21 하나의 예 template<typename T> class List { // 타입 T를 저장하는 리스트 구현 ...
}; List<Animal> animals; List<Car> cars; 타입 매개 변수 코드에서 T가 Animal로 치환될 수 있다는 것만 이해하자.

22 중간 점검 문제 1. 절차적 프로그래밍 기법은 데이터와 알고리즘 중에서 특히 _____을 강조한다.
2. 객체 지향 프로그래밍에서는 ________와 _________이 클래스로 묶여있다. 3. 데이터 타입을 자유롭게 변경할 수 있는 코드를 만드는 기법은 ________이다.

23 프로그램 작성 과정

24 프로그램 작성 단계 편집 (edit) 컴파일 (compile) 링크(link)
에디터를 이용하여 원하는 작업의 내용을 기술하여 소스 코드 작성 소스 파일(source file): 소스 코드가 들어 있는 텍스트 파일 (예) test.cpp 컴파일 (compile) 소스 파일->기계어로 변환 오브젝트 파일(object file) : 기계어로 변환된 파일 (예) test.obj 링크(link) 오브젝트 파일들을 라이브러리 파일들과 연결하여 하나의 실행 파일 생성 실행 파일 (executable file): 실행이 가능한 파일 (예) test.exe

25 Q & A (Q)소스 파일과 오브젝트 파일, 실행 파일 중에서 반드시 보관하여야 하는 파일은 무엇일까?
(A) 정답은 소스 파일이다. 소스 파일만 있으면 컴파일러를 수행시켜서 오브젝트 파일, 실행 파일은 만들 수 있다. 하지만 소스 파일을 삭제하면 컴파일이 불가능하다. 따라서 반드시 소스 파일은 잘 보관하여야 한다. Visual C++에서는 프로젝트와 워크스페이스 파일도 같이 보관하는 것이 좋다. 이러한 파일들은 다시 만들 수도 있지만 번거로운 작업이 된다.

26 중간 점검 문제 1. test.cpp를 컴파일하면 어떤 파일에 생성되는가?
___________________________________ 2. 링크 과정이 존재하는 이유는 무엇인가?

27 통합 개발 환경 통합 개발 환경(IDE: integrated development environment):
에디터 + 컴파일러 + 디버거

28 통합 개발 환경의 종류 비주얼 C++(Visual C++) 마이크로소프트사의 제품
윈도우 기반의 거의 모든 형태의 응용 프로그램 제작 가능 최신 버전: 비주얼 C 우리가 사용할 버전: 비주얼 C or 비주얼 C

29 비주얼 C++ 실행 개발 도구를 사용할 때의 유용한 정보를 말해준다. 다음 팁을 계속보려면 우른다.
체크되어 있으면 다음번 시작때도 팁을 보여준다.

30 워크스페이스와 프로젝트 워크스페이스(workspace); 작업 공간, 여러 개의 프로젝트가 있을 수 있다.
프로젝트(project): 하나의 실행 파일을 만들기 위하여 필요한 파일들의 그룹 워크스페이스: 여러 개의 프로젝트들을 가지고 있는 작업공간 프로젝트: 실행 파일을 만들기 위하여 필요한 파일들

31 비주얼 C++ 시작하기

32 프로젝트 생성하기

33 프로젝트 생성하기 ② ③ ④ ⑤ ① ⑥ 프로젝트 이름을 적어준다. Win32 콘솔 애플리케이션을 선택한다.
프로젝트가 저장되는 폴더를 지정한다. 프로젝트 이름을 적어준다. Win32 콘솔 애플리케이션을 선택한다.

34 프로젝트 생성하기 ① ② 비어있는 프로젝트를 만든다.
simple application을 선택하면 간단한 c++ 프로그램이 작성되니 주의!

35 소스 파일 생성하기

36 소스 파일에 프로그램 작성

37 비주얼 C++의 전체 구조 소스 파일을 에디팅하는 윈도우. 워크스페이스와 프로젝트에 속하는 파일을 보여준다.
컴파일과 링크과정에서의 메시지 출력.

38 프로그램 입력

39 컴파일하기

40 컴파일 결과

41 오브젝트 파일과 실행 파일의 생성 오브젝트 파일과 실행 파일이 생성된 것을 확인할 수 있다.

42 프로그램 실행 하기

43 실행 결과 화면

44 첫번째 프로그램의 설명 Hello World! /* 첫 번째 프로그램*/ #include <iostream>
using namespace std; // 이름 공간 설정 int main() { cout << "Hello World!\n“; // 화면에 문자열 출력 return 0; } Hello World!

45 주석 주석(comment): 프로그램에 대한 설명 /* 한줄로된주석 */ int main() /* 줄의일부분인주석 */
주석은 프로그램을 설명하는 글입니다. 주석(comment): 프로그램에 대한 설명 /* 한줄로된주석 */ int main() /* 줄의일부분인주석 */ /* 여러 줄로 된주석 */

46 헤더 파일 포함 #include는 소스 코드 안에 특정 파일을 현재의 위치에 포함
#include <iostream> #include는 소스 코드 안에 특정 파일을 현재의 위치에 포함 헤더 파일(header file): 컴파일러가 필요로 하는 정보를 가지고 있는 파일 iostream: 표준 입출력 스트림 주의!: 전처리기 지시자 문장 끝에는 세미콜론을 붙이면 안 된다.

47 이름 공간 using은 이름 공간을 지정하는 지시어이다.
using namespace std; using은 이름 공간을 지정하는 지시어이다. 프로그램에서는 많은 이름들이 사용되고 이들 이름들은 효율성을 위하여 이름 공간(name space)이라고 하는 몇 개의 영역으로 구성되어 있다. 이름 공간 std를 사용한다는 의미 print() { } print() { } libraryB libraryA

48 함수 int main() 입력 함수(function): 특정한 작업을 수행하기 위하여 작성된 독립적인 코드
(참고) 수학적인 함수 프로그램 = 함수의 집합 main()은 가장 먼저 수행되는 함수 함수 출력

49 함수의 구조

50 문장 함수는 여러 개의 문장으로 이루어진다. 문장들은 순차적으로 실행된다.

51 출력 객체 cout cout은 컴파일러가 제공하는 객체로서 출력을 담당합니다. 큰따옴표 안의 문자열을 화면에 출력합니다.
cout << “Hello World!\n”; cout은 컴파일러가 제공하는 객체로서 출력을 담당합니다. 큰따옴표 안의 문자열을 화면에 출력합니다. Hello World!

52 함수 반환문 return은 함수의 결과값을 외부로 반환합니다. return 0; 운영 체제 main()
cout << Hello World!\n”; return 0; 운영 체제

53 응용 프로그램 #1 다음과 같은 출력을 가지는 프로그램을 제작하여 보자. Hello World! Kim ChulSoo

54 첫번째 버전 문장들은 순차적으로 실행된다는 사실 이용 #include <iostream>
using namespace std; int main() { cout <<" Hello World! "; cout << “Kim ChulSoo"; return 0; } 우리가 원하는 결과가 아님! Hello World!Kim ChulSoo

55 줄바꿈 문자 \n 줄바꿈 문자인 \n은 화면에서 커서는 다음줄로 이동하게 한다.
cout << “Hello World!”; cout << “Hello World!\n”;

56 변경된 프로그램 줄바꿈 문자를 포함하면 우리가 원하던 결과가 된다. #include <iostream>
using namespace std; int main() { cout <<“Hello World!\n"; cout << “Kim ChulSoo\n”; return 0; } Hello World! Kim ChulSoo

57 응용 프로그램 #2 다음과 같은 출력을 가지는 프로그램을 제작하여 보자. 3X1=3 3X2=6 3X3=9

58 응용 프로그램 #2 역시 문장들은 순차적으로 수행된다는 점을 이용한다. #include <iostream>
using namespace std; int main() { cout <<“3X1=3\n"; cout <<“3X2=6\n"; cout <<“3X3=9\n"; return 0; }

59 오류 메시지의 분석

60 오류 수정 과정 소스파일 test.cpp 오브젝트 파일 test.obj 실행파일 test.exe 컴파일러 (compiler)
ERROR!! 소스파일 test.cpp 오브젝트 파일 test.obj 실행파일 test.exe 컴파일러 (compiler) 링커 (linker) 실행 (execution) 실행 시간 오류 논리 오류 컴파일 시간 오류

61 오류 수정 및 디버깅 컴파일이나 실행 시에 오류가 발생할 수 있다. 에러와 경고 에러(error): 심각한 오류
경고(warning): 경미한 오류 오류의 종류 컴파일 시간 오류: 대부분 문법적인 오류 실행 시간 오류: 실행 중에 0으로 나누는 연산 같은 오류 논리 오류: 논리적으로 잘못되어서 결과가 의도했던 대로 나오지 않는 오류

62 중간 점검 문제 1. 주석이 하는 역할은 무엇인가? 2. 주석을 여러 줄로 하려면 어떤 스타일을 사용하여야 하는가?
3. #include 문은 어떤 동작을 하는가?

63 Q & A


Download ppt "Power C++ 제1장 C++ 소개."

Similar presentations


Ads by Google