저자소개천인국 ( 千仁國 ) 1983년서울대학교전자공학과공학사 1985년한국과학기술원전기및전자공학과공학석사 1993년한국과학기술원전기및전자공학과공학박사 1985~1988년삼성전자종합연구소주임연구원 1993년 ~ 현재순천향대학교컴퓨터공학과교수 2005년캐나다 UBC 방문

Size: px
Start display at page:

Download "저자소개천인국 ( 千仁國 ) 1983년서울대학교전자공학과공학사 1985년한국과학기술원전기및전자공학과공학석사 1993년한국과학기술원전기및전자공학과공학박사 1985~1988년삼성전자종합연구소주임연구원 1993년 ~ 현재순천향대학교컴퓨터공학과교수 2005년캐나다 UBC 방문"

Transcription

1

2 저자소개천인국 ( 千仁國 ) 1983년서울대학교전자공학과공학사 1985년한국과학기술원전기및전자공학과공학석사 1993년한국과학기술원전기및전자공학과공학박사 1985~1988년삼성전자종합연구소주임연구원 1993년 ~ 현재순천향대학교컴퓨터공학과교수 2005년캐나다 UBC 방문교수 chunik@sch.ac.kr 두근두근파이썬 초판인쇄 2017년 1월 9일초판발행 2017년 1월 16일지은이천인국펴낸이김승기펴낸곳 ( 주 ) 생능출판사 / 주소경기도파주시광인사길 143 출판사등록일 2005년 1월 21일 / 신고번호제 호대표전화 (031) / 팩스 (031) 홈페이지 책임편집김민보 / 편집최일연, 신성민, 손정희, 이문영, 정하승 / 디자인유준범마케팅백승욱, 최복락, 김민수, 심수경, 최권혁, 백수정, 최태웅, 김범용, 김민정인쇄 제본 ( 주 ) 상지사P&B ISBN 정가 24,000원 이도서의국립중앙도서관출판예정도서목록 (CIP) 은서지정보유통지원시스템홈페이지 ( 와국가자료공동목록시스템 ( 에서이용하실수있습니다. (CIP 제어번호 : CIP ) 이책의저작권은 ( 주 ) 생능출판사와지은이에게있습니다. 무단복제및전재를금합니다. 잘못된책은구입한서점에서교환해드립니다.

3 머리말 파이썬은입문자들에매우적합한언어이다. 무엇보다도간결하며짧고읽기쉽고, 직관적인코드를작성할수있다. 하지만성능은강력해서네트워킹, 과학계산, 웹프로그래밍분야에서널리사용되고있다. 최근에만들어진언어답게그래픽프로그램도터틀그래픽과 tkinter 를사용하여상당히쉽게작성이가능하다. 이책은생애최초로프로그래밍을하려는학생들을대상으로파이썬언어와 GUI 프로그래밍을소개한다. 프로그래밍을처음시작하는학습자도쉽게따라올수있도록변수, 조건문, 반복문, 함수등의기본적인프로그래밍개념을자세히설명하였다. 적절한그림을가능한많이사용하여더욱친숙하고, 지루하지않으며독자들이이해하기쉬운교재를만들려고노력하였다. 독자들이흥미를가질만한실습예제를간추려서 LAB으로제공하였다. LAB의끝에는도전문제를두어서독자들이주어진소스를개선할수있도록하였다. 터틀그래픽과 tkinter 기반의흥미로운예제와연습문제를제시하였다. 파이썬은수많은다양한활용분야를가지고있기에데이터베이스, 네트워크, 멀티미디어, 통계, 재무, 정보보안프로그래밍은관련책이나인터넷검색등을통하여추가로학습하기바란다. 이책이만들어지기까지많은도움이있었다. 항상새로운책에대하여적극적으로지원해주신생능출판사여러분께깊은감사를표한다. 또책의교정을도와준천명준군과기술교정을봐주신심규현박사님께심심한감사를표한다. 책이발간될때마다오류를지적해주시고격려해주시는많은분들께도깊은감사를드린다. 아무쪼록이책을통하여많은이들이컴퓨터프로그래밍을흥미진진한분야로생각한다면필자에게는큰보람이될것이다. 2016년 12월저자천인국 머리말 3

4 이책의구성과특징 3 이책의구성를수있도록다양한학습장치들을배치하였다. 이책은파이썬입문자들을위하여기술되었다. 입문자들이쉽게개념을이해하고실력을기 01 이번장에서만들프로그램 컴퓨터에서계산기능이중요한가요? 요즘은다른작업을더많이하는거같던데요? 파이썬에는다양한연산자가내장되어있다. 기본적인사칙연산인더하기, 빼기, 곱하기, 나누기연산자뿐만아니라대입 ( 할당 ), 나머지, 지수연산자도있다. 이번장에서이들연산자들에대하여학습한다. 이연산자들을이용하여실제적인응용프로그램을작성하여보자. (1) 사용자로부터화씨온도를받아서섭씨온도로변환하는프로그램을작성해보자. 화씨온 도는미국에서사용된다. 화씨 100 도는섭씨로몇도일까? 파이썬프로그램으로계산해 보자. 컴퓨터는본질적으로계산하는기계입니다. 컴퓨터에서모든것은계산으로처리됩니다. 이번장에서는다음과같은내용을학습합니다. 더하기, 빼기, 곱하기, 나누기등의산술연산자에대하여학습합니다. 나머지, 지수연산자에대하여학습합니다. 대입 ( 할당 ) 연산자와복합연산자를학습한다. 주석의개념을이해한다. 우선순위의개념을이해한다. 산술연산과관련된응응프로그램을작성해봅니다. (2) 사용자가입력하는 n의값에따라 n-각형을그려보자. 터틀그래픽을이용한다. (3) 자동판매기를시뮬레이션하는프로그램을작성해보자. 자동판매기는사용자로부터삽입한돈과물건값을입력받는다. 물건값은 100원단위이다. 프로그램은잔돈을동전으로계산하여출력한다. 동전은 500원, 100원짜리만있다고하자. 각장에서무엇을배워야하는지를제시하였다. 각장에서만들어볼프로그램을제시하였다. 파이썬은많이사용되는언어인가요? 그럼요. 최근에가장핫한언어라고감히말할수있겠네요. 입문자들이쉽게배울수있는언어입니다. NOTE 픽셀이란? 픽셀 (pixel) 은컴퓨터이미지를이루는가장작은단위인점을뜻한다. 픽셀은그림 (picture) 의원소 (element) 라는의미를가진다. 한자로는화소라고번역할수있다. 프로그램에서는한글자만잘못되어도오류라고하네요? 프로그램이스스로알아서고칠수없나요? 도전문제화살표를움직여서 6각형을그려보자. 회전하는각도를몇도로하여야하는가? 프로그래램은아주논리적으로엄밀해야합니다. 컴퓨터는프로그래머마음을읽을수없기때문에고치치않는것입니다. 본문에대한보충설명이나참고사항, 경고사항을박스로정리하였다. 카카오톡스타일을이용하여학습내용을정리하였다. 4 이책의구성과특징

5 Lab 화씨온도를섭씨온도로변환하기 실습시간우리나라에서는온도를나타낼때섭씨온도를사용하지만미국에서는화씨온도를사용한다. 화씨온도를받아서섭씨온도로바꾸는프로그램을작성해보자. C=(F-32)* 이번장에서만들프로그램반복 (iteration) 은동일한문장을여러번반복시키는구조이다. 인간은똑같은작업을반복하는것을싫어하고새롭고흥미로운것들을좋아한다. 하지만컴퓨터는인간과다르게반복적인작업을실수없이빠르게할수있다. 이것이컴퓨터의가장큰장점이다. 단순반복작업은컴퓨터가하는것이제격이다. 이번장에서는다음과같은프로그램을작성해볼것이다. (1) 터틀그래픽에서별을반복을이용해서그려보자. 화씨온도 : 100 섭씨온도 : (2) 터틀그래픽의거북이를랜덤하게움직여보자. 여기를가리고먼저풀어보세요! 소스코드 ftemp = int(input(" 화씨온도 : ")) ctemp = (ftemp-32.0)*5.0/9.0 print(" 섭씨온도 :", ctemp) 다음과같이하여도된다. ftemp = int(input(" 화씨온도 : ")) ctemp = (ftemp-32)*5/9 print(" 섭씨온도 :", ctemp) (3) 터틀그래픽을이용하여스파이럴을그려보자. 파이썬에서나눗셈연산자 / 는항상실수로계산하기때문이다. 도전문제반대로섭씨온도를화씨온도로변환하는프로그램도작성해보자. 결과를보고프로그램을작성할수있는실습을최대한많이수록하였다. 실습문제는흥미로운것만을엄선하였다. 본문에서학습한내용을응용하여프로그램을작성할수도있도록하였다. 터틀그래픽을이용하여기초적인개념들을설명하였다. 이책의특징 파이썬을이용하여프로그래밍에입문하는독자들을위하여프로그래밍의기초적인개념부터자세히설명하였다. 적절한그림을통하여중요한개념들을빠르게학습할수있다. 터틀그래픽과 tkinter를사용하여독자들이그래픽을통하여각종개념을실습할수있도록하였다. 학습한내용을바탕으로독자가스스로프로그램을작성해볼수있는실습문제 (LAB) 를대폭수록하였다. 실습문제들은흥미로운주제들로엄선하였다. 실습문제는설명과함께자세한답안이제공된다. 컬러를사용하여빠르게이해되도록구성하였다. 이책의구성과특징 5

6 강의계획 강의계획 I(Minimum Track) 기초프로그래밍교육은다양한전공의학생들을대상으로하고학교마다강의시간이나학점이달라진다. 만약 2학점의강의이고수강생이인문계라면다음과같은진행을생각할수있다. 주 해당 chapter 학습주제 1 1장 파이썬소개 2 2장 변수 3 3장 계산기능 4 4장 자료의종류 5 5장 조건 I 6 6장 반복 I 7 6장 반복 II 8 중간고사 중간평가 9 7장 함수 I 10 7장 함수 II 11 8장 프로젝트 I 12 8장 프로젝트 I 13 9장 리스트와딕셔너리 I 14 9장 리스트와딕셔너리 II 15 기말프로젝트발표 16 기말고사 기말평가 기말프로젝트주제예시 애스터로이드게임완성하기 (8장참조 ) 앵그리터틀게임완성하기 (8장참조 ) 애니메이션작성하기 (8장참조 ) 6 강의계획

7 강의계획 II(Medium Track) 기초프로그래밍교육은다양한전공의학생들을대상으로하고학교마다강의시간이나학점이달라진다. 만약 3학점의강의이고수강생이자연계전공이라면다음과같은진행을생각할수있다. 주 해당 chapter 학습주제 1 1장 파이썬소개 2 2장 변수 3 3장 계산기능 4 4장 자료의종류 5 5장 조건 6 6장 반복 7 7장 함수 8 중간고사 중간평가 9 8장 프로젝트 I 10 9장 리스트와딕셔너리 I 11 10장 tkinter I 12 10장 tkinter II 13 11장 파일 I 14 11장 파일 II 15 기말프로젝트발표 16 기말고사 기말평가 기말프로젝트주제예시 애스터로이드게임완성하기 (8장참조 ) 앵그리터틀게임완성하기 (8장참조 ) 애니메이션작성하기 (8장참조 ) 계산기기능확장 (10장참조 ) MyPaint 프로그램기능확장 (10장참조 ) 메모장기능확장 (11장참조 ) 강의계획 7

8 강의계획 III(Maximum Track) 기초프로그래밍교육은다양한전공의학생들을대상으로하고학교마다강의시간이나학점이달라진다. 만약 3학점의강의이고수강생이이공계전공이라면다음과같은진행을생각할수있다. 주 해당 chapter 주제 1 1장 파이썬소개 2 2장 변수 3 3장 계산기능 4 4장 자료의종류 5 5장 조건 6 6장 반복 7 7장 함수 8 중간고사 중간평가및프로젝트제안서발표 9 8장 프로젝트 I 10 9장 리스트와딕셔너리 11 10장 tkinter 12 11장 파일 13 12장 라이브러리사용 14 13장 객체와클래스개요 15 14장 프로젝트 II 16 기말고사 기말평가및프로젝트결과발표 기말프로젝트주제예시 애스터로이드게임완성하기 (8장참조 ) 앵그리터틀게임완성하기 (8장참조 ) 애니메이션작성하기 (8장참조 ) 계산기기능확장 (10장참조 ) MyPaint 프로그램기능확장 (10장참조 ) 메모장기능확장 (11장참조 ) Pillow 라이브러리를이용한영상처리프로그램작성 (12장) 클래스를이용한간단한게임작성하기 (14장참조 ) 8 강의계획

9 차례 CHAPTER 1 파이썬을소개합니다 01 프로그래밍이란무엇인가? 프로그래밍이어디에도움이될까? 프로그래밍언어의종류 파이썬설치하기 # 파이썬설치하기 # 파이썬실행하기 파이썬쉘 계산하기 문자열출력하기 터틀그래픽 # 터틀그래픽 # 스크립트모드 소스파일다시열기 문법오류 실행시오류 파이썬 IDLE 종료하기 파이썬으로무엇을만들수있을까? 43 Lab print() 함수실습 44 Lab 터틀그래픽으로삼각형을그려보자 45 Lab 터틀그래픽으로원과다각형을그려보자 46 이번장에서배운것 47 연습문제 48 차례 9

10 CHAPTER 2 변수를소개합니다 01 이번장에서만들프로그램 변수 # 변수 # 변수는문자열도저장할수있다! 변수의이름은어떻게짓나요? 이런것도가능하다! 여러값을함께출력하기 59 Lab 변수는어디에유용할까? 사용자로부터정수입력받기 # 사용자로부터정수입력받기 # 사용자로부터문자열입력받기 63 Lab 집그리기 64 Lab 집그리기 Solution 65 Lab 로봇기자만들기 66 Lab 부동산광고만들기 67 이번장에서배운것 68 연습문제 69 CHAPTER 3 계산해볼까요? 01 이번장에서만들프로그램 수식은어디에나있다! 수식과연산자 나머지연산자 77 Lab 다각형그리기 78 Lab 커피가게매출계산하기 79 Lab 화씨온도를섭씨온도로변환하기 80 Lab BMI 계산하기 81 Lab 자동판매기프로그램 지수연산자 대입 ( 할당 ) 연산자 복합연산자 주석 차례

11 09 연산자의우선순위 87 Lab 평균구하기 89 이번장에서배운것 90 연습문제 91 CHAPTER 4 자료의종류에는어떤것들이있나요? 01 이번장에서만들프로그램 파이썬에서사용할수있는자료의종류 문자열이란? 문자열을만드는방법 문법적인오류 왜큰따옴표와작은따옴표를동시에사용할까? 과 100 을구별해야한다 문자열을숫자로변환할수있다 오류가발생할수있다! 숫자를문자열로변환하려면? 파이썬은문자열처리에강한언어 문자열을반복해보자! 107 Lab 거북이와인사해보자. 108 Lab 거북이와인사해보자 Solution 문자열에서개별문자들을추출하려면? 특수문자열 111 Lab 친근하게대화하는프로그램 112 Lab 연, 월, 일을합하여출력하기 113 Lab 2050년에는몇살이될까? 리스트란? 리스트요소접근하기 116 Lab 친구들의리스트생성하기 117 Lab 리스트에저장된색상으로원그리기 118 Lab 리스트에저장된색상으로원그리기 Solution 119 이번장에서배운것 120 연습문제 121 차례 11

12 CHAPTER 5 조건을따져봅시다 01 이번장에서만들프로그램 가지의기본제어구조 왜선택구조가필요한가? 관계연산자 if-else 문 if-else 문으로예제를작성해보자 블록 134 Lab 정수의부호에따라거북이를움직이자 135 Lab 정수의부호에따라거북이를움직이자 Solution 136 Lab 영화나이제한검사 논리연산자 138 Lab 거북이제어하기 139 Lab 거북이제어하기 Solution 140 Lab 윤년판단 141 Lab 윤년판단 Solution 142 Lab 동전던지기게임 143 Lab 동전던지기게임 ( 그래픽버전 ) 조건이거짓일때연속하여다른조건을검사 145 Lab 종달새가노래할까? if-else 문안에 if-else 문넣기 147 Lab 로그인프로그램 148 Lab 축구게임 149 Lab 도형그리기 150 Lab 도형그리기 Solution 151 이번장에서배운것 152 연습문제 153 CHAPTER 6 반복해봅시다 01 이번장에서만들프로그램 왜반복이중요한가? 반복의종류 차례

13 04 횟수제어반복 # 횟수제어반복 # 횟수제어반복 # range() 함수 예제 : 6개의원그리기 167 Lab 반복을사용하여도형을그리자 168 Lab n-각형그리기 169 Lab 거북이를랜덤하게움직이게하자 170 Lab 거북이를랜덤하게움직이게하자 Solution 171 Lab 팩토리얼계산하기 조건제어반복 예제 : 로그인프로그램 추가예제 175 Lab 구구단출력 177 Lab 별그리기 178 Lab 스파이럴그리기 179 Lab 스파이럴그리기 Solution 180 Lab 사용자가입력하는숫자의합계산하기 181 Lab 사용자가입력하는숫자의합계산하기 Solution 182 Lab 숫자맞추기게임 183 Lab 숫자맞추기게임 Solution 184 Lab 초등생을위한산수문제발생기 185 Lab 모든샌드위치종류출력하기 무한루프와 break 187 Lab 시계그리기 188 Lab 점치는게임 189 Lab 점치는게임 Solution 190 이번장에서배운것 191 연습문제 192 CHAPTER 7 코드를함수로모아봅시다 01 이번장에서만들프로그램 함수란? 199 차례 13

14 03 함수작성하고호출하기 왜우리는함수를작성하는가? 함수에 1개의입력전달하기 값반환하기 함수에여러개의입력전달하기 205 Lab 사각형을그리는함수작성하기 206 Lab 사각형을그리는함수작성하기 Solution 207 Lab n-각형을그리는함수작성하기 변수의범위 함수안에서전역변수사용하기 디폴트인수 키워드인수 212 Lab 클릭하는곳에사각형그리기 214 Lab 클릭하는곳에사각형그리기 Solution 215 Lab 마우스로그림그리기 216 Lab 마우스로그림그리기 Solution 217 Lab 나무그리기 218 Lab 나무그리기 Solution 219 Lab 막대그래프그리기 220 Lab 터틀메이즈러너 221 Lab 터틀메이즈러너 Solution 222 이번장에서배운것 223 연습문제 224 CHAPTER 8 프로젝트 I 01 이번장에서만들프로그램 난수발생하기 거북이경주게임 # 거북이경주게임 # 거북이경주게임 # 거북이경주게임 # 애니메이션만들기 # 애니메이션만들기 # 차례

15 09 애스터로이드게임 # 애스터로이드게임 # 앵그리터틀게임 # 앵그리터틀게임 # 암호화와복호화 크리스마스카드를그려보자 # 크리스마스카드를그려보자 #2 247 CHAPTER 9 리스트와딕셔너리 01 이번장에서만들프로그램 리스트 리스트생성하기 점 (.) 이의미하는것은? 리스트의항목접근하기 슬라이싱 항목변경하기 항목삭제하기 리스트탐색하기 리스트정렬하기 262 Lab 오늘의속담 264 Lab 오륜기그리기 265 Lab 애스터로이드게임업그레이드 266 Lab 애스터로이드게임업그레이드 Solution 딕셔너리 딕셔너리연산 # 딕셔너리연산 #2 271 Lab 편의점재고관리 272 Lab 영한사전 273 Lab (ADVANCED) 이메일보내기 274 이번장에서배운것 275 연습문제 276 차례 15

16 CHAPTER 10 tkinter로 GUI 만들기 01 이번장에서만들프로그램 tkinter란? tkinter의위젯들 단순위젯과컨테이너위젯 버튼이있는윈도우를생성해보자 엔트리와레이블위젯도사용해보자 배치관리자 격자배치관리자 버튼이벤트처리하기 # 버튼이벤트처리하기 # 버튼이벤트처리하기 # 위젯의색상과폰트변경하기 절대위치배치관리자 이미지표시프로그램 MyPaint 프로그램 # MyPaint 프로그램 # MyPaint 프로그램 # (ADVANCED) 계산기프로그램 # (ADVANCED) 계산기프로그램 # (ADVANCED) 계산기프로그램 # (ADVANCED) 계산기프로그램 # (ADVANCED) 계산기프로그램 # (ADVANCED) 계산기프로그램 # (ADVANCED) 계산기프로그램 # (ADVANCED) 계산기프로그램 # (ADVANCED) 계산기프로그램 # (ADVANCED) 계산기프로그램 # 이번장에서배운것 311 연습문제 차례

17 CHAPTER 11 파일을사용해봅시다 01 이번장에서만들프로그램 파일은왜필요한가? 파일에서데이터읽기 # 파일에서데이터읽기 # 파일에서전체데이터읽기 파일에서한줄씩읽기 파일에데이터쓰기 파일에데이터추가하기 파일에서단어읽기 325 Lab 파일복사하기 326 Lab 파일복사하기 Solution 327 Lab 행맨 328 Lab 행맨 Solution 객체출력 # 객체출력 # 객체출력 # 파일대화상자 334 Lab 메모장 335 Lab 메모장 Solution 336 이번장에서배운것 337 연습문제 338 CHAPTER 12 다양한라이브러리를사용해봅시다 01 이번장에서만들프로그램 파이썬의외부라이브러리 필로우설치 # 필로우설치 # 필로우를이용한영상표시 필로우를이용한영상처리 : 영상회전 필로우를이용한영상처리 : 영상흐리게하기 메뉴만들기 영상처리기능을메뉴로연결 351 차례 17

18 CHAPTER 13 객체란무엇인가요? 01 이번장에서만들프로그램 객체지향프로그래밍 객체란? 우리는이미객체를사용해보았다! 객체생성하기 # 객체생성하기 # 객체를생성하면서초기화하기 하나의클래스로객체는많이만들수있다 str () 메소드 self는무엇인가? 366 Lab 터틀그래픽을다시보자 367 Lab 터틀그래픽을다시보자 Solution Car 클래스 + Turtle 클래스 369 Lab Ball 클래스 370 Lab Ball 클래스 Solution 상속이란? 372 이번장에서배운것 373 연습문제 374 CHAPTER 14 프로젝트 II 01 이번장에서만들프로그램 공을클래스로표현하자 객체생성 다양한공을만들도록하자 tkinter를사용하여윈도우를생성해보자 Ball 클래스에서원그리기 공을움직여보자 이제까지작성된소스를실행해보자 공을화면에서반사시키자 움직이는볼을여러개만들어보자 소스 # 차례

19 12 소스 # 간단한게임작성 # 간단한게임작성 # 전체소스 # 전체소스 #2 394 찾아보기 395 차례 19

20

21 6 CHAPTER 반복해봅시다 저는같은말도반복하기싫은데컴퓨터는쉽게반복하겠죠? 사실반복하는것은컴퓨터가문제를해결하는핵심적인기법이에요. 생각지도못한분야에서도반복을이용하여문제를해결하지요. 이번장에서는다음과같은내용을학습합니다. 반복문의필요성을이해합니다. while 문을사용하여조건으로반복하는방법을학습합니다. for문을사용하여정해진횟수만큼반복하는방법을학습합니다.

22 01 이번장에서만들프로그램 반복 (iteration) 은동일한문장을여러번반복시키는구조이다. 인간은똑같은작업을반복하는것을싫어하고새롭고흥미로운것들을좋아한다. 하지만컴퓨터는인간과다르게반복적인작업을실수없이빠르게할수있다. 이것이컴퓨터의가장큰장점이다. 단순반복작업은컴퓨터가하는것이제격이다. 이번장에서는다음과같은프로그램을작성해볼것이다. (1) 터틀그래픽에서별을반복을이용해서그려보자. (2) 터틀그래픽의거북이를랜덤하게움직여보자. (3) 터틀그래픽을이용하여스파이럴을그려보자. 158 두근두근파이썬

23 02 왜반복이중요한가? 반복은어떤단계를반복하게하는것으로반복구조를사용하면프로그램이간단하고빠르게된다. 예를들어서동일한작업을반복하기위하여똑같은문장을복사하여붙여넣기하는것보다반복구조를사용하는편이프로그램을간결하게만든다. 또프로그래밍에필요한시간도단축할수있다. 하나의예로화면에회사에중요한손님이오셔서대형전광판에 방문을환영합니다! 를 5번출력한다고하자. 방문을환영합니다! 방문을환영합니다! 방문을환영합니다! 방문을환영합니다! 방문을환영합니다! 반복구조를사용하지않는다면다음과같이동일한문장을 + 를사용하여복사한후에 + 로붙여넣기하여야한다. print(" 방문을환영합니다!") print(" 방문을환영합니다!") print(" 방문을환영합니다!") print(" 방문을환영합니다!") print(" 방문을환영합니다!") 물론반복횟수가몇번안되는경우에는위와같이 복사해서붙여넣기 하여도된다. 하지만 1000번반복해야한다면어떻게할것인가? 이런경우에 for 문을사용한다면다음과같이간단하게작성할수있다. for i in range(1000): print(" 방문을환영합니다!") CHAPTER 6 반복해봅시다 159

24 03 반복의종류 파이썬에서는 2 가지종류의반복이있다. 횟수제어반복 (for 문 ): 정해진횟수만큼반복한다. 조건제어반복 (while 문 ): 특정한조건이만족되면계속반복한다. 횟수제어반복은반복을시작하기전에반복의횟수를미리아는경우에사용한다. 예를들어서 환영합니다 문장을 10번번복하여출력한다면 for 문을사용할수있다. 파이썬에서는항목들을모아놓은시퀀스라는객체가있고여기에서항목을하나씩가져와서반복하게된다. 시퀀스에항목이더이상없으면반복이종료된다. 시퀀스에항목이있는가? 문장을실행한다. for 변수 in 시퀀스 : 문장 시퀀스의다음항목 시퀀스에더이상항목이없으면 조건제어반복은특정한조건이만족되는동안계속반복한다. 조건 조건이거짓이면 조건이참이면 문장을실행한다. NOTE 프로그래밍에서반복은흔히루프 (loop) 라고한다. 왜냐하면프로그램이반복할때이전단 계로되돌아가는데이것이동그라미를그리는것처럼보이기때문이다. 160 두근두근파이썬

25 04 횟수제어반복 #1 파이썬에서횟수제어반복은 for 루프라고도한다. 왜냐하면많은언어에서횟수제어반복을 키워드 for 를사용하여제공하고있기때문이다. print(" 방문을환영합니다!") 5 번반복하고빠져나가시오! 다음과같은코드를파일에입력하고실행해보자. for i in [1, 2, 3, 4, 5]: print(" 방문을환영합니다.") # 끝에 : 이있어야함 # 들여쓰기하여야함 반복되는문장은반드시들여쓰기하여야한다. 여기서 [...] 은리스트 (list) 라고한다. 리스트는여러가지값들을담을수있는컨테이너이다. [1, 2, 3, 4, 5] 안에는정수 1, 2, 3, 4, 5가담겨있다. 위의코드를실행하면다음과같은출력을얻을수있다. 방문을환영합니다! 방문을환영합니다! 방문을환영합니다! 방문을환영합니다! 방문을환영합니다! CHAPTER 6 반복해봅시다 161

26 print(...) 문장이리스트에있는숫자들의개수만큼반복된다. 1 첫번째반복에서변수 i의값은리스트의첫번째숫자인 1이되고 print(...) 문장이실행된다. 2 두번째반복에서변수 i의값은리스트의두번째숫자인 2가되고 print(...) 문장이실행된다. 3 세번째반복에서변수 i의값은리스트의세번째숫자인 3이되고 print(...) 문장이실행된다. 4 네번째반복에서변수 i의값은리스트의네번째숫자인 4가되고 print(...) 문장이실행된다. 5 다섯번째반복에서변수 i의값은리스트의다섯번째숫자인 5가되고 print(...) 문장이실행된다. NOTE 여기서반복되는문장들은반드시들여쓰기하여야한다. 들여쓰기는스페이스 4개로하는것이좋다. 만약 IDLE를사용하고있다면파이썬쉘이자동으로들여쓰기를해줄것이다. 파이썬에서들여쓰기하여서입력한문장들을묶어서블록 (block) 이라고한다. 블록에속하는문장들은운명공동체이다. 반대로들여쓰기되지않은문장은블록에속하지않는다. 반복을원하는않는문장은들여쓰기를하지않으면된다. 블록은함수를정의할때도요긴하게사용된다. 블록은문장들의묶음임을기억하자. 파이썬에서는들여쓰기로블록을생성한다. 162 두근두근파이썬

27 05 횟수제어반복 #2 앞페이지에서는변수 i의값을전혀이용하지않았다! 이번에는반복하면서변수 i의값을출력해보자. for i in [1, 2, 3, 4, 5]: print("i=", i) 위의코드를실행하면다음과같이출력된다. i= 1 i= 2 i= 3 i= 4 i= 5 이번에는구구단중에서 9 단중의일부를 for 루프를이용하여출력해보자. for i in [1, 2, 3, 4, 5]: print("9*", i, "=", 9*i) 9* 1 = 9 9* 2 = 18 9* 3 = 27 9* 4 = 36 9* 5 = 45 CHAPTER 6 반복해봅시다 163

28 06 횟수제어반복 #3 앞에서는리스트에정수들을저장해두고하나씩꺼내서반복하였다. 하지만반복횟수가 1,000번이라면이방법이불가능하다. 반복해야하는횟수가큰경우를대비하여 range() 함수를사용하는방법이준비되어있다. range() 함수로반복횟수를전달하면 range() 함수가자동으로정수들을생성해준다. 문법 6.1 for 문 0 에서 ( 종료값 -1) 까지의숫자를반환한다. for 변수 in range( 종료값 ) : 문장 반복되는문장으로들여쓰기하여야한다. 예를들어서 방문을환영합니다. 를 5 번출력하는문장을 for 문으로작성하면다음과같다. for i in range(5): # (1) print(" 방문을환영합니다!") # (2) 방문을환영합니다! 방문을환영합니다! 방문을환영합니다! 방문을환영합니다! 방문을환영합니다! (1) range(5) 는 0, 1, 2, 3, 4까지의값을반환한다. 반복할때마다변수 i에이값들을대입하면서문장을반복한다. 즉첫번째반복에서는 i는 0이고되고두번째반복에서는 1이된다. 마지막반복에서 i는 4가된다. (2) 반복되는문장은들여쓰기하여야한다. 들여쓰기가있는문장들만이반복된다. 파이썬쉘에서 range() 함수에 list() 함수를적용하면 range() 함수가생성하는정수들을볼수있다. >>> list(range(10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 164 두근두근파이썬

29 07 range() 함수 range() 함수는숫자들을생산하는공장으로생각하면된다. range(5) 는 5개의정수를생성한다. 0, 1, 2, 3, 4가바로그것이다. for 루프 range(5) range() 함수의일반적인형식은다음과같다. range(start, stop, step) 이라고호출하면 start에서시작하여 (stop-1) 까지 step 간격으로정수들이생성된다. 여기서 start와 step이생략되면 start는 0으로간주되고 step은 1로간주된다. 문법 6.2 range() 함수 시작값이다. 종료값이지만 stop 은포함되지않는다. 한번에증가되는값이다. range(start=0, stop, step=1) 예를들어서 range(0, 5, 1) 이라고하면 0, 1, 2, 3, 4까지의정수가반환된다. range(5) 이라고하면 start와 step은생략된것으로 range(0, 5, 1) 와같다. 만약 1부터시작하여서 5까지반복하고싶다면어떻게하면될까? range(1, 6, 1) 을사용하면될것이다. 반복하면서변수 i의값을출력해보자. for i in range(1, 6, 1): print(i, end=" ") end=" " 와같이지정하면줄이바뀌지않고한줄에전부출력됩니다. CHAPTER 6 반복해봅시다 165

30 만약 10부터시작하여서 1까지반복하고싶다면어떻게하면될까? range(10, 0, -1) 을사용하면될것이다. 반복하면서변수 i의값을출력해보자. for i in range(10, 0, -1): print(i, end=" ") 경고 range(10) 함수를사용할때가장혼동하는부분이 1에서 10까지의정수가생성된다고생각하는것이다. 반복횟수로생각하면 10번반복은맞다. 하지만생성되는정수는 0부터 9까지이다. 이것은컴퓨팅의오랜논쟁거리였다. 최근에는 0부터시작하는것이대세가되었다. 암튼 range(10) 하면 10번반복되고생성되는정수는 0부터 9까지이다. 만약 1부터 10까지의정수가필요하면 range(1, 11) 로하면된다. 166 두근두근파이썬

31 08 예제 : 6 개의원그리기 이번에는터틀그래픽을시용하여반복을설명해보자. 예를들어, 터들을 60도만큼회전시키면서화면에 6개의원을그린다고가정하자. 반복을사용하지않는다면다음과같이코드를작성하여야한다. import turtle t = turtle.turtle() t.circle(100) # 반지름이 100 인원을그린다. t.left(60) # 60 도만큼터틀을왼쪽으로회전시킨다. t.circle(100) t.left(60) t.circle(100) t.left(60) t.circle(100) t.left(60) t.circle(100) t.left(60) t.circle(100) 물론이렇게그려도되지만상당한코드가반복되어있다. 따라서이런경우에는반복을사용하는것이좋다. 어떻게하면좋을까? 위의코드를분석해보면 60도회전하고원을그리는문장이 6번반복된다. 따라서 for 루프를이용하여작성해보자. import turtle t = turtle.turtle() for count in range(6): t.circle(100) t.left(360/6) 6번반복해야하므로 range(6) 을호출하여서 6개의숫자 [ 0, 1, 2, 3, 4, 5 ] 를생성하였다. 각반복에서는반지름이 100인원을그리고, 터틀을 60도만큼회전시키고있다. CHAPTER 6 반복해봅시다 167

32 Lab 반복을사용하여도형을그리자 실습시간 터틀그래픽에서도반복을사용할수있다. 정삼각형과정사각형을반복을이용하여화면에그려보자. 같은문장을반복해서적을필요가없다. 여기를가리고먼저풀어보세요! 소스코드 import turtle t = turtle.turtle() t.shape("turtle") # 정삼각형그리기 for i in range(3): t.forward(100) t.left(360/3) # 이동하기 t.penup() t.goto(200, 0) t.pendown() # 정사각형그리기 for i in range(4): t.forward(100) t.left(360/4) 도전문제정육각형은어떻게그리면되는가? 반드시반복을사용해서화면에그려보자. 168 두근두근파이썬

33 Lab n- 각형그리기 실습시간 우리는앞에서반복을이용하여정삼각형과정사각형을그려보았다. 사용자로부터정수 n을받아서 n-각형을그리는프로그램을작성할수있는가? textinput() 을이용하여사용자로부터정수를입력받자. 여기를가리고먼저풀어보세요! 소스코드 import turtle t = turtle.turtle() t.shape("turtle") s = turtle.textinput("", " 몇각형을원하시나요?:") n=int(s) for i in range(n): t.forward(100) t.left(360/n) 도전문제 n- 각형의한변의크기도사용자로부터받아보자. forward(100) 이아니고 forward(len) 가되도록하라. CHAPTER 6 반복해봅시다 169

34 Lab 거북이를랜덤하게움직이게하자 실습시간 터틀그래픽에서거북이가술에취한것처럼랜덤하게움직이게해보자. 난수를발생시키는것은아주많이사용되는작업이다. 파이썬에서는다음과같은문장으로난수를발생할수있다. import random number = random.randint(1, 100) randint(1, 100) 이라고호출하면 1 에서 100 사이의난수가생성된다. 반복과난수를결합하면거북이를랜덤하게움직일수있다. 간단하게알고리즘을만들어보면다음과같다. 알고리즘 30번반복 * [1, 100] 사이의난수를발생하여변수 length에저장한다. * 거북이를 length만큼움직인다. * [-180, 180] 사이의난수를발생하여변수 angle에저장한다. * 거북이를 angle만큼회전시킨다. 다음페이지를보기전에먼저풀어보세요 170 두근두근파이썬

35 Lab 거북이를랜덤하게움직이게하자 Solution 소스코드 1 import turtle 2 import random 3 t = turtle.turtle() 4 t.shape("turtle") 5 6 for i in range(30): 7 length = random.randint(1, 100) 8 t.forward(length) 9 angle = random.randint(-180, 180) 10 t.right(angle) 1 turtle 모듈을포함한다. 2 random 모듈을포함한다. 3 터틀윈도우를생성한다. 4 터틀의모양을거북이로변경한다. 5 빈줄이다. 6 30번반복한다. 7 1부터 100 사이의난수를생성하여 length 변수에저장한다. 8 length만큼거북이를전진시킨다 부터 180 사이의난수를생성하여 angle 변수에저장한다. 10 angle 변수만큼거북이를오른쪽으로회전한다. 실행할때마다결과는달라진다. 도전문제거북이가 90도로만방향을전환할수있다면위의프로그램은어떻게수정되어야할까? 거북이는 90도, 180도, 270도, 360도중에서하나를선택하여앞으로전진한다. CHAPTER 6 반복해봅시다 171

36 Lab 팩토리얼계산하기 실습시간 for문을이용하여서팩토리얼을계산해보자. 팩토리얼 n! 은 1부터 n까지의정수를모두곱한것을의미한다. 즉, n! = (n-1) n 이다. 정수를입력하시오 : 10 10! 은 이다. 여기를가리고먼저풀어보세요! 소스코드 n = int(input(" 정수를입력하시오 : ")) fact = 1 for i in range(1, n+1): fact = fact * i print(n, "! 은 ", fact, " 이다.") 팩토리얼의값은생각보다아주커질수있다. 여기서 fact의초깃값은반드시 1이어야한다. 0 이면안된다. 왜냐하면팩토리얼은정수를전부곱해서계산하는것이므로초깃값이 0이면결 과는 0이되어버린다. 따라서반드시 1로초기화를시켜야한다. n이 5라고하면다음과같이반복이진행된다. i의값 반복여부 fact의값 1번째반복 1 반복 1*1 2번째반복 2 반복 1*1*2 3번째반복 3 반복 1*1*2*3 4번째반복 4 반복 1*1*2*3*4 5번째반복 5 반복 1*1*2*3*4*5 172 두근두근파이썬

37 09 조건제어반복 조건제어반복은어떤조건이만족되는동안반복하기때문에붙여진이름이다. 예를들어서엄마가요리하고있고꼬마가엄마의요리를기다리고있다고가정하자. 꼬마는엄마의요리가다됐는지를지속적으로물어본다. 만약엄마의대답이 아니 이면꼬마는약간기다렸다가다시물어본다. 엄마의대답이 아니 가아니면꼬마는엄마의요리를먹을수있을것이다. 이런경우에조건제어반복을사용한다. 파이썬에서는조건제어반복을위하여 while 루프를제공하고있다. response =input(" 엄마, 다됐어?") response=" 아니 " response==" 아니 " print(" 먹자 ") 참 거짓 파이썬에는조건제어루프로 while 문이있다. while 문은반복의횟수는모르지만, 반복의조건은알고있는경우에사용하는반복구조이다. 문법 6.2 while 루프 반복을하는조건이다. 조건이참이면반복을계속한다. while 조건 : 반복문장반복되는문장이다. 위의예를프로그램으로작성해보면다음과같다. response = " 아니 " while response == " 아니 ": response = input(" 엄마, 다됐어?"); print(" 먹자 ") CHAPTER 6 반복해봅시다 173

38 10 예제 : 로그인프로그램 어떤경우에반복되는횟수를알수없을까? 가장대표적인경우가사용자로부터어떤값을받아서처리할때이다. 사용자가입력하는값을예측하기힘들기때문이다. 예를들어서사용자가암호를입력하고프로그램에서암호가맞는지를체크한다고하자. 알고리즘을생각해보자. 암호는 pythonisfun 이라고가정하자. 알고리즘 1. 암호 ="" 2. 암호가 "pythonisfun" 이아니면다음을반복한다. * 사용자로부터암호를입력받는다. 3. " 로그인성공 " 을출력한다. 이알고리즘은암호가올바르게입력될때까지반복한다. 사용자가몇번만에올바른암호를입력할지를미리알수없기때문에조건제어루프가사용되었다. 이알고리즘을파이썬으로구현하면다음과같다. password = "" while password!= "pythonisfun": password = input(" 암호를입력하시오 : ") print(" 로그인성공 ") 암호를입력하시오 : idontknow 암호를입력하시오 : 암호를입력하시오 : password 암호를입력하시오 : pythonisfun 로그인성공 이예제에서의조건은입력된암호가 pythonisfun 인지여부이다. 알고리즘이조건이참인지를검사한다. 만약참이면알고리즘은 로그인성공 이라는메시지를출력하고종료한다. 만약거짓이면알고리즘은루프의처음으로돌아가서조건이참이될때까지실행을계속한다. 174 두근두근파이썬

39 11 추가예제 횟수를알수없는경우에만 while 루프를사용할수있는것은아니다. 횟수를알고있는경우에도 while 루프를사용할수있다. 예제 : 1 부터 10 까지의합계산 예를들어서 1 부터 10 까지의합을계산하는예제를 while 루프로작성해보자. count = 1 sum = 0 while count <= 10 : sum = sum + count count = count + 1 print(" 합계는 ", sum) 합계는 55 count sum count<=10 반복여부 1 1 True 반복 True 반복 True 반복 True 반복 True 반복 True 반복 True 반복 True 반복 True 반복 True 반복 False 반복중단! CHAPTER 6 반복해봅시다 175

40 예제 : 사각형그리기 while 루프를이용하여서화면에사각형을그리는코드를작성해보자. import turtle t = turtle.turtle() i = 0 while i < 4: t.forward(100) t.right(90) i = i + 1 변수 i가루프를제어한다. i의초깃값은 0이고반복할때마다 1씩증가하여서 4가되면반복은종료된다. 변수 i가 과같이증가되면서반복이실행되기때문에 4번반복한다. 한번반복할때마다터틀은 100픽셀전진하고오른쪽으로 90도회전한다. 따라서사각형이화면에그려진다. 176 두근두근파이썬

41 Lab 구구단출력 실습시간 구구단중에서 9단을반복문을이용하여출력해보자. 9*1, 9*2, 9*3,.., 9*9까지 9번반복시키면출력하면될것이다. 원하는단은 : 9 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 여기를가리고먼저풀어보세요! 소스코드 dan = int(input(" 원하는단은 : ")) i = 1 while i <= 9: print("%s*%s=%s" % (dan, i, dan*i)) i = i + 1 %s 자리에변수의값이출력된다. 변수 i 의초기값은 0 보다는 1 인것이편리하다. 도전문제구구단의 1 단부터 9 단까지를모두출력하도록위의프로그램을수정해보자. CHAPTER 6 반복해봅시다 177

42 Lab 별그리기 실습시간 여러분이앞의예제를이해하고실행해보았다면아마다음문제도쉽게해결할수있을것이다. 반복문을사용하여별을그려보자. 5번반복하고반복할때마다거북이를 50픽셀만큼전진시키고오른쪽으로 144도회전하면별이그려진다. 스크립트모드로다음과같은소스를입력하여실행하여본다. 물론번호는입력하면안된다! 1 import turtle 2 t = turtle.turtle() 3 t.shape("turtle") 4 i = 0 5 while i < 5: 6 t.forward(50) 7 t.right(144) 8 i = i turtle 모듈을포함시킨다. 2 터틀그래픽이그려지는윈도우를생성한다. 3 터틀의모습을화살표에서거북이로변경한다. 4 변수 i에 0을저장한다. 5 변수 i가 5보다작을때까지반복한다. 6 거북이를 50픽셀만큼전진시킨다. 7 거북이를 144도만큼오른쪽으로회전시킨다. 8 변수 i를 1만큼증가시킨다. 도전문제무한루프위의코드에서 8번문장을삭제하고실행시켜보자. 어떤일이발생하는가? 이것을무한루프라고한다. 거북이가무척고생을한다. 178 두근두근파이썬

43 Lab 스파이럴그리기 실습시간 반복문을터틀그래픽과결합하면상당히복잡한형상을쉽게그릴수있다. 예를들어서다음과같은그림을그릴수있다. 화면에사각형을그리는것이지만한번반복할때마다각도가 90도가아니고 89도로하면약간씩회전되는사각형을그리는것이가능하다. 많은사각형을반복해서그리면위와같은그림이얻어진다. 색상은리스트에저장했다가하나씩꺼내서변경하도록하자. colors = ["red", "purple", "blue", "green", "yellow", "orange" ] 배경색은다음과같은문장으로변경이가능하다. turtle.bgcolor("black") 거북이의속도는 0 으로설정하면최대가된다. t.speed(0) 거북이가그리는선의두께는 width() 를호출하면된다. t.width(3) 다음페이지를보기전에먼저풀어보세요 CHAPTER 6 반복해봅시다 179

44 Lab 스파이럴그리기 Solution 실습시간소스코드 import turtle # 색상은리스트에저장했다가하나씩꺼내서변경하도록하자. colors = ["red", "purple", "blue", "green", "yellow", "orange" ] t = turtle.turtle() # 배경색은다음과같은문장으로변경이가능하다. turtle.bgcolor("black") # 거북이의속도는 0 으로설정하면최대가된다. t.speed(0) # 거북이가그리는선의두께는 width() 를호출하면된다. t.width(3) length = 10 # 초기선의길이는 10 으로한다. # while 반복문이다. 선의길이가 500보다작으면반복한다. while length < 500: t.forward(length) # length만큼전진한다. t.pencolor(colors[length%6]) # 선의색상을변경한다. t.right (89) # 89도오른쪽으로회전한다. length += 5 # 선의길이를 5만큼증가한다. 도전문제각반복에서거북이가회전하는각도를약간다르게해서결과가어떻게달라지는지본다. 180 두근두근파이썬

45 Lab 사용자가입력하는숫자의합계산하기 사용자가입력한숫자들을더하는프로그램을작성해보자. 사용자가 yes라고답한동안에만숫자를입력받는다. 숫자를입력하시오 : 10 계속?(yes/no): yes 숫자를입력하시오 : 20 계속?(yes/no): no 합계는 : 30 알고리즘을작성해보자. 알고리즘 1. total을 0으로설정한다. 2. answer를 'yes' 로설정한다. 3. answer가 'yes' 인동안에다음을반복한다. * 숫자를입력받는다. * 숫자를 total에더한다. * ' 계속? yes/no' 을묻는다. 4. total의값을출력한다. 이알고리즘은루프의끝에서사용자가입력하는문자열이 no 일때까지반복을계속한다. 즉, 더할숫자들이남아있으면반복을계속한다. 알고리즘이정지하기전에얼마나많은숫자들이입력될지알수없기때문에조건제어루프가사용되었다. 다음페이지를보기전에먼저풀어보세요 CHAPTER 6 반복해봅시다 181

46 Lab 사용자가입력하는숫자의합계산하기 Solution 실습시간소스코드 total = 0 answer = "yes" while answer == "yes": number = int(input(" 숫자를입력하시오 : ")) total = total + number answer = input(" 계속?(yes/no): ") print(" 합계는 : ", total) while 루프를사용한다. 조건 answer = yes 가반복을제어하기위하여사용되었다. 반복이한번이라도수행되려면 answer의초깃값은 yes 이어야한다. 변수 answer가 yes 인지를검사한다. 조건이참이면프로그램은반복을계속한다. 조건이거짓이면프로그램은다음단계로이동한다. 조건제어루프에서어떤경우에서반복이전혀되지않을때가있다. 이것은 while 루프에서는반복이시작되기전에조건을검사하기때문이다. 만약조건이거짓이면반복이전혀일어나지않는다. 다음파이썬코드를보자. total = 0 answer = "no" while answer == "yes": number = int(input(" 숫자를입력하시오 : ")) total = total + number answer = input(" 계속?(yes/no) ") print(" 합계는 : ", total) 프로그램이실행되었을때, while 루프의조건이참이되지않는다. 따라서프로그램은반복문의내부에있는문장을실행하지않고지나가게된다. Tip 조건제어루프는사전에반복이몇번일어날지를알수없는경우에사용된다. 182 두근두근파이썬

47 Lab 숫자맞추기게임 이예제는프로그램이가지고있는정수를사용자가알아맞히는게임이다. 사용자가답을제시하면프로그램은자신이저장한정수와비교하여제시된정수가더높은지낮은지만을알려준다. 정수의범위를 1부터 100까지로한정하면최대 7번이면누구나알아맞힐수있다. 정수의범위를 1부터 1,000,000 까지확대하더라도최대 20번이면맞출수있다. 왜그럴까? 이진탐색의원리때문이다. 정렬되어있는숫자중에서중간값 과한번씩비교할때마다탐색의범위는 1/2로줄어든다. 예를들어서 1부터 100 사이에서 50 과비교하여서 50보다작다는답변을들었다면, 다음탐색범위는 1부터 50이된다. 그렇지만물론게임이기때문에운도따른다. 게임이끝나면몇번만에맞추었는지도함께출력하자. 1부터 100 사이의숫자를맞추시오숫자를입력하시오 : 50 낮음! 숫자를입력하시오 : 86 낮음! 숫자를입력하시오 : 87 축하합니다. 시도횟수 = 3 프로그램은반복루프를사용하여사용자가정확하게정수를알아맞힐때까지반복한다. 반복루프중에서 while 루프가적당한데반복횟수를미리알수없기때문이다. 사용자가정답을알아맞히면몇번만에알아맞혔는지를화면에출력한다. 사용자가제시한정수와정답을비교하는데 if 문이사용된다. 알고리즘 while guess!= answer 사용자로부터숫자를 guess로입력받는다. 시도횟수를증가한다. if( guess < answer ) 숫자가낮다고출력한다. if( guess > answer ) 숫자가높다고출력한다. " 축하합니다 " 와시도횟수를출력한다. 다음페이지를보기전에먼저풀어보세요 CHAPTER 6 반복해봅시다 183

48 Lab 숫자맞추기게임 Solution 실습시간소스코드 import random tries = 0 guess = 0; answer = random.randint(1, 100) print("1 부터 100 사이의숫자를맞추시오 ") while guess!= answer: guess = int(input(" 숫자를입력하시오 : ")) tries = tries + 1 if guess < answer: print(" 낮음!") elif guess > answer: print(" 높음!") if guess == answer: print(" 축하합니다. 시도횟수 =", tries) else: print(" 정답은 ", number) 3개의변수가선언되어서사용된다. 변수 answer는정답을저장하고있다. 변수 guess에는사용자가입력한정수가저장된다. 만약 answer와 guess가일치하면반복이종료된다. tries 는사용자의시도횟수를기록한다. 반복루프는 while 루프를이용하여구현되었다. while 루프의조건검사부분에서 guess가 answer와같은지를검사한다. 만약 guess가 answer와같으면반복을중단하고시도횟수를출력한다음에종료한다. 사용자로부터정수를입력받은후에, 이것을 answer에저장된정수와비교한다. if 문을사용하여 guess가 number보다작은지큰지를검사하여적당한메시지를출력한다. 도전문제시도횟수를최대 10 번으로제한하려면위의프로그램을어떻게변경하여야하는가? 184 두근두근파이썬

49 Lab 초등생을위한산수문제발생기 실습시간 초등학생들을위하여산수문제를발생시키는프로그램을작성해보자 = 57 잘했어요!! = 76 잘했어요!! = 11 다음번에는잘할수있죠? = 난수가필요하다. 파이썬에서난수는다음과같이생성이가능하다. 아래코드는 1부터 100 사이의난수를발생한다. import random number = random.randint(1, 100) 무한루프를사용하고사용자가 + 를누르면종료하는것으로하자. 여기를가리고먼저풀어보세요! 소스코드 import random while True: x = random.randint(1, 100) y = random.randint(1, 100) print(x, "+", y, "=", end= " ") answer = int(input()) if answer == x + y: print(" 잘했어요!!") else: print(" 다음번에는잘할수있죠?") 도전문제덧셈뿐만아니라뺄셈문제도출제할수있도록위의프로그램을수정하라. CHAPTER 6 반복해봅시다 185

50 Lab 모든샌드위치종류출력하기 실습시간 우리가샌드위치가게를한다고가정하자. 우리가게에서가능한모든샌드위치의종류를출력하고싶다. 빵의종류는 호밀빵, 위트, 화이트 가가능하다. 고기로는 미트볼, 소시지, 닭가슴살, 야채로는 양상추, 토마토, 오이 등이가능하다. 소스로는 마요네즈, 허니머스타드, 칠리 등이가능하다. 한가지씩만선택이가능하다고하자. 가능한조합은어떻게될까? 여기를가리고먼저풀어보세요! 소스코드 breads = [" 호밀빵 ", " 위트 ", " 화이트 " ] meats = [" 미트볼 ", " 소시지 ", " 닭가슴살 "] vegis = [" 양상추 ", " 토마토 ", " 오이 "] sauces = [" 마요네즈 ", " 허니머스타드 ", " 칠리 "] for b in breads: for m in meats: for v in vegis: for s in sauces: print(b+"+"+m+"+"+v+"+"+s) 186 두근두근파이썬

51 12 무한루프와 break 조건제어루프에서가끔은프로그램이무한히반복하는일이발생한다. 이것은무한루프 (infinite loop) 로알려져있다. 무한반복이발생하면프로그램은빠져나올수없기때문에문제가된다. 하지만가끔은무한루프가사용되는데예를들면신호등제어프로그램은무한반복하여야하기때문이다. 무한반복루프는다음과같은형태를가진다. 문법 6.3 break 문 while True : 반복문장반복문장 if 조건 : break; while 루프의조건에 True가있다. 따라서조건이항상참이므로무한히반복된다. 하지만무한루프라고하더라도어떤조건이성립하면무한루프를빠져나와야하는경우도많다. 이런경우는 if 문장을사용하여서루프를빠져나오게된다. break 문장은루프를강제적으로빠져나올때사용하는문장이다. 간단한예제를작성해보면다음과같다. while True: light = input(' 신호등색상을입력하시오 ') if light == 'blue': break print(' 전진!!') 위의코드에서는화면에 신호등색상을입력하시오 을출력하고사용자의입력을기다린다. while True: 로되어있으므로무한루프이다. 사용자가 blue 를입력하면 break 문장을실행하여서무한루프를빠져나간다. blue 가아니면계속반복한다. CHAPTER 6 반복해봅시다 187

52 Lab 시계그리기 실습시간 터틀그래픽을이용하여시계를작성해보자. 터틀그래픽의 stamp() 함수를호출하면그위치에거북이를찍을수있다. 여기를가리고먼저풀어보세요! 소스코드 import turtle t = turtle.turtle() t.shape("turtle") t.color("red") t.stamp() move = 30 for i in range(12): # 12번반복 t.penup() # 펜을올린다. t.forward(50) # 50만큼전진 t.pendown() # 펜을내린다 t.forward(25) t.penup() t.forward(15) t.stamp() t.home() t.right(move) move = move 두근두근파이썬

53 Lab 점치는게임 실습시간사용자가질문을하면운세를점치는프로그램을작성해보자. 우리도아침에일어나서오늘의운세를점칠때, 사용할수있을거같다. 난수가필요하다. 파이썬에서난수는다음과같이생성이가능하다. 아래코드는 1부터 8 사이의난수를발생한다. import random number = random.randint(1, 8) 난수기능을이용하여랜덤한답변을내보내면된다. 답변의종류는 8가지로하자. 여러분들은얼마든지답변의수를늘릴수있다. 이름 : ( 종료하려면엔터키 ) 홍길동무엇에대하여알고싶은가요? 취직은될까요? 홍길동님 " 취직은될까요? " 에대하여질문주셨군요. 운명의주사위를굴려볼게요... 한점의의심도없이맞습니다. 도전문제위의프로그램은얼마든지다른방식으로작성이가능하다. 8개의문자열을 8개의변수에저장하고 if 문에서는해당변수를출력하는식으로코드를변경해보자. 다음페이지를보기전에먼저풀어보세요 CHAPTER 6 반복해봅시다 189

54 Lab 점치는게임 Solution 소스코드 import sys import random while True: name = input(" 이름 : ( 종료하려면엔터키 ) ") if name == "": sys.exit() 프로그램을종료한다. question = input(" 무엇에대하여알고싶은가요? ") print(name+ " 님 ", "\"", question, "\" 에대하여질문주셨군요.") print(" 운명의주사위를굴려볼게요...") answers = random.randint(1, 8) if answers == 1: print (" 네, 확실합니다. ") elif answers == 2: print (" 전망이좋은거같은데요.") elif answers == 3: print (" 믿으셔도됩니다.") elif answers == 4: print (" 글쎄요아닌거같군요.") elif answers == 5: print (" 한점의의심도없이맞습니다.") elif answers == 6: print (" 그럼요, 명백히올바른선택을했습니다. ") elif answers == 7: print (" 제답변은 No 입니다.") else : print (" 나중에다시물어보세요.") 1에서 8 사이의난수를발생한후에난수의값에따라서 if-else 구조를사용하여답변을다르게하면된다. 위에서 sys 모듈을포함시켰는데, exit() 함수를사용하기위해서이다. 만약사용자가이름을입력하지않고엔터키를치면 name은비어있게되고이것을 if 문으로검사하여 exit() 를호출하면전체프로그램이종료된다. 190 두근두근파이썬

55 이번장에서배운것 이번장에서반복에대하여살펴보았다. for 문과 while 문은들여쓰기된문장들을반복한다. while 문은루프의첫부분에서반복조건을검사한다. for 문은시퀀스에서항목들을하나씩가져다가반복한다. 이번장에서의반드시기억해야할핵심적인내용은다음과같다. 문장들을반복실행하려면 for나 while을사용한다. 반복실행되는문장들을들여쓰기하여야한다. for 문은반복회수를정해져있을때유용하다. while 문은반복조건이정해져있을때유용하다. 반복문의초입에서조건식은검사된다. 100 번반복하는문장을 for 로만들어보세요. for i in range(100): 번반복하는문장을 while 로만들어보세요. i=0 while i<100:... i++; 어떤반복구조가편한가요? 약간은 for 가편한거같네요. 하지만반복횟수를모를때는 while 을써야겟죠? CHAPTER 6 반복해봅시다 191

56 연습문제 1 2 부터 100 사이의모든짝수를출력하는반복루프를작성한다. HINT x%2 한결과가 0 이면 x 는짝수이다. 2 어떤사람이복리이자율 7% 로 1000만원을저금했을경우에 2000만원이되는데몇년이걸리는지계산하기위하여다음과코드를작성하였다. 잘못된점은없는지체크해보자. year = 0 balance = 1000 while balance >= 2000 : year = year + 1 interest = balance * 0.07 balance = balance + interest print(year, " 년이걸립니다.") HINT 반복조건을유심히살펴보자. 3 다음코드의출력을예상해보자. 각단계에서변수의값을예상해보시오. n = 1234 sum = 0 while n > 0 : digit = n % 10 sum = sum + digit n = n // 10 print(sum) HINT % 는나머지를계산하는연산자이다. // 은나눗셈에서몫을계산한다. 192 두근두근파이썬

57 4 사용자에게곱셈퀴즈를내고답을사용자로부터받는프로그램에서사용자가올바른답을입력할때까지반복하도록수정하여보자. HINT 어떤조건이만족될때까지반복하는것은 while 루프이다. 5 사용자가입력한정수의합을계산하는프로그램을작성하자. 사용자가 0을입력하기전까지정수를계속하여읽도록한다. HINT 무한루프를작성하고사용자가입력한값이 0이면 break 문장을실행하여반복루프를빠져나간다. 무한루프는 while True: 로만든다. 6 난수생성함수를사용하여서 2개의주사위를던졌을때나오는수를다음과같이출력하여보자. HINT 1부터 6 사이의난수를발생하려면 r = random.randint(1, 6) 문장을사용한다. 프로그램의첫부분에 import random 문장도추가해야한다. CHAPTER 6 반복해봅시다 193

58 7 터틀그래픽과반복을사용하여눈모양을그려보자. HINT 하나의패턴을그리는코드는다음과같다. t.forward(100); t.forward(-30); t.left(60); t.forward(30); t.forward(-30); 파이썬에서문장뒤에 ; 기호를붙이면한줄에여러개의문장을쓸수있다. 8 우리는이번장에서터틀그래픽으로별을그려보았다. 이코드를응용하여서다음과같이 10개의별을그리는프로그램을작성하라. 별들은시작각도가약간씩다르다. HINT 별을그리는코드를반복한다. 하나의별을그리는반복이끝나면 left(10) 을실행한다. 194 두근두근파이썬

59 9 반복과난수를함께사용하면화면에랜덤한원을그릴수있다. 화면에 10개의랜덤한원을그리는프로그램을작성하라. 원의중심과반지름이모두난수이어야한다. HINT 1부터 100 사이의난수를발생하려면 r = random.randint(1, 100) 문장을사용한다. 프로그램의첫부분에 import random 문장도추가해야한다. 원의중심, 원의반지름을모두난수로설정한다. 10 다음과같이거북이를왕복달리기시키는프로그램을작성해보자. HINT 거북이가현재바라보고있는방향을잘설정하여야한다. CHAPTER 6 반복해봅시다 195

60 11 다음의터틀그래픽프로그램을분석해보자. 학습하지않은함수가있다면인터넷에서조사하여보자. import turtle t = turtle.turtle() t.shape("turtle") t.color('red', 'yellow') t.begin_fill() while True: t.forward(200) t.left(170) if abs(t.pos()) < 1: break t.end_fill() HINT color(c1, c2) 함수는도형의선색상과채우기색상을 c1과 c2로설정한다. begin_fill() 를호출하면속이채워진도형이그려진다. pos() 함수는거북이의좌표를반환한다. abs() 는절대값을계산한다. break는반복루프를빠져나오는명령어이다. 12 터틀그래픽과반복을사용하여싸인 (sine) 그래프를그려보자. 거북이를싸인값에따라서움직이면된다. HINT 싸인값은 sin() 함수로계산이가능하다. 프로그램의첫부분에 import math를추가한다. 각도를라디안으로변환하여야한다. radian = 3.14 * degree / 수식을사용한다. 196 두근두근파이썬

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 두근두근 파이썬수업 4 장자료의종류에는어떤것들이있나요? 이번장에서만들프로그램 (1) 터틀그래픽의거북이와인사하는프로그램을작성해보자. Run Python (2) 여러개의색상을리스트에저장하였다가하나씩꺼내서원들을그려보자 Run Python 파이썬에서사용할수있는자료의종류 파이썬과자료형 변수에어떤종류의자료도저장할수있다 x = 10 print("x =", x) x = 3.14

More information

Infinity(∞) Strategy

Infinity(∞) Strategy 반복제어 표월성 passwd74@cherub.sungkyul.edu 개요 for() 문 break문과 continue문 while문 do-while문 for() 문 for() 문형식 for( 표현식1; 표현식2; 표현식3) 여러문장들 ; 표현식 1 : 초기화 (1 번만수행 ) 표현식 2 : 반복문수행조건 ( 없으면무한반복 ) 표현식 3 : 반복문수행횟수 for()

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

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

윈도우즈프로그래밍(1) 제어문 (2) For~Next 문 윈도우즈프로그래밍 (1) ( 신흥대학교컴퓨터정보계열 ) 2/17 Contents 학습목표 프로그램에서주어진특정문장을부분을일정횟수만큼반복해서실행하는문장으로 For~Next 문등의구조를이해하고활용할수있다. 내용 For~Next 문 다중 For 문 3/17 제어문 - FOR 문 반복문 : 프로그램에서주어진특정문장들을일정한횟수만큼반복해서실행하는문장

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 06 반복문 01 반복문의필요성 02 for문 03 while문 04 do~while문 05 기타제어문 반복문의의미와필요성을이해한다. 대표적인반복문인 for 문, while 문, do~while 문의작성법을 알아본다. 1.1 반복문의필요성 반복문 동일한내용을반복하거나일정한규칙으로반복하는일을수행할때사용 프로그램을좀더간결하고실제적으로작성할수있음.

More information

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

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음 프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음 CHAPTER 9 둘중하나선택하기 관계연산자 두개의피연산자를비교하는연산자 결과값은참 (1) 아니면거짓 (0) x == y x 와 y 의값이같은지비교한다. 관계연산자 연산자 의미 x == y x와 y가같은가? x!= y

More information

<4D F736F F F696E74202D20C1A63036C0E520BCB1C5C3B0FA20B9DDBAB928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63036C0E520BCB1C5C3B0FA20B9DDBAB928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 6 장선택과반복 이번장에서학습할내용 조건문이란? if 문 if, else 문 중첩 if 문 switch 문 break문 continue문 지금까지는문장들이순차적으로실행된다고하였다. 하지만필요에따라서조건이만족되면문장의실행순서를변경할수있는기능이제공된다. 3 가지의제어구조 조건문 문장이실행되는순서에영향을주는문장 조건에따라서여러개의실행경로가운데하나를선택

More information

Visual Basic 반복문

Visual Basic 반복문 학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2 5.1 반복문 5.2 구구단작성기로익히는반복문 3 반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4 For

More information

Microsoft PowerPoint - chap05-제어문.pptx

Microsoft PowerPoint - chap05-제어문.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); 1 학습목표 제어문인,, 분기문에 대해 알아본다. 인 if와 switch의 사용 방법과 사용시 주의사항에 대해 알아본다.

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 5 장생성자와접근제어 1. 객체지향기법을이해한다. 2. 클래스를작성할수있다. 3. 클래스에서객체를생성할수있다. 4. 생성자를이용하여객체를초기화할수 있다. 5. 접근자와설정자를사용할수있다. 이번장에서만들어볼프로그램 생성자 생성자 (constructor) 는초기화를담당하는함수 생성자가필요한이유 #include using namespace

More information

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

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

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

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - chap04-연산자.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); } 1 학습목표 수식의 개념과 연산자, 피연산자에 대해서 알아본다. C의 를 알아본다. 연산자의 우선 순위와 결합 방향에

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - chap06-1Array.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어

More information

Microsoft PowerPoint - Lesson6.pptx

Microsoft PowerPoint - Lesson6.pptx Computer Engineering g Programming g 2 제 7 장반복문 Lecturer: JUNBEOM YOO jbyoo@konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 반복의개념이해 while 반복문 do-while 반복문 for 반복문 break와 continue문 반복구조는일련의처리를반복할수있게한다.

More information

Microsoft PowerPoint - chap-07.pptx

Microsoft PowerPoint - chap-07.pptx 쉽게풀어쓴 C 언어 Express 제 7 장반복문 컴퓨터프로그래밍기초 이번장에서학습할내용 반복의개념이해 while 반복문 do-while 반복문 for 반복문 break와 continue 문 반복구조는일련의처리를반복할수있게한다. 반복의개념을먼저이해하고 C에서제공되는 3가지의반복구조에대하여학습한다. 컴퓨터프로그래밍기초 2 반복문 Q) 반복구조는왜필요한가? A)

More information

TEST BANK & SOLUTION

TEST BANK & SOLUTION TEST BANK & SOLUTION 어서와자바는처음이지!" 를강의교재로채택해주셔서감사드립니다. 본문제집을만드는데나름대로노력을기울였으나제가가진지식의한계로말미암아잘못된부분이있을것으로사료됩니다. 잘못된부분을발견하시면 chunik@sch.ac.kr로연락주시면더좋은책을만드는데소중하게사용하겠습니다. 다시한번감사드립니다. 1. 자바언어에서지원되는 8 가지의기초자료형은무엇인가?

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 3 장함수와문자열 1. 함수의기본적인개념을이해한다. 2. 인수와매개변수의개념을이해한다. 3. 함수의인수전달방법 2가지를이해한다 4. 중복함수를이해한다. 5. 디폴트매개변수를이해한다. 6. 문자열의구성을이해한다. 7. string 클래스의사용법을익힌다. 이번장에서만들어볼프로그램 함수란? 함수선언 함수호출 예제 #include using

More information

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher( 실행할페이지.jsp); 다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher

More information

중간고사

중간고사 중간고사 예제 1 사용자로부터받은두개의숫자 x, y 중에서큰수를찾는알고리즘을의사코드로작성하시오. Step 1: Input x, y Step 2: if (x > y) then MAX

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 3 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

쉽게

쉽게 Power Java 제 4 장자바프로그래밍기초 이번장에서학습할내용 자바프로그램에대한기초사항을학습 자세한내용들은추후에. Hello.java 프로그램 주석 주석 (comment): 프로그램에대한설명을적어넣은것 3 가지타입의주석 클래스 클래스 (class): 객체를만드는설계도 ( 추후에학습 ) 자바프로그램은클래스들로구성된다. 그림 4-1. 자바프로그램의구조 클래스정의

More information

Microsoft PowerPoint - logo_2-미해답.ppt [호환 모드]

Microsoft PowerPoint - logo_2-미해답.ppt [호환 모드] Chap.2 Logo 프로그래밍기초 - 터틀그래픽명령어 ( 기본, 고급 ) 학습목표 터틀의이동과선그리기에대해살펴본다. 터틀의회전에대해살펴본다. 터틀펜과화면제어에대해살펴본다. 2012. 5. 박남제 namjepark@jejunu.ac.kr < 이동하기 > - 앞으로이동하기 forward 100 터틀이 100 픽셀만큼앞으로이동 2 < 이동하기 > forward(fd)

More information

untitled

untitled 시스템소프트웨어 : 운영체제, 컴파일러, 어셈블러, 링커, 로더, 프로그래밍도구등 소프트웨어 응용소프트웨어 : 워드프로세서, 스프레드쉬트, 그래픽프로그램, 미디어재생기등 1 n ( x + x +... + ) 1 2 x n 00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 누구나즐기는 C 언어콘서트 제 5 장조건문 이번장에서학습할내용 조건문이란? if 문 if, else 문 중첩 if 문 switch 문 goto 문 이제까지는문장들이순차적으로실행된다고하였다. 하지만필요에따라서조건이만족되면문장의실행순서를변경할수있는기능이제공된다. 조건문 조건에따라서여러개의실행경로가운데하나를선택 문장이실행되는순서에영향을주는문장 조건에따라서여러개의같은처리를반복

More information

Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 (제 2 장. 복소수 기초)

Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산      (제 2 장. 복소수 기초) 제 5 강. 복소수연산및 을이용한복소수연산 ( 제 2 장. 복소수기초 ) 한림대학교전자공학과 한림대학교 제 5 강. 복소수연산및 을이용한복소수연산 1 배울내용 복소수의기본개념복소수의표현오일러 (Euler) 공식복소수의대수연산 1의 N 승근 한림대학교 제 5 강. 복소수연산및 을이용한복소수연산 2 복소수의 4 칙연산 복소수의덧셈과뺄셈에는직각좌표계표현을사용하고,

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

PowerPoint Presentation

PowerPoint Presentation 자바프로그래밍 1 배열 손시운 ssw5176@kangwon.ac.kr 배열이필요한이유 예를들어서학생이 10 명이있고성적의평균을계산한다고가정하자. 학생 이 10 명이므로 10 개의변수가필요하다. int s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; 하지만만약학생이 100 명이라면어떻게해야하는가? int s0, s1, s2, s3, s4,

More information

Microsoft PowerPoint - chap-06.pptx

Microsoft PowerPoint - chap-06.pptx 쉽게풀어쓴 C 언어 Express 제 6 장조건문 컴퓨터프로그래밍기초 이번장에서학습할내용 조건문이란? if 문 if, 문 중첩 if 문 switch 문 break문 continue문 goto 문 5장까지는문장들이순차적으로실행된다고하였다. 하지만필요에따라서조건이만족되면문장의실행순서를변경할수있는기능이제공된다. 컴퓨터프로그래밍기초 2 조건문 조건에따라서여러개의실행경로가운데하나를선택

More information

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

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다 10 강. 쉘스크립트 쉘스크립트 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다른운영체제로이식되지않음 -스크립트언어를사용하면컴파일과정이없고인터프리터가소스파일에서명령문을판독하여각각의명령을수행

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 함수 (function) 는특정작업을수행하는명령어들의모음에이름을붙인것 함수는작업에필요한데이터를전달받을수있으며, 작업이완료된후에는작업의결과를호출자에게반환할수있다. print() input() abs(), 함수안의명령어들을실행하려면함수를호출 (call) 하면된다. >>> value = abs(-100) >>> value 100 >>>def say_hello(name):

More information

Microsoft PowerPoint - gnu-w10-c-chap11

Microsoft PowerPoint - gnu-w10-c-chap11 어서와 C 언어는처음이지 제 11 장 경로선택을위한데이터검사 if 문장 관계연산자 (relational operator) 데이터검사하기 만약내가충분한돈을벌면, 우리는이태리로간다. 만약구두가맞지않으면, 환불한다. 만약외부기온이높으면, 잔디에물을준다. 관계연산자 관계연산자의예 int i = 5; int j = 10; int k = 15; int l = 5; i

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

Multi-pass Sieve를 이용한 한국어 상호참조해결 반-자동 태깅 도구

Multi-pass Sieve를 이용한 한국어 상호참조해결 반-자동 태깅 도구 Python: 파이썬프로그래밍의기초, 함수 Kangwon Natl. University Department of Computer Science Cheoneum Park Intelligent software Lab. 함수 Intelligent software Lab. 2 함수란무엇인가? Intelligent software Lab. 3 함수를사용하는이유는? 프로그래밍을하다보면똑같은내용을반복해서작성하는경우다반사

More information

슬라이드 1

슬라이드 1 마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.

More information

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD> 2006 년 2 학기윈도우게임프로그래밍 제 8 강프레임속도의조절 이대현 한국산업기술대학교 오늘의학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용한다. FPS(Frame Per Sec)

More information

11장 포인터

11장 포인터 누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리

More information

17장 클래스와 메소드

17장 클래스와 메소드 17 장클래스와메소드 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 1 / 18 학습내용 객체지향특징들객체출력 init 메소드 str 메소드연산자재정의타입기반의버전다형성 (polymorphism) 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 2 / 18 객체지향특징들 객체지향프로그래밍의특징 프로그램은객체와함수정의로구성되며대부분의계산은객체에대한연산으로표현됨객체의정의는

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 7 장클래스와객체 이번장에서학습할내용 객체지향이란? 객체 메시지 클래스 객체지향의장점 String 클래스 객체지향개념을완벽하게이해해야만객체지향설계의이점을활용할수있다. 실제세계는객체로이루어진다. 객체지향이란? 실제세계를모델링하여소프트웨어를개발하는방법 절차지향과객체지향 절차지향프로그래밍 (procedural programming): 문제를해결하는절차를중요하게생각하는방법

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 쉽게풀어쓴 C 언어 Express 제 5 장수식과연산자 이번장에서학습할내용 * 수식과연산자란? * 대입연산 * 산술연산 * 논리연산 * 관계연산 * 우선순위와결합법칙 이번장에서는수식과연산자를살펴봅니다. 수식의예 수식 수식 (expression) x + y x*x + 5*x + 6 (principal * interest_rate * period) / 12.0

More information

Microsoft Word - PLC제어응용-2차시.doc

Microsoft Word - PLC제어응용-2차시.doc 과정명 PLC 제어응용차시명 2 차시. 접점명령 학습목표 1. 연산개시명령 (LOAD, LOAD NOT) 에대하여설명할수있다. 2. 직렬접속명령 (AND, AND NOT) 에대하여설명할수있다. 3. 병렬접속명령 (OR, OR NOT) 에대하여설명할수있다. 4.PLC의접점명령을가지고간단한프로그램을작성할수있다. 학습내용 1. 연산개시명령 1) 연산개시명령 (LOAD,

More information

Java ...

Java ... 컴퓨터언어 1 Java 제어문 조성일 조건문 : if, switch 어떠한조건을조사하여각기다른명령을실행 if 문, switch 문 if 문 if - else 문형식 if 문형식 if ( 조건식 ) { 명령문 1; 명령문 2;... if ( 조건식 ) { 명령문 1; 명령문 2;... else { 명령문 a; 명령문 b;... 예제 1 정수를입력받아짝수와홀수를판별하는프로그램을작성하시오.

More information

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

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

Microsoft PowerPoint - gnu-w06-python_[실습]_day13-turtle-shape

Microsoft PowerPoint - gnu-w06-python_[실습]_day13-turtle-shape DAY 13 거북이그래픽응용하기 모두의파이썬 20 일만에배우는프로그래밍기초 거북이그래픽응용하기 01 자주사용하는거북이그래픽명령어 02 03 키보드로거북이를조종해서그림그리기 마우스로거북이를조종해서그림그리기 2 1. 자주사용하는거북이그래픽명령어 자주사용하는거북이그래픽명령어 2 함수설명사용예 pos( ) / position( ) xcor( ), ycor( ) goto(x,

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 리스트 (list) 는여러개의데이터가저장되어있는장소이다. scores = [ 32, 56, 64, 72, 12, 37, 98, 77, 59, 69] scores = [ ] for i in range(10): scores.append(int(input(" 성적을입력하시오 :"))) print(scores) scores = [ 32, 56, 64, 72, 12,

More information

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D> 리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1

More information

Microsoft PowerPoint - chap-03.pptx

Microsoft PowerPoint - chap-03.pptx 쉽게풀어쓴 C 언어 Express 제 3 장 C 프로그램구성요소 컴퓨터프로그래밍기초 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C프로그램을이루는구성요소들을살펴봅니다. 컴퓨터프로그래밍기초 2 일반적인프로그램의형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에

More information

<4D F736F F F696E74202D20C1A635C0E520BCF6BDC4B0FABFACBBEAC0DA>

<4D F736F F F696E74202D20C1A635C0E520BCF6BDC4B0FABFACBBEAC0DA> 쉽게풀어쓴 C 언어 Express 제 5 장수식과연산자 이번장에서학습할내용 * 수식과연산자란? * 대입연산 * 산술연산 * 논리연산 * 관계연산 * 우선순위와결합법칙 이번장에서는수식과연산자를살펴봅니다. 수식의예 수식 수식 (expression) x + y x*x + 5*x + 6 (principal * interest_rate * period) / 12.0

More information

Multi-pass Sieve를 이용한 한국어 상호참조해결 반-자동 태깅 도구

Multi-pass Sieve를 이용한 한국어 상호참조해결 반-자동 태깅 도구 Python: 파이썬이란무엇인가? Kangwon Natl. University Department of Computer Science Cheoneum Park Intelligent software Lab. 파이썬이란? Python 1990년암스테르담의귀도반로섬 (Guido Van Rossum) 이개발한인터프리터언어 국내외에서교육, 실무등에서많이사용 구글의소프트웨어,

More information

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

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

Microsoft PowerPoint - Lesson2.pptx

Microsoft PowerPoint - Lesson2.pptx Computer Engineering g Programming g 2 제 3 장 C 프로그래밍구성요소 Lecturer: JUNBEOM YOO jbyoo@konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() *

More information

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

Microsoft PowerPoint 자바-기본문법(Ch2).pptx 자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1 주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2 주석 (Comments) /* File name: HelloApplication.java Created by: Jung Created on: March

More information

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

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,

More information

Chapter_06

Chapter_06 프로그래밍 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 반복문의사용법을익힌다.

More information

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp 1 0 1.7 6 5 'A ' '/ u 4 4 2 2 ' " JS P 프로그래밍 " A ', 'b ', ' 한 ', 9, \ u d 6 5 4 ' c h a r a = 'A '; 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 < % @ p a g e c o n te n

More information

슬라이드 1

슬라이드 1 2007 년 2 학기윈도우게임프로그래밍 제 7 강프레임속도의조절 이대현 핚국산업기술대학교 학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용핚다. FPS(Frame Per Sec)

More information

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault 사용자매뉴얼 JetFlash Vault 100 ( 버전 1.0) 1 목차 1. 시스템요구사항... 3 2. 암호및힌트설정 ( 윈도우 )... 3 3. JetFlash Vault 시작하기 ( 윈도우 )... 7 4. JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault 찾아보기... 10 JetFlash

More information

로거 자료실

로거 자료실 redirection 매뉴얼 ( 개발자용 ) V1.5 Copyright 2002-2014 BizSpring Inc. All Rights Reserved. 본문서에대한저작권은 비즈스프링 에있습니다. - 1 - 목차 01 HTTP 표준 redirect 사용... 3 1.1 HTTP 표준 redirect 예시... 3 1.2 redirect 현상이여러번일어날경우예시...

More information

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

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 6.1 함수프로시저 6.2 서브프로시저 6.3 매개변수의전달방식 6.4 함수를이용한프로그래밍 3 프로시저 (Procedure) 프로시저 (Procedure) 란무엇인가? 논리적으로묶여있는하나의처리단위 내장프로시저 이벤트프로시저, 속성프로시저, 메서드, 비주얼베이직내장함수등

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

와플-4년-2호-본문-15.ps

와플-4년-2호-본문-15.ps 1 2 1+2 + = = 1 1 1 +2 =(1+2)+& + *=+ = + 8 2 + = = =1 6 6 6 6 6 2 2 1 1 1 + =(1+)+& + *=+ =+1 = 2 6 1 21 1 + = + = = 1 1 1 + 1-1 1 1 + 6 6 0 1 + 1 + = = + 7 7 2 1 2 1 + =(+ )+& + *= + = 2-1 2 +2 9 9 2

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Lecture 02 프로그램구조및문법 Kwang-Man Ko kkmam@sangji.ac.kr, compiler.sangji.ac.kr Department of Computer Engineering Sang Ji University 2018 자바프로그램기본구조 Hello 프로그램구조 sec01/hello.java 2/40 자바프로그램기본구조 Hello 프로그램구조

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074> Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법

More information

PHP & ASP

PHP & ASP PHP 의시작과끝 echo ; Echo 구문 HTML과 PHP의 echo 비교 HTML과 PHP의 echo를비교해볼까요

More information

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에대하여 AB=BA 1 가성립한다 2 3 (4) 이면 1 곱셈공식및변형공식성립 ± ± ( 복호동순 ), 2 지수법칙성립 (은자연수 ) < 거짓인명제 >

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 CHAPTER 11. 자바스크립트와캔버스로게임 만들기 캔버스 캔버스는 요소로생성 캔버스는 HTML 페이지상에서사각형태의영역 실제그림은자바스크립트를통하여코드로그려야한다. 컨텍스트객체 컨텍스트 (context) 객체 : 자바스크립트에서물감과붓의역할을한다. var canvas = document.getelementbyid("mycanvas"); var

More information

Microsoft Word - Lab.4

Microsoft Word - Lab.4 Lab. 1. I-V Lab. 4. 연산증폭기 Characterist 비 tics of a Dio 비교기 ode 응용 회로 1. 실험목표 연산증폭기를이용한비교기비교기응용회로를이해 응용회로를구성, 측정및평가해서연산증폭기 2. 실험회로 A. 연산증폭기비교기응용회로 (a) 기본비교기 (b) 출력제한 비교기 (c) 슈미트트리거 (d) 포화반파정류회로그림 4.1. 연산증폭기비교기응용회로

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 쉽게풀어쓴 C 언어 Express 제 6 장조건문 이번장에서학습할내용 조건문이란? if 문 if, else 문 중첩 if 문 switch 문 break 문 continue 문 goto 문 5 장까지는문장들이순차적으로실행된다고하였다. 하지만필요에따라서조건이만족되면문장의실행순서를변경할수있는기능이제공된다. 조건문 조건에따라서여러개의실행경로가운데하나를선택 문장이실행되는순서에영향을주는문장

More information

Microsoft PowerPoint 세션.ppt

Microsoft PowerPoint 세션.ppt 웹프로그래밍 () 2006 년봄학기 문양세강원대학교컴퓨터과학과 세션변수 (Session Variable) (1/2) 쇼핑몰장바구니 장바구니에서는사용자가페이지를이동하더라도장바구니의구매물품리스트의내용을유지하고있어야함 PHP 에서사용하는일반적인변수는스크립트의수행이끝나면모두없어지기때문에페이지이동시변수의값을유지할수없음 이러한문제점을해결하기위해서 PHP 에서는세션 (session)

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 쉽게풀어쓴 C 언어 Express 제 6 장조건문 이번장에서학습할내용 조건문이란? if 문 if, else 문 중첩 if 문 switch 문 break 문 continue 문 goto 문 5 장까지는문장들이순차적으로실행된다고하였다. 하지만필요에따라서조건이만족되면문장의실행순서를변경할수있는기능이제공된다. 조건문 조건에따라서여러개의실행경로가운데하나를선택 문장이실행되는순서에영향을주는문장

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

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

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt 변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 2 장 : C 프로그램시작하기 2012 년 이은주 학습목표 을작성하면서 C 프로그램의구성요소 주석 (comment) 이란무엇인지알아보고, 주석을만드는방법 함수란무엇인지알아보고, C 프로그램에반드시필요한 main 함수 C 프로그램에서출력에사용되는 printf 함수 변수의개념과변수의값을입력받는데사용되는 scanf 함수 2 목차 프로그램코드

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

C++ Programming

C++ Programming C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout

More information

PowerPoint Presentation

PowerPoint Presentation 5 불대수 IT CookBook, 디지털논리회로 - 2 - 학습목표 기본논리식의표현방법을알아본다. 불대수의법칙을알아본다. 논리회로를논리식으로논리식을논리회로로표현하는방법을알아본다. 곱의합 (SOP) 과합의곱 (POS), 최소항 (minterm) 과최대항 (mxterm) 에대해알아본다. 01. 기본논리식의표현 02. 불대수법칙 03. 논리회로의논리식변환 04.

More information

슬라이드 1

슬라이드 1 프로세싱 광운대학교로봇학부박광현 프로세싱실행 2 C:\processing-3.2.1 폴더 창나타내기 실행 정지 3 폭 높이 600 400 도형그리기 배경칠하기 5 background(255, 255, 255); R G B background(255, 0, 0); background(255, 122, 0); 선그리기 6 background(255, 122, 0);

More information

<432B2BC7C1B7CEB1D7B7A1B9D628BABBB9AE5FC3D6C1BE295B315D2E687770>

<432B2BC7C1B7CEB1D7B7A1B9D628BABBB9AE5FC3D6C1BE295B315D2E687770> 저 자 약 력이상정순천향대학교컴퓨터학부교수, sjlee@sch.ac.kr 조영일수원대학교컴퓨터학과교수, yicho@suwon.ac.kr 김은성순천향대학교전기전자공학과교수, eskim@sch.ac.kr 박종득공주대학교컴퓨터공학부교수, pjd@kongju.ac.kr C++ 언어는 C 에 C 언어의증가연산자 ++ 를덧붙인 C++ 라는이름이의미하는바와같이 C 언어의문법을대부분그대로사용하면서객체지향프로그래밍기법을추가한

More information

슬라이드 1

슬라이드 1 CHAP 2: 순환 (Recursion) 순환 (recursion) 이란? 알고리즘이나함수가수행도중에자기자신을다시호출하여문제를해결하는기법 정의자체가순환적으로 되어있는경우에적합한방법 순환 (recursion) 의예 팩토리얼값구하기 피보나치수열 1 n! n*( n 1)! fib( n) 0 1 fib( n 2) n n 0 ` 1 fib( n 1) if n 0 if

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 3 장 C 프로그램구성요소 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C 프로그램을이루는구성요소들을살펴봅니다. 일반적인프로그램의형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에 ( 처리단계 ), 결과를화면에출력 ( 출력단계 ) 한다. 데이터입력

More information

ch08

ch08 쉽게풀어쓴 C 언어 Express 제 7 장반복문 C Express 이번장에서학습할내용 반복의개념이해 while 반복문 do-while 반복문 for 반복문 break 와 continue 문 반복구조는일련의처리를반복할수있게한다. 반복의개념을먼저이해하고 C 에서제공되는 3 가지의반복구조에대하여학습한다. Q) 반복구조는왜필요한가? 반복문 A) 같은처리과정을되풀이하는것이필요하기때문이다.

More information

슬라이드 1

슬라이드 1 UNIT 08 조건문과반복문 로봇 SW 교육원 2 기 학습목표 2 조건문을사용핛수있다. 반복문을사용핛수있다. 조건문 3 조건식의연산결과에따라프로그램의실행흐름을변경 조건문의구성 조건식 실행될문장 조건문의종류 if switch? : ( 삼항연산자 ) if 조건문 4 if 문의구성 조건식 true 또는 false(boolean 형 ) 의결과값을갖는수식 실행될문장

More information

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

C 언어 프로그래밊 과제 풀이 과제풀이 (1) 홀수 / 짝수판정 (1) /* 20094123 홍길동 20100324 */ /* even_or_odd.c */ /* 정수를입력받아홀수인지짝수인지판정하는프로그램 */ int number; printf(" 정수를입력하시오 => "); scanf("%d", &number); 확인 주석문 가필요한이유 printf 와 scanf 쌍

More information

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - C++ 5 .pptx C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성

More information

Microsoft PowerPoint - e pptx

Microsoft PowerPoint - e pptx Import/Export Data Using VBA Objectives Referencing Excel Cells in VBA Importing Data from Excel to VBA Using VBA to Modify Contents of Cells 새서브프로시저작성하기 프로시저실행하고결과확인하기 VBA 코드이해하기 Referencing Excel Cells

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 그래픽사용자인터페이스 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 프레임생성 (1) import javax.swing.*; public class FrameTest { public static void main(string[] args) { JFrame f = new JFrame("Frame Test"); JFrame

More information

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2> 쉽게풀어쓴 C 언어 Express 제 3 장 C 프로그램구성요소 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C 프로그램을이루는구성요소들을살펴봅니다. 일반적인프로그램의형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에 ( 처리단계 ), 결과를화면에출력

More information

2015 개정교육과정에따른정보과평가기준개발연구 연구책임자 공동연구자 연구협력관

2015 개정교육과정에따른정보과평가기준개발연구 연구책임자 공동연구자 연구협력관 2015 개정교육과정에따른정보과평가기준개발연구 연구책임자 공동연구자 연구협력관 2015 개정교육과정에따른정보과평가기준개발연구 연구협력진 머리말 연구요약 차례 Ⅰ 서론 1 Ⅱ 평가준거성취기준, 평가기준, 성취수준, 예시평가도구개발방향 7 Ⅲ 정보과평가준거성취기준, 평가기준, 성취수준, 예시평가도구의개발 25 Ⅳ 정보과평가준거성취기준, 평가기준, 성취수준, 예시평가도구의활용방안

More information

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

Microsoft PowerPoint - additional01.ppt [호환 모드] 1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능

More information

2학년 1학기 1,2단원 1 차례 세 자리의 수 1-1 왜 몇 백을 배워야 하나요? 1-2 세 자리 수의 자릿값 알아보기와 크기 비교하기 1-3 뛰어 세기와 수 배열표에서 규칙 찾기 1단원 기본 평가 단원 창의 서술 논술형 평가 22 1단원 심화 수

2학년 1학기 1,2단원 1 차례 세 자리의 수 1-1 왜 몇 백을 배워야 하나요? 1-2 세 자리 수의 자릿값 알아보기와 크기 비교하기 1-3 뛰어 세기와 수 배열표에서 규칙 찾기 1단원 기본 평가 단원 창의 서술 논술형 평가 22 1단원 심화 수 2학년 1학기 1,2단원 1 차례 세 자리의 수 1-1 왜 몇 백을 배워야 하나요? 1-2 세 자리 수의 자릿값 알아보기와 크기 비교하기 1-3 뛰어 세기와 수 배열표에서 규칙 찾기 1단원 기본 평가 2 8 14 20 1단원 창의 서술 논술형 평가 22 1단원 심화 수준 평가 23 한박사의 스토리텔링 24 2 여러 가지 도형 2-1 같은 점과 다른 점 찾기

More information

...... ....-....-155 09.1.20

...... ....-....-155 09.1.20 접지 접지 ISBN 978-89-6211-252-8 슈퍼컴퓨터가 만드는 디디컴 C M Y K 슈퍼컴퓨터가 만드는 C M Y K 슈퍼컴퓨터가 만드는 디디컴 uper 슈퍼컴퓨터가 만드는 발행일 슈퍼컴퓨터는 슈퍼맨처럼 보통의 컴퓨터로는 도저히 2008년 10월 3 1일 1쇄 발행 2009년 01월 30일 2쇄 발행 엄두도 낼 수 없는 대용량의 정보들을 아주 빠르게

More information

Microsoft PowerPoint - gnu-w10-c-chap12

Microsoft PowerPoint - gnu-w10-c-chap12 어서와 C 언어는처음이지 제 12 장 논리연산자 관계연산자의한계 if (age >= 21) /* 21

More information