• 검색 결과가 없습니다.

프로그래밍 –

N/A
N/A
Protected

Academic year: 2021

Share "프로그래밍 – "

Copied!
49
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

C++

프로그래밍 –

1

C++

프로그래밍 –

1

1. 첫번째 C++ 프로그램 입력 / 컴파일 / 실행

2. 데이터 입력 . 3. 데이터 출력 4. 데이터 타입 5. 예제 프로그램

6. 프로그램 작성 방법

(2)

C++ 프로그램 개발 단계

텍스트 에디터로 C++ 언어 프로그램을 작성하여 파일 로 저장한다 .

소스 파일을 컴파일한다 .

프로그램을 실행한다 .

(3)

비주얼 스튜디오란 ?

통합 개발 환경 (IDE: integrated development envi-

ronment)

은 프로그램 개발에 필수적인 편집 , 컴파일 ,

실행 , 디버깅 기능을 하나로 통합한 도구

(4)

비주얼 스튜디오 버전

커뮤니티 버전 (Visual Studio Community)

프로페셔널 버전 (Visual Studio Professional)

엔터프라이즈 버전 (Visual Studio Enterprise)

(5)

비주얼 스튜디오 설치

(6)

비주얼 스튜디오 설치

(7)

비주얼 스튜디오 설치

(8)

비주얼 스튜디오 설치

(9)

비주얼 스튜디오 설치

(10)

비주얼 스튜디오 설치

(11)

비주얼 스튜디오 사용

(12)

프로젝트란 ?

C++ 프로그램 작성을 위해서 프로젝트 (project) 를 생성 하는 것이 필요

프로젝트는 하나의 C++ 프로그램을 구성하는 소스파일 , 헤더 파일 , 리소스 파일 , 컴파일된 목적 코드 , 실행 파일 , 이들을 관 리하는 메타 파일 등을 포함하는 폴더

* 솔류션은 개발자의 모든 프로젝트를 포함

(13)

비주얼 스튜디오 사용

(14)

비주얼 스튜디오 사용

(15)

비주얼 스튜디오 사용

(16)

비주얼 스튜디오 사용

(17)

비주얼 스튜디오 사용

(18)

비주얼 스튜디오 사용

hello.cpp가 생성되어 저장되는 위치

(19)

첫번째 C++ 프로그램

/*

첫번째 C++ 프로그램

cout과 << 연산자를 이용하여 화면에 출력한다 .

*/

#include <iostream> // cout과 << 연산자 포함 using namespace std;

int main() {

cout << "Hello World!”<<endl;; // 화면에 Hello 를 출력하고 다음 줄로 넘어감

return 0; // main() 함수가 종료하면 프로그램이 종료됨 }

(20)

프로그램 입력 : 비주얼 스튜디오 사용

(21)

프로그램 컴파일 : 비주얼 스튜디오 사용

(22)

프로그램 실행 : 비주얼 스튜디오 사용

빌드와 실행 과정을 한번에 수행하려면 ? => “Ctrl+F5”

(23)

컴파일 오류

(24)

첫 번째 프로그램의 분석

(25)

cout 과 <<

cout 객체

스크린 출력 장치에 연결된 표준 C++ 출력 스트림 객체

<iostream> 헤더 파일에 선언

std 이름 공간에 선언 : std::cout으로 사용

<< 연산자

스트림 삽입 연산자 (stream insertion operator)

C++ 기본 산술 시프트 연산자 (<<) 가 스트림 삽입 연산자로 중복 정의됨

ostream 클래스에 구현됨

오른쪽 피연산자를 왼쪽 스트림 객체에 삽입

cout 객체에 연결된 화면에 출력

여러 개의 << 연산자로 여러 값 출력

cout << "Hello\n" << " 첫 번째 맛보기입니다 .";

(26)

using namespace std;

변수 이름이나 함수 이름과 같은 수많은 이름 ( 식별자 ) 들은 이름 공간 (name space) 이라고 하는 영역으로 분 리되어 저장

프로그램에서 사용되는 이름들간의 충돌 방지

개발자 자신만의 이름 공간을 생성할 수 있게 함

이름 충돌 사례

프로젝트를 여러 명이 나누어 개발하는 경우

다른 사람이 작성한 소스코드나 목적 파일을 사용하는 경우

(27)

std:: 란 ?

std

C++ 표준에서 정의한 이름 공간 (namespace) 중 하나

<iostream> 헤더 파일에 선언된 모든 이름 : std 이름 공간 안에 있음

cout, cin, endl 등

std 이름 공간에 선언된 이름을 접근하기 위해 std:: 접두어 사용

std::cout, std::cin, std::endl

std:: 생략

using 지시어 사용

Java 관련

namespace 는 package 와 동일한 개념

using 은 import 와 같음

(28)

#include <iostream> 과 std

<iostream> 이 통째로 std 이름 공간 내에 선언

<iostream> 헤더 파일을 사용하려면 다음 코드 필요

#include <iostream>

using namespace std;

(29)

데이터 입력 받기

#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

(30)

cin 과 >> 연산자를 이용한 키 입력

cin

표준 입력 장치인 키보드를 연결하는 C++ 입력 스트림 객체

>> 연산자

스트림 추출 연산자 (stream extraction operator)

C++ 산술 시프트 연산자 (>>) 가 <iostream> 헤더 파일에 스 트림 추출 연산자로 중복정의됨

입력 스트림에서 값을 읽어 변수에 저장

연속된 >> 연산자를 사용하여 여러 값 입력 가능

cout << "너비와 높이를 입력하세요 >>";

cin >> width >> height;

cout << width << '\n' << height << '\n';

너비와 높이를 입력하세요 >>23 36 2336

(31)

cin 과 >> 연산자를 이용한 키 입력

다음의 모든 기본 타입에 대해서 >> 연산자로 데이터 입력 가능

bool, char, short, int, long, float, double

int i;

cin >> i; // 정수를 읽어서 i 에 저장

double f;

cin >> f; // 실수를 읽어서 f 에 저장

(32)

C++ 기본 데이터 타입

(33)

bool 타입

bool 형의 변수는 참 (true) 또는 거짓 (false) 만을 가질 수 있다 .

#include <iostream>

using namespace std; // 지금부터 이름공간으로 std 를 사용한다 .

int main() {

bool b;

b = true;

return 0;

}

(34)

문자열 : 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;

}

(35)

문자열 : C++ string 클래스

문자열 비교

문자열과 숫자 연결

string s1 = " 사과 "; string s2;

s2 = s1 + " " + to_string(10) + " 개 "; // 수치 사용시 오류 cout << s2 << endl;

string s1 = "Good";

string s2 = "Bad";

bool b = (s1 == s2);

(36)

문자열 : C++ string 클래스

문자열 입력

string name;

cout << “Enter your name: ”;

cin >>name;

cout <<name <<“are welcomed”<<endl;

(37)

문자열 : C 스타일

37

#include <iostream>

using namespace std;

int main() {

char name[11]; // 영문은 ? 까지 저장할 수 있다 . cout << " 이름을 입력하세요 >>";

cin >> name; // 키보드로부터 문자열을 읽는다 .

cout << " 이름은 " << name << " 입니다 \n"; // 이름을 출력한 다 .}

(38)

string 클래스

string 클래스

C++ 표준 클래스

#include <string> 필요

문자열의 크기에 따른 제약 없음

문자열 복사 , 비교 , 수정 등을 위한 다양한 함수와 연산자 제공

객체 지향적

C 의 스트링보다 다루기 쉬움

(39)

수식과 연산자

산술 연산자

증가 / 감소 연산자

++, --

(40)

Lab: 온도 단위 변환

우리나라는 섭씨 온도를 사용하지만 미국에서는 화씨 온

도를 사용한다 . 사용자로부터 화씨 온도를 읽어들여서

섭씨 온도로 바꾸어 출력하는 프로그램을 작성하여 보

자 .

(41)

Lab: 온도 단위 변환

코딩 알고리듬 작성

분석

(42)

프로그램 작성 방법

프로그램 작성 과정

42

입력 데이터

출력 데이터 처리사항

문제 분석 알고리즘 작성 코딩

(43)

프로그램 작성 방법

문제 요구사항을 정확히 기술

문제를 분석한다

알고리즘을 작성한다

프로그램을 작성한다

프로그램을 테스트하고 검증

 문제를 완벽하고 모호함없이 기술

 문제가 무엇을 요구하는지 기술

문제의 입력과 출력을 식별

입출력변수 정의 및 관계식 도출

 문제해결 제약사항 및 추가 요구사항 고려

문제 해결 과정을 단계적으로 기술

알고리즘 생성 ( 데이터를 읽어들이고 , 데 이터를 처리하고 , 그 결과를 출력 )

 코딩

 다양한 입력 데이터에 대해서 테스트

 입력 및 출력 데이터에 기준하여 프로그램

검증 43

(44)

문제 분석

44

입력 데이터

출력 데이터

처리사항 : 입출력관계

예제

입력 데이터 식별

 각 데이터에 대한 변수명 , 타입 결정

출력 데이터 식별

각 데이터에 대한 변수명 , 타입 결정

출력 데이터가 입력 데이터로 어떻게 도출 되 는지 고려

 입출력 데이터간의 관계식 도출

입출력 데이터 관계 도출을 위한 예제 생성

 예제 제시

I

O P

E

(45)

알고리즘 기술 언어 : 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

(46)

알고리즘 기술 언어 : 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 개 이상 문장 나열시 세미콜론으 로 구분

(47)

알고리즘 기술 언어 : 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)

end

(48)

Lab: 시간 단위 변환

초단위의 시간을 입력받고 , 이를 시 , 분 , 초 단위의 시 간으로 변환하여 출력하는 C++ 프로그램을 작성하라 .

x seconds p Hours

q Minutes r Seconds

(49)

Lab: 시간 단위 변환

코딩 알고리듬 작성

분석

참조

관련 문서

 상점에서 고객이 상품을 사고 돈을 냈을 경우에 거스름돈을 계산해주 는 프로그램을 작성하여 보자 .... 핵심예제

프로그래밍

프로그래밍

전류가 흐를때 1, 흐르지 않을 때 0으로만 숫자를 표현할 수 있음 이진수 한자리를 bit라 칭하고 8개의 bit는

 클래스계층 공유어프로치에서는, 부모(parent)클래스에 정의되어 있는 정보의 조작은 자식(child)클래스에서 정의되지 않고, 정의되지 않은 나머지 것만을

TransferDatabase 다른 데이터베이스 파일과의 가져오기, 내보내기, 연결 등을 지원한다. TransferSpreadsheet 스프레드시트

• 이번 실습에서는 Practice13_1 프로그램을 수 정하여, 곡선의 컨트롤 포인트를 마우스의 드 래깅으로 이동하여 곡선을 업데이트하도록 할 것이고, 곡선을

첫 번째 worker 함수 호출 10번 결과를 출력. 두 번째 worker 함수 호출