슬라이드 1

Similar documents
OCW_C언어 기초

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

PowerPoint 프레젠테이션

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

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

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

Infinity(∞) Strategy

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint - chap06-2pointer.ppt

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍

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

중간고사

비트와바이트 비트와바이트 비트 (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 - [2009] 02.pptx

Microsoft PowerPoint - chap05-제어문.pptx

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - Java7.pptx

untitled

Microsoft PowerPoint - chap-05.pptx

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

untitled

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

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - C++ 5 .pptx

슬라이드 1

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

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

Microsoft PowerPoint - chap-06.pptx

<4D F736F F F696E74202D20C1A63036C0E520BCB1C5C3B0FA20B9DDBAB928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Java ...

Chapter_06

슬라이드 1


Microsoft PowerPoint - ch01.ppt

PowerPoint 프레젠테이션

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

untitled

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

윈도우즈프로그래밍(1)

Microsoft PowerPoint - Chapter_04.pptx

PowerPoint 프레젠테이션

슬라이드 1

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

슬라이드 1

Microsoft PowerPoint - chap-03.pptx

Microsoft PowerPoint - Lesson2.pptx

4.0 개요 p.116 수식 (expression) 연산자 (operator) 와피연산자 (operand) 로구성 수식은평가 (evaluate) 되어최종적으로 1 개의결과값이됨 피연산자 : 상수, 변수, 또다른수식 sum - 10 (a+b) / 2 연산자 2

Microsoft PowerPoint - ch07 - 포인터 pm0415

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

C 프로그래밊 개요

JAVA PROGRAMMING 실습 02. 표준 입출력

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

PowerPoint Presentation

PowerPoint 프레젠테이션

본 강의에 들어가기 전

쉽게 풀어쓴 C 프로그래밍

untitled

PowerPoint 프레젠테이션

쉽게

06 세상을 변화시키는 연산자

Microsoft PowerPoint - Perpect C 02.ppt [호환 모드]

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - chap-07.pptx

<4D F736F F F696E74202D20C1A635C0E520BCF6BDC4B0FABFACBBEAC0DA>

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - 2주차-1차시 (강의자료) ch01 - C Programming 기초 (part 2)

OCW_C언어 기초

Microsoft PowerPoint - CP_02_Convert_To_C_02_Step.pptx

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

슬라이드 1

슬라이드 1

PowerPoint Presentation

Microsoft PowerPoint - Lesson6.pptx

PowerPoint Presentation

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

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

11장 포인터

Microsoft PowerPoint - 5장 조건문 pptx

Microsoft PowerPoint - Chapter_02.pptx

C 프로그램의 기본

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

OCW_C언어 기초

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

PowerPoint 프레젠테이션

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

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

프로그램의실행화면 주석 (comment) 두수의합 : 300 /* 두개의숫자의합을계산하는프로그램 */ 주석은코드를설명하는글입니다. 주석 3 가지방법의주석 주석의예 /* 한줄로된주석 */ /* 저자 : 홍길동날짜 : 2013.

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

PowerPoint 프레젠테이션

Microsoft PowerPoint - c2.ppt

Microsoft PowerPoint - gnu-w10-c-chap11

슬라이드 1

C 언어의구성요소인상수, 변수, 입 출력함수에 대하여학습

Microsoft PowerPoint - 03_(C_Programming)_(Korean)_Pointers

03 상수, 변수, 자료형

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

Transcription:

프로그래밍개요 page0 프로그램 (program) 이란? page1 1

프로그램 (program) 이란? page2 프로그램 (program) 이란?? 프로그램가방 page3 2

프로그램 (program) 이란? 명령어 명령어 명령어 명령어명령어명령어명령어명령어 명령어 page4 프로그램 (program) 이란? X O page5 3

프로그램 (program) 이란? 컴퓨터에게시키는일을처리하기위한컴퓨터가명령어를처리해야하는순서 명령어 + 순서 컴퓨터가이해가능한언어 page6 프로그래밍 (programming) 이란? 프로그래밍 : 프로그램을만드는 프로그램을만드는언어 프로그래밍언어 page7 4

프로그래밍언어 (programming language) 저급언어 (low level language) 컴퓨터가이해하기쉬운명령어기계어 (machine language) : 0,1 어셈블리어 (assembly language) : 기호, 숫자 고급언어 (high level language) 인간이이해하기쉬운명령어영어와숫자고급언어를저급언어로번역과정이필요 C, Visual Basic, Java 등 page8 구조적프로그램과객체지향적프로그램의차이 영희가철수를부를때마다철수가하는말 1. 쉿! 2. 아이부끄러워 3. 어머나 정해진순서대로반복적으로철수가해야함 구조적프로그램 (structured program) page9 5

구조적프로그램과객체지향적프로그램의차이 쉿 1 아이부끄러워 영희가존재하고행위가발생할때철수가말을함 object 어머나 event 객체지향적프로그램 (object oriented program) page10 구조적프로그램과객체지향적프로그램의차이 객체지향적프로그램 ( 사건 ) 구조적프로그램 ( 순서 ) page11 6

IDE(Integrated Development Environment) SOURCE FILE (*.cpp) (*.c) Compilor OBJECT FILE (*.obj) Linker EXECUTION FILE (*.exe) Visual C++ 6.0 page12 Visual C++ 사용 STEP1 : File > New 를선택한다. page13 7

Visual C++ 사용 STEP2 : New 대화상자에서 Win32 Console Applicaiton 를선택한다. page14 Visual C++ 사용 page15 8

Visual C++ 사용 page16 Visual C++ 사용 page17 9

Visual C++ 사용 STEP3 : File > New 를선택한다. page18 Visual C++ 사용 STEP4 : New 대화상자에서 C++ Source file 를선택한다. page19 10

Visual C++ 사용 STEP5 : 프로그램을입력한다. page20 Visual C++ 사용 STEP6 : 저장한다.(Save All) page21 11

Visual C++ 사용 STEP7 : 실행한다.(Ctrl+F5) page22 Visual C++ 사용 page23 12

Visual C++ 사용 page24 Visual C++ 사용 page25 13

Visual C++ 사용 STEP8 : 에러 page26 Visual C++ 사용 STEP8 : File > Close Workspace 를선택한다. page27 14

Visual C++ 사용 page28 Visual C++ 사용 STEP9 : File > Open Workspace... 를선택한다. page29 15

Visual C++ 사용 page30 입출력 page31 16

C 언어유래및특징 HISTORY 1972 2013 미국 Bell 연구소, UNIX OS 개발용 FEATURE 연산자가多연산속도가빠름함수 (function) 집합영어의대문자와소문자구별명령어의마지막에는세미콜론 (;) page32 주석 (Comment) 프로그램의설명을위해서사용 // 또는 /* */ 를사용 // : 줄끝까지문장을컴파일러가번역하지않음 /* */ : * 사이의문장을컴파일러가번역하지않음 page33 17

주석 (Comment) 프로그램의에러 ( 논리적 ) 수정을위해서도사용 page34 표준출력문 표준출력함수 printf 사용형식 : printf( 출력할내용 ); page35 18

표준출력문 표준 ( 기본 ) 출력함수 : 모니터에출력 : printf 사용형식 : printf( 출력할내용 ); page36 표준출력문 FOR REAL WHY page37 19

표준출력문 SOLUTION Cursor 를강제로다음줄처음으로이동, Excape 문자사용 (\n ) page38 표준출력문 EXAMPLE 한줄띄위기 page39 20

표준출력문 CAUTION 밖에서사용안됨 page40 상수와변수 상수 (constant number) 수의크기가고정부호 (+ -) 사용정수형상수 : 소숫점이없음실수형상수 : 소숫점이있음문자형상수 : 1 개의문자, 따옴표 ( ) 로둘러쌈문자열형상수 : 2 개이상의문자열, 쌍따옴표 ( ) 로둘러쌈 올바른예 정수 12-12 +12 실수 12.0 12. 0.12.12 문자 a 0 문자열 a abc 012 틀린예 정수 ±12 문자 ab ± 부호는사용못함 2 개의문자는 사용 page41 21

상수와변수 변수 (variable number) 수의크기가변함메모리영역 ( 그릇 ) 변수에담기는것은상수변수의자료형이고정정수형변수 : 정수형상수저장실수형변수 : 실수형상수저장문자형변수상수 : 문자형상수또는문자열형상수저장 변수선언형식 자료형변수명 [, 변수명 ]; 정수 (int) 실수 (float) 문자 (char) 영어대소문자, 숫자, 밑줄 (_) 만사용첫글자는영어와밑줄만가능 page42 상수와변수 변수선언올바른예 정수 int m1,_m; 실수 float p_123; 문자 char A; 변수선언잘못된예 정수 int 2m; 실수 float p#2; 문자 char 키 ; 첫글자가숫자 # 사용불가 한글사용불가 변수에상수저장 대입연산자 (=) 사용변수명 = 상수또는다른변수명또는수식 Tip) 변수는언제사용할까요? 사람이컴퓨터에게데이타를전달할때컴퓨터가계산결과를저장할때 page43 22

상수와변수 변수에상수저장예 int m; int n; float p; char t; m=20; n=30; m=n; m=20+30; p=1.0; t= a ; m n p t a 의 ASCII 코드 page44 상수와변수 변수선언과초기화 자료형변수명 = 초기화내용 [,]; 사용예 int m=20; int n=m; float p=2.5+3.2; m n p page45 23

상수와변수 PROBLEM 변수 m 의내용을출력하기 WHY 쌍따옴표안의 m 은변수가아닌문자열의 m 이므로문자 m 이출력됨 SOLUTION 변수를쌍따옴표에작성하지않고, 외부에작성해야함 page46 상수와변수 변수 ( 상수, 수식포함 ) 의출력방법 사용형식 : printf( 변환문자, 변수명또는상수또는수식 ); 정수출력 : %d 실수출력 : %f 문자출력 : %c 문자열출력 : %s ANSWER page47 24

상수와변수 사용예 m= p= t= 은일반문자이므로그대로출력 \n 은줄바꿈 %d %f %c 는우측의변수들의내용을정수, 실수, 문자로출력 page48 상수와변수 printf 주의 printf 를사용하여 % 를출력할경우 %% 와같이작성 page49 25

printf 연습문제 #include <stdio.h> void main(void){ int m=20; float p=1.5; char ch= A ; printf( m은 %d이고,,m); printf( p는 %f이며,,p); printf( ch는 %c이다,ch); page50 printf 연습문제 #include <stdio.h> void main(void){ int m=20; float p=1.5; char ch= A ; printf( m은 %d이고,\n,m); printf( p는 %f이며,\n,p); printf( ch는 %c이다\n,ch); page51 26

표준입력문 컴퓨터가두수를더하여계산결과를모니터에출력하는프로그램 [1] 두수를받아라 [2] 두수를더하라 [3] 계산결과를출력하라 여기서 [1] 번과정을자세히기술하면 사람이키보드를통해서입력하는두수를컴퓨터가받아서메모리에저장하라 와같다. scanf page52 표준입력문 표준 ( 기본 ) 입력함수 scanf 사용형식 : scanf( 입력형식,& 변수명 [,& 변수명...]); 변환문자만사용정수입력 : %d 실수입력 : %f 문자입력 : %c & : 메모리주소변수명 : 입력형식대로입력한데이타를저장 사용예 m 데이타를입력하라는입력한후에표시엔터키입력 page53 27

표준입력문 m p page54 표준입력문 m p 입력형식에변환문자가연속으로있는경우에는데이타를입력할때공백으로구분 page55 28

표준입력문 여러개의데이타를입력할경우어떤종류의데이타인지분별에어려움이발생 ANSWER prompt 사용, printf 함수사용 prompt page56 scanf 연습문제 #include <stdio.h> void main(void){ int m; float p; scanf( %d,&m); scanf( %f,&p); printf( [%d][%f],m,p); page57 29

scanf 연습문제 #include <stdio.h> void main(void){ int m; float p; printf( m >> ); scanf( %d,&m); printf( p >> ); scanf( %f,&p); printf( [%d] \n[%f]\n,m,p); page58 연산자 page59 30

연산자 컴퓨터내의계산을하는장치 산술논리연산장치 ALU(Arithmetic and Logic Unit) 컴퓨터에게계산을요청하는형태 피연산자연산자피연산자 연산대상, 수 연산기호 연산식 page60 연산자 연산자분류 단항연산자이항연산자삼항연산자 연산자우선순위 동일한연산자가연속 : 좌측연산자부터먼저처리됨소괄호가가장먼저처리됨대입연산자 (=) 는우선순위가가장낮음 page61 31

단항연산자 음수연산자 형식 : - 피연산자의미 : 피연산자의부호를반대피연산자 : 상수, 변수, 수식 사용예 m p page62 단항연산자 증가연산자 형식 : ++ 피연산자, 피연산자 ++ 의미 : 피연산자의내용을 1 증가시킴피연산자 : 변수 사용예 m 증가연산자가피연산자앞이나뒤에있어도동일한결과임. 즉, 피연산자를 1 증가시킴 page63 32

단항연산자 증가연산자가다른경우 다른연산자와같이사용되는경우에는증가연산자의위치에따라다름다른연산자피연산자 ++ : (1) 현재의피연산자를사용하여다른연산처리 (2) 피연산자를 1 증가시킴다른연산자 ++ 피연산자 : (1) 피연산자를 1 증가시킴 (2) 현재의피연산자를사용하여다른연산처리 m p page64 단항연산자 감소연산자 형식 : -- 피연산자, 피연산자 -- 의미 : 피연산자의내용을 1 감소시킴피연산자 : 변수 사용예 m 감소연산자가피연산자앞이나뒤에있어도동일한결과임. 즉, 피연산자를 1 감소시킴 page65 33

단항연산자 감소연산자가다른경우 다른연산자와같이사용되는경우에는감소연산자의위치에따라다름다른연산자피연산자 -- : (1) 현재의피연산자를사용하여다른연산처리 (2) 피연산자를 1 감소시킴다른연산자 -- 피연산자 : (1) 피연산자를 1 감소시킴 (2) 현재의피연산자를사용하여다른연산처리 사용예 m p page66 단항연산자 형변환연산자 형식 : ( 자료형 ) 피연산자의미 : 피연산자의내용을지정한자료형으로변환시킴피연산자 : 상수, 변수, 수식 사용예 page67 34

단항연산자 주의 형변환연산자를사용하지않아도형변환은발생함형변환연산자를사용한경우 : 명시적형변환형변환연산자를사용하지않은경우 : 묵시적형변환 묵시적형변환발생이유 전달하는데이타는받는변수의자료형에맞추어서저장됨 15 15.0 정수 실수 소수점이붙음 15.7 15 소수점이없어지며, 소수점이하가잘림 실수 정수 page68 이항연산자 산술연산자 형식 : 피연산자 1 + 피연산자 2 피연산자 1 - 피연산자 2 피연산자 1 * 피연산자 2 피연산자 1 / 피연산자 2 피연산자 1 % 피연산자 2 의미 : 합 (+), 차 (-), 곱 (*), 몫 (/), 나머지 (%) 피연산자 : 상수, 변수, 수식 +, -, * 연산자 주의 : 피연산자 1 과피연산자 2 의자료형이동일해야함자료형이다르면묵시적형변환이발생함 20+20.5 20.0+20.5 로변환되어계산됨 page69 35

이항연산자 +, -, * 연산자사용예 r1 r2 r3 / 연산자 주의 : 정수 / 정수는정수의결과정수 / 실수는실수의결과실수 / 정수는실수의결과실수 / 실수는실수의결과 두개의피연산자중에서한개이상이실수이면실수의결과 page70 이항연산자 / 연산자사용예 r1 r2 r3 r4 page71 36

이항연산자 / 연산자사용예 o1 o1 r1 r2 r3 r4 page72 이항연산자 % 연산자 주의 : 두개의피연산자가정수계산결과도정수 % 연산자사용예 error page73 37

이항연산자 산술연산자우선순위 1 순위 : *, /, % 2 순위 : +, - 산술연산자우선순위사용예 5%3 2/2 1*3 13 2 5-3 2+2 4-3 21 4 page74 이항연산자 산술연산자우선순위사용예 5*3 5/2 5%3 15-2 13+2 15 213 15 page75 38

연산자연습문제 정수형변수 w,x,y,z 가 2, 3, 4, 5 일때다음연산결과 z 값은무엇입니까? z=2*x/5-y+w+1; z= ++x*2; z=x%y; z=++x + y--; z=y + x++; z=--x + --y; z=x * y / w; z=x * y % w + 1; z=++x * y z; z=7 - -y * ++w; z=x * y + w + x % y; z=(x=4)*3/5; z=-(++x) + (++x); z = ++x * y - w--; z=++x*y--; z=++x+y; z=(int) 3.6 + (int) 4.8; 이항연산자 산술연산자예제 PROBLEM ANALYSIS mile 을입력하여 km 로변환하는프로그램입력형식 : mile >> 123 출력형식 : 123 mile 은 197.9 km 이다단 ) 이태릭숫자는예임 필요한변수 : mile 을입력하여저장할정수형변수 1 개 mile 을 km 로변환하여저장할실수형변수 1 개컴퓨터가처리할세부적인작업및순서 [1] 변수선언 : 정수형변수 1 개, 실수형변수 1 개 [2]mile 을입력 [3]mile 을 km 로변환 ( 변환식 : 1.609 x mile km) [4]mile 과 km 를출력 page77 39

이항연산자 PROGRAM 변수선언 mile 을과입력 km : 로를정수형변실수형변변환출력수( 변환식 1 개 : 1.609 x mile km) RESULT page78 이항연산자실습문제 PROBLEM PROBLEM 사칙연산프로그램입력형식 : 첫번째수 >> 15 두번째수 >> 25 출력형식 : 15 + 25 = 40 15 25 = -10 15 * 25 = 375 15 / 25 = 0 단 ) 이태릭숫자는예임 백자리정수에서각자리수를분리하는프로그램입력형식 : 수 >> 235 출력형식 : 백자리는 [2], 십자리는 [3], 일자리는 [5] 이다단 ) 이태릭숫자는예임 page79 40

이항연산자실습문제 PROBLEM PROBLEM 섭씨를화씨로변환하는프로그램입력형식 : 수 >> 35 출력형식 : 섭씨 35 도는화씨 95 도이다단 ) 이태릭숫자는예임 숫자세개를입력받고그합을구하여출력하는프로그램 [ 입력형식 ] 첫번째수 >> 100 두번째수 >> 50 세번째수 >> 200 [ 출력형식 ] 100 + 50 + 200 = 350 단 ) 이태릭숫자는예임 page80 이항연산자 너남자와남자지? 같지? page81 41

이항연산자 내몸무게가내가 100kg 100kg 보다무거워보다보이지크지?? page82 이항연산자 관계연산자 형식 : 피연산자 1 > 피연산자 2 피연산자 1 >= 피연산자 2 피연산자 1 < 피연산자 2 피연산자 1 <= 피연산자 2 피연산자 1 == 피연산자 2 피연산자 1!= 피연산자 2 목적 : 두개의피연산자의대소관계를구함피연산자 : 상수, 변수, 수식 ( 산술식 ) 연산결과 : 참 (1)/ 거짓 (0) page83 42

이항연산자 > 연산자 해석 : 피연산자 1 이피연산자 2 보다크다 > 연산자사용예 10 이 5 보다크냐? 5 가 10 보다크냐 page84 이항연산자 >= 연산자 해석 : 피연산자 1 이피연산자 2 보다크거나같다 >= 연산자사용예 10 이 5 보다크거나같냐? 10 이 10 보다크거나같냐? 5 가 10 보다크거나같냐? page85 43

이항연산자 < 연산자 해석 : 피연산자 1 이피연산자 2 보다적다 < 연산자사용예 10 이 5 보다적냐? 5 가 10 보다적냐 page86 이항연산자 <= 연산자 해석 : 피연산자 1 이피연산자 2 보다적거나같다 <= 연산자사용예 10 이 5 보다적거나같냐? 10 이 10 보다적거나같냐? 5 가 10 보다적거나같냐? page87 44

이항연산자 == 연산자 해석 : 피연산자 1 이피연산자 2 와같다 == 연산자사용예 10 이 5 와같냐? 10 이 10 과같냐 page88 이항연산자!= 연산자 해석 : 피연산자 1 이피연산자 2 와다르다!= 연산자사용예 10 이 5 와다르냐? 10 이 10 과다르냐 page89 45

이항연산자 10 20 위의수식계산을컴퓨터에명령하기위해서수식을연산자를사용하여프로그램으로변환하면 1<=20 10<=15 11 10<=5 10 x 의값이범위내에있거나밖에있어도항상참 (1) 의결과잘못된연산자사용 page90 연산자연습문제 정수형변수 w,x,y,z 가 2, 3, 4, 5 일때다음연산결과 z 값은무엇입니까? z=x == y--; z=++x == y; z='a' + 1 < 'w ; z=-x-5*y>=w+1; z=x < x + y; z=x == y; z = x == y + w; z=x!= y - w; z = x + y > w + w; z = x - y / w % x > - y + w; 46

이항연산자 논리연산자 형식 : 피연산자 1 && 피연산자 2 피연산자 1 피연산자 2! 피연산자목적 : 두개의관계연산자를연결의미 : 논리곱 (&&), 논리합 ( ), 논리부정 (!) 피연산자 : 상수, 변수, 수식 ( 관계식 ) 주의 : 피연산자는참 (1) 과거짓 (0) 의값임 연산결과 피연산자1(A) 피연산자2(B) 논리곱 (A&&B) 논리합 (A B) 논리부정 (!A) 0 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 0 논리곱은피연산자모두가참이면참의결과 논리합은피연산자중하나라도참이면참의결과논리부정은피연산자의반대의결고ㅓ page92 이항연산자 && 연산자 해석 : ~ ( 이 ) 고 ~ && 연산자사용예 100 이 20 보다크고문자 a 가 97 이냐? 100 이 20 보다적고문자 a 가 97 이냐? 100 이 20 보다크다 : 참 100 이 20 보다적다 : 거짓문자 a 가 97 이다 : 참 page93 47

이항연산자 연산자 해석 : ~ 거나 ~ 연산자사용예 100 이 20 보다크거나문자 a 가 97 이냐? 100 이 20 보다적거나문자 a 가 97 이다르냐? 100 이 20 보다크다 : 참 100 이 20 보다적다 : 거짓문자 a 가 97 이다 : 참문자 a 가 97 과다르다 : 거짓 page94 이항연산자! 연산자 해석 : ~ 이아니다! 연산자사용예 100 이 20 보다크지않냐? 100 이 20 보다적지않냐? 100 이 20 보다크다 : 참 100 이 20 보다적다 : 거짓 page95 48

이항연산자 논리연산자우선순위! && 산술식 관계식 논리식 논리연산자우선순위사용예 100 이 10 과다르고 100 이 200 보다적거나 100 이 50 보다크지않냐? 100 이 10 과다르고 100 이 50 보다적지않거나 100 이 200 보다크냐?!(100>50) : 거짓 100!=10 && 100<200 : 참!(100<50) : 참 100==10 &&!(100<50) : 거짓 100>200 : 거짓 page96 연산자연습문제 정수형변수 w,x,y,z 가 2, 3, 4, 5일때다음연산결과 z값은무엇입니까? z=++x ++y; z=(x!=0) && (y/x==3) z=x y && w 3; z=x < w && x < y; z=x < w x < y; z='a'<='b'&&'b'<='z ; z='b'-1=='a' 'B'+1=='Z ; z=(x>2)&&(x<7); z=(x!=5) (x==10); z=!(x-4>0); z=(x>5)&&(x<=15); z=(w%4==0 && (w%100==!0 (w%400==0 && w%100==0))); z = x y && w < x; z =!x + y <= 3 && w; z=x&&y w; z=x y ==w; z=x&&y<w; z=x == y >=!w; z = x y > w && x; z=x++ ++y*w-- / ++x; z=x++&&++y/++x*y++; z=!x + y <= 3 && w; 49

이항연산자 비트연산자 형식 : 피연산자 1 & 피연산자 2 피연산자 1 피연산자 2 피연산자 1 ^ 피연산자 2 ~ 피연산자피연산자 1 << 피연산자 2 피연산자 1 >> 피연산자 2 목적 : 피연산자들의비트연산을구함피연산자 : 상수, 변수, 수식 ( 산술식 ) 연산결과 : 정수 page98 이항연산자 & 연산자 해석 : 피연산자 1 과피연산자 2 같은자리의 2 진수가모두 1 이면 1 의결과그외의경우에는 0 의결과 & 연산자사용예 00...001111 & 00...011001 00...001001 00...001111 & 11...100111 00...000111-25 의 2 의보수 1)25 의 2 진수 00...0011001 2)25 의 1 의보수 11...1100110 3)+1 11...1100111 page99 50

이항연산자 연산자 해석 : 피연산자 1 과피연산자 2 의같은자리 2 진수중한개이상이 1 이면 1 의결과그외의경우에는 0 의결과 연산자사용예 00...001111 00...011001 00...011111 00...001111 11...100111 11...101111 음수 11...101111 의 10 진수 1)-1 11...101110 2)1 의보수 00...010001 3)10 진수 ( 절대값 ) 17 page100 이항연산자 ^ 연산자 해석 : 피연산자 1 과피연산자 2 의같은자리 2 진수가다르면 1 의결과그외의경우에는 0 의결과 ^ 연산자사용예 00...001111 ^ 00...011001 00...010110 00...001111 ^ 11...100111 11...101000 음수 11...101000 의 10 진수 1)-1 11...100111 2)1 의보수 00...011000 3)10 진수 ( 절대값 ) 24 page101 51

이항연산자 ~ 연산자 해석 : 피연산자의 2 진수가 1 이면 0 의결과그외의경우에는 1 의결과 ~ 연산자사용예 ~ 00...001111 11...110000 음수 11...110000 의 10 진수 1)-1 11...101111 2)1 의보수 00...010000 3)10 진수 ( 절대값 ) 16 ~ 11...100111 00...011000 page102 이항연산자 << 연산자 해석 : 피연산자 1 의 2 진수를피연산 2 비트만큼좌측으로시프트새로입력되는비트는 0 임 << 연산자사용예 00...001111 << 2 00...111100 음수 11...10011100 의 10 진수 1)-1 11...10011011 2)1 의보수 00...01100100 3)10 진수 ( 절대값 ) 100 11...11100111<< 2 11...10011100 page103 52

이항연산자 >> 연산자 해석 : 피연산자 1 의 2 진수를피연산 2 비트만큼우측으로시프트새로입력되는비트는 MSB 와동일함 >> 연산자사용예 00...001111 << 2 00...000011 11...11100111>> 2 11...11111001 음수 11...11111001 의 10 진수 1)-1 11...11111000 2)1 의보수 00...00000111 3)10 진수 ( 절대값 ) 7 page104 이항연산자 변수의내용을누적시키는형태 변수 = 변수산술연산자상수 ( 또는변수또는수식 ) 사용예 r1 r2 r3 PROBLEM 연산자가 2 개임 ( 대입연산자, 산술연산자 ) SOLUTION 복합대입연산자사용 page105 53

이항연산자 복합대입연산자 형식 : 피연산자 1 += 피연산자 2 피연산자 1 -= 피연산자 2 피연산자 1 *= 피연산자 2 피연산자 1 /= 피연산자 2 피연산자 1 %= 피연산자 2 피연산자 1 &= 피연산자 2 피연산자 1 = 피연산자 2 피연산자 1 ^= 피연산자 2 피연산자 1 <<= 피연산자 2 피연산자 1 >>= 피연산자 2 피연산자 1 : 변수피연산자 2 : 상수, 변수, 수식 의미 : 피연산자 1 = 피연산자 1 + 피연산자 2 피연산자 1 = 피연산자 1 - 피연산자 2 피연산자 1 = 피연산자 1 * 피연산자 2 피연산자 1 = 피연산자 1 / 피연산자 2 피연산자 1 = 피연산자 1 % 피연산자 2 피연산자 1 = 피연산자 1 & 피연산자 2 피연산자 1 = 피연산자 1 피연산자 2 피연산자 1 = 피연산자 1 ^ 피연산자 2 피연산자 1 = 피연산자 1 << 피연산자 2 피연산자 1 = 피연산자 1 >> 피연산자 2 page106 이항연산자 사용예 r1 r2 r3 r4 r5 page107 54

이항연산자 r1 r2 r3 r4 r5 page108 삼항연산자 조건연산자 형식 : 피연산자 1? 피연산자 2 : 피연산자 3 의미 : 피연산자1 이참이면피연산자2가연산결과이고, 아니면피연산자3가연산결과임피연산자1 : 조건 ( 산술또는관계또는논리연산자 ) 피연산자2,3 : 상수, 변수, 수식 사용예 r s1 s2 T page109 55

기타연산자 sizeof 연산자 형식 : sizeof( 피연산자 ) 의미 : 피연산자에해당되는메모리기억공간의크기 ( 단위 : 바이트 ) 피연산자 : 변수, 수식, 자료형 사용예 page110 제어문 page111 56

제어문이란? 영희가철수에게하는말 학교까지가는버스가오면버스를타고학교로가고버스가오지않으면택시를타고학교로가거라 page112 제어문이란? 제어문이란? 프로그램에서명령문의실행순서가순차적이지않음 명령 1 명령 2 명령 1 명령 2 명령 1 명령 3 page113 57

제어문종류 선택문 if 문 switch 문 반복문 for문 while문 do-while문 기타 break 문 continue 문 page114 if 문 if 문 조건에따라참과거짓의두가지블럭중에하나의블럭을선택하여실행 만약에 ~ 하면 ~ 를하고, 아니면 ~ 를하라 형식 if( 조건 ){ 명령문1; 조건 else{ 명령문2; 참거짓 명령문1 명령문2 만약에조건이참이면명령문 1 블럭을실행하고, 아니면명령문 2 블럭을실행하라 page115 58

if 문 형식 if( 조건 ){ 명령문 1; 조건 참 거짓 명령문 1 만약에조건이참이면명령문 1 블럭을실행하라 page116 if 문 Example int m; scanf( %d,&m); if(m >= 0){ printf( Positive ); else{ printf( Negative ); 만약에 m 이 0 보다크거나같으면 Postive 를출력하고, 아니면 Negative 를출력하라 page117 59

if 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int s; scanf("%d",&s); //-20 if(s < 0){ s = -s; printf("%d",s); if 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ char ch='a'; if(ch == 'a'){ printf("small"); 60

if 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int s1,s2; scanf("%d%d",&s1,&s2); //10 20 입력 if(s2 == 0){ printf("error"); else{ printf("%d",s1/s2); if 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int s1,s2; scanf("%d%d",&s1,&s2); //10 10 if(s1 == s2){ printf(" 정사각형 "); else{ printf(" 직사각형 "); 61

if 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int m=30; if(m%5 == 0){ printf("5"); else{ printf("0"); if 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int month; scanf("%d",&month); //12 if(month < 7){ printf(" 상반기 "); else{ printf(" 하반기 "); 62

if 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int m=20; int p=3; if(m/p == 0){ m++; else{ --m; printf("%d %d",m,p); --p; p++; if 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int age; scanf("%d",&age); //70 if(age <= 6 age >= 65){ printf("free"); else{ printf("not free"); 63

if 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int L,H; int A1,A2; scanf("%d",&l); //20 입력 scanf("%d",&h); //5 입력 A1=L*H; A2=L*H/2; if(a1 > A2){ printf(" 사각형 win"); else{ printf(" 삼각형 win"); if 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int w,h; scanf("%d",&w); //70 scanf("%d",&h); //180 if(h-100 > w){ printf("weak"); else{ printf("heavy"); 64

if 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int s1,s2; scanf("%d%d",&s1,&s2); //20 40 if(s1 > s2){ printf("%d",s1/s2); else{ printf("%d",s2/s1); if 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int s; scanf("%d",&s); //10 입력 if(s%2 == 0 && s%5 == 0){ printf("o"); else{ printf("x"); 65

if 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ char ch; scanf("%c",&ch); //'D' fflush(stdin); if(ch >= 'a' && ch <= 'z'){ ch = ch - ('a'-'a'); else{ ch = ch + ('a'-'a'); printf("%c",ch); if 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int k,m,e; int a; scanf("%d%d%d",&k,&m,&e); //50 60 70 a = (k+m+e)/3; if(a >= 60){ printf("pass"); else{ printf("fail"); 66

if 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int m=0; if(!m==0){ m++; else{ --m; printf("m=%d",m); if 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int s=-30,r; if(s > 0){ r = s + 10; else{ r = -s + 10; printf("%d",r); 67

if 문실습문제 Problem Problem Problem 임의의수가 2 의배수인지판단하는프로그램 [ 입력형식 ] 없음 [ 출력형식 ]28 은 2 의배수이다 29 는 2 의배수가아니다단 ) 밑줄이태릭숫자는예임 임의의수의절대값을구하는프로그램 [ 입력형식 ] 없음 [ 출력형식 ]5 의절대값은 5 이다 -5 는의절대값은 5 이다단 ) 밑줄이태릭숫자는예임 두개의정수를입력받아서두수가몇배수인지구하는프로그램 ( 예 ) 입력한두수가 12 와 2 이면 12 는 2 의 6 배이다 로출력입력한두수가 2 와 4 이면 4 는 2 의 2 배이다 로출력단 ) 두수가배수관계가아닌경우는없는것으로가정함 page134 if 문실습문제 Problem Problem Problem 임의의수를 4 배한값과수를좌측으로 2 비트이동한값이같은지를구하는프로그램. [ 입력형식 ] 수 >> 20 [ 출력형식 ] 20 의 4 배수와 2 비트좌측시프트값은같다. 월을입력받아입력받은월이상반기인지하반기인지판단하여출력하는프로그램. [ 입력형식 ] 월 >> 7 [ 출력형식 ] 7 월은하반기입니다. 나이를입력받아서 7 세이하와 65 세이상은무료입장, 나머지는입장료 5,000 원을나타내는프로그램 [ 입력형식 ] 나이 >> 7 [ 출력형식 ] 5 세이므로무료입장입니다. 20 세이므로입장료 5,000 원입니다. page135 68

if 문실습문제 Problem 국어, 영어, 수학점수를입력받아평균을계산하고합격여부를확인하는프로그램작성하기단, 평균점수가 60 점이상이면합격, 그미만이면불합격 [ 입력형식 ] 국어 >>60 수학 >>70 영어 >>80 [ 출력형식 ] 평균점수가 70.000000 이므로합격입니다. page136 다중 if 문 형식 if( 조건1){ if( 조건2){ 명령문1; else{ 명령문2; else{ if( 조건3){ 명령문3; else{ 명령문4; 참 조건 2 참 만약에조건 1 이참이면 아니면 거짓 조건 1 명령문 1 명령문 2 거짓 조건 3 참 거짓 명령문 3 명령문 4 만약에조건2가참이면명령문1블럭을실행하고, 아니면명령문2블럭을실행하라 만약에조건 3 가참이면명령문 3 를실행하고, 아니면명령문 4 를실행하라 page137 69

다중 if 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ char code; scanf("%c",&code); //C 입력 if(code == 'A'){ printf(" 총무부는 1501호입니다 "); else{ if(code == 'B'){ printf(" 인사부는 1603호입니다 "); else{ if(code == 'C'){ printf(" 경리부는 1705호입니다 "); 다중 if 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int s; scanf("%d",&s); //-5 if(s > 0){ printf("over"); else{ if(s == 0){ printf("zero"); else{ printf("under"); 70

다중 if 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int m=10,p=20; float q=3.5; if(m-p>0){ q = q * 2.0; else{ if(m-p<0){ q = q / 0.5; else{ q = q / 1; printf("%f",q); 다중 if 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ char ch='f'; if(ch >= 'A' && ch <= 'Z'){ printf(" 대 "); else{ if(ch >= 'a' && ch <= 'z'){ printf(" 소 "); else{ printf(" 기타 "); 71

다중 if 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int s; char h; scanf("%d",&s); //50 입력 if(s >= 90){ h='a'; else{ if(s >= 80){ h='b'; else{ if(s >= 70){ h='c'; else{ if(s >= 60){ h='d'; else{ h='f'; printf("%c",h); 다중 if 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int age; scanf("%d",&age); //25 if(age >= 20){ if(age >= 40){ if(age >= 60){ if(age >= 90){ printf("1"); else{ printf("2"); else{ printf("3"); else{ printf("4"); else{ printf("0"); 72

다중 if 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ char sex,m,w; float M,kg,BMI; scanf("%c",&sex); scanf("%f",&m); scanf("%d",&kg); fflush(stdin); if(sex=='m') printf("%f가님의표준몸무게 ",(M-1)*90); else printf("%f가님의표준몸무게 ",(M-1)*85); BMI=kg/(M*M); if(bmi<18.5){ printf(" 저체중 "); else{ if(bmi<23){ printf(" 정상 "); else{ if(bmi<25){ printf(" 과체중 "); else{ if(bmi<30){ printf(" 비만 "); else{ printf(" 고도비만 "); 다중 if 문실습문제 Problem 빌딩에입주해있는구미주식회사의부서를안내하는프로그램부서는문자코드로입력받고, 출력은부서가있는호실을안내 [ 입력형식 ] 방문하고자하는부서코드를입력하세요 >> A [ 출력형식 ] 총무부는 1501 호입니다 부서 코드 호실 총무부 A 1501호 인사부 B 1603호 경리부 C 1705호 Problem 두개의정수를입력받아서두수가몇배수인지구하는프로그램 ( 예 ) 입력한두수가 12 와 2 이면 12 는 2 의 6 배이다 로출력입력한두수가 2 와 4 이면 4 는 2 의 2 배이다 로출력입력한두수가 4 와 3 이면 4 와 3 은배수관계가아니다 로출력 page145 73

다중 if 문실습문제 Problem 성적에따라학점을계산하는프로그램 [ 입력형식 ] 점수 >> 90 [ 출력형식 ] 90 점은 >> A 학점단 ) 점수는 0 점에서 99 점사이로입력된다고가정함 90~99 : A 학점, 80~89 : B 학점, 70~79 : C 학점 60~69 : D 학점, 00~59 : F 학점 Problem 두사람이가위바위보게임을한다. 어떤사람이이기는지판단하는프로그램을작성하세요. 단, 가위바위보는키보드로부터정수로입력받고, 가위는 0, 바위는 1, 보는 2 로입력받는다. [ 출력형식 ] 두번째사람이이겼다. 비겼다. page146 다중 if 문 Problem 두사람이가위바위보게임을한다. 어떤사람이이기는지판단하는프로그램을작성하세요. 단, 가위바위보는키보드로부터정수로입력받고, 가위는 0, 바위는 1, 보는 2 로입력받는다. [ 출력형식 ] 두번째사람이이겼다. 비겼다. page147 74

else if 문 정의 else 문내에서처음으로 if 문이나타날때 else 문과 if 문을결합한명령문 형식 if( 조건 1){ 명령문 1; else{ if( 조건 2){ 명령문 2; else{ 명령문 3; if( 조건 1){ 명령문 1; else if( 조건 2){ 명령문 2; else{ 명령문 3; page148 다중 if 문 가위바위보게임 int p1,p2; scanf("%d%d",&p1,&p2); if(p1==0 && p2 ==0) printf(" 비겼다.\n"); else if(p1==0 && p2==1) printf(" 두번째사람이이겼다.\n"); else if(p1==0 && p2==2) printf(" 첫번째사람이이겼다.\n"); else if(p1==1 && p2==0) printf(" 첫번째사람이이겼다.\n"); else if(p1==1 && p2==1) printf(" 비겼다.\n"); else if(p1==1 && p2==2) printf(" 두번째사람이이겼다.\n"); else if(p1==2 && p2==0) printf(" 두번째사람이이겼다.\n"); else if(p1==2 && p2==1) printf(" 첫번째사람이이겼다.\n"); else if(p1==2 && p2==2) printf(" 비겼다.\n"); page149 75

else if 문 Example 학점계산프로그램을 else if 문으로변경 int j; printf(" 점수 >> "); scanf("%d",&j); if(j>=90){ printf("%d점 >> A학점 ",j); else if(j>=80){ printf("%d점 >> B학점 ",j); else if(j>=70){ printf("%d점 >> C학점 ",j); else if(j>=60){ printf("%d점 >> D학점 ",j); else{ printf("%d점 >> F학점 ",j); page150 else if 문실습문제 Problem Problem 한개의문자를입력받아서영어의대문자인지, 소문자인지, 기타문자인지판단하는프로그램 ( 단, else if 문을사용 ) [ 출력형식 ] A 는대문자이다. a 는소문자이다. 2 는기타문자이다. x 2 +y 2-1 의결과가 0 보다크면 Postive 를출력하고, 0 이면 zero 를출력하고, 음수이면 Negative 를출력하는프로그램단, x 와 y 는입력함 page151 76

else if 문실습문제 Problem 영희가의상을시장에서구매한다. 오늘구매한총금액을계산하는프로그램단, 물품코드와수량은정수로입력받는다. 그리고물품코드가아래에주어진정수외에다른정수가입력되면 물품코드가잘못입력되었습니다!! 를출력함. [ 출력형식 ] 총구매한의상은브라우스가 5 개이므로총금액은 5000 원입니다. 물품 물품코드 단가 브라우스 0 1,000 청바지 1 700 원피스 2 1,500 티 3 500 page152 if 문의문제점 1. 명령문별로프로그램실행시간이일정하지않다. if( 조건 1){ 명령문 1; else{ if( 조건 2){ 명령문 2; else{ if( 조건 3){ 명령문 3; else{ 명령문 4; 조건1 참거짓명령문1 조건2 참거짓명령문2 조건3 참거짓명령문3 명령문4 page153 77

if 문의문제점 2. 제어가복잡하다. if( 조건 1){ 명령문 1; else{ if( 조건 2){ 명령문 2; else{ if( 조건 3){ 명령문 3; else{ 명령문 4; 조건1 명령문1 조건2 명령문2 조건3 명령문3 명령문4 solution switch 문 page154 switch 문 switch 문 대상의결과값과일치하는블럭을실행 if 문의조건이 A 가 B 와같으면 으로해석되는경우에 switch 문사용 형식 여러개의값을나타낼수있는변수나수식 switch( 대상 ){ case 값 1 : 명령문 1; case 값 2 : 명령문 2;... case 값 n : 명령문 n; if 문을 switch 문으로변경방법 해석 대상의결과값이값 1 이면명령문 1 을실행하고, 대상의결과값이값 2 이면명령문 2 을실행하고, 대상의결과값이값 n 이면명령문 n 을실행하라 if 문의조건에서동일한내용 (A) 을 switch 문의대상으로설정 if 문의조건에서다른내용 (B) 을 case 문의값으로설정 page155 78

switch 문 Example 부서안내프로그램 char code; scanf("%c",&code); if(code == 'A'){ printf(" 총무부는 1501호입니다 "); else if(code == 'B'){ printf(" 인사부는 1603호입니다 "); else if(code == 'C'){ printf(" 경리부는 1705호입니다 "); code 가 A 와같으면 만약에 code 가 A 이면 총무부는 1501 호 라고출력하고, 아니면만약에 code 가 B 이면 인사부는 1603 호 라고출력하고, 아니면만약에 code 가 C 이면 경리부는 1705 호 라고출력하라 if 문을 switch 문으로변경방법 code 를대상으로설정 A, B, C 를값 1, 값 2, 값 3 로설정 char code; scanf("%c",&code); switch(code){ case A : printf(" 총무부는 1501호입니다 "); case 'B : printf(" 인사부는 1603호입니다 "); case C : printf(" 경리부는 1705호입니다 "); page156 switch 문 Example 부서안내프로그램 char code; scanf("%c",&code); switch(code){ case A : printf(" 총무부는 1501호입니다 "); case 'B : printf(" 인사부는 1603호입니다 "); case C : printf(" 경리부는 1705호입니다 "); OBJECT code A B C printf(" 총무부는 1501 호입니다 "); printf( 경리부는 1705 호입니다 "); printf( 인사부는 1603 호입니다 "); page157 79

switch 문 Example 부서안내프로그램 REAL code A B C printf(" 총무부는 1501 호입니다 "); printf( 인사부는 1603 호입니다 "); printf( 경리부는 1705 호입니다 "); page158 switch 문 Example 부서안내프로그램 RESULT WHY switch 문의 case 에서는명령문을실행하고나면제어가 switch 블럭을벗어나지않고, 다음명령문을순서대로실행함 page159 80

switch 문 Example 부서안내프로그램 SOLUTION switch 문의 case 에서명령문을실행하고나면제어를강제로 switch 블럭을벗어나도록해야함, break 명령문사용해야함 char code; scanf("%c",&code); switch(code){ case A : case 'B : case C : printf(" 총무부는 1501호입니다 "); break; printf(" 인사부는 1603호입니다 "); break; printf(" 경리부는 1705호입니다 "); break; break 문 switch 문과반복문에서사용, switch 블럭과반복블럭을강제로종료 page160 switch 문 Example 학점계산프로그램 int j; char h; printf(" 점수 >> "); if(j/10==9){ h='a'; else if(j/10==8){ h='b'; else if(j/10==7){ h='c'; else if(j/10==60){ else{ h='d'; h='f'; printf("%d 점 >> %c 학점 \n",j,h); scanf("%d",&j); 점수를 10 으로나눈몫이 9 와같으면 만약에점수를 10 으로나눈몫이 9 이면 h 에 A 를저장하고아니면만약에점수를 10 으로나눈몫이 8 이면 h 에 B 를저장하고아니면만약에점수를 10 으로나눈몫이 7 이면 h 에 C 를저장하고아니면만약에점수를 10 으로나눈몫이 6 이면 h 에 D 를저장하고아니면 h 에 F 를저장하라 점수를 10 으로나눈몫이 5, 4, 3, 2,1 이면 과동일즉, 점수를 10 으로나눈몫이 10 개가있는데그중에서위에서설정되지않는값들에대해서공통으로설정 page161 81

switch 문 Example 학점계산프로그램 int j; char h; printf(" 점수 >> "); scanf("%d",&j); switch( j/10){ case 9 : h= A ; break; case 8 : h= B ; break; case 7 : h= C ; break; case 6 : h= D ; break; case 5 case 4 : case 3 : case 2 : case 1 : case 0 : h= F ; break; printf("%d점 >> %c학점\n",j,h); 점수를 10 으로나눈몫이 10 개가있는데그중에서위에서설정되지않는값 (5,4,3,2,1,0) 들에대해서공통으로설정 Other Method default 명령문을사용 page162 switch 문 Example 학점계산프로그램 int j; char h; printf(" 점수 >> "); scanf("%d",&j); switch(j/10){ case 9 : h= A ; break; case 8 : h= B ; break; case 7 : h= C ; break; case 6 : h= D ; break; default : h= F ; break; printf("%d점 >> %c학점\n",j,h); page163 82

Switch 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int n=4; switch(n%2){ case 0 : printf("even"); case 1 : printf("odd"); default : printf("other"); break break; Switch 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ char ch; scanf( %c,&ch); switch(ch){ case y : case Y : printf( End ); break; case n : case N : printf( Continue ); default : printf( Error"); break; 83

switch 문실습문제 Problem 영희가의상을시장에서구매한다. 오늘구매한총금액을계산하는프로그램을 switch 문을사용하여각각작성하세요. 단, 물품코드와수량은정수로입력받는다. 그리고물품코드가아래에주어진정수외에다른정수가입력되면 물품코드가잘못입력되었습니다!! 를출력함. [ 출력형식 ] 총구매한의상은브라우스가 5 개이므로총금액은 5000 원입니다. 물품 물품코드 단가 브라우스 0 1,000 청바지 1 700 원피스 2 1,500 티 3 500 page166 switch 문실습문제 Problem 태어난년도를입력받아그해의띠를출력하는프로그램. [ 입력형식 ] 태어난해를입력하세요 : 1996 [ 출력형식 ] 당신은쥐띠입니다 page167 84

반복문이필요한이유 총알발사는같은말 같은말을계속언급 P/G 측면에서보면같은명령을계속하여작성하여 P/G 크기가큼 page168 반복문이필요한이유 총알발사는같은말이라서한번에 5 발발사명령 1 번의명령으로발사 총알발사할때마다발사횟수를카운터해야함 P/G 측면에서보면같은명령을계속하여작성하지않고반복하도록명령 page169 85

반복문이란? 정의 같은 ( 비슷한 ) 명령문을계속해서작성하지않고명령문을 1 번만작성하고여러번반복 종류 for 문, while 문, do-while 문 TIP> 비슷한명령문정의반복되는명령문들에서다른부분이규칙적으로변화되고정수 TIP> 반복문의사용 for 문 : 반복횟수가필요한경우 ( 유한반복 ) while 문, do-while 문 : 반복횟수가필요없는경우 ( 무한반복 ) page170 for 문 형식 for( 문 1; 문 2; 문 3){ 명령문 ; 문 1 문1 문2 문3 명령문 반복매개변수의초기값반복의종료조건반복횟수증가 / 감소 반복대상같은일비슷한일 ( 다른부분이규칙성 ) 거짓 문 2 참 명령문 문 3 TIP> 반복횟수결정반복횟수 등차가일정반복대상에서미결정없음 반복횟수는자유반복대상에서미결정포함 반복횟수는미결정고려하여결정 page171 86

for 문 반복횟수예 1, 2, 3, 4, 5 로카운터하는경우매개변수는 i i=1; i<6; i++ 5,4,3,2,1 로카운터하는경우매개변수는 i i=5; i>0; i-- 1, 3, 5, 7, 9 로카운터하는경우매개변수는 i i=1; i<10; i+=2 9,7,5,3,1 로카운터하는경우매개변수는 i i=9; i>0; i-=2 page172 for 문 for 문의문 1, 문 2, 문 3 를내, 외부에두는경우 문1을외부에두는경우 int i=0; for(;i<=4;i++){ printf("#"); 문3을내부에두는경우 int i=0; for(;i<=4;){ printf("#"); i++; 문2을내부에두는경우 int i=0; for(;;){ if(i > 5) break; printf("#"); i++; page173 87

For 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int i; for (i=1;i<=5;i++){ printf("[%d]", i); i i<=12 printf("[%d]", i) 1 2 3 4 5 6 For 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int m; for(m=1;m<=10;m=m+2){ printf("[%d]",m); m m<=10 printf("[%d]",m); 1 3 5 7 9 11 88

For 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ for(m=1;m<=10;m++){ printf("[%d]",m++); m m<=10 printf("[%d]",m); 1 3 5 7 9 11 For 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int i; int sum=0; for(i=1;i<=10;i++){ sum = sum + i; printf("%d",sum); i i<=10 sum=sum+i 1 2 3 4 5 6 7 8 9 10 11 89

For 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int m,dan; scanf("%d",&dan); for(m=1;m<=9;m++){ printf("%d*%d=%d\n",dan,m,dan*m); //dan 을 3 으로입력 m m<=9 printf("%d*%d=%d\n",dan,m,dan*m); For 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int m,r=1,h; scanf("%d",&h); for(m=1;m<=h;m++){ r = r * m; printf("%d",r); //h를 5로입력 m m<=h r = r * m 90

For 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int m,h,r=1; scanf("%d",&h); for(m=1;m<=h;m++){ r = r * 2; printf("%d",r); //h를 5로입력 m m<=h r=r*2 For 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int m,s,m=-32767; for(m=1;m<=5;m++){ scanf("%d",&s); if(s > M) printf("%d",m); M=s; m m<=5 scanf("%d",&s) s>m M=s 91

For 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int i; int sum=0; for(i=1;sum<20;i++){ sum = i*5; printf("%d\n",sum); i sum<20 sum=i*5 printf("%d\n",sum); For 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int n,a,i,result=0; scanf("%d",&n); a=n; for(i=0;i<a;i++){ result = result + n--; printf("%d",result); //n을 5로입력 i i<a result=result+n n 92

For 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int n1,n2; int i; int sum=0; scanf("%d%d",&n1,&n2); if(n1>n2){ for(i=n2;i<=n1;i++){ sum = sum + i; else{ for(i=n1;i<=n2;i++){ sum = sum + i; printf("%d",sum); //n1을 3, n2를 6으로입력 i i<=n2 sum=sum+i For 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ char ch; for(;;){ scanf("%c",&ch); if(ch == 'Q') break; if(ch < 'a' ch > 'z') continue; ch = ch - ('a'-'a'); printf("[%c]\n",ch); ch ch=='q' ch<'a' ch>'z' ch=ch-('a'-'a') printf("[%c]\n",ch) f A g 8 d Q 93

For 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ float v; for(;;){ scanf("%f",&v); if(v < 0.0) break; printf("%f\n",sqrt(v)); v v<0.0 sqrt(v) printf("%f\n",sqrt(v)) 2.0 3.2-1.0 For 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int i; for(i=0;i<=10;i++){ if(i%3 == 0) printf("%d",i); continue; i i<=10 i%3==0 printf("%d",i); 94

For 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int m,n; int sum=0; scanf("%d%d",&m,&n); for(;m<=n;m++){ sum = sum + m; printf("%d",sum); //m을 5, n을 10으로입력 m m<=n sum=sum+m For 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int m=1; int sum=0; for(;m!=0;){ scanf("%d",&m); sum = sum + m; printf("%d",sum); m m!=0 scanf("%d",&m) sum=sum+m 1 3 6 0 95

for 문 PROBLEM # 을 N 개출력하는프로그램단 )N 은키보드로부터읽어들임. ANALYSIS 반복대상 : printf( # ); 반복횟수 : 반복대상에서미결정이없으므로임의로결정즉, 1,2,3,4,...,N 변수 : 반복매개변수로정수형변수 1 개입력한 N 값을저장할정수형변수 1 개 [1] 변수선언 : 정수형변수 2 개 (i,n) [2]N 값입력 [3]printf( # ); 를 N 번반복하는 for 문 PROGRAM int i,n; scanf("%d",&n); for(i=1;i<=n;i++){ printf("#"); RESULT page190 for 문실습문제 Problem 54321 와같이출력하는프로그램 Problem int i; for(i=5;i>=1;i--){ printf("%d",i); Problem Problem Problem Problem Problem Problem *#*#* 와같이출력하는프로그램 1+2+3+...+10 을구하는프로그램 1-2+3-4+...-10 을구하는프로그램 5 명학생들의평균나이를구하는프로그램 5 명학생들중최고령학생의나이를구하는프로그램 여러개의숫자를더하다가합이 100 이상이되는최초의시점에서합을구하는프로그램 page191 96

for 문실습문제 Problem Problem Problem 임의의수가소수인지구분하는프로그램 [ 출력형식 ]7 은소수 9 는소수가아님단, 이택릭밑줄숫자는예임 임의의수 n1 에서 n2 사이의수중에서 3 의배수의합을출력하는프로그램. 단,n2 는 n1 보다큰정수로입력하는것으로가정함 여러사람들이입장하는식당이있다. 하루동안입장한사람들중남자가 10 명입장하였을때영업을그만두고, 그때까지입장한남자와여자들의숫자를구하는프로그램을작성하세요. 단, 사람의성별은남자는 1, 여자는 2 로정하고, 하루에입장하는사람들의수에는제한이없다. page192 다중 for 문 PROBLEM 다음과같이출력하는프로그램 ##### ##### ##### ANALYSIS 반복문을사용하지않은경우 printf( #####\n ); printf( #####\n ); printf( #####\n ); printf( #####\n ); 을 3 번반복 printf( #####\n ); 을반복문을사용하는경우로변환 printf( # ); printf( # ); printf( # ); printf( # ); printf( # );printf( \n ); printf( # ); 를 5 번반복 반복이여러개있는경우반복이포함관계가있으면다중반복사용 page193 97

다중 for 문 형식 문 1 for( 문 1; 문 2; 문 3){ for( 문 4; 문 5; 문 6){ 명령문 ; 문2 참 거짓 TIP> 주의반복매개변수가달라야함명령문을실행하는횟수 1 차반복횟수 x 2 차반복횟수 문 3 거짓 문4 문5 참 명령문 문 6 page194 다중 for 문 PROGRAM int i,j; for(i=1;i<=3;i++){ for(j=1;j<=5;j++){ printf("#"); printf("\n"); RESULT page195 98

다중 for 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int m; for(m=1;m<=9;m++){ if(m%3==0){ printf("%d",m); 다중 for 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int m,n; for(m=1;m<=3;m++){ for(n=1;n<=m;n++){ printf("%d",m); printf("\n"); 99

다중 for 문연습문제 다음프로그램의실행결과는무엇입니까? void main(void){ int m,n; for(m=1;m<=3;m++){ for(n=2;n<=3;n++){ printf("%d * %d = %d ",m,n,m*n); printf("\n"); 다중 for 문실습문제 Problem Problem Problem 다음과같이출력하는프로그램 # ## ### 다음과같이출력하는프로그램 #*#*# *#*#* #*#*# *#*#* #*#*# 다음과같이계산하여결과를출력하는프로그램 1+1+2+1+2+3+1+2+3+4+1+2+3+4+5 page199 100

다중 for 문실습문제 Problem Problem 3 부터 100 사이의소수의합을출력하는프로그램 다음과같이구구단테이블을만드는프로그램단. 3 단까지만구할것 1 2 3 2 4 6 3 6 9 Problem 다음과같이출력하는프로그램 1 12 123 1234 12345 page200 while 문 / do-while 문 형식 while( 조건 ){ 명령문 ; 거짓 조건 참 명령문 형식 do{ 명령문 ; while( 조건 ); 명령문 조건반복의종료조건 명령문반복대상 거짓 조건 참 page201 101

while 문 / do-while 문실습문제 Problem 키보드로부터입력받은문자의갯수를출력하는프로그램. 단,# 키가입력되면종료 [ 입력형식 ] 문자를입력하세요 >> a [ 출력형식 ] 입력한문자는 10 개입니다. Problem 문자를입력하여대문자이면소문자로, 소문자이면대문자로변환하는프로그램. 단, 영문자가아니면반복을종료 [ 입력형식 ] 문자를입력하세요 >> a [ 출력형식 ] a->a TIP> 대문자 소문자, 소문자 대문자변환방법대문자 +( a - A ) 소문자 -( a - A ) page202 while 문 / do-while 문실습문제 Problem 이차방정식의근을구하는프로그램. 단,a,b,c는정수로입력하고, q문자입력되기전까지는근을반복하여구함. 그리고허근 ( ) 이나오면반복을종료 [ 입력형식 ] a,b,c, >> 2 5 3 [ 출력형식 ] 실근 : -1.500000-1.000000 그만두시겠습니까? [q] >> q page203 102