¾Èµå·ÎÀÌµå ³¹Àå-Åë.PDF

Size: px
Start display at page:

Download "¾Èµå·ÎÀÌµå ³¹Àå-Åë.PDF"

Transcription

1 시작하기 시작하기 :: 학습목표 :: 이클립스에서새로운 Project를만들수있다 View를디자인하고프로그램에연결할수있다 버튼의 Listener를작성할수있다 작성한 Listener를여러개의버튼이공유하게할수있다 일정한범위의난수를만들수있다 난수의발생빈도를조절할수있다 프로그램에서 ImageView의비트맵을바꿀수있다

2 1.1 시작하기에앞서 프로그램의기본흐름은입력, 처리, 출력으로단순화할수있다. 일반적인업무용프로그램은입력과출력이중요하므로그처리과정은전혀문제가되지않는경우가많다. 예를들어 1~100 까지의합계를구한다고하자. 이때 for( ) 문을사용하든, while( ) 문을사용하든, 심지어 으로구하든그결과만정확하면된다. 그러나게임은프로그램의실행결과가아니라실행과정에목적이있는프로그램이다. 게임의결과는뻔하다. 주인공이죽었다. 게임끝! 게임프로그램은업무용프로그램과달리비주얼한그래픽과사운드, 시스템의하드웨어, 메모리요구량, 처리속도등자잘한부분까지신경을써야하는복잡한분야이다. 게임의스토리보드가있어야하고, 자신이생각한아이디어를구현할수있는능력이있어야할뿐아니라전체적인흐름을체계화해서표현하는등기술적으로많은노하우가필요하다. 굳이비교한다면연극이나영화와같은종합예술에속한다. 그렇기때문에게임은비주얼하고동적인표현도중요하지만, 사용자의인터페이스를잘설계해서보기좋고재미있는프로그램을만들어야하는것이다. 안드로이드에서게임을개발하려고하면다음과같은기본적인것을잘알고있어야한다. 1 Java 언어에대한기초적인지식 - 기본문법, 자료형, 반복문, Class와메서드 2 안드로이드의 Activity와 View에대한이해 - View와 Viewport, 화면해상도, 사용자 View. SurfaceView, Activity 사이의자료전달 3 Thread와 Handler - Thread와 Handler를이용한반복처리 4 키보드와 Touch 이벤트핸들러구현 - 키보드읽기, Touch 읽기 5 이미지처리 - Canvas, Bitmap, Matrix, Paint 6 자료구조 - 배열, ArrayList, Hash Map 2

3 시작하기 7 수학적인기초지식 - 삼각함수, 행렬, Vector, 가속도 8 MediaPlayer 및 SoundPool - 배경음악및효과음 9 파일입출력및 Database 관리능력 - 최근점수, 최고득점순위표시 10 웹서버와의통신방법 - 다른사용자와의커뮤니케이션 11 캐릭터및배경화면디자인 - 포토샵, 일러스트레이터, 아이콘에디터등이책은어느정도 Java 프로그램에대한기초지식이있는사람을대상으로하고있다. 그러므로 Java 언어에대한기본문법이나안드로이드개발환경구축등에관한내용은다루지않는다. Java 언어에대한기초지식이부족하신분이나개발환경구축을하지못한분들은인터넷강좌등으로기초지식을함께학습하길바란다. 이책이여러분들에게고난도의 Java 프로그램수준은요구하지는않지만, 적어도이클립스에서간단한프로젝트정도는만들줄알아야한다. 제1 장은기본적인위젯을사용한단순한프로그램을작성해감으로써앞으로만들어갈복잡한게임에필요한기본적인지식과알고리즘을익히도록구성되어있다. 1.2 스무고개 스무고개라는놀이가있다. 진행자가어떤단어를정해두면, 다른사람이진행자에게질문을하여정답이나올범위를차츰좁혀가면서정답을찾아가는놀이이다. 진행자에게최대 20번까지만질문을할수있다고하여스무고개라고한다. 이게임은단말기가 500~1,000 사이의난수를만들어제시하면사용자는자신이추측한숫자를입력한후, 단말기가제시한값과의대소여부를판단하여주어진숫자가나올범위를차츰좁혀가면서정답을찾아가는게임이다 ( 제1장 /project_1). 1.2 스무고개 3

4 1.2.1 프로그램요구사항 1 단말기는 500~1000 사이의난수를제공한다. 2 사용자는 EditText에예상하는값을입력한다. 3 사용자가값을입력한후 Button을누르면결과를판정한다. 4 단말기가제공하는숫자와입력된숫자가다르면다시입력한다. 5 4의과정은정답을맞힐때까지반복하며, 최종적으로맞춘횟수를구한다 프로그램의구현에필요한요소 1 500~1000 사이의난수 2 Button의리스너 (Listener) 처리 3 EditText에입력된값읽기 4 전체입력횟수계산 새로운프로젝트시작 이클립스에서새로운프로젝트를시작하고 [New Android Project] 창에서다음과같이입력한다. 표 1-1 프로젝트창에입력할내용과의미 입력할내용 표기예 설명 Project name Project_1 프로젝트이름 Build Target Google APIs 2.2 프로젝트 API 버전 (2.2는버전 8) Application name Random Number 프로그램제목 Package name com.random 패키지이름 Create Activity MainActivity 액티비티이름 Min SDK Version 7 최저 SDK 버전 4

5 시작하기 그림 1-1 새프로젝트시작 (1) Project name 프로젝트이름은영문자와숫자, 언더바 ( _ ), 공백을사용해서작성한다. 프로젝트이름으로새로운폴더가만들어진다. 프로젝트는소스프로그램과안드로이드 API, 각종리소스등을묶는기본단위로, 프로그램은프로젝트단위로컴파일된다. (2) Build Target 이프로그램에서필요한안드로이드 API 버전을지정한다. 되도록최신버전을사용하는것이유리하다. (3) Application name 프로그램이실행될때단말기맨위에표시되는프로그램이름으로한글을사용할수있다. (4) Package name 패키지는소스프로그램을묶는작은단위이다. 소스프로그램은사용자가작성하는프로그램으로.java 확장자가부여된다. 패키지이름은. 로구분되는 2개이상의문자열로구성된다. 일반적으로 com.study.myproject 와같이 com 을접두어로사용한다. 1.2 스무고개 5

6 (5) Create Activity Activity는프로그램의작은단위이다. 하나의프로그램은여러개의 Activity로구성될수있으며, Activity는하나이상의 View로구성된다. Activity 이름은영문자와숫자, 언더바 ( _ ) 를사용해서작성한다. (6) Min SDK Version 이프로그램을사용할최소의 API 버전을지정한다. 프로그램은이버전을기준으로컴파일되므로 (2) 에서높은버전을지정하더라도이버전이낮으면 (2) 의설정은무시된다 View 디자인 이프로그램은안드로이드가기본으로제공하는위젯만사용한다. 이클립스의 [res/layout/main.xml] 을열고 [layout] 탭에 TextView, EditText, Button 등을추가하고, 속성을다음과같이설정한다. 표 1-2 위젯의속성 위젯 ID 속성설정할내용 TextView01 EditText01 Button01 TextView02 Text 500~1,000 사이의값을입력하세요 Text size 20sp Text Text size 20sp Width 120dip Text 확인 Text size 20sp Text 판정결과 : Text size 20sp 다음은위의설정대로만들어진 xml 소스이다. 6

7 시작하기 main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:orientation="vertical" android:layout_height="fill_parent"> <TextView android:layout_width="wrap_content" android:text="500~1,000 사이의값을입력하세요 " android:textsize="20sp"/> <EditText android:layout_width="wrap_content" android:textsize="20sp" android:width="120dip"/> <Button android:layout_width="wrap_content" android:text=" 확인 " android:textsize="20sp"/> <TextView android:layout_width="wrap_content" android:text=" 판정결과 : " android:textsize="20sp"/> </LinearLayout> 그림 1-2 완성된 View 1.2 스무고개 7

8 1.2.5 Main Activity 영역의구분 이클립스에서 [Project_1/src/com.Random/MainActivity.java] 를열면이클립스가기본으로만들어준 Java 프로그램이나타난다. 처음부터 Activity를다음과같이구분하여각각의용도에맞춰사용하면프로그램작성하고수정하는데많은도움이된다. 1 전역변수선언영역 2 프로그램초기화영역 3 프로그램에서반복적으로사용할영역 그림 1-3 Activity 의영역구분 (1) 전역변수선언영역프로젝트레벨이나 Activity 레벨의전역변수를선언한다. 전역변수는프로그램어디에서나통용되는변수이다. (2) 프로그램초기화영역 oncreate( ) 메서드는프로그램이실행될때한번실행된다. 이영역은변수에초깃값을할당하고버튼등의컨트롤에리스너 (Listener) 를연결하는용도로사용한다. (3) 프로그램에서반복적으로사용할영역실제로작성할프로그램의본체이다. 반복적으로실행될수있으므로각종연산과정을기술하거나지정한처리결과를화면에표시하는등의용도로사용한다. 8

9 시작하기 프로그램이간단하면전체를묶어서 (2) 의영역에서모든것을처리할수도있지만, 이렇게되면나중에알아보기힘든스파게티소스가되어서프로그램을수정하고업그레이드하는데아주큰장애가될수있다. 특히게임같이덩치가큰프로젝트를작성하려면처음부터원칙을정해두고작업을하는것이나중을위해서도큰도움이된다. 이책에서는아주간단한예제라도위의원칙을지키도록했다 난수발생하기 난수는 random( ) 함수나 Random Class를이용해서만든다. random( ) 함수를사용할경우에는별도의선언이필요치않지만, Random Class는 import 영역에 java.util Class를 import해두어야한다 ( 에디터에서 [Ctrl+Shift+O] 키를누르면이클립스가필요한 Class를알아서 import해준다 ). random( ) 함수와 Random Class는다음과같은형식으로사용한다. double d = Math.random(); // 0 < d < 1 사이의실수 Random rnd = new Random(); // Random Class 생성 int k = rnd.nextint(); // < k < int p = rnd.nextint(500); // 0 <= p < 500 대부분의난수는정수형태로사용한다. 그러므로 random( ) 함수로만든실수형의난수는별도의절차를거쳐서정수형태로변환해야할것이다. Random Class의난수는곧바로정수형의난수를구해주므로 random( ) 함수에비해더간편하다. 위에서예로든 rnd.nextint(n) 의형식으로만든난수는 0~n-1 사이의값이다 (n은난수에포함되지않는다 ). 우리의프로그램에서요구하는것과같은일정한범위의난수는다음의식을이용한다. int r = Random.nextInt(< 큰수 > - < 작은수 > + 1) + 작은수 예를들어 30과 40 사이의난수 (30과 40 모두가포함됨 ) 는 40-30=10이므로다음의식으로구할수있다. int r = Random.nextInt(10 + 1) + 30; // 30~40 사이의난수 마찬가지로 500~1000 사이의난수는 =500 이므로아래와같이됨을알수있다. 1.2 스무고개 9

10 int r = Random.nextInt(501) + 500; 버튼의리스너작성 이제사용자가값을입력한후버튼을누르면입력한값과발생된난수를비교해서처리하는부분을작성할차례이다. 사용자가버튼을누르는등의동작을처리하는부분을리스너 (Listener) 또는이벤트핸들러 (Event Handler) 라고한다. 안드로이드는리스너를처리하는방식을세가지형태로제공한다. 이들중두가지는이벤트처리부분을 [ 그림 1-3] 의프로그램초기화영역에합쳐버리는것이고, 다른한가지는프로그램영역에별도의리스너를작성하는방식이다. 앞에서언급한바와같이이벤트핸들러등은프로그램의영역에별도로작성하는것이알아보기쉬운코드가되므로이책에서는모두세번째방식으로작성한다 ( 두가지방법은이책에서는사용하지않으므로별도로언급하지않는다 ). 버튼에리스너를할당하고버튼이눌렸을때처리하는부분은 [ 그림 1-4] 와같이작성할수있다. 이부분은직접입력해야한다. 리스너할당 리스너본체 그림 1-4 Button 의 OnClickListener 10

11 시작하기 [ 그림 1-4] 와같이별도로리스너를만들어두면버튼이여러개인경우에도동일한리스너를사용할수있으므로프로그램이매우깔끔해진다. 여러개의버튼이동일한리스너를공유하는방법은다음에나올예제에서설명할것이다 프로그램작성 위의내용을기초로해서프로그램을작성하자. 아직설명하지못한부분은프로그램내부에주석형태로표시하였다. mainactivity.java package com.random; import java.util.*; import android.app.*; import android.os.*; import android.view.*; import android.widget.*; public class MainActivity extends Activity { // 전역변수선언 int Counter; int n; EditText edit; TextView tresult; // 사용자가입력한횟수 // 난수발생용 // 사용자가입력하는컨트롤 // public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); // 변수초기화 Counter = 0; n = new Random().nextInt(501) + 500;... 1 edit = (EditText) findviewbyid(r.id.edittext01); tresult = (TextView) findviewbyid(r.id.textview02); findviewbyid(r.id.button01).setonclicklistener(mybuttonclick); } // oncreate 끝 1.2 스무고개 11

12 // // Button OnClickListener // Button.OnClickListener mybuttonclick = new Button.OnClickListener() { public void onclick(view v) { String s; Counter++; int p = Integer.parseInt(edit.getText().toString());... 2 }; } if (p < 500 p > 1000) s = " 입력한값이 500~1000 을벗어났습니다 "; else if (p == n) s = Counter + " 번째에맞추셨습니다 "; else if (p > n) s = p + " 보다작은값입니다 "; else s = p + " 보다큰값입니다 "; tresult.settext(s); } // Activity 의끝 1 다음의두문장을한개로줄인것이다. Random rnd = new Random(); n = rnd.nextint(501) + 500; 2 EditText에숫자를입력하더라도내부에서는문자열로취급하므로 parseint( ) 함수로숫자로변환해서처리한다. 12

13 시작하기 그림 1-5 프로그램실행결과 Note 이진검색정렬 (sort) 되어있는자료를검색하는방법으로이진검색 (Binary Search) 라는알고리즘이있다. 위와같은조건에서정답을가장빨리찾는방법은먼저주어진범위의중앙값을찾은후, 대소여부에따라왼쪽이나오른쪽의중앙값을다시찾는방법으로범위를계속해서절반으로줄여가는것이다. 이진검색은최악의경우에도 log 2N번이내에값을찾을수있는대단히우수한알고리즘이다. 위게임의경우에는 500~1000 의중간값인 750 을제시한후에대소여부에따라 750 과 1000 또는 750 과 500 사이의중간값인 875 와 625 를제시함으로써정답이있을부분을차츰좁혀가면 log 이므로최대 9회안에정답을찾을수있다. 1.2 스무고개 13

14 1.3 제비뽑기 아주오래전인필자의중학교시절에학교정문앞에서카드를가지고야바위를하는아저씨들이있었다. 3장의카드를임의로섞어놓고그중에서동그라미가그려진카드를고르는것이다. 이게임은 4장의카드중에서동그라미가그려진 1장의카드를맞추는것으로, 단말기가야바위아저씨역할을한다 ( 제1장 /project_2) 프로그램요구사항 1 단말기는 1~4 사이의난수로동그라미가그려진카드를정한다. 2 사용자는 1~4에해당하는버튼으로해당카드를고른다. 3 사용자가버튼을누르면당첨여부를판정한다 프로그램구현에필요한요소 1 이벤트핸들러의공유 2 Tag 속성활용 View 디자인 14 그림 1-6 완성된 View 의모습

15 시작하기 main.xml [main.xm <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:orientation="vertical" android:layout_height="fill_parent"> <TextView android:text=" 행운의주인공이되세요..." android:textsize="20sp" android:layout_height="120dip" android:gravity="center"/> <LinearLayout android:orientation="horizontal" > <Button android:text=" 당첨 " android:layout_width="wrap_content" android:textsize="18sp" android:layout_marginleft="10dip" android:layout_marginright="5dip" android:tag="1" android:layout_weight="1"/> <Button android:text=" 당첨 " android:layout_width="wrap_content" android:textsize="18sp" android:layout_marginleft="5dip" android:layout_marginright="5dip" android:tag="2" android:layout_weight="1"/> <Button android:text=" 당첨 " android:layout_width="wrap_content" android:textsize="18sp" android:layout_marginleft="5dip" android:layout_marginright="5dip" 1.3 제비뽑기 15

16 android:tag="3" android:layout_weight="1"/> <Button android:text=" 당첨 " android:layout_width="wrap_content" android:textsize="18sp" android:layout_marginleft="5dip" android:layout_marginright="10dip" android:tag="4" android:layout_weight="1"/> </LinearLayout> <TextView android:text=" 추첨결과 :" android:textsize="18sp" android:gravity="center" android:layout_height="100dip"/> </LinearLayout> 버튼의리스너공유 이프로젝트에는 4개의버튼이있으며, 각각의버튼은모두같은용도로사용한다. 그러므로프로그램을단순하게만들기위해 4개의버튼이같은리스너를사용하도록할것이다. 리스너를공유하려면모든버튼에같은리스너를할당한다. findviewbyid(r.id.button01).setonclicklistener(mybuttonclick); findviewbyid(r.id.button02).setonclicklistener(mybuttonclick); findviewbyid(r.id.button03).setonclicklistener(mybuttonclick); findviewbyid(r.id.button04).setonclicklistener(mybuttonclick); 이벤트리스너에 onclick(view v) 와같은형식으로눌려진버튼이매개변수로전달되므로 v.getid( ) 로리스너를호출한버튼을식별할수있다. 비교적간단한부분이므로소스를보면금방이해할수있을것이다. 16

17 시작하기 MainActivity.java package com.sample; import java.util.*; import android.app.*; import android.os.*; import android.view.*; import android.widget.*; public class MainActivity extends Activity public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); // 버튼의리스너할당 findviewbyid(r.id.button01).setonclicklistener(mybuttonclick); findviewbyid(r.id.button02).setonclicklistener(mybuttonclick); findviewbyid(r.id.button03).setonclicklistener(mybuttonclick); findviewbyid(r.id.button04).setonclicklistener(mybuttonclick); } // End of oncreate // // Button OnClickListener // Button.OnClickListener mybuttonclick = new Button.OnClickListener() { public void onclick(view v) { int n = 0; String s; int r = new Random().nextInt(4) + 1; // 1~4 사이의난수 switch (v.getid()) { // 버튼의 id 구하기 case R.id.Button01 : n = 1; break; case R.id.Button02 : n = 2; break; case R.id.Button03 : n = 3; break; case R.id.Button04 : n = 4; } 1.3 제비뽑기 17

18 if (n == r) s = " 축하합니다. 당첨되셨습니다!"; else s = " 안타깝습니다.\n 다음기회에다시도전하세요 ~";... 1 }; } ((TextView) findviewbyid(r.id.textview01)).settext(s); } // End of Activity 1 문자열내부의 \n 은행을가르는용도로사용한다 ( \n 은개행문자 ). 그림 1-7 프로그램실행결과 버튼의 Tag 속성활용 이프로젝트에서버튼은 1~4의값을설정하는용도로만사용된다. 버튼에 1~4의값을미리할당해두고버튼의리스너에서이값으로판단하면, 프로그램을좀더짧게만들수있다. main.xml 의 Layout 페이지에서버튼의속성으로보면 Tag 라는항목이보인다. 18

19 시작하기 Tag는우리말로하자면 꼬리표 같은것으로서컨트롤을식별하는용도로사용한다. 각각의버튼에차례대로 1~4의 Tag를지정해두면프로그램이다음과같이단순해진다 ( 앞의 main.xml 에는미리버튼의 Tag 속성을설정해두었다 ). 앞에서 switch( ) 문을사용하는경우와비교해보면그차이를확실히알수있다. 그림 1-8 이클립스의 Properties 창 public void onclick(view v) { int n = Integer.parseInt(v.getTag().toString()); String s; int r = new Random().nextInt(4) + 1; // 버튼의 Tag 읽기 // 1~4 사이의난수 if (n == r) s = " 축하합니다. 당첨되셨습니다!"; else s = " 안타깝습니다.\n 다음기회에다시도전하세요 ~"; } ((TextView) findviewbyid(r.id.textview01)).settext(s); 1.3 제비뽑기 19

20 Tag 속성은 Object형이므로곧바로정수형변수에대입할수는없고, 일단 String형으로변환한다음에다시정수로바꾸는일련의과정이필요하다. 1.4 윷놀이 (1) 연말이나연초가되면시골에는동네사람들이모여서윷놀이를즐긴다. 윷놀이는 4개의윷으로 도, 개, 걸, 윷, 모 의 5가지경우가만들어진다. 단순하게생각하면각각의경우에 0~4 또는 1~5의난수를발생시켜처리할수도있다. 그런데이렇게하면아주현실감없는게임이되어버린다. 왜냐하면 0~4 또는 1~5의난수는각각의발생확률이 1/5로균등하지만, 실제의윷놀이에서는 개 와 걸 이가장많이나오기때문이다 ( 제1장 /project_3) 윷놀이경우의수와발생확률 1개의윷을던지면앞과뒤, 즉 2가지경우가생긴다. 2개를던지면 2 2를해서 4가지, 4개의윷을던지면전체경우의수는 =16가지이다. 는평평한쪽, 는둥근쪽이라고하면각각의확률과경우의수는다음과같다. 윷 1/16 모 1/16 도 4/16 개 6/16 걸 4/16 위의확률은수학적인것으로, 실제의윷은한쪽은평평하고다른한쪽은둥글게생겼으므로평평한쪽이바닥이될가능성이둥근쪽에비해 1.2~1.5배정도더높은편이다. 그러므로수학적으로개는 6/16, 걸은 4/16으로개가걸보다발생빈도가더높지만, 실제의윷놀이에서는개와걸이거의비슷하거나오히려걸이더자주나타난다. 마찬가지이유로같은확률의윷과모는모가윷보다더자주나타난다. 20

21 시작하기 프로그램요구사항 1 버튼을누르면난수를발생시켜 4개의윷을바닥과등으로표시한다. 2 윷의평평한쪽 ( 바닥 ) 은, 둥근쪽 ( 등 ) 은 으로나타낸다. 3 1에서만들어진결과에따라 도, 개, 걸, 윷, 모 라는말을함께표시한다. 4 바닥과등은 4:6의비율로등쪽이더자주나타나도록한다 프로그램의구현에필요한알고리즘 위의요구사항을충족시키려면윷의바닥과등을결정하는난수를 4개발생시켜이들의조합을이용한다. 각각의난수는바닥 (0) 과등 (1) 을갖도록하면되는데, 0과 1의값이 4:6의비율로 1이더자주발생하도록한다. (1) 4:6의비율에맞는난수만들기위의발생빈도 4:6을확률의개념으로보면경우의수가 4+6=10이다. 그러므로 0~9 사이의난수를발생시켜 0~3까지는 0, 4~9까지는 1이되도록조절하면 0과 1의발생빈도가정확하게 4:6의비율이될것이다. n = Random().nextInt(10); 위의식에의해 n 은 0~9 사이의값이된다. 이제위의식을다음과같이확장해본다. n = Random().nextInt(10) / 4; 위의식은 0~9의난수를발생한후 4로나눈몫을구하는것이다. 그결과난수가 0~3일때는몫이 0, 4~9일때는몫이 1 또는 2가되는데, 2를 1로보면 0과 1이비율이 4:6이다. 그런데위의식은 4로나눈몫이 1 또는 2가된다는문제가있다. n = Random().nextInt(10) / 6; 위의결과 0~5는 0, 6~9는 1이구해진다. 몫이 2가되는경우는없어졌지만, 0과 1의발생비율이 6:4로역전이되었다. 위에서구한몫인 0을 1로, 1을 0으로변환하기위해식을다음과 1.4 윷놀이 (1) 21

22 비율이 6:4로역전이되었다. 위에서구한몫인 0을 1로, 1을 0으로변환하기위해식을다음과같이변경하면 0과 1이비율이 4:6의확률로발생하는난수를얻을수있다. n = 1 - Random().nextInt(10) / 6; 위의난수를얻는다른방법도있다. 4:6=2:3이므로 1~5 사이의난수를발생시켜 2로나눈나머지를취하면 1~5에대해 1, 0, 1, 0, 1이되므로 0과 1의비율이 2:3(4:6) 이된다. n = (Random().nextInt(5) + 1) % 2; (2) 4 개의난수를 도, 개, 걸, 윷, 모 로표시하기 앞에서사용한식에의해 4 개의난수는각각 0 또는 1 이될것이므로 1 의개수를세어서처리한다. 각각의난수를 n1, n2, n3, n4 라고했을때, n = n1 + n2 + n3 + n4; 위와같이 1의개수를간단히구할수있다. 도, 개, 걸, 윷, 모 를미리배열에저장해두면처리조건에맞는결과는다음의식으로구한다. String Yut[] = {" 윷 ", " 도 ", " 개 ", " 걸 ", " 모 "}; n = n1 + n2 + n3 + n4; String p = yut[n]; 위의 String 배열은등 ( 위쪽 ) 의개수를순서대로나타낸것이므로등이하나도없는 윷 을 yut[0], yut[1] 은 도, yut[2] 는 개, 와같은순서로저장한것이다 View 디자인 main.xml [main.xm <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:orientation="vertical" android:layout_height="fill_parent"> 22

23 시작하기 <TextView android:textsize="18sp" android:layout_height="60dip" android:gravity="center" android:text=" 윷을던지세요 "/> <LinearLayout android:orientation="horizontal" > <TextView android:text=" " android:textsize="40sp" android:layout_weight="1" android:gravity="center" android:layout_height="40dip"/> <TextView android:text=" " android:textsize="40sp" android:layout_weight="1" android:gravity="center" android:layout_height="40dip"/> </LinearLayout> <LinearLayout android:orientation="horizontal" > <TextView android:text=" " android:textsize="40sp" android:layout_weight="1" android:gravity="center" android:layout_height="40dip"/> <TextView android:text=" " android:textsize="40sp" 1.4 윷놀이 (1) 23

24 android:layout_weight="1" android:gravity="center" android:layout_height="40dip"/> </LinearLayout> <TextView android:text=" 결과 : " android:textsize="18sp" android:layout_height="60dip" android:gravity="center"/> <Button android:id="@+id/button01" android:text=" 확인 " android:layout_gravity="center" android:layout_width="120dip" android:textsize="16sp"/> </LinearLayout> 그림 1-9 완성된 View 의모습 24

25 시작하기 프로그램작성 MainActivity.java package com.project3; import java.util.*; import android.app.activity; import android.os.bundle; import android.view.*; import android.widget.*; public class MainActivity extends Activity { String tyut[] = {" ", " "}; String Yut[] = {" 윷 ", " 도 ", " 개 ", " 걸 ", " 모 public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); findviewbyid(r.id.button01).setonclicklistener(mybuttonclick); } // // Button OnClickListener // Button.OnClickListener mybuttonclick = new Button.OnClickListener() { public void onclick(view v) { Random rnd = new Random(); int n1 = 1 - rnd.nextint(10) / 6; int n2 = 1 - rnd.nextint(10) / 6; int n3 = 1 - rnd.nextint(10) / 6; int n4 = 1 - rnd.nextint(10) / 6; int n = n1 + n2 + n3 + n4; } }; } ((TextView) findviewbyid(r.id.textview01)).settext(tyut[n1]); ((TextView) findviewbyid(r.id.textview02)).settext(tyut[n2]); ((TextView) findviewbyid(r.id.textview03)).settext(tyut[n3]); ((TextView) findviewbyid(r.id.textview04)).settext(tyut[n4]); ((TextView) findviewbyid(r.id.textview05)).settext(yut[n]); 1.4 윷놀이 (1) 25

26 그림 1-10 프로그램실행결과 위의프로그램을실행시키고 [ 확인 ] 버튼을계속해서눌러보면 개 와 걸 의발생빈도가비슷해짐을알수있다. 1.5 윷놀이 (2) 1.3 에서작성한윷놀이를윷의결과를 ImageView 에표시하도록한다 ( 제 1 장 /project_4) 처리조건 1.3 과같다. 다만윷의형태를 ImageView 에표시한다. 26

27 시작하기 View 디자인 그림 1-11 완성된 View 의모습 View를디자인하기위해윷의앞면과뒷면에해당하는이미지가 2개필요하다. 이이미지는제1장 /images 폴더에 yut_0.png, yut_1.png로수록되어있다. 그림 1-12 View 의디자인에필요한이미지 main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:orientation="vertical" android:layout_height="fill_parent" > <TextView 1.5 윷놀이 (2) 27

28 28 android:text=" 윷을던지세요 " android:layout_height="60dip" android:gravity="center" android:textsize="20sp"/> <LinearLayout android:layout_height="90dip"> <ImageView android:layout_width="wrap_content" android:layout_marginleft="20dip" android:layout_marginright="10dip"/> <ImageView android:layout_width="wrap_content" android:layout_marginleft="10dip"/> </LinearLayout> <LinearLayout android:layout_height="90dip"> <ImageView android:layout_width="wrap_content" android:layout_marginleft="20dip" android:layout_marginright="10dip"/> <ImageView android:layout_width="wrap_content" android:layout_marginleft="10dip"/> </LinearLayout> <TextView android:text=" 결과 : " android:textsize="18sp" android:layout_height="60dip" android:gravity="center"/>

29 시작하기 <Button android:text=" 확인 " android:layout_gravity="center" android:layout_width="120dip" android:textsize="16sp"/> </LinearLayout> 프로그램작성 이프로젝트는 project_3 에서사용한알고리즘을그대로사용한다. 단지 TextView 대신 Image View를사용하는것이다를뿐이다. 그래픽이미지가 2장이있으므로이것을다음과같이배열에넣고시작한다. int imgyut[] = {R.drawable.yut_0, R.drawable.yut_1}; ImageView의그래픽이미지를바꿔주는부분은 setimageresource( ) 메서드를사용하여처리한다. ((ImageView) findviewbyid(r.id.imageview01)).setimageresource(imgyut[n1]); MainActivity.java package com.project4; import java.util.*; import android.app.activity; import android.os.bundle; import android.view.*; import android.widget.*; public class MainActivity extends Activity { int imgyut[] = {R.drawable.yut_0, R.drawable.yut_1}; String Yut[] = {" 윷 ", " 도 ", " 개 ", " 걸 ", " 모 public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); 1.5 윷놀이 (2) 29

30 } findviewbyid(r.id.button01).setonclicklistener(mybuttonclick); // // Button OnClickListener // Button.OnClickListener mybuttonclick = new Button.OnClickListener() { public void onclick(view v) { Random rnd = new Random(); int n1 = 1 - rnd.nextint(10) / 6; int n2 = 1 - rnd.nextint(10) / 6; int n3 = 1 - rnd.nextint(10) / 6; int n4 = 1 - rnd.nextint(10) / 6; int n = n1 + n2 + n3 + n4; } }; } ((ImageView) findviewbyid(r.id.imageview01)).setimageresource(imgyut[n1]); ((ImageView) findviewbyid(r.id.imageview02)).setimageresource(imgyut[n2]); ((ImageView) findviewbyid(r.id.imageview03)).setimageresource(imgyut[n3]); ((ImageView) findviewbyid(r.id.imageview04)).setimageresource(imgyut[n4]); ((TextView) findviewbyid(r.id.textview05)).settext(yut[n]); 그림 1-13 프로그램실행결과 30

( )부록

( )부록 A ppendix 1 2010 5 21 SDK 2.2. 2.1 SDK. DevGuide SDK. 2.2 Frozen Yoghurt Froyo. Donut, Cupcake, Eclair 1. Froyo (Ginger Bread) 2010. Froyo Eclair 0.1.. 2.2. UI,... 2.2. PC 850 CPU Froyo......... 2. 2.1.

More information

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID android:title= 항목제목 /> </menu> public boolean oncreateoptionsmenu(menu menu) { getme 8 차시메뉴와대화상자 1 학습목표 안드로이드에서메뉴를작성하고사용하는방법을배운다. 안드로이드에서대화상자를만들고사용하는방법을배운다. 2 확인해볼까? 3 메뉴 1) 학습하기 [ 그림 8-1] XML 을이용한옵션메뉴설정방법 public boolean

More information

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android=http://schemas.android.com/apk/res/android 2 xmlns:tools=http://schemas.android. 10 차시파일처리 1 학습목표 내장메모리의파일을처리하는방법을배운다. SD 카드의파일을처리하는방법을배운다. 2 확인해볼까? 3 내장메모리파일처리 1) 학습하기 [ 그림 10-1] 내장메모리를사용한파일처리 2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1

More information

[ 그림 7-1] 프로젝트 res 폴더 이미지뷰 [ 예제 7-1] 이미지뷰 1 <LinearLayout 2 ~~~~ 중간생략 ~~~~ 3 android:orientation="vertical" > 4 <ImageView

[ 그림 7-1] 프로젝트 res 폴더 이미지뷰 [ 예제 7-1] 이미지뷰 1 <LinearLayout 2 ~~~~ 중간생략 ~~~~ 3 android:orientation=vertical > 4 <ImageView 7 차시이미지처리 1 학습목표 이미지뷰를사용하는방법을배운다. 비트맵을사용하는방법을배운다. 2 확인해볼까? 3 이미지뷰와이미지버튼 1) 학습하기 [ 그림 7-1] 프로젝트 res 폴더 이미지뷰 [ 예제 7-1] 이미지뷰 1 4

More information

어댑터뷰

어댑터뷰 04 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adatper View) 란? u 어댑터뷰의항목하나는단순한문자열이나이미지뿐만아니라, 임의의뷰가될수 있음 이미지뷰 u 커스텀어댑터뷰설정절차 1 2 항목을위한 XML 레이아웃정의 어댑터정의 3 어댑터를생성하고어댑터뷰객체에연결

More information

리니어레이아웃 - 2 -

리니어레이아웃 - 2 - 4 차시레이아웃 1 학습목표 레이아웃의개념을이해한다. 중복리니어레이아웃의개념이해한다. 2 확인해볼까? 3 레이아웃개념익히기 1) 학습하기 [ 그림 4-1] ViewGroup 클래스계층도 리니어레이아웃 - 2 - [ 예제 4-1]orientation 속성-horizontal 1

More information

9 차시고급위젯다루기 1 학습목표 날짜 / 시간과관련된위젯을배운다. 웹뷰를사용하여간단한웹브라우저기능을구현한다. 매니패스트파일의설정법을배운다. 2 확인해볼까? 3 날짜 / 시간위젯 1) 활동하기 활동개요

9 차시고급위젯다루기 1 학습목표 날짜 / 시간과관련된위젯을배운다. 웹뷰를사용하여간단한웹브라우저기능을구현한다. 매니패스트파일의설정법을배운다. 2 확인해볼까? 3 날짜 / 시간위젯 1) 활동하기 활동개요 9 차시고급위젯다루기 1 학습목표 날짜 / 시간과관련된위젯을배운다. 웹뷰를사용하여간단한웹브라우저기능을구현한다. 매니패스트파일의설정법을배운다. 2 확인해볼까? 3 날짜 / 시간위젯 1) 활동하기 활동개요 [ 그림 9-1] 시간예약앱 활동과정 - 2 - [ 그림 9-2] 안드로이드 SDK Manager [ 예제 9-1]main.xml 1

More information

안드로이드기본 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 -

안드로이드기본 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 - 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 - ArrayAdapter ArrayAdapter adapter = new ArrayAdapter(this, android.r.layout.simple_list_item_1,

More information

학습목표 선언하여디자인을하는방법을이해하고, 실행할수있다. 시작화면을만드는방법과대체리소스를사용하는방법을이해하고실행할수있다. About 과같은상자를구현하고, 테마를적용하는법을이해하고실행할수있다.

학습목표 선언하여디자인을하는방법을이해하고, 실행할수있다. 시작화면을만드는방법과대체리소스를사용하는방법을이해하고실행할수있다. About 과같은상자를구현하고, 테마를적용하는법을이해하고실행할수있다. 헬로, 안드로이드 3 주차 사용자인터페이스디자인하기 (1) 강대기동서대학교컴퓨터정보공학부 학습목표 선언하여디자인을하는방법을이해하고, 실행할수있다. 시작화면을만드는방법과대체리소스를사용하는방법을이해하고실행할수있다. About 과같은상자를구현하고, 테마를적용하는법을이해하고실행할수있다. 차례 스도쿠예제소개하기 선언하여디자인하기 시작화면만들기 대체리소스사용하기 About

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

13ÀåÃß°¡ºÐ

13ÀåÃß°¡ºÐ 13 CHAPTER 13 CHAPTER 2 3 4 5 6 7 06 android:background="#ffffffff"> 07

More information

슬라이드 1

슬라이드 1 헬로, 안드로이드 3 주차 사용자인터페이스디자인하기 (1) 강대기동서대학교컴퓨터정보공학부 학습목표 선언하여디자인을하는방법을이해하고, 실행핛수있다. 시작화면을만드는방법과대체리소스를사용하는방법을이해하고실행핛수있다. About 과같은상자를구현하고, 테마를적용하는법을이해하고실행핛수있다. 차례 스도쿠예제소개하기 선언하여디자인하기 시작화면만들기 대체리소스사용하기 About

More information

03장

03장 CHAPTER3 ( ) Gallery 67 68 CHAPTER 3 Intent ACTION_PICK URI android provier MediaStore Images Media EXTERNAL_CONTENT_URI URI SD MediaStore Intent choosepictureintent = new Intent(Intent.ACTION_PICK, ë

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

2_안드로이드UI

2_안드로이드UI 03 Layouts 레이아웃 (Layout) u ViewGroup의파생클래스로서, 포함된 View를정렬하는기능 u 종류 LinearLayout 컨테이너에포함된뷰들을수평또는수직으로일렬배치하는레이아웃 RelativeLayout 뷰를서로간의위치관계나컨테이너와의위치관계를지정하여배치하는레이아웃 TableLayout 표형식으로차일드를배치하는레이아웃 FrameLayout

More information

학습목표 메뉴를추가하는방법을이해하고실습할수있다. 프로그램의기본설정 (settings) 을정의하는방법을알고실습할수있다. 대화상자를여는방법을알고실습할수있다. 로그메시지로디버깅하는방법을이해한다. 디버거로디버깅하는방법을이해한다.

학습목표 메뉴를추가하는방법을이해하고실습할수있다. 프로그램의기본설정 (settings) 을정의하는방법을알고실습할수있다. 대화상자를여는방법을알고실습할수있다. 로그메시지로디버깅하는방법을이해한다. 디버거로디버깅하는방법을이해한다. 헬로, 안드로이드 4 주차 사용자인터페이스디자인하기 (2) 강대기동서대학교컴퓨터정보공학부 학습목표 메뉴를추가하는방법을이해하고실습할수있다. 프로그램의기본설정 (settings) 을정의하는방법을알고실습할수있다. 대화상자를여는방법을알고실습할수있다. 로그메시지로디버깅하는방법을이해한다. 디버거로디버깅하는방법을이해한다. 차례 메뉴추가하기 Settings 추가하기 새게임시작하기

More information

Microsoft PowerPoint - 02처음으로만드는(Ver 1.0)

Microsoft PowerPoint - 02처음으로만드는(Ver 1.0) 02. 처음으로만드는안드로이드응용프로그램 IT CookBook, 안드로이드프로그래밍 학습목표 안드로이드응용프로그램의기본적인작성법을익힌다. AVD 의명칭을배운다. 안드로이드프로젝트의구성을파악한다. Page 2 차례 Page 3 1. 처음만드는 [Hello Android] 프로그램 Page 4 1. 처음만드는 [Hello Android] 프로그램 [ 실습 2-1]

More information

01장

01장 CHAPTER1 Camera (MediaStore) EXIF 1 2 CHAPTER 1 SDK (intent) Camera Camera Camera Android Manifest xml Camera Camera

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

슬라이드 1

슬라이드 1 Android Mobile Application Development Part 2 Agenda Part 1 Build Develop Environment Create new Project Composition of Project Simulate Application Part 2 User Interface Activity Toast Preference Log

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Hello Android Jo, Heeseung Contents HelloAndroid program AVD 명칭과사용법안드로이드응용프로그램작성안드로이드프로젝트구성 2 처음만드는 [Hello Android] 프로그램 3 처음만드는 [Hello Android] 프로그램 이클립스메뉴 [File]-[New]-[Project] 를선택 [New Project] 창에서

More information

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

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

More information

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 UI 이벤트 Event listener Touch mode Focus handling Notification Basic toast notification Customized toast notification Status bar notification 2 사용자가인터랙션하는특정 View

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

// 화면을터치하였을때해야할작업구현 case MotionEvent.ACTION_MOVE: // 화면을드래그하였때 // 화면을드래그하였을때해야할작업구현 case MotionEvent.ACTION_UP: // 화면에서터치가사라질때 // 화면에서터치가사라질때해야할자업구현 c

// 화면을터치하였을때해야할작업구현 case MotionEvent.ACTION_MOVE: // 화면을드래그하였때 // 화면을드래그하였을때해야할작업구현 case MotionEvent.ACTION_UP: // 화면에서터치가사라질때 // 화면에서터치가사라질때해야할자업구현 c 6 차시이벤트처리 1 학습목표 터치이벤트처리를배운다. XML 의 onclick 속성을사용하여이벤트를처리한다. 2 확인해볼까? 3 이벤트처리하기 1) 학습하기 터치이벤트 public boolean ontouchevent(motionevent event) { swtich(event.getaction()) { case MotionEvent.ACTION_DOWN:

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Basic Widgets Jo, Heeseung Contents 뷰의개요 기본위젯다루기 기본위젯활용하기 2 뷰의개요 안드로이드화면에서실제로사용되는것은모두 View 클래스에서상속 이러한클래스를모두 ' 위젯 ' ( 또는뷰 ) 이라고도부름 위젯중에서다른위젯을담을수있는것들은주로 ViewGroup 클래스의하위에존재 이렇게다른위젯을담을수있는클래스를레이아웃이라고함 위젯

More information

PowerPoint Template

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

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

이것은리스트뷰의 setadapter 메소드에잘표현되어있습니다. setadapter 는리스트뷰에사용할데이터객체를넘겨주는메소드입니다. 일반적으로생각한다면 ArrayAdapter 객체를생성하여사용할데이터를저장할것이고데이터가저장된 ArrayAdapter 객체를 setadapt

이것은리스트뷰의 setadapter 메소드에잘표현되어있습니다. setadapter 는리스트뷰에사용할데이터객체를넘겨주는메소드입니다. 일반적으로생각한다면 ArrayAdapter 객체를생성하여사용할데이터를저장할것이고데이터가저장된 ArrayAdapter 객체를 setadapt 1. 리스트뷰의구조 리스트뷰는어떤데이터그룹에대한각각의정보들을항목별로출력시키고사용자에게원하는항목을검색하거나선택할수있도록해주는컨트롤객체입니다. 그래서다른컨트롤처럼정해진형태의정보를저장하는것이아니기때문에리스트뷰가데이터를직접관리하기는힘들었을것입니다. 그래서효과적인데이터관리를위해 "ArrayAdapter" 라는클래스가추가되었고리스트뷰는이클래스를이용해서사용자가지정한데이터에접근하도록구현되어있습니다.

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

TipssoftAppActivity.java // 기본소스파일 main.xml // 배치와구성에관련된리소스파일 string.xml // 프로그램에서사용할문자열에관련된리소스파일 컴파일을하고나면 r.java 라는소스파일이하나추가되는데이파일은리소스파일을소스파일에서이용할수있도

TipssoftAppActivity.java // 기본소스파일 main.xml // 배치와구성에관련된리소스파일 string.xml // 프로그램에서사용할문자열에관련된리소스파일 컴파일을하고나면 r.java 라는소스파일이하나추가되는데이파일은리소스파일을소스파일에서이용할수있도 1. " 소스파일 " 과 " 리소스파일 " 에대하여 소스파일은우리가흔히알고있듯이프로그래밍언어를사용해서자신이만들고자하는프로그램을구현한파일입니다. 예전에작성된프로그램들은소스파일만으로이루어진프로그램도많았습니다. 하지만, 프로그램환경이점점더복잡해지고사용자인터페이스가다양해지면서인터페이스구성을서술식으로나열해서소스파일에표현하는것은한계가왔고작업효율을떨어트리게되어해결책이필요하게되었습니다.

More information

Daum 카페

Daum 카페 인쇄하기 인쇄 [22 장 ] 프래그먼트 (1/8) (20140815 완료 ) 책에담지못한장들 슈퍼성근 조회 326 2014/08/10 22:38:46 주의 : 소스내용중 "0nClick", "0nStart" 함수명첫글자가숫자 0 인것은오타가아닙니다. 다움게시판은 o n C l i c k 라는글을입력할수없기때문에어쩔수없이 영문소문자 o 를숫자 0 으로대체하였습니다.

More information

슬라이드 1

슬라이드 1 모바일소프트웨어프로젝트 지도 API 1 조 20070216 김성수 20070383 김혜준 20070965 이윤상 20071335 최진 1 매시업? 공개 API? 2 매시업 웹으로제공하고있는정보와서비스를융합하여새로운소프트웨어나서비스, 데이터베이스등을만드는것 < 최초의매시업 > 3 공개 API 누구나사용할수있도록공개된 API 지도, 검색등다양한서비스들에서제공 대표적인예

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

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

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

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

안드로이드2_14

안드로이드2_14 .,,,,,. 11...,,,.,.,.,. Chapter 14. force feedback.., getsystemservice. String service_name = Context.SENSOR_SERVICE; SensorManager sensormanager = (SensorManager)getSystemService(service_name);. Sensor.,,,.

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

Java ...

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

More information

Microsoft PowerPoint - 4주차_Android_UI구현.ppt [호환 모드]

Microsoft PowerPoint - 4주차_Android_UI구현.ppt [호환 모드] Android UI 구현 학습목표 교육목표 Android application 구성요소 Activity Layout UI 설계 Linear Layout 구현 Android application 구성요소 (1) () Application 구성요소 AndroidManifest.xml Android application 구성요소 (2) 구성요소 기능 Activity

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

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

뷰그룹 ( 레이아웃 ) 레이아웃이름 ( 클래스이름 ) FrameLayout LinearLayout 설명단일객체를표현하기위한프레임. 왼쪽상단에하나의뷰를배치하기때문에나중 에그린객체만보여준다. 수평또는수직으로자손의뷰를배치. 뷰가들어갈만한공간이없을때는자동으로 스크롤바가나타난다

뷰그룹 ( 레이아웃 ) 레이아웃이름 ( 클래스이름 ) FrameLayout LinearLayout 설명단일객체를표현하기위한프레임. 왼쪽상단에하나의뷰를배치하기때문에나중 에그린객체만보여준다. 수평또는수직으로자손의뷰를배치. 뷰가들어갈만한공간이없을때는자동으로 스크롤바가나타난다 크기에사용할수있는단위 표기 단위 설명 px 픽셀수 사용중화면에서의픽셀수, 해상도가높아지면픽셀의물리적인크기가줄어든다. in 인치 사용중화면에서의인치단위의길이 mm 밀리미터 사용중화면에서의밀리미터단위의길이 pt 포인트수 사용중화면에서의 1/72 인치를 1 포인트로하는길이 dp 해상도에의존하지않는픽셀수 1은해상도가 180dpi일때 1 픽셀. 10dp가 160dpi일때에는

More information

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse

More information

Microsoft PowerPoint - 04기본위젯(Ver 1.0)

Microsoft PowerPoint - 04기본위젯(Ver 1.0) 04. 기본위젯익히기 IT CookBook, 안드로이드프로그래밍 학습목표 뷰와뷰상속을이해한다. 기본위젯을다루는방법을익힌다. 안드로이드앱의기본적인프로그래밍을숙달한다. Page 3 차례 Page 4 1. 뷰의개요 뷰와뷰그룹 안드로이드화면에서실제로사용되는것은모두 View 클래스에서상속을받으며, 이러한클래스를모두 ' 위젯 '( 또는뷰 ) 이라고도부름. 위젯중에서다른위젯을담을수있는것들은주로

More information

OpenCV와 함께하는 컴퓨터 비전 프로그래밍 캠프

OpenCV와 함께하는 컴퓨터 비전 프로그래밍 캠프 OpenCV 와함께하는컴퓨터비전프로그래밍캠프 Appx. 안드로이드 OpenCV 프로그래밍 Last Update: 2018/06/07 Visual C++ 영상처리프로그래밍 저자 황선규 / 공학박사 sunkyoo.hwang@gmail.com 모바일컴퓨터비전프로그래밍 목차 Android 개요 Android 개발환경구축 Android Studio 설치 OpenCV

More information

슬라이드 1

슬라이드 1 13 장. 커스텀뷰개발 API 에서제공하는뷰를그대로이용하면서약간변형시킨뷰 여러뷰를합쳐서한번에출력하기위한뷰 기존 API 에전혀존재하지않는뷰 public class MyView extends TextView { public class MyView extends ViewGroup { public class MyView extends View { 커스텀뷰를레이아웃

More information

Spring Boot

Spring Boot 스프링부트 (Spring Boot) 1. 스프링부트 (Spring Boot)... 2 1-1. Spring Boot 소개... 2 1-2. Spring Boot & Maven... 2 1-3. Spring Boot & Gradle... 3 1-4. Writing the code(spring Boot main)... 4 1-5. Writing the code(commandlinerunner)...

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

C 프로그램의 기본

C 프로그램의 기본 C 프로그램의기본 목차 C 프로그램의구성요소 주석 main 함수 출력 C 언어의입력과출력 변수 printf 함수 scanf 함수 2 예제 2-1 : 첫번째 C 프로그램 3 2.1.1 주석 주석의용도 프로그램에대한설명 프로그램전체에대한대략적인정보를제공 프로그램수행에영향을미치지않는요소 4 2.1.1 주석 주석사용방법 /* 과 */ 을이용한여러줄주석 // 을이용한한줄주석

More information

gnu-lee-oop-kor-lec10-1-chap10

gnu-lee-oop-kor-lec10-1-chap10 어서와 Java 는처음이지! 제 10 장이벤트처리 이벤트분류 액션이벤트 키이벤트 마우스이동이벤트 어댑터클래스 스윙컴포넌트에의하여지원되는이벤트는크게두가지의카테고리로나누어진다. 사용자가버튼을클릭하는경우 사용자가메뉴항목을선택하는경우 사용자가텍스트필드에서엔터키를누르는경우 두개의버튼을만들어서패널의배경색을변경하는프로그램을작성하여보자. 이벤트리스너는하나만생성한다. class

More information

OCW_C언어 기초

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

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 인터페이스, 람다식, 패키지 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 홈네트워킹 public interface RemoteControl { public void turnon(); // 가전제품을켠다. public void turnoff(); // 가전제품을끈다. 인터페이스를구현 public class Television

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

슬라이드 1

슬라이드 1 핚국산업기술대학교 제 14 강 GUI (III) 이대현교수 학습안내 학습목표 CEGUI 라이브러리를이용하여, 게임메뉴 UI 를구현해본다. 학습내용 CEGUI 레이아웃의로딩및렌더링. OIS 와 CEGUI 의연결. CEGUI 위젯과이벤트의연동. UI 구현 : 하드코딩방식 C++ 코드를이용하여, 코드내에서직접위젯들을생성및설정 CEGUI::PushButton* resumebutton

More information

untitled

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

More information

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 학습내용 1. Java Development Kit(JDK) 2. Java API 3. 자바프로그래밍개발도구 (Eclipse) 4. 자바프로그래밍기초 2 자바를사용하려면무엇이필요한가? 자바프로그래밍개발도구 JDK (Java Development Kit) 다운로드위치 : http://www.oracle.com/technetwork/java/javas

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

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

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

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

Microsoft PowerPoint - DoItAndroid_PART02_01_기본위젯과레이아웃_Rev.1.0 [호환 모드]

Microsoft PowerPoint - DoItAndroid_PART02_01_기본위젯과레이아웃_Rev.1.0 [호환 모드] Do It! 안드로이드앱프로그래밍 PART 0 Chapter 01 기본위젯과레이아웃 Sep. 011 이지스퍼블리싱 ( 주 ) 제공강의교안저자 : 정재곤 이번장에서는무엇을다룰까요? 이번장에서는무엇을다룰까요? 화면을먼저만들어보고싶어요. 레이아웃을이용해 뷰란무엇일까요? 뷰를화면에배치해볼까요? 기본위젯사용하기 뷰란무엇일까요? 버튼 검색어 안드로이드 텍스트 레이아웃을이용해뷰를화면에배치해볼까요?

More information

제8장 자바 GUI 프로그래밍 II

제8장 자바 GUI 프로그래밍 II 제8장 MVC Model 8.1 MVC 모델 (1/7) MVC (Model, View, Controller) 모델 스윙은 MVC 모델에기초를두고있다. MVC란 Xerox의연구소에서 Smalltalk 언어를바탕으로사용자인터페이스를개발하기위한방법 MVC는 3개의구성요소로구성 Model : 응용프로그램의자료를표현하기위한모델 View : 자료를시각적으로 (GUI 방식으로

More information

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다. Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:

More information

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 개발환경구조및설치순서 JDK 설치 Eclipse 설치 안드로이드 SDK 설치 ADT(Androd Development Tools) 설치 AVD(Android Virtual Device) 생성 Hello Android! 2 Eclipse (IDE) JDK Android SDK with

More information

쉽게 풀어쓴 C 프로그래밍

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

More information

PowerPoint Presentation

PowerPoint Presentation #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 - 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

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

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

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

More information

Microsoft Word - src.doc

Microsoft Word - src.doc IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...

More information

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

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,

More information

50_1953.pdf

50_1953.pdf C h a p t e r 02 194 Part Mobile Apps 01 01 02 Chapter 02 195 03 04 196 Part 02 01 02 03 04 Chapter 02 197 05 06 07 08 198 Part 03 01 02 Chapter 02 199 03 04 05 06 200 Part 07 08 09 10 Chapter 02 201 04

More information

OCW_C언어 기초

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

More information

슬라이드 1

슬라이드 1 3 장안드로이드프로그램의 첫걸음 시작하면서 2 목차 프로젝트의생성하기 프로젝트파읷및소스코드이해 코드로문자열표시하기 문자열출력프로그램응용 프로젝트에새로운파읷 / 속성추가 프로젝트생성하기 프로젝트생성하기 4 < 실습 5-1>: Android 프로젝트의생성과에뮬레이터구동 (1)[ 그림 3-1](a) 처럼안드로이드프로젝트생성아이콘클릭 [ 그림 3-1](b) 처럼이클립스에서메뉴선택

More information

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제 Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.

More information

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

Microsoft PowerPoint - chap01-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 학습목표 프로그래밍의 기본 개념을

More information

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상 Android 용 Brother Image Viewer 설명서 버전 0 KOR 아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상표입니다. Android는

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 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

2002년 2학기 자료구조

2002년 2학기 자료구조 자료구조 (Data Structures) Chapter 1 Basic Concepts Overview : Data (1) Data vs Information (2) Data Linear list( 선형리스트 ) - Sequential list : - Linked list : Nonlinear list( 비선형리스트 ) - Tree : - Graph : (3)

More information

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드] Google Map View 구현 학습목표 교육목표 Google Map View 구현 Google Map 지원 Emulator 생성 Google Map API Key 위도 / 경도구하기 위도 / 경도에따른 Google Map View 구현 Zoom Controller 구현 Google Map View (1) () Google g Map View 기능 Google

More information

PowerPoint 프레젠테이션

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

More information

UI TASK & KEY EVENT

UI TASK & KEY EVENT T9 & AUTOMATA 2007. 3. 23 PLATFORM TEAM 정용학 차례 T9 개요 새로운언어 (LDB) 추가 T9 주요구조체 / 주요함수 Automata 개요 Automata 주요함수 추후세미나계획 질의응답및토의 T9 ( 2 / 30 ) T9 개요 일반적으로 cat 이라는단어를쓸려면... 기존모드 (multitap) 2,2,2, 2,8 ( 총 6번의입력

More information

헬로, 안드로이드 13 주차 SQL 활용하기 (2) 강대기동서대학교컴퓨터정보공학부

헬로, 안드로이드 13 주차 SQL 활용하기 (2) 강대기동서대학교컴퓨터정보공학부 헬로, 안드로이드 13 주차 SQL 활용하기 (2) 강대기동서대학교컴퓨터정보공학부 학습목표 데이터바인딩을통해데이터소스에해당하는데이터베이스와뷰에해당하는액티비티를연결한데이터베이스응용프로그램을작성할수있다. 안드로이드내의다른어플리케이션의데이터에접근하기위해제공되는 ContentProvider 를사용할수있다. 자신의어플리케이션에서다른어플리케이션으로의데이터제공을위한 ContentProvider

More information

슬라이드 1

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

More information

쉽게배우는알고리즘 6장. 해시테이블 테이블 Hash Table

쉽게배우는알고리즘 6장. 해시테이블 테이블 Hash Table 쉽게배우는알고리즘 6장. 해시테이블 테이블 Hash Table http://academy.hanb.co.kr 6장. 해시테이블 테이블 Hash Table 사실을많이아는것보다는이론적틀이중요하고, 기억력보다는생각하는법이더중요하다. - 제임스왓슨 - 2 - 학습목표 해시테이블의발생동기를이해한다. 해시테이블의원리를이해한다. 해시함수설계원리를이해한다. 충돌해결방법들과이들의장단점을이해한다.

More information

<4D F736F F F696E74202D20C1A63139C0E520B9E8C4A120B0FCB8AEC0DA28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63139C0E520B9E8C4A120B0FCB8AEC0DA28B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 19 장배치관리자 이번장에서학습할내용 배치관리자의개요 배치관리자의사용 FlowLayout BorderLayout GridLayout BoxLayout CardLayout 절대위치로배치 컨테이너안에서컴포넌트를배치하는방법에대하여살펴봅시다. 배치관리자 (layout manager) 컨테이너안의각컴포넌트의위치와크기를결정하는작업 [3/70] 상당히다르게보인다.

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

다른 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

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

학습목표 인텐트로다른액티비티나프로그램을실행시킬수있다. 웹뷰를통해웹화면을액티비티화면의일부로구성할수있다. 자바스크립트를통해안드로이드프로그램을호출하는방법을안다. 안드로이드응용프로그램에서웹서비스를이용하는방법을안다.

학습목표 인텐트로다른액티비티나프로그램을실행시킬수있다. 웹뷰를통해웹화면을액티비티화면의일부로구성할수있다. 자바스크립트를통해안드로이드프로그램을호출하는방법을안다. 안드로이드응용프로그램에서웹서비스를이용하는방법을안다. 헬로, 안드로이드 10 주차 연결된세상 강대기동서대학교컴퓨터정보공학부 학습목표 인텐트로다른액티비티나프로그램을실행시킬수있다. 웹뷰를통해웹화면을액티비티화면의일부로구성할수있다. 자바스크립트를통해안드로이드프로그램을호출하는방법을안다. 안드로이드응용프로그램에서웹서비스를이용하는방법을안다. 차례 인텐트로브라우징하기 뷰안의웹 자바스크립트에서자바로, 자바에서자바스크립트로 웹서비스이용하기

More information

UI TASK & KEY EVENT

UI TASK & KEY EVENT 2007. 2. 5 PLATFORM TEAM 정용학 차례 CONTAINER & WIDGET SPECIAL WIDGET 질의응답및토의 2 Container LCD에보여지는화면한개 1개이상의 Widget을가짐 3 Container 초기화과정 ui_init UMP_F_CONTAINERMGR_Initialize UMP_H_CONTAINERMGR_Initialize

More information

JAVA PROGRAMMING 실습 02. 표준 입출력

JAVA PROGRAMMING 실습 02. 표준 입출력 자바의기본구조? class HelloJava{ public static void main(string argv[]){ system.out.println( hello,java ~ ){ } } # 하나하나뜯어살펴봅시다! public class HelloJava{ 클래스정의 public static void main(string[] args){ System.out.println(

More information

콘텐츠 PowerPoint 디자인

콘텐츠 PowerPoint 디자인 서비스 / 스레드 /DB 최 민 서비스 Service 안드로이드는서비스에게비활성액티비티보다높은우선순위부여 시스템이리소스를필요로할때서비스가종료될가능성은적음 서비스가종료되었더라도리소스가충분해지면즉시재시작 GUI 없이실행 Activity, Broadcast receiver와같이애플리케이션프로세스의메인쓰레드내에서실행 좋은반응성을가지려면시간이많이드는처리 ( 네트워크조회등

More information

BMP 파일 처리

BMP 파일 처리 BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)

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 - 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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Web server porting 2 Jo, Heeseung Web 을이용한 LED 제어 Web 을이용한 LED 제어프로그램 web 에서데이터를전송받아타겟보드의 LED 를조작하는프로그램을작성하기위해다음과같은소스파일을생성 2 Web 을이용한 LED 제어 LED 제어프로그램작성 8bitled.html 파일을작성 root@ubuntu:/working/web# vi

More information