C++
프로그래밍 –
1장
C++프로그래밍 –
1장
1. 첫번째 C++ 프로그램 입력 / 컴파일 / 실행
2. 데이터 입력 . 3. 데이터 출력 4. 데이터 타입 5. 예제 프로그램
6. 프로그램 작성 방법
C++ 프로그램 개발 단계
①
텍스트 에디터로 C++ 언어 프로그램을 작성하여 파일 로 저장한다 .
②
소스 파일을 컴파일한다 .
③
프로그램을 실행한다 .
비주얼 스튜디오란 ?
통합 개발 환경 (IDE: integrated development envi-
ronment)은 프로그램 개발에 필수적인 편집 , 컴파일 ,
실행 , 디버깅 기능을 하나로 통합한 도구
비주얼 스튜디오 버전
커뮤니티 버전 (Visual Studio Community)
프로페셔널 버전 (Visual Studio Professional)
엔터프라이즈 버전 (Visual Studio Enterprise)
비주얼 스튜디오 설치
비주얼 스튜디오 설치
비주얼 스튜디오 설치
비주얼 스튜디오 설치
비주얼 스튜디오 설치
비주얼 스튜디오 설치
비주얼 스튜디오 사용
프로젝트란 ?
C++ 프로그램 작성을 위해서 프로젝트 (project) 를 생성 하는 것이 필요
프로젝트는 하나의 C++ 프로그램을 구성하는 소스파일 , 헤더 파일 , 리소스 파일 , 컴파일된 목적 코드 , 실행 파일 , 이들을 관 리하는 메타 파일 등을 포함하는 폴더
* 솔류션은 개발자의 모든 프로젝트를 포함
비주얼 스튜디오 사용
비주얼 스튜디오 사용
비주얼 스튜디오 사용
비주얼 스튜디오 사용
비주얼 스튜디오 사용
비주얼 스튜디오 사용
hello.cpp가 생성되어 저장되는 위치
첫번째 C++ 프로그램
/*
첫번째 C++ 프로그램
cout과 << 연산자를 이용하여 화면에 출력한다 .
*/
#include <iostream> // cout과 << 연산자 포함 using namespace std;
int main() {
cout << "Hello World!”<<endl;; // 화면에 Hello 를 출력하고 다음 줄로 넘어감
return 0; // main() 함수가 종료하면 프로그램이 종료됨 }
프로그램 입력 : 비주얼 스튜디오 사용
프로그램 컴파일 : 비주얼 스튜디오 사용
프로그램 실행 : 비주얼 스튜디오 사용
빌드와 실행 과정을 한번에 수행하려면 ? => “Ctrl+F5”
컴파일 오류
첫 번째 프로그램의 분석
cout 과 <<
cout 객체
스크린 출력 장치에 연결된 표준 C++ 출력 스트림 객체
<iostream> 헤더 파일에 선언
std 이름 공간에 선언 : std::cout으로 사용
<< 연산자
스트림 삽입 연산자 (stream insertion operator)
C++ 기본 산술 시프트 연산자 (<<) 가 스트림 삽입 연산자로 중복 정의됨
ostream 클래스에 구현됨
오른쪽 피연산자를 왼쪽 스트림 객체에 삽입
cout 객체에 연결된 화면에 출력
여러 개의 << 연산자로 여러 값 출력
cout << "Hello\n" << " 첫 번째 맛보기입니다 .";
using namespace std;
변수 이름이나 함수 이름과 같은 수많은 이름 ( 식별자 ) 들은 이름 공간 (name space) 이라고 하는 영역으로 분 리되어 저장
프로그램에서 사용되는 이름들간의 충돌 방지
개발자 자신만의 이름 공간을 생성할 수 있게 함
이름 충돌 사례
프로젝트를 여러 명이 나누어 개발하는 경우
다른 사람이 작성한 소스코드나 목적 파일을 사용하는 경우
std:: 란 ?
std
C++ 표준에서 정의한 이름 공간 (namespace) 중 하나
<iostream> 헤더 파일에 선언된 모든 이름 : std 이름 공간 안에 있음
cout, cin, endl 등
std 이름 공간에 선언된 이름을 접근하기 위해 std:: 접두어 사용
std::cout, std::cin, std::endl
std:: 생략
using 지시어 사용
Java 관련
namespace 는 package 와 동일한 개념
using 은 import 와 같음
#include <iostream> 과 std
<iostream> 이 통째로 std 이름 공간 내에 선언
<iostream> 헤더 파일을 사용하려면 다음 코드 필요
#include <iostream>
using namespace std;
데이터 입력 받기
#include <iostream>
using namespace std;
int main() {
cout << "너비를 입력하세요 >>";
int width;
cin >> width; // 키보드로부터 너비를 읽어 width 변수에 저장 cout << "높이를 입력하세요 >>";
int height;
cin >> height; // 키보드로부터 높이를 읽어 height 변수에 저장 int area = width*height; // 사각형의 면적 계산
cout << "면적은 " << area << "\n"; // 면적을 출력하고 다음 줄로 넘어감 }
너비를 입력하세요 >>3 높이를 입력하세요 >>5 면적은 15
cin 과 >> 연산자를 이용한 키 입력
cin
표준 입력 장치인 키보드를 연결하는 C++ 입력 스트림 객체
>> 연산자
스트림 추출 연산자 (stream extraction operator)
C++ 산술 시프트 연산자 (>>) 가 <iostream> 헤더 파일에 스 트림 추출 연산자로 중복정의됨
입력 스트림에서 값을 읽어 변수에 저장
연속된 >> 연산자를 사용하여 여러 값 입력 가능
cout << "너비와 높이를 입력하세요 >>";
cin >> width >> height;
cout << width << '\n' << height << '\n';
너비와 높이를 입력하세요 >>23 36 2336
cin 과 >> 연산자를 이용한 키 입력
다음의 모든 기본 타입에 대해서 >> 연산자로 데이터 입력 가능
bool, char, short, int, long, float, double
int i;
cin >> i; // 정수를 읽어서 i 에 저장
double f;
cin >> f; // 실수를 읽어서 f 에 저장
C++ 기본 데이터 타입
bool 타입
bool 형의 변수는 참 (true) 또는 거짓 (false) 만을 가질 수 있다 .
#include <iostream>
using namespace std; // 지금부터 이름공간으로 std 를 사용한다 .
int main() {
bool b;
b = true;
return 0;
}
문자열 : C++ string 클래스
#include <iostream>
#include <string> // string 사용시 포함되어야 함 using namespace std;
int main() {
string s1 = "Good";
string s2 = "Morning";
string s3 = s1 + " " + s2 + "!";
cout << s3 << endl;
return 0;
}
문자열 : C++ string 클래스
문자열 비교
문자열과 숫자 연결
string s1 = " 사과 "; string s2;
s2 = s1 + " " + to_string(10) + " 개 "; // 수치 사용시 오류 cout << s2 << endl;
string s1 = "Good";
string s2 = "Bad";
bool b = (s1 == s2);
문자열 : C++ string 클래스
문자열 입력
string name;
cout << “Enter your name: ”;
cin >>name;
cout <<name <<“are welcomed”<<endl;
문자열 : C 스타일
37
#include <iostream>
using namespace std;
int main() {
char name[11]; // 영문은 ? 까지 저장할 수 있다 . cout << " 이름을 입력하세요 >>";
cin >> name; // 키보드로부터 문자열을 읽는다 .
cout << " 이름은 " << name << " 입니다 \n"; // 이름을 출력한 다 .}
string 클래스
string 클래스
C++ 표준 클래스
#include <string> 필요
문자열의 크기에 따른 제약 없음
문자열 복사 , 비교 , 수정 등을 위한 다양한 함수와 연산자 제공
객체 지향적
C 의 스트링보다 다루기 쉬움
수식과 연산자
산술 연산자
증가 / 감소 연산자
++, --
Lab: 온도 단위 변환
우리나라는 섭씨 온도를 사용하지만 미국에서는 화씨 온
도를 사용한다 . 사용자로부터 화씨 온도를 읽어들여서
섭씨 온도로 바꾸어 출력하는 프로그램을 작성하여 보
자 .
Lab: 온도 단위 변환
코딩 알고리듬 작성
분석
프로그램 작성 방법
프로그램 작성 과정
42
입력 데이터
출력 데이터 처리사항
문제 분석 알고리즘 작성 코딩
프로그램 작성 방법
문제 요구사항을 정확히 기술
문제를 분석한다
알고리즘을 작성한다
프로그램을 작성한다
프로그램을 테스트하고 검증
문제를 완벽하고 모호함없이 기술
문제가 무엇을 요구하는지 기술
문제의 입력과 출력을 식별
입출력변수 정의 및 관계식 도출
문제해결 제약사항 및 추가 요구사항 고려
문제 해결 과정을 단계적으로 기술
알고리즘 생성 ( 데이터를 읽어들이고 , 데 이터를 처리하고 , 그 결과를 출력 )
코딩
다양한 입력 데이터에 대해서 테스트
입력 및 출력 데이터에 기준하여 프로그램
검증 43
문제 분석
44
입력 데이터
출력 데이터
처리사항 : 입출력관계
예제
입력 데이터 식별
각 데이터에 대한 변수명 , 타입 결정
출력 데이터 식별
각 데이터에 대한 변수명 , 타입 결정
출력 데이터가 입력 데이터로 어떻게 도출 되 는지 고려
입출력 데이터간의 관계식 도출
입출력 데이터 관계 도출을 위한 예제 생성
예제 제시
I
O P
E
알고리즘 기술 언어 : SPARKS
배정문
변수 <- 식
조건문
if (조건식) then S1 else S2
endif
if (조건 식) then S endif
Case 문
case
: cond1: S1 : cond2: S2
…
: condn: Sn : else: Sn+1 endcase
While 문
while cond do S
repeat
For 문
for variable <- start to finish by increment do S
repeat
Do-while 문
loop S
until cond repeat
알고리즘 기술 언어 : SPARKS
함수
procedure 함수이름 ( 매개변수리 스트 )
declarations S
return 식 end 함수이름
입출력문
read( 매개변수 리스트 ) print( 매개변수리스트 )
변수 선언
Integer a, b
타입
Integer, real, character, boolean
Integer a(0..size-1)
type term = record a: real
b: integer
c: array [1..max] of integers end
real a(1:n)
기타
부울 값은 true/false 사용
논리연산자 : and, or, not
관계연산자 : <, =, ≠, >, <=, >=
한 줄에 2 개 이상 문장 나열시 세미콜론으 로 구분
알고리즘 기술 언어 : SPARKS
procedure MAX(a, n) global real xmax
parameters integer n; real a(1:n) local integer i
xmax <- a(1) for i <- 2 to n do
if a(i) > xmax then xmax <- a(i)
endif repeat end MAX
start
integer xmax
call readData(a, n) call MAX(a, n)
print(xmax)
endLab: 시간 단위 변환
초단위의 시간을 입력받고 , 이를 시 , 분 , 초 단위의 시 간으로 변환하여 출력하는 C++ 프로그램을 작성하라 .
x seconds p Hours
q Minutes r Seconds
Lab: 시간 단위 변환