설계란 무엇인가?

Similar documents
설계란 무엇인가?

Microsoft PowerPoint - additional01.ppt [호환 모드]

C프로-3장c03逞풚

설계란 무엇인가?

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - C++ 5 .pptx

쉽게 풀어쓴 C 프로그래밍

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

설계란 무엇인가?

Microsoft PowerPoint - Chapter 1-rev

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

설계란 무엇인가?

PowerPoint Template

1. 표준입출력 C++ : C의모든라이브러리를포함 printf, scanf 함수사용가능예 : int, double, 문자열값을입력받고출력하기 #include <cstdio> int ivar; double dvar; char str[20]; printf("int, dou

PowerPoint Presentation

C++ Programming

설계란 무엇인가?

Microsoft PowerPoint - Chapter 6.ppt

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - 05장(함수) [호환 모드]

C++ Programming

Lab 3. 실습문제 (Single linked list)_해답.hwp

K&R2 Reference Manual 번역본

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - chap06-2pointer.ppt

The C++ Programming Language 5 장포인터, 배열, 구조체 5.9 연습문제 다음의선언문을순서대로작성해보자. 문자에대한포인터, 10개정수의배열, 10개정수의배열의참조자, 문자열의배열에대한포인터, 문자에대한포인터에대한포인터, 상수정수, 상수

슬라이드 1

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

1. 기본형의형변환복습 C/C++ 형변환의종류 자동형변환 ( 묵시적형변환 ) 강제형변환 ( 명시적형변환 ) 기본형의자동형변환의예 1. 배열 to 포인터변환 배열명은해당배열의첫번째원소의 주소로변환됨 int ary[10]; int *pary = ary; 2. 함수 to 포

슬라이드 1

PowerPoint 프레젠테이션

untitled

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

Microsoft PowerPoint - additional06.ppt [호환 모드]

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

untitled

윤성우의 열혈 TCP/IP 소켓 프로그래밍

PowerPoint 프레젠테이션

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

(Microsoft PowerPoint - 07\300\345.ppt [\310\243\310\257 \270\360\265\345])

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++,

(Microsoft PowerPoint - 11\300\345.ppt [\310\243\310\257 \270\360\265\345])

Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor

PowerPoint Template

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - chap10-함수의활용.pptx

Chapter_06

Microsoft PowerPoint - Chapter8.pptx

C 프로그래밊 개요

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

C 언어 프로그래밊 과제 풀이

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp

쉽게 풀어쓴 C 프로그래밍

슬라이드 1

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - chap05-제어문.pptx

The C++ Programming Language 4 장타입과선언 4.11 연습문제 Hello,world! 프로그램을실행시킨다. 프로그램이컴파일되지않으면 B3.1 을참고하자. #include<iostream> //#include 문, 헤더파일, 전처리지시

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

1. 상속의기본개념 다음과같은문제를위한클래스설계 자동차 속성 : 색상, 배기량, 현재속도 메서드 : 가속하라, 멈춰라, 시동을켜라 트럭 속성 : 색상, 배기량, 현재속도, 최대중량 메서드 : 가속하라, 멈춰라, 시동을켜라 택시 속성 : 색상, 배기량, 현재속도, 요금,

PowerPoint 프레젠테이션

C++ Programming

PowerPoint 프레젠테이션

프입2-강의노트-C++기초

03장.스택.key

080629_CFP °ø°³¿ë.hwp

Slide 1

Microsoft PowerPoint - chap11-포인터의활용.pptx

슬라이드 1

3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터

C 프로그램의 기본

12 장파일입출력 파일입출력의기초파일열기, 사용하기, 닫기파일입출력모드문자단위파일입출력텍스트파일과이진파일 read, write 함수에의한이진파일입출력임의접근입출력스트림상태입출력연산자오버로딩과파일입출력 C++ 프로그래밍입문

1. 클래스와배열 int 형배열선언및초기화 int ary[5] = 1, 2, 3, 4, 5 ; for (int i = 0; i < 5; i++) cout << "ary[" << i << "] = " << ary[i] << endl; 5 장클래스의활용 1

1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

Microsoft PowerPoint - chap-03.pptx

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

Visual C++ & OOP Fundamentals ( 2005/1/31~2005/2/4)

02장.배열과 클래스

5.스택(강의자료).key

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

Microsoft PowerPoint - Lesson2.pptx

UI TASK & KEY EVENT

Microsoft PowerPoint - chap12-고급기능.pptx

BMP 파일 처리

untitled

(Microsoft Word - \301\337\260\243\260\355\273\347.docx)

Microsoft PowerPoint - additional03.ppt [호환 모드]

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

2002년 2학기 자료구조


Microsoft PowerPoint - C프로그래밍-chap15.ppt [호환 모드]

Transcription:

금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하

4 강. 함수와라이브러리함수목차 함수오버로딩 디폴트매개변수 라이브러리함수 clock 함수 난수발생 비버퍼형문자입력 커서이동 프로그래밍문제 1 /21

4 강. 함수와라이브러리함수함수오버로딩 2 /21 함수오버로딩 동일한이름의함수를여러개만들수있음 함수프로파일이달라야함 함수프로파일 = 함수명 + 매개변수의개수 + 매개변수의타입 int Sum(int x, int y) cout << "int Sum" << endl; int z = x + y; return z; double Sum(double x, double y) cout << "double Sum" << endl; double z = x + y; return z; void main(void) cout << Sum(3, 4) << endl; cout << Sum(1.1, 2.2) << endl;

4 강. 함수와라이브러리함수함수오버로딩 사각형의면적, 원의면적을구하는함수 GetArea를각각만들고 main 함수와같이테스트해보라. 사각형의입력값 : 가로, 세로 원의입력각 : 반지름 모두 double 값으로처리하라. void main(void) cout << " 사각형면적 : " << GetArea(3, 4) << endl; cout << " 원면적 : " << GetArea(5) << endl; 3 /21

4 강. 함수와라이브러리함수함수오버로딩 프로그램확인 double GetArea(double Garo, double Sero) return (Garo * Sero); double GetArea(double Radius) return (3.14 * Radius * Radius); 4 /21

4 강. 함수와라이브러리함수디폴트매개변수 디폴트매개변수 대응되는매개변수의값이입력되지않을경우디폴트값 배정 마지막매개변수부터순차적으로디폴트값배정가능 int Sum(int Num1, int Num2, int Num3 = 1, int Num4 = 2, int Num5 = 3); void main(void) 값이넘어오지않을경우디폴트값 cout << Sum(1, 2) << endl; cout << Sum(1, 2, 3) << endl; cout << Sum(1, 2, 3, 4) << endl; cout << Sum(1, 2, 3, 4, 5) << endl; int Sum(int Num1, int Num2, int Num3, int Num4, int Num5) return (Num1 + Num2 + Num3 + Num4 + Num5); 5 /21

4 강. 함수와라이브러리함수디폴트매개변수 정수값 x의 y승을구하는 power 함수를만들어보라. 단, y 값이전달되지않을경우 x의 2승을반환하라. 디폴트매개변수를사용하여하나의함수만작성하라. void main(void) cout << "3의 2승 : " << power(3) << endl; cout << "3 의 4 승 : " << power(3, 4) << endl; 6 /21

4 강. 함수와라이브러리함수디폴트매개변수 프로그램확인 int power(int x, int y = 2) int result = 1; for (int i = 0; i < y; i++) result *= x; return result; 7 /21

4 강. 함수와라이브러리함수라이브러리함수 라이브러리 미리만들어놓은함수, 클래스의집합 C++ 프로그램제작 본인이직접함수와클래스작성 : 50% 미리준비되어있는라이브러리활용 : 50% C++ 표준라이브러리 C++ 표준에서기술되어있는라이브러리의집합 함수 클래스 템플릿등 8 /21

4 강. 함수와라이브러리함수라이브러리함수 여기서소개할라이브러리함수 함수명헤더파일용도 표준 / 비표준 clock <ctime> clock 기준경과시간표준 rand <cstdlib> 임의의난수발생표준 getch <conio.h> 비버퍼형문자입력비표준 SetConsoleCurs orposition <windows.h> 실행도스창의커서위치변경 비표준 9 /21

4 강. 함수와라이브러리함수라이브러리함수 clock 함수 프로그램실행시내부적인 clock 값이 0으로초기화됨 이값은초당일정횟수만큼 (CLOCKS_PER_SEC, 1000) 증가 특정시각사이의경과시간을알아오는활용 연습문제 1 부터 1 억까지의합을구하되계산소요시간을구해서출 력해보라. 합산시작시 clock 값 합산종료시 clock 값 10 /21

4 강. 함수와라이브러리함수라이브러리함수 프로그램확인 #include <iostream> #include <ctime> using namespace std; void main(void) clock_t time1 = clock(); cout << "time1 : " << time1 << endl; 현재 clock 수는 clock_t 타입 변수에저장 clock_t 는 int 와동일 int Sum = 0; for (int i = 1; i <= 100000000; i++) Sum += i; cout << " 합 : " << Sum << endl; 초단위시간간격구하기 11 /21 clock_t time2 = clock(); cout << "time2 : " << time2 << endl; cout << " 시간간격 : " << (double) (time2 - time1) / CLOCKS_PER_SEC << endl;

4 강. 함수와라이브러리함수라이브러리함수 rand 함수 : 임의의난수발생 난수의범위 : 0 ~ RAND_MAX (0x7FFF) srand 함수를통해난수발생기를초기화해야함 srand( 정수값 ) : 정수값이동일하면매번생성되는난수순서동일 정수값 : time(null) 함수사용 프로그램실행시마다다름 #include <iostream> #include <ctime> #include <cstdlib> using namespace std; void main(void) srand(time(null)); // time 함수 // srand, rand 함수 12 /21 for (int i = 0; i < 5; i++) cout << rand() << endl;

4 강. 함수와라이브러리함수라이브러리함수 가위, 바위, 보게임을만든다. 사용자는가위, 바위, 보중하나를선택하도록하고 컴퓨터는 rand 함수를사용하여무작위로내도록한다. 매번결과가다르도록 srand 함수를사용하라. 13 /21

4강. 함수와라이브러리함수 void main(void) srand(time(null)); int Com, Human; 라이브러리함수 프로그램확인 cout << " 가위 (0), 바위 (1), 보 (2) 입력 : "; cin >> Human; 14 /21 Com = rand() % 3; cout << " 저는 " << Com << " 을냈습니다." << endl; switch (Com) case 0 : if (Human == 0) cout << " 비겼습니다." << endl; else if (Human == 1) cout << " 당신이이겼습니다." << endl; else cout << " 제가이겼습니다." << endl; break; case 1 : // 생략 case 2 : // 생략

4 강. 함수와라이브러리함수라이브러리함수 getch 함수 : 비버퍼형문자입력 cin >> ch : 입력문자가화면에나타남. Enter 입력후실제실 행 ch = getch() : 입력문자가화면에나타나지않음. 바로실행 #include <iostream> #include <conio.h> using namespace std; void main(void) int ch; // getch 함수 while ((ch = getch())!= 'q') cout << (char) ch; 15 /21

4 강. 함수와라이브러리함수라이브러리함수 방향키를비롯하여현재입력한키가무엇인지알아내는함수 GetKey를만들기 게임프로그램제작시유용 void main(void) int ch; while ((ch = GetKey())!= KEY_ESC) switch (ch) case KEY_RIGHT : cout << "Key Right" << endl; break; case KEY_LEFT : cout << "Key Left" << endl; break; case KEY_UP : cout << "Key Up" << endl; break; case KEY_DOWN : cout << "Key Down" << endl; break; 16 /21

4 강. 함수와라이브러리함수라이브러리함수 방향키등특수키에해당하는키값을문자열상수로정의 ( 편의성 ) UP Key의경우키값이 72지만 72 값을갖는 H 문자와의혼동을피하기위해 256을더함 #include <iostream> #include <conio.h> // getch 함수 using namespace std; #define KEY_ESC 27 #define KEY_UP (256 + 72) #define KEY_DOWN (256 + 80) #define KEY_LEFT (256 + 75) #define KEY_RIGHT (256 + 77) int GetKey(void) int ch = getch(); 17 /21 방향키의경우 0 또는 224 라는값이 먼저입력된후해당방향키값이 입력됨 (2 자입력 ) if (ch == 0 ch == 224) ch = 256 + getch(); return ch;

4 강. 함수와라이브러리함수라이브러리함수 SetConsoleCursorPosition 함수 실행도스창의커서위치이동 디폴트크기 : (80, 25) 게임등동적인프로그램제작시유용 (0, 0) x #include <iostream> #include <windows.h> using namespace std; void main(void) 좌표를나타내는구조체 COORD Pos = 40, 12 ; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos); y (79, 24) cout << "*"; 모니터핸들 18 /21

4 강. 함수와라이브러리함수프로그래밍문제 0.5 초간격으로화면내의 ((0, 0)~(79, 24)) 임의의위 치에 * 가나타나도록만들어보라. 이전에있던 * 는삭제되어야한다. 19 /21

4 강. 함수와라이브러리함수프로그래밍문제 프로그램확인 #include <iostream> #include <cstdlib> #include <ctime> #include <windows.h> using namespace std; void GotoXY(int x, int y) // 커서위치이동 COORD Pos = x, y ; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos); 20 /21

4강. 함수와라이브러리함수프로그래밍문제 void main(void) srand(time(null)); clock_t time1 = clock(); clock_t time2; int x = -1, y = -1; 프로그램확인 while (true) time2 = clock(); if (((double) (time2 - time1) / CLOCKS_PER_SEC) > 0.5) if (x >= 0) // 현재위치삭제 GotoXY(x, y); cout << " "; x = rand() % 80; y = rand() % 25; GotoXY(x, y); 21 /21 cout << "*"; time1 = clock(); // 기준시간초기화