C++ Programming 2009 YU-ANTL WINTER C++ Camp Jan 4, 2010 Hyun Sagong Advanced Networking Technology Lab. (YU-ANTL) Dept. of Information & Comm. Eng, Undergraduate.

Slides:



Advertisements
Similar presentations
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
Advertisements

컴퓨터프로그래밍 I 강원대학교 컴퓨터학부 2012 년 1 학기 담당교수 : 정충교 1. 강사진 강사 : 정충교 교수 연구실 : 공 호 조교 : 3 분반 이남세 연구실 : 공
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 실 습실 습 1.
6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
© 2012 생능출판사 All rights reserved 쉽게 풀어쓴 C 언어 Express C Express 제 2 장 프로그램 개발과정.
YES C 제 1 장 C 언어의 개요 1/34 제 1 장 C 언어의 개요 문봉근. YES C 제 1 장 C 언어의 개요 2/34 제 1 장 C 언어의 개요 1.1 프로그램과 C 언어의 특징 1.2 C 언어의 프로그램 구성 1.3 비주얼 C++ 통합 환경 들어가기.
컴퓨터와 인터넷.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
제2장 프로그램 개발과정 C Express.
Vision System Lab, Sang-Hun Han
쉽게 풀어쓴 C언어 Express 제2장 프로그램 개발 과정 C Express.
쉽게 풀어쓴 C언어 Express 제2장 프로그램 개발과정 C Express Slide 1 (of 31)
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++로 프로그래밍한다는 것의 의미 세상에서 가장 간단한 C++ 프로그램
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++ 프로그래밍 기초 : 객체지향의 시작 C++로 프로그래밍한다는 것의 의미
Power C++ 제1장 C++ 소개.
C++ Espresso 제1장 기초 사항.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
C++ Espresso 제2장 제어문과 함수.
Database Laboratory, Hong Ik University
Power Java 제3장 이클립스 사용하기.
1. 컴파일러 개론 1-1. Compiler 정의 1-2. Language Processing System
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
쉽게 풀어쓴 C언어 Express 제2장 프로그램 개발과정 C Express.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
C언어 콘서트 제1장 프로그래밍 소개.
컴퓨터 프로그래밍 기초 [Final] 기말고사
누구나 쉽게 즐기는 C언어 콘서트 한남대학교 컴퓨터공학과 이 재 광 교수.
C 언어 1 1주차 C언어 시작하기 - 1차시 C 언어 특징 및 프로젝트 생성 Programming Language.
Kasimov C언어 세미나 1st.
Lesson 9. 예외처리.
C / C++ Programming in multi platform
C++ 프로그래밍 년 2학기 전자정보공학대학 컴퓨터공학부.
1. C++ 시작하기.
C++ Programming: Sample Programs
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
26. 매크로와 전처리기.
C언어 콘서트 제2장 기초 사항.
쉽게 풀어쓴 C언어 Express 제1장 프로그래밍의 개념 C Express.
13. 연산자 오버로딩.
C 2장. C 프로그램 시작하기 #include <stdio.h> int main(void) { int num;
C 프로그래밍 C언어 (CSE2035) (Chap11. Derived types-enumerated, structure, and union) (1-1) Sungwook Kim Sogang University Seoul, Korea Tel:
Method & library.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
프로그래밍 개요
어서와 C언어는 처음이지 제14장.
제2장 제어구조와 배열 if-else 문에 대하여 학습한다. 중첩 if-else 문에 대하여 학습한다.
Lesson 2. 기본 데이터형.
제 1장. C++ 시작하기.
쉽게 풀어쓴 C언어 Express 제2장 프로그램 작성 과정 C Express.
자바 5.0 프로그래밍.
LabVIEW WiznTec 주임 박명대 1.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
17장. 제어문과 내장 함수 제어문 내장 함수 제어문 내장 함수.
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
누구나 즐기는 C언어 콘서트 제2장 기초 사항 IT응용시스템공학과 김형진 교수.
쉽게 풀어쓴 C언어 Express 제2장 프로그램 개발 과정 C Express.
( Windows Service Application Debugging )
쉽게 풀어쓴 C언어 Express 제1장 프로그래밍의 개념 C Express.
알고리즘 알고리즘이란 무엇인가?.
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
공학도를 위한 C언어 프로그래밍실습1 -통합개발환경 사용법-
함수, 모듈.
발표자 : 이지연 Programming Systems Lab.
Numerical Analysis Programming using NRs
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
C.
1장. C Language Synopsis.
Presentation transcript:

C++ Programming 2009 YU-ANTL WINTER C++ Camp Jan 4, 2010 Hyun Sagong Advanced Networking Technology Lab. (YU-ANTL) Dept. of Information & Comm. Eng, Undergraduate School, Yeungnam University, KOREA (Tel : ; Fax :

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL 2009 Summer C Camp HeeChang Kim 2 Outline  Programming?  Algorithm  Program Develop Procedure  Visual C Programming environment  Variable type  Selection statements  Repetition statements  Input/output statements  Reference

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL 2009 Summer C Camp HeeChang Kim 3 Programming?  Program 본래 ‘ 미리 쓴다 ’ 는 뜻을 지닌 라틴어에서 유래한 말 애플리케이션이나 사용자 데이터를 조작할 수 있도록 방법을 제시하는 하나의 특수한 데이터  Programming Program 을 만드는 것  Language Machine Language  특정 컴퓨터의 명령어 (instruction) 를 이진수로 표시한 것  0 과 1 로 구성 Assembly Language  영어의 약자인 기호로 표기  기호와 CPU 의 명령어가 일대일 대응  Assembler high-level language  특정한 컴퓨터의 구조나 프로세서에 무관하게, 독립적으로 프로그램을 작성할 수 있는 언어  C, C++, JAVA, FORTRAN, PASCAL  Compiler

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL 2009 Summer C Camp HeeChang Kim 4 Language  C & C++ C  1970 년대 초 AT&T 의 Dennis Ritchie 에 의하여 개발  간결함, 효율적, 뛰어난 이식성  하드웨어의 직접 제어를 위한 저수준의 프로그래밍도 가능 C++  C 의 확장판으로 만들어진 객체지향형 프로그래밍 언어  대규모 응용프로그램들을 만드는데 있어 최적의 객체지향 프로그래밍언어로 간주됨  C 의 대부분의 특징을 포함함으로서 시스템 프로그래밍에 적합  Class, overloading, virtual function 등과 같은 특징을 갖추고 있어 객체지향 프로그래밍에 적합  객체지향 프로그래밍 (object-oriented programming) – 모든 데이터를 오브젝트 (object: 물체 ) 로 취급하여 프로그래밍 하는 방법으로, 처리 요구를 받은 객체가 자기 자신의 안에 있 는 내용을 가지고 처리하는 방식 – 객체라는 작은 단위로서 모든 처리를 기술하는 프로그래밍 방법으로서, 모든 처리는 객체에 대한 요구의 형태로 표현되며, 요구를 받은 객체는 자기 자신 내에 기술되어 있는 처리를 실행 – 프로그램이 단순화되고, 생산성과 신뢰성이 높은 시스템을 구축 가능

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL 2009 Summer C Camp HeeChang Kim 5 Algorithm  Algorithm An algorithm is a series of mathematical steps, especially in a computer program, which will give you the answer to a particular kind of problem or question 어떤 문제의 해결을 위하여, 입력된 자료를 토대로 하여 원하는 출력을 유도하여 내는 규칙의 집합. 즉, 문제의 해결을 위하여 컴퓨터가 수행할 단계적인 절차를 기 술한 것  Ex)  Natural Language  Flow Chart  Pseudo Code

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL 2009 Summer C Camp HeeChang Kim 6 Algorithm(2)  Natural Language 인간이 사용하는 언어 단어들을 명백하게 정의해야 한다  Flow Chart( 순서도 ) 프로그램에서의 논리순서 또는 작업순서 등을 그래픽으로 표현하기 위한 형식 알고리즘이 복잡하면 기술하기가 힘듦 Ex)

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL 2009 Summer C Camp HeeChang Kim 7 Algorithm(2)  Pseudo Code 의사코드, 자연어보다는 더 체계적이고 프로그래밍 언어보다는 덜 엄격한 언어로 서 알고리즘의 표현에 주로 사용되는 코드 Ex) 알고리즘 GetLargest 입력 : 숫자들의 리스트 L. 출력 : 리스트에서 가장 큰 값 ======================== largest ← L[0] for each n in L do if n > largest then largest ← n return largest ========================

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL 2009 Summer C Camp HeeChang Kim 8 Algorithm(3)  Design an Algorithm 문제를 한 번에 해결하려고 하지 말고 더 작은 크기의 문제들로 분해 충분히 작아질 때까지 계속해서 분해 Ex) 주어진 정수 k 가 소수 (prime) 인가 아닌가를 판별하는 알고리즘 문제 : 주어진 정수 k 가 소 수인지를 판별하라 STEP 1: 정수 k 의 약수의 개수를 구한다. STEP 2: 약수의 개수가 2 이면 소수이다. STEP 1-1: 정수 k 를 1 로 나누어서 떨어지면 약수 의 개수를 증가 STEP 1-2: 정수 k 를 2 로 나누어서 떨어지면 약수 의 개수를 증가 STEP 1-k: 정수 k 를 k 로 나 누어서 떨어지면 약수의 개수를 증가...

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL 2009 Summer C Camp HeeChang Kim 9 Program Develop Procedure 요구사항 분석 : 사용자들의 요구사항을 만족 시켜야 함  요구 사항 명세서 : 사용자의 요구 조건을 만족하도록 소프트웨어가 갖는 기능 및 제약 조건, 성능 목표 등을 포함 알고리즘 개발 : 어떤 단계를 밟아서 어떤 순서로 작업을 처리할 것인 지를 설계  알고리즘은 프로그래밍 언어와는 무관  알고리즘은 원하는 결과를 얻기 위하여 밟아야 하는 단계에 집중적으로 초점 을 맞추는 것 코딩 (coding) : 알고리즘의 각 단계를 프로그래밍 언어를 이용하여 기 술 컴파일 (compile) : 소스 프로그램을 목적 프로그램으로 변환 링크 (link) : 컴파일 된 목적 프로그램을 라이브러리와 연결하여 실행 프로그램을 작성 실행 (execution)  run time error : divide by zero, memory address access error  logical error 디버깅 (debugging) : 소스에 존재하는 오류를 바로 잡는 것 유지보수 (maintenance)  디버깅 후에도 버그가 남아 있을 가능성  사용자의 추가 요구 가능성  유지 보수 비용이 전체 비용의 50% 이상을 차지 요구사항분석 알고리즘의 개발 코딩 컴파일과 링크 실행과 디버깅 유지보수

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL 2009 Summer C Camp HeeChang Kim 10 Program Develop Procedure(2) 소스파일 test.c 소스파일 test.c 오브젝트 파일 test.obj 오브젝트 파일 test.obj 실행파일 test.exe 실행파일 test.exe 컴파일러 (compiler) 컴파일러 (compiler) 링커 (linker) 링커 (linker) 로더 (loader) 로더 (loader) 에디터 (editer) 에디터 (editer) 통합 개발 환경 (IDE)

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL 2009 Summer C Camp HeeChang Kim 11 Visual C Programming environment  통합 개발 환경 IDE : integrated development environment Editer + Compiler + Debugger Editer Compiler Debugger

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL Lab. Seminar Name of Author(s) 12 Variable Type  integer short : ~65535 (2bytes) int : ~ (4bytes) long : ~ (4bytes)  real float : -1.7E38~1.7E38 (4bytes) double : -3.4E308~3.4E308 (8bytes) long double : -3.4E308~3.4E308 (8bytes)  character char : -128~127 (1bytes) 12

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL Lab. Seminar Name of Author(s) 13 Identifier  Identifier : The name of a variable or a function  rules Identifier is consists of number, alphabet and under-line(_) Identifier must not begin with number Identifier keeps distinct capital and lowercase  Example s, s1, student_number $s(x), 2 nd _student(x), int(x) 13

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL Lab. Seminar Name of Author(s) 14 Preparation for Lecture  Make a project and write the source code for following step. #include using namespace std; void main(){ } 14

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL Lab. Seminar Name of Author(s) 15 Selection Statement(1) If  문법 if (condition) { statement; }  예제 int a = 0; if (a == 0) { cout << “a is zero!” << endl; } 15

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL Lab. Seminar Name of Author(s) 16 Selection Statement(2) If/else  문법 if (condition) { statement; } else if (condition){ statement; } else { statement; } 16 예제 int a = 1; if (a == 0) { cout << “a is zero!” << endl; } else if (a < 0 ) { cout << “a is negative.” << endl; else { cout << “a is positive.” << endl; }

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL Lab. Seminar Name of Author(s) 17 Selection Statement(3) Switch/case  문법 switch (variable) { case value: statement; break; case value: statement; break; default: break; } 17 예제 #include “stdlib.h” int a = rand()%5; switch (a){ case 0: cout << “a is zero” << endl; break; case 1: cout << “a is one” << endl; break; default: cout <<“a is not zero or one” << endl; break; }

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL Lab. Seminar Name of Author(s) 18 Repetition Statement (1) while  문법 while(condition){ statement; }  예제 int a = 5; while(a > 0){ cout << “a (“ << a << “) is positive” << endl; a = a – 1; } 18

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL Lab. Seminar Name of Author(s) 19 Repetition Statement(2) do/while  문법 do{ statement; } while(condition);  예제 int a = 5; do{ a = a-1; cout 0) ; 19

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL Lab. Seminar Name of Author(s) 20 Repetition Statement(3) for  문법 for(initial statement; conditional expression; loop statement){ statement; }  예제 int a, b; for(a = 0, b = 1; a < 5;a ++) { cout << “a : “ << a << endl; } 20

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL Lab. Seminar Name of Author(s) 21 Repetition Statement (4)  Continue / break statements Continue  예제 int a = 5; do{ cout 0) ; 21

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL Lab. Seminar Name of Author(s) 22 Repetition Statement(5)  Continue / break statements break  예제 int a = 5; do{ cout 0) ; 22

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL Lab. Seminar Name of Author(s) 23 Input/Output Statement(1)  cout 예제 cout <<“Hello” << endl; cout << “Today is “ << month << day << endl;  cin 예제 char name[20]; cin >> name; cout << “name : “ << name << endl; 23

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL 2009 Summer C Camp HeeChang Kim 24 Assignment  직렬 RLC 회로 공진 주파수 계산 ( 히스토그램 )

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL 2009 Summer C Camp HeeChang Kim 25 Assignment – Ex  비주얼 C++ 실행  워크스페이스 (workspace) 작업 공간, 여러 개의 프로젝트가 있을 수 있음  프로젝트 (project) 하나의 실행 파일을 만들기 위하여 필요한 파일들의 그룹

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL 2009 Summer C Camp HeeChang Kim 26 Assignment – Ex(2)

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL 2009 Summer C Camp HeeChang Kim 27 Assignment – Ex(3) ② ③ ①

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL 2009 Summer C Camp HeeChang Kim 28 Assignment – Ex(4) ① ②

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL 2009 Summer C Camp HeeChang Kim 29 Assignment – Ex(5) ② ③ ① ④

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL 2009 Summer C Camp HeeChang Kim 30 Assignment – Ex(6) ① ② ③

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL 2009 Summer C Camp HeeChang Kim 31 Assignment – Ex(7) 워크스페이스와 프로젝트에 속하는 파일을 보여준다. 소스 파일을 에디팅하는 윈도우. 컴파일과 링크과정에서의 메시지 출력. #include using namespace std; int main() { cout << " Hello World!“<< endl; return 0; }

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL 2009 Summer C Camp HeeChang Kim 32 Assignment – Ex(8) 빌드 (build) 란 보통 컴 파일과 링크를 수행 하여 실행 파일을 작 성하는 것을 의미한 다.

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL 2009 Summer C Camp HeeChang Kim 33 Assignment – Ex(9) 에러가 없다면 이런 화면 이 나온다.

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL 2009 Summer C Camp HeeChang Kim 34 Assignment – Ex(10)

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL 2009 Summer C Camp HeeChang Kim 35 Assignment – Ex(11)

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL 2009 Summer C Camp HeeChang Kim 36 Assignment – Ex(12)  주석 (comment) 프로그램에 대한 설명  Including Header file #include 는 소스 코드 안에 특정 파일을 현재의 위치에 포함 헤더 파일 (header file): 컴파일러가 필요로 하는 정보를 가지고 있는 파일 iostream: input output stream 주의 ! : 전처리기 지시자 문장 끝에는 세미콜론을 붙이면 안 됨 // 한줄로된주석 /* 한줄로된주석 */ int main() // 줄의일부분인주석 /* 여러 줄로 된주석 */ // 한줄로된주석 /* 한줄로된주석 */ int main() // 줄의일부분인주석 /* 여러 줄로 된주석 */ #include

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL 2009 Summer C Camp HeeChang Kim 37 Assignment – Ex(13)  함수 (function) 특정한 작업을 수행하기 위하여 작성된 독립적인 코드  프로그램 = 함수의 집합  main() 은 가장 먼저 수행되는 함수  함수의 시작과 끝은 중괄호 ({}) 로 정의 – int main() » int : return type » main : function name » () : argument  Sentence 함수는 여러 개의 문장으로 이루어짐 문장들은 순차적으로 실행 int main()

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL 2009 Summer C Camp HeeChang Kim 38 Assignment – Ex(14)  출력 함수 cout cout 는 iostream 이 제공하는 함수로서 출력을 담당 큰따옴표 안의 문자열을 화면에 출력  함수 반환문 return 은 함수의 결과값을 외부로 반환 return 0; cout << “Hello World!”; main() Cout << “Hello World!”; return 0; 운영 체제

Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) YU-ANTL Lab. Seminar Name of Author(s) 39 References [1] 천인국, “ 쉽게 풀어쓴 C 언어 Express,” 생능출판사, 2007.