Chapter_06

Similar documents
untitled

Microsoft PowerPoint - chap05-제어문.pptx

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

Infinity(∞) Strategy

untitled

PowerPoint 프레젠테이션

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

Microsoft PowerPoint - chap-06.pptx

쉽게 풀어쓴 C 프로그래밍

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


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

Microsoft PowerPoint - Chapter_05.pptx

Microsoft PowerPoint - Chapter_07.pptx

int main(void) int a; int b; a=3; b=a+5; printf("a : %d \n", a); printf("b : %d \n", b); a b 3 a a+5 b &a(12ff60) &b(12ff54) 3 a 8 b printf(" a : %x \

K&R2 Reference Manual 번역본

쉽게 풀어쓴 C 프로그래밍

C프로-3장c03逞풚

쉽게 풀어쓴 C 프로그래밍

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

중간고사

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

untitled

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

03장.스택.key

Microsoft PowerPoint - chap04-연산자.pptx

OCW_C언어 기초

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

Microsoft PowerPoint - 5장 조건문 pptx

歯9장.PDF

11장 포인터

Microsoft PowerPoint - ch07 - 포인터 pm0415



슬라이드 1

: 1 int arr[9]; int n, i; printf(" : "); scanf("%d", &n); : : for(i=1; i<10; i++) arr[i-1] = n * i; for(i=0; i<9; i++) if(i%2 == 1) print

슬라이드 1

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap-07.pptx

PowerPoint 프레젠테이션

Java ...

Microsoft PowerPoint - ch03 - 조건문과 반복문 pm0215

Microsoft PowerPoint - Chapter_08.pptx

슬라이드 1

<4D F736F F F696E74202D20C1A63036C0E520BCB1C5C3B0FA20B9DDBAB928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

1.1.1 컴퓨터의 구성 p.19

Microsoft PowerPoint - Lesson6.pptx

歯7장.PDF

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

chap7.PDF

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

PowerPoint 프레젠테이션

슬라이드 1

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

Microsoft PowerPoint - ch01.ppt

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

商用

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

슬라이드 1

슬라이드 1

PowerPoint 프레젠테이션

C 언어와 프로그래밍 개요

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

untitled

Microsoft PowerPoint - Chapter_02.pptx

OCW_C언어 기초

슬라이드 1

C++ Programming

Microsoft PowerPoint - gnu-w10-c-chap11

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

Microsoft PowerPoint - chap01-C언어개요.pptx

Line (A) å j a k= i k #define max(a, b) (((a) >= (b))? (a) : (b)) long MaxSubseqSum0(int A[], unsigned Left, unsigned Right) { int Center, i; long Max

슬라이드 1

untitled

untitled

Microsoft PowerPoint - Chapter_09.pptx

PowerPoint 프레젠테이션

11장 포인터

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

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

6주차.key

13주-14주proc.PDF

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

1장. 유닉스 시스템 프로그래밍 개요

chap7.key

ch08

PowerPoint 프레젠테이션

Microsoft PowerPoint - 제11장 포인터(강의)

Microsoft PowerPoint - 제11장 포인터

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

Chapter 4. LISTS

chap8.PDF

본 강의에 들어가기 전

Introduction to Geotechnical Engineering II

Transcription:

프로그래밍 1 1 Chapter 6. Functions and Program Structure April, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj

이장의강의목표 2 문자의입력방법을이해한다. 중첩된 if문을이해한다. while 반복문의사용법을익힌다. do 반복문의사용법을익힌다. 중첩된반복문을이해한다. break문의사용법을익힌다. continue문의사용법을익힌다. switch문의사용법을익힌다. goto문의사용법을익힌다. 이장의결론

문자의입력 (1/3) 3 문자입력 line_buffering.c char ch; for (;;) printf( \renter characters : "); ch = getchar(); printf("\n\ryou typed: %c\n", ch); scanf("%c", &ch); F 키보드에서 A 를입력해보세요. 실제수행시켜보면예상과는조금다르게동작.. è line buffer 입력방식때문

문자의입력 (2/3) 4 computer buffer buffer buffer A BC\r buffer F 컴퓨터는다양한장치 (device) 를사용한다. F 대부분의장치 (device) 는버퍼라는메모리공간을갖는다. F keyboard 에서 A 를입력하면? keyboard 에서 BC 를입력하면? keyboard 에서 Enter 를입력하면? F 언제 keyboard 버퍼의내용을컴퓨터의 CPU( 결국응용 ) 로전달할것인가? è no buffering, line buffering, full buffering

문자의입력 (3/3) 5 라인버퍼링을사용하지않는문자입력방식 no_buffering.c no_buffering2.c #include <curses.h> char ch; initscr(); for (;;) printf("enter characters : "); ch = getchar(); printf("\nyou typed: %c\n", ch); endwin #include <unistd.h> #include <termios.h> struct termios old_tio, new_tio; char ch; tcgetattr(stdin_fileno,&old_tio); new_tio=old_tio; new_tio.c_lflag &=(~ICANON & ~ECHO); tcsetattr(stdin_fileno,tcsanow,&new_tio); for (;;) printf("enter characters : "); ch = getchar(); printf("\nyou typed: %c\n", ch); tcsetattr(stdin_fileno,tcsanow,&old_tio); F 역시키보드에서 A 를입력해보세요. F 버퍼링방식제어가능 (canonical mode) F 그런데.. 장치에버퍼공간은왜필요할까?

중첩된 if 문 6 if 문내부에또다른 if 문사용가능 ü ü 들여쓰기가중요 잘못된들여쓰기의예 if (a) if (b) printf("a and b are true\n"); else printf("to which statement does this else apply?"); if (a) if (b) printf("a and b are true\n"); else printf("to which statement does this else apply? è b"); 구분해서사용 if (a) if (b) printf("a and b are true\n"); else printf("to which statement does this else apply? è a");

반복문의여러형태 7 for 반복문의융통성 for_type.c #include <conio.h> int i; char ch; printf("enter an integer: "); scanf("%d", &i); for (; i; i--) printf("%d\n", i); for (i=1; i<11; ) printf("%d\n", i++); for (i=11; i<11; i++) printf("%c\n", '\a');

while 반복문 8 형식 while (expression) statement; 1 에서 10 까지의합은? while_sum.c int i = 1; int total = 0; for 문은 while 문으로변화가능 for (i=0; i<10; i++) statements; i=0; while (i<10) statements; i++; while(i < 10) total = total + i; i++; printf("total = %d\n", total);

do 반복문 (1/2) 9 형식 do statement; while (expression); 1 에서 10 까지의합은? do_sum.c int i = 1; int total = 0; do total = total + i; i++; while(i < 10); printf("total = %d\n", total); for, while, do-while 변화가능 for (i=0; i<10; i++) statements; i=0; while (i<10) statements; i++; i=0; do statements; i++; while (i<10);

do 반복문 (2/2) 10 형식 do_getchar.c #include <unistd.h> #include <termios.h> struct termios old_tio, new_tio; char ch; tcgetattr(stdin_fileno,&old_tio); new_tio=old_tio; new_tio.c_lflag &=(~ICANON & ~ECHO); tcsetattr(stdin_fileno,tcsanow,&new_tio); do printf("enter characters : "); ch = getchar(); printf("\nyou typed: %c\n", ch); while (ch!= 'q'); tcsetattr(stdin_fileno,tcsanow,&old_tio); F do 반복문이 for 나 while 반복문과다른점은? 위예제를 while 반복문으로수정해보세요.

중첩된반복문 (1/2) 11 블록내에는어떠한문장도사용할수있다! for_block_01.c int i, j; int sum; for (i=1; i<=10; i++) sum = 0; for (j=1; j<=i; j++) sum = sum + j; printf("the sum from 1 to %d = %d\n", i, sum); for (i=0; i<26; i++) printf("%2c", 'A'+i);

중첩된반복문 (2/2) 12 블록내에는어떠한문장도사용할수있다! for_block_02.c int i, j; for (i=1; i<=5; i++) for (j=1; j<=(5-i); j++) printf(" "); for (j=1; j<=(2*i-1); j++) printf("*"); printf("\n");

break 문 (1/2) 13 반복문의밖으로제어이동 WhenOver5000.c int main(void) int sum=0, num=0; while(1) sum+=num; if(sum>5000) break; num++; printf("sum: %d \n", sum); printf("num: %d \n", num);

break 문 (2/2) 14 중복된반복문에서는? For_break.c int i,j; for (i=1; i<10; i++) for (j=1; j<10; j++) printf("(%d, %d) ", i, j); if (j == 5) break; printf("\n");

continue 문 15 반복문의조건확인위치로제어이동 For_break2.c int main(void) int num; printf("start! "); for(num=0; num<20; num++) if(num%2==0 num%3==0) continue; printf("%d ", num); printf("end! \n"); F continue 문은예외처리에서많이사용

switch 문 (1/4) 16 switch: 다중선택문 ( 보통 3 이상선택가능할때사용 ) EnglishSchool.c int main(void) int num; printf("1 이상 5 이하의정수입력 : "); scanf("%d", &num); switch(num) case 1: printf("1 은 ONE \n"); break; case 2: printf("2 는 TWO \n"); break; case 3: printf("3 은 THREE \n"); break; case 4: printf("4 는 FOUR \n"); break; case 5: printf("5 는 FIVE \n"); break; default: printf("i don't know! \n");

switch 문 (2/4) 17 주의사항 ü ü ü ü switch문은 char와 int만사용가능 case 문에두개이상의같은상수를사용할수없음 case 문과관련된문장들은반드시중괄호를사용할필요가없음반드시 break를사용할필요는없음

switch 문 (3/4) 18 AdvancedEnglishSchool.c int main(void) char sel; printf("m 오전, A 오후, E 저녁 \n"); printf(" 입력 : "); scanf("%c", &sel); switch(sel) case 'M': case 'm': printf("morning \n"); break; case 'A': case 'a': printf("afternoon \n"); break; case 'E': case 'e': printf("evening \n"); break; // 사실불필요한 break 문!

switch 문 (4/4) 19 연습문제 : ü 영문자를입력받아자음 / 모음을구별하는프로그램작성 vowel.c char ch; printf("\nenter the letter: "); ch = getchar(); switch (ch) case 'a': case 'e': case 'i': case 'o': case 'u': default: printf(" is a vowel\n"); break; printf(" is a constant\n");

goto 문 20 임의의위치로제어이동 ( 무조건분기 ) GoToBasic.c int main(void) int num; printf(" 자연수입력 : "); scanf("%d", &num); if(num==1) goto ONE; else if(num==2) goto TWO; else goto OTHER; ONE: printf("1 을입력하셨습니다! \n"); goto END; TWO: printf("2 를입력하셨습니다! \n"); goto END; OTHER: printf("3 혹은다른값을입력하셨군요! \n"); END: 레이블

이장의결론 21 문자의입력방법인 getchar() 를배움 Buffering에대한이해 while, do 반복문의사용법이해 break, continue 문의사용법이해 switch, goto 문의사용법이해