임베디드 시스템 소프트웨어

Size: px
Start display at page:

Download "임베디드 시스템 소프트웨어"

Transcription

1 10 주차강대기

2 위치서비스를이용하는애플리케이션만들기 가속도센서 웹브라우저

3 위치서비스를이용하는애플리케이션만들기 프로젝트생성및화면디자인 위치서비스이용을위한환경설정 위치서비스이용을위한변수및이벤트핸들러추가 StatusChanged 이벤트핸들러구현 PositionChanged 이벤트핸들러구현 위치서비스중지코드추가

4 Global Positioning System (GPS) GPS 소스가어떤것인가에따라해상도가다르지만, 기본적으로 10~25m 정도의오차를가짐 내비게이션시스템은자체알고리즘으로이를보정함 그외에도 Differential GPS 등과같은다양한구조개선이있어왔음 2000 년 5 월이전에는, 미국의군사적보안을이유로, 민간용은일부러 100m 오차를가지게했었음 (Selective Availability) 한국에서위치정보를제공하는사업자에게는국가기관이위치정보내역을요구할수있음 그외의위치정보를얻기위한소스 (source) 로는 무선전화모듈 인근휴대폰기지국 WiFi 핫스팟

5 윈도우폰은 Assisted GPS (A-GPS) 를사용함 GPS, 와이파이, 무선전화모듈을조합해서사용 단말기의전력소비를최소화하고, 적절한정확도를가진위치정보를제공하기위해, 반드시는아니지만대략다음과같은전략을구사함 위치정보의정확도가높지않아도될경우 정확도가떨어지지만전력소비가상대적으로적은와이파이와무선전화모듈사용 높은정확도가필요한경우 GPS 모듈사용 전반적으로각모듈의상태와운영체제가사용가능한조합모듈을고려 해서사용함 위치정보의정확도에대한설정은애플리케이션에서하고, 이를바탕으로운영체제에게위치서비스요청 질문 ipod touch 에는 GPS 가있는가? ipad Wifi 버전에는 GPS 가있는가? Wi-Fi Positioning System 이란무엇인가?

6 위치서비스를사용하는애플리케이션은위치정보의정확성과전력소비량사이의균형을유지하는것이중요함높은정확도의위치정보가필요하기전까지는낮은정확도의위치정보를요청함위치정보가더이상필요하지않을시에는위치서비스의사용을중지시킴위치정보서비스사용시두가지고려사항 MovementThreshold 속성값 어느정도의최소거리 ( 미터단위 ) 로위치가변경될것인지를인지하는것에대한임계값 위치가변경되었음을알리는이벤트를최소어느정도거리가변경되었을때발생시킬것인가를정함 Microsoft는이값을적어도 20m 이상설정할것을권장함 이렇게하면, 노이즈로발생되는쓰레기값의영향을덜받고, 전력소비도낮추는데도움이됨 유효하지않은위치정보의처리방안 여러개의모듈로높은신뢰성의위치정보를제공하지만, 언제든지유효하지않은위치정보를줄수있음

7 프로젝트생성 화면디자인 비하인드코드 ( 코드비하인드, 코드숨김 ) 에서건드려야할 UI 개체들의 Name 속성값을적절히변경함 버튼의 Click 이벤트에대한이벤트핸들러구성

8

9

10 <!--ContentPanel - 여기에추가내용을배치합니다.--> <Grid x:name="contentpanel" Grid.Row="1" Margin="12,0,12,0"> <TextBlock Height="30" HorizontalAlignment="Left" Margin="45,38,0,0" Name="textBlock1" Text=" 상태 " VerticalAlignment="Top" /> <TextBlock Height="30" HorizontalAlignment="Left" Margin="45,74,0,0" Name="Status_TextBlock" Text=" 위치서비스꺼짐 " VerticalAlignment="Top" /> <TextBlock Height="30" HorizontalAlignment="Left" Margin="45,110,0,0" Name="textBlock2" Text=" 위도 " VerticalAlignment="Top" /> <TextBlock Height="30" HorizontalAlignment="Left" Margin="45,146,0,0" Name="Latitude_TextBlock" Text="0.000" VerticalAlignment="Top" /> <TextBlock Height="30" HorizontalAlignment="Left" Margin="45,182,0,0" Name="textBlock3" Text=" 경도 " VerticalAlignment="Top" /> <TextBlock Height="30" HorizontalAlignment="Left" Margin="45,218,0,0" Name="Longitude_TextBlock" Text="0.000" VerticalAlignment="Top" /> <Button Content=" 위치서비스시작 " Height="72" HorizontalAlignment="Left" Margin="88,282,0,0" Name="StartLocationService_Button" VerticalAlignment="Top" Width="255" Click="OnStartLocationService" /> <Button Content=" 위치서비스중지 " Height="72" HorizontalAlignment="Left" Margin="88,0,0,175" Name="StopLocationService_Button" VerticalAlignment="Bottom" Width="255" Click="OnStopLocationService" /> </Grid>

11 위치서비스에관련된클래스들의사용을위해서는 System.Device.dll 파일을참조할수있어야함 참조추가 (Add Reference) 를통해, 레퍼런스파일을추가함 System.Device.Location 네임스페이스 ( 이름공간 ) 을비하인드코드에추가함 using System.Device.Location;

12

13 위치서비스는 GeoCoordinateWatcher 개체에의해접근할수있음 GeoCoordinateWatcher 변수추가 위치서비스를시작하고끝내는두개의버튼에대한핸들러추가 위치서비스시작 (OnStartLocationService) GeoCoordinateWatcher 변수초기화 기본은낮은정확도 특정한정확도 ( 예를들어높은정확도 ) 를요구하는경우 GeoPositionAccuracy 개체의열거값을패러미터로하는생성자를사용하여초기화함 MovementThreshold 속성설정 위치서비스중지 (OnStopLocationService) GeoCoordinateWatcher 클래스의이벤트에대한핸들러추가 StatusChanged, PositionChanged

14 using System.Device.Location; namespace PhoneApp1 public partial class MainPage : PhoneApplicationPage private GeoCoordinateWatcher geocoordinatewatcher; // 생성자 public MainPage() InitializeComponent(); private void OnStartLocationService(object sender, RoutedEventArgs e) this.geocoordinatewatcher = new GeoCoordinateWatcher(); this.geocoordinatewatcher.movementthreshold = 20;

15 GeoCoordinateWatcher 클래스로위치서비스를이용하기위해두개의이벤트핸들러를구성함 StatusChanged 와 PositionChanged StatusChanged 위치서비스의상태가변경되면발생함 PositionChanged 위치서비스의 MovementThreshold 속성값을기반으로위치가변경되었음을인지하면발생함

16 private void OnStartLocationService(object sender, RoutedEventArgs e) this.geocoordinatewatcher = new GeoCoordinateWatcher(); this.geocoordinatewatcher.movementthreshold = 20; this.geocoordinatewatcher.statuschanged += new EventHandler<GeoPositionStatusChangedEventArgs>(geoCoordinateWatcher_StatusChanged); this.geocoordinatewatcher.positionchanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(geoCoordinateWatcher_Positi onchanged); this.geocoordinatewatcher.start(); void geocoordinatewatcher_positionchanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e) throw new NotImplementedException(); void geocoordinatewatcher_statuschanged(object sender, GeoPositionStatusChangedEventArgs e) throw new NotImplementedException();

17 EventHandler<GeoPositionStatusChangedEventArgs>(geoC oordinatewatcher_statuschanged) 이벤트핸들러가다양한이벤트아규먼트 (EventArgs) 들을처리할수있다는것을알수있음 GeoPositionStatusChangedEventArgs 를내부데이터타입으로하는 이벤트핸들러를구성함 EventHandler<GeoPositionChangedEventArgs<GeoCoordin ate>>(geocoordinatewatcher_positionchanged) GeoCoordinate 을내부데이터로하는 GeoPositionChangedEventArgs 를내부데이터로하는이벤트핸들러를구성함 이코드들을이해하기위해서는 C# 의제네릭을제대로알아야함 C# 텍스트북을보는것이제일좋으며, 관련링크중몇개는다음과같음

18 위치서비스시작 위한버튼을눌렀을때, 위치서비스를시작하도록비동기화방식의 Start 메소드를호출 대부분의함수호출은동기화방식 느린 I/O 가동반되는경우, 비동기화방식의메소드가제공됨 파일 I/O, 멀티미디어파일재생, 네트워크 I/O, 위치서비스연결, 등등 따라서, Start 메소드는위치정보의수신가능여부와상관없이바로리턴됨 동기화방식의메소드가필요할경우, TryStart 메소드를사용함 ( 타임아웃값도설정할수있음 )

19 private void OnStartLocationService(object sender, RoutedEventArgs e) this.geocoordinatewatcher = new GeoCoordinateWatcher(); this.geocoordinatewatcher.movementthreshold = 20; this.geocoordinatewatcher.statuschanged += new EventHandler<GeoPositionStatusChangedEventArgs>(geoCoordinateWatcher_StatusChanged); this.geocoordinatewatcher.positionchanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(geoCoordinateWatcher_PositionChanged); this.geocoordinatewatcher.trystart(true, TimeSpan.FromMilliseconds(60000)); if (GeoPositionStatus.Ready == this.geocoordinatewatcher.status) // 위치데이터를사용가능함 else // 연결타임아웃. 위치데이터사용불가능 void geocoordinatewatcher_statuschanged(object sender, GeoPositionStatusChangedEventArgs e) throw new NotImplementedException(); void geocoordinatewatcher_positionchanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e) throw new NotImplementedException();

20 위치서비스를담당하는 GeoCoordinateWatcher 의변경사항을메인쓰레드에서받은후, UI 쓰레드를통해화면의내용을변경하도록하는경우 메인쓰레드에서직접 UI 의업데이트를시도하는경우, UI 쓰레드와충돌하여, invalid cross-thread access exception 이발생함. 또한 synchronized 를통해메인쓰레드에서직접업데이트를하려하면메인쓰레드의다른작업들은기다려야하는블록현상이일어남 UI 쓰레드가특정코드를실행하게하려면, System.Windows.Deployment 라는네임스페이스에포함된 Dispatcher 클래스의 BeginInvoke 메소드를사용함 이때특정코드를넣기위해람다식을사용함. 다시말하지만, System.Windows.Deployment 라는네임스페이스에포함된 Dispatcher 클래스의 BeginInvoke 메소드를사용하지않고직접업데이트를시도하는경우, invalid cross-thread access exception 이발생함. 또한 위치서비스시작 버튼과 위치서비스중지 버튼을활성화 / 비활성화하는부분도추가함

21 void geocoordinatewatcher_statuschanged(object sender, GeoPositionStatusChangedEventArgs e) Deployment.Current.Dispatcher.BeginInvoke(() => geocoordinatewatcherstatuschanged(e)); private object geocoordinatewatcherstatuschanged(geopositionstat uschangedeventargs e) throw new NotImplementedException();

22 Deployment.Current.Dispatcher.BeginInvoke(() => geocoordinatewatcherstatuschanged(e)); 이한줄의코드를이해하려면 C# 의람다식 (Lambda Expression) 과델리게이트 (Delegate, 대리자, 위임자 ) 을이해하고있어야함 역시완벽한이해를위해서는기본적으로 C# 의텍스트북을정독해야함 참고 URL 들 람다식 델리게이트 ( 대리자 )

23 실제상태체크는 geocoordinatewatcherstatuschanged 메소드에서이루어짐상태는 GeoPositionStatusChangedEventArgs 개체로반환되는패러미터인 e 의 Status 속성값을체크해서알수있음 Disabled 위치서비스가비활성화되어있거나지원불가능한상태 Ready 위치서비스가동작하고위치정보를수신하고있는상태 NoData 위치서비스가초기화되고있는상태 Initializing 위치서비스가동작하고있지만, 위치정보는수신 하지못하는상태 이상태에맞추어 Status_TextBlock 값을바꾸어주고, 또한각상황에맞게위치서비스에대한버튼들을활성화또는비활성화시킴

24 void geocoordinatewatcher_statuschanged(object sender, GeoPositionStatusChangedEventArgs e) Deployment.Current.Dispatcher.BeginInvoke(() => geocoordinatewatcherstatuschanged(e)); private void geocoordinatewatcherstatuschanged(geopositionstatuschangedeventargs e) switch (e.status) case GeoPositionStatus.Disabled: this.status_textblock.text = " 위치서비스가사용불가능하거나, 지원되지않음 "; break; case GeoPositionStatus.Initializing: this.status_textblock.text = " 위치서비스초기화 "; this.startlocationservice_button.isenabled = false; break; case GeoPositionStatus.NoData: this.status_textblock.text = " 위치데이터사용불가능 "; this.stoplocationservice_button.isenabled = true; break; case GeoPositionStatus.Ready: this.status_textblock.text = " 위치데이터를받고있음 "; this.stoplocationservice_button.isenabled = true; break;

25 앞의 StatusChanged 와비슷한방법으로 UI 쓰레드를생성하여이벤트를처리함 GeoPositionChangedEventArgs<GeoCoordinat e> 개체패러미터를통해받게되는위치정보를 Latitude_TextBlock 과 Longitude_TextBlock 에설정해줌 Latitude 위도, Longitude - 경도

26 void geocoordinatewatcher_positionchanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e) Deployment.Current.Dispatcher.BeginInvoke(() => geocoordinatewatcherpositionchanged(e)); private void geocoordinatewatcherpositionchanged(geopositionchangedeven targs<geocoordinate> e) this.latitude_textblock.text = e.position.location.latitude.tostring("0.000"); this.longitude_textblock.text = e.position.location.longitude.tostring("0.000");

27 Stop 메소드로위치서비스중지 Status_TextBlock 설정 Latitude_TextBlock 설정 Longitude_TextBlock 설정 위치서비스시작버튼활성화 this.startlocationservice_button.isenabled = true; 위치서비스중지버튼비활성화 this.stoplocationservice_button.isenabled = false;

28 private void OnStopLocationService(object sender, RoutedEventArgs e) this.geocoordinatewatcher.stop(); this.status_textblock.text = " 위치서비스꺼짐 "; this.latitude_textblock.text = "0.000"; this.longitude_textblock.text = "0.000"; this.startlocationservice_button.isenabled = true; this.stoplocationservice_button.isenabled = false;

29 using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using Microsoft.Phone.Controls; using System.Device.Location; namespace PhoneApp1 public partial class MainPage : PhoneApplicationPage private GeoCoordinateWatcher geocoordinatewatcher; // 생성자 public MainPage() InitializeComponent(); private void OnStartLocationService(object sender, RoutedEventArgs e) this.geocoordinatewatcher = new GeoCoordinateWatcher(); this.geocoordinatewatcher.movementthreshold = 20; this.geocoordinatewatcher.statuschanged += new EventHandler<GeoPositionStatusChangedEventArgs>(geoCoordinateWatcher_StatusChanged); this.geocoordinatewatcher.positionchanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(geoCoordinateWatcher_PositionChanged); this.geocoordinatewatcher.start();

30 void geocoordinatewatcher_statuschanged(object sender, GeoPositionStatusChangedEventArgs e) Deployment.Current.Dispatcher.BeginInvoke(() => geocoordinatewatcherstatuschanged(e)); private void geocoordinatewatcherstatuschanged(geopositionstatuschangedeventargs e) switch (e.status) case GeoPositionStatus.Disabled: this.status_textblock.text = " 위치서비스가사용불가능하거나, 지원되지않음 "; break; case GeoPositionStatus.Initializing: this.status_textblock.text = " 위치서비스초기화 "; this.startlocationservice_button.isenabled = false; break; case GeoPositionStatus.NoData: this.status_textblock.text = " 위치데이터사용불가능 "; this.stoplocationservice_button.isenabled = true; break; case GeoPositionStatus.Ready: this.status_textblock.text = " 위치데이터를받고있음 "; this.stoplocationservice_button.isenabled = true; break;

31 void geocoordinatewatcher_positionchanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e) Deployment.Current.Dispatcher.BeginInvoke(() => geocoordinatewatcherpositionchanged(e)); private void geocoordinatewatcherpositionchanged(geopositionchangedeventargs<geocoordinate> e) this.latitude_textblock.text = e.position.location.latitude.tostring("0.000"); this.longitude_textblock.text = e.position.location.longitude.tostring("0.000"); private void OnStopLocationService(object sender, RoutedEventArgs e) this.geocoordinatewatcher.stop(); this.status_textblock.text = " 위치서비스꺼짐 "; this.latitude_textblock.text = "0.000"; this.longitude_textblock.text = "0.000"; this.startlocationservice_button.isenabled = true; this.stoplocationservice_button.isenabled = false;

32

33 윈도우폰 SDK 7.0 GPS 센서를테스트할방법이기본적으로지원되지않으므로, 3 rd party Window Phone GPS Emulator 사용함 예 : chive/2011/01/28/windows-phone-gps-emulator.aspx 윈도우폰 SDK 7.1 기본적으로가속도센서, 위치센서를위한 ( 그다지좋지않은 ) 지도서비스, 스크린샷기능이추가됨 동서대학교의 ( 위도, 경도 ) = ( , ) maps.naver.com 이나 maps.google.com 에서쉽게알아낼수있음

34

35 LocationManager 개체를 getsystemservice() 를통해서얻음 private LocationManager mgr mgr = (LocationManager) getsystemservice(location_service) 안드로이드에뮬레이터는기본적으로가짜 (Fake) GPS 제공자를사용함 Dalvik Debug Monitor Service (DDMS) 를이용하는이클립스의에뮬레이터컨트롤에서위도와경도입력 창 > 보기뷰 > 기타 > 안드로이드 > 에뮬레이터컨트롤 Window > Show View > Other > Android > Emulator Control 안드로이드에뮬레이터컨솔 (telnet ) 에뮬레이터컨트롤에서 Google Earth 에서출력된 KML 파일입력 DDMS 를이용하는외부프로그램사용

36

37

38 앞의슬라이드에서소개된 3 rd party Window Phone GPS Emulator 를사용하여 GPS 를에뮬레이트해보자. 앞에서처럼단순히위도와경도를출력하는게아니라, Window Phone 에뮬레이터에지도정보를같이표시할수있다. 이를위해서는어떤방법들이있는가? 보다구체적으로, 빙맵, Microsoft Research Maps (MSR Maps) Service 또는구글맵이나심지어는네이버맵, 다음맵, 야후맵을이용하는방법을조사및연구해보자. 서버에가입한사용자들의닉네임과현재위치를기록하고, 자신이있는위치에서일정한반경에있는사람들의닉네임을출력하는프로그램을설계해보자.

39 앞의코드들을완전히이해하려면, C# 의다음특징들을이해해야한다. 이를위해이들에대해조사해보고예제를실행해보자. 제네릭 (Generic) 델리게이트 ( 대리자, Delegate) 람다식 (Lambda Expression) 무명메소드 (Anonymous Method) 앞의 StatusChanged 이벤트핸들러코드는새로운 UI 쓰레드를생성한후, 델리게이트로람다식을사용하여다른메소드를호출한경우이다. 이를다음과같은경우로바꿔어보라. 새로운 UI 쓰레드를생성하지않고해당메소드에서바로사용한경우 새로운 UI 쓰레드를생성하지않고해당메소드에서다른메소드를호출한경우 새로운 UI 쓰레드를생성하지않고해당메소드에서델리게이트로무명메소드를호출한경우 새로운 UI 쓰레드를생성하지않고해당메소드에서델리게이트로람다식을호출한경우 ( 다른메소드를사용한경우와그렇지않은경우 ) 새로운 UI 쓰레드를생성하고, 델리게이트로다른메소드를호출한경우 새로운 UI 쓰레드를생성해서, 델리게이트로무명메소드를호출한경우 새로운 UI 쓰레드를생성해서, 델리게이트로람다식을사용한경우 ( 다른메소드호출안함 )

40 가속도센서 가속도센서를이용하는애플리케이션만들기 프로젝트생성및화면디자인 가속도센서를이용하기위한환경설정 가속도센서를이용하기위한변수및이벤트핸들러추가 가속도센서의시작 / 중지버튼에대한이벤트핸들러구현 ReadingChanged 이벤트핸들러구현

41 가속도센서 물체의가속도, 진동, 충격등의동적힘을측정하는센서 단말기를기울거나흔들때, 어느정도기울어졌는지와흔드는속도를인식할수있음

42 윈도우폰애플리케이션프로젝트생성 이제어떻게가속도센서값을받아오는지를알아보도록함 이를위해우선비하인드코드에서읽어들이는 UI 개체에대해서는이름을적절히변경함

43

44 <Grid x:name="contentpanel" Grid.Row="1" Margin="12,0,12,0"> <TextBlock Height="30" HorizontalAlignment="Left" Margin="21,19,0,0" Name="textBlock1" Text=" 상태 : " VerticalAlignment="Top" /> <TextBlock Height="30" HorizontalAlignment="Left" Margin="21,55,0,0" Name="textBlock3" Text="X : " VerticalAlignment="Top" /> <TextBlock Height="30" HorizontalAlignment="Left" Margin="22,91,0,0" Name="textBlock5" Text="Y : " VerticalAlignment="Top" /> <TextBlock Height="30" HorizontalAlignment="Left" Margin="22,127,0,0" Name="textBlock7" Text="Z : " VerticalAlignment="Top" /> <TextBlock Height="30" HorizontalAlignment="Left" Margin="84,19,0,0" Name="Status_TextBlock" Text=" 가속도센서정지 " VerticalAlignment="Top" /> <TextBlock Height="30" HorizontalAlignment="Left" Margin="60,55,0,0" Name="xAxis_TextBlock" Text="0.00" VerticalAlignment="Top" /> <TextBlock Height="30" HorizontalAlignment="Left" Margin="60,91,0,0" Name="yAxis_TextBlock" Text="0.00" VerticalAlignment="Top" /> <TextBlock Height="30" HorizontalAlignment="Left" Margin="60,127,0,0" Name="zAxis_TextBlock" Text="0.00" VerticalAlignment="Top" /> <Button Content=" 가속도센서시작 " Height="72" HorizontalAlignment="Left" Margin="22,198,0,0" Name="Start_Button" VerticalAlignment="Top" Width="416" Click="OnStartAccelerometer" /> <Button Content=" 가속도센서정지 " Height="72" HorizontalAlignment="Left" Margin="22,276,0,0" Name="Stop_Button" VerticalAlignment="Top" Width="416" Click="OnStopAccelerometer" /> </Grid>

45 가속도센서에관련된클래스는 Microsoft.Devices.Sensors.dll 파일을참조하도록해야함 참조추가 (Add Reference) 를통해해당파일을추가함 Microsoft.Devices.Sensors 네임스페이스 (Name Space, 이름공간 ) 추가 using Microsoft.Devices.Sensors;

46

47 가속도센서는 Accelerometer 개체를통해접근하므로, 이를위한변수를선언함 가속도센서를위한이벤트핸들러 윈도우폰 SDK 7.0 ReadingChanged 이벤트 윈도우폰 SDK 7.1 CurrentValueChanged 이벤트 ReadingChanged 이벤트는더이상사용안함 (deprecated 중요도가떨어져더이상사용되지않고앞으로는사라지게될 이라는의미임 )

48 using Microsoft.Devices.Sensors; public partial class MainPage : PhoneApplicationPage private Accelerometer accelerometer;

49 // 생성자 public MainPage() InitializeComponent(); this.accelerometer = new Accelerometer(); this.accelerometer.currentvaluechanged += new EventHandler<SensorReadingEventArgs<AccelerometerReading> >(accelerometer_currentvaluechanged); void accelerometer_currentvaluechanged(object sender, SensorReadingEventArgs<AccelerometerReading> e) throw new NotImplementedException();

50 // 생성자 public MainPage() InitializeComponent(); this.accelerometer = new Accelerometer(); this.accelerometer.readingchanged += new EventHandler<AccelerometerReadingEventArgs>(accelero meter_readingchanged); void accelerometer_readingchanged(object sender, AccelerometerReadingEventArgs e) throw new NotImplementedException();

51 가속도센서의시작및중지버튼에대한이벤트핸들러구현 가속도센서시작 OnStartAccelerometer 가속도센서중지 - OnStopAccelerometer

52 private void OnStartAccelerometer(object sender, RoutedEventArgs e) this.accelerometer.start(); this.status_textblock.text = " 가속도센서시작 "; this.start_button.isenabled = false; this.stop_button.isenabled = true;

53 private void OnStopAccelerometer(object sender, RoutedEventArgs e) this.accelerometer.stop(); this.status_textblock.text = " 가속도센서정지 "; this.xaxis_textblock.text = "0.00"; this.yaxis_textblock.text = "0.00"; this.zaxis_textblock.text = "0.00"; this.start_button.isenabled = true; this.stop_button.isenabled = false;

54 CurrentValueChanged 이벤트핸들러는두개의패러미터를가짐 object sender SensorReadingEventArgs<AccelerometerReading> e 이두개의패러미터들중두번째인 SensorReadingEventArgs<AccelerometerReading > 개체인 e 의 e.sensorreading.acceleration 은 Microsoft.Xna.Framework.Vector3 형식을사용함 이를위해 Microsoft.Xna.Framework 참조추가 또한 bstopped 라는상태를나타내기위한멤버변수추가

55 this.accelerometer.state 는 SensorState 개체임 SensorState 값 Disabled 센서를사용하지않도록설정됨, 비활성화된상태 Initializing 센서가사용가능한상태이며, 동작하여초기화중 NoData 센서가데이터를가져올수없음, 센서가동작하고있으나, 센서정보를얻을수없음 NoPermissions 호출한프로그램에게센서의데이터에액세스할수있는권한이없음 NotSupported 센서하드웨어를사용할수없음 Ready 센서가사용가능한상태이며, 센서정보를읽어데이터를처리중

56

57 void accelerometer_currentvaluechanged(object sender, SensorReadingEventArgs<AccelerometerReading> e) Deployment.Current.Dispatcher.BeginInvoke(()=>accelerometerCurrentValueChan ged(e)); private void accelerometercurrentvaluechanged(sensorreadingeventargs<accelerometerreadi ng> e) if (bstopped) return; this.status_textblock.text = this.accelerometer.state.tostring(); this.xaxis_textblock.text = e.sensorreading.acceleration.x.tostring("0.00 ); this.yaxis_textblock.text = e.sensorreading.acceleration.y.tostring("0.00 ); this.zaxis_textblock.text = e.sensorreading.acceleration.z.tostring("0.00 );

58 using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using Microsoft.Phone.Controls; using Microsoft.Devices.Sensors; namespace PhoneApp2 public partial class MainPage : PhoneApplicationPage private Accelerometer accelerometer; private bool bstopped; // 생성자 public MainPage() InitializeComponent(); this.accelerometer = new Accelerometer(); this.accelerometer.currentvaluechanged += new EventHandler<SensorReadingEventArgs<AccelerometerReading>>(accelerometer_CurrentValueChanged); this.bstopped = true;

59 private void OnStartAccelerometer(object sender, RoutedEventArgs e) this.accelerometer.start(); this.status_textblock.text = " 가속도센서시작 "; this.start_button.isenabled = false; this.stop_button.isenabled = true; this.bstopped = false; private void OnStopAccelerometer(object sender, RoutedEventArgs e) this.bstopped = true; this.accelerometer.stop(); this.status_textblock.text = " 가속도센서정지 "; this.xaxis_textblock.text = "0.00"; this.yaxis_textblock.text = "0.00"; this.zaxis_textblock.text = "0.00"; this.start_button.isenabled = true; this.stop_button.isenabled = false;

60 void accelerometer_currentvaluechanged(object sender, SensorReadingEventArgs<AccelerometerReading> e) Deployment.Current.Dispatcher.BeginInvoke(()=>accelerometerCurrentValueChanged(e)); private void accelerometercurrentvaluechanged(sensorreadingeventargs<accelerometerreading> e) if (bstopped) return; this.status_textblock.text = this.accelerometer.state.tostring(); this.xaxis_textblock.text = e.sensorreading.acceleration.x.tostring("0.00 ); this.yaxis_textblock.text = e.sensorreading.acceleration.y.tostring("0.00 ); this.zaxis_textblock.text = e.sensorreading.acceleration.z.tostring("0.00 );

61 ReadingChanged 이벤트핸들어의패러미터인 AccelerometerReadingEventArgs 개체의 X,Y,Z 속성값을읽어들여출력함

62 void accelerometer_readingchanged(object sender, AccelerometerReadingEventArgs e) Deployment.Current.Dispatcher.BeginInvoke(() => accelerometerreadingchanged(e)); private void accelerometerreadingchanged(accelerometerreadingeventargs e) if (bstopped) return; this.status_textblock.text = this.accelerometer.state.tostring(); this.xaxis_textblock.text = e.x.tostring("0.00"); this.yaxis_textblock.text = e.y.tostring("0.00"); this.zaxis_textblock.text = e.z.tostring("0.00");

63 using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using Microsoft.Phone.Controls; using Microsoft.Devices.Sensors; namespace PhoneApp3 public partial class MainPage : PhoneApplicationPage private Accelerometer accelerometer; private bool bstopped; // 생성자 public MainPage() InitializeComponent(); this.accelerometer = new Accelerometer(); this.accelerometer.readingchanged += new EventHandler<AccelerometerReadingEventArgs>(accelerometer_ReadingChanged); this.bstopped = true;

64 private void OnStartAccelerometer(object sender, RoutedEventArgs e) this.accelerometer.start(); this.status_textblock.text = " 가속도센서시작 "; this.start_button.isenabled = false; this.stop_button.isenabled = true; this.bstopped = false; private void OnStopAccelerometer(object sender, RoutedEventArgs e) this.bstopped = true; this.accelerometer.stop(); this.status_textblock.text = " 가속도센서정지 "; this.xaxis_textblock.text = "0.00"; this.yaxis_textblock.text = "0.00"; this.zaxis_textblock.text = "0.00"; this.start_button.isenabled = true; this.stop_button.isenabled = false;

65 void accelerometer_readingchanged(object sender, AccelerometerReadingEventArgs e) Deployment.Current.Dispatcher.BeginInvoke(() => accelerometerreadingchanged(e)); private void accelerometerreadingchanged(accelerometerreadingeventargs e) if (bstopped) return; this.status_textblock.text = this.accelerometer.state.tostring(); this.xaxis_textblock.text = e.x.tostring("0.00"); this.yaxis_textblock.text = e.y.tostring("0.00"); this.zaxis_textblock.text = e.z.tostring("0.00");

66

67 SensorManager 개체를사용하며, getsystemservice() 메서드를사용해서얻음 private SensorManager mgr; mgr = (SensorManager) getsystemservice(sensor_service); 에뮬레이터의경우, 에서대체센서 API를제공하는데, 이는코드구글프로젝트의일부임 OpenIntents Sensor Simulator or 의 Sensor Simulator 를다운받아에뮬레이터와연결하면, 시뮬레이터에서는가상폰의이미지를보여주고, 마우스로움직이게해주며, 그움직임을에뮬레이터에있는안드로이드프로그램에넘김

68

69 가속도센서를이용하여, 공이굴러가는효과를내는프로그램을만들어보자. 프로그램을실행하면화면에공이하나있고, 윈도우폰을기울이면그방향으로공이굴러가도록한다. 이와비슷한아이폰용게임으로는 Labyrinth 가있음 휴대폰을바닥이평평한지를검사할때사용하는수준기 ( 수평기, Spirit level, Bubble level) 로사용할수있는프로그램을작성해보자. 이러한아이폰용프로그램으로는 ihandy 가있음

70 웹브라우저 WebBrowser 컨트롤 WebBrowser 컨트롤의특징 WebBrowser 컨트롤을이용한애플리케이션만들기 프로젝트생성및화면디자인 버튼컨트롤에대한이벤트핸들러추가 WebBrowser 컨트롤에대한이벤트핸들러추가 Back 버튼에대한핸들링추가

71 웹브라우저를활용하는두가지방법 인터넷익스플로러를실행 런처의 WebBrowserTask 네비게이션에서이미다루었음 WebBrowser 컨트롤을사용하는방법

72 인터넷익스플로러과비교할때, WebBrowser 컨트롤의차이점 애플리케이션에서탐색한웹페이지의컨텐츠에대한캐시부분을고려해야함 탐색한웹페이지의히스토리및컨텐츠에대한부분을컨트롤에서관리해주지않음 탐색되는 URL 주소와보안자물쇠아이콘을컨트롤내에서볼수있게제공되지않음 HTML 페이지의탐색기능이제공되지않음 애플리케이션에서인터넷익스플로러와쿠키를공유할수없음 스크립트가실행되지않도록기본적으로설정되어있으며, 스크립트가실행되기위해서는 IsScriptEnabled 속성값을설정해야함 이속성이설정되면다음페이지가로드되는시점부터스크립트가실행됨 HtmlBrush 가포함되어있지않음 ActiveX 컨트롤이허용되지않음

73 프로젝트생성및화면디자인 URL 주소를입력받는 TextBox 컨트롤과입력받은주소로탐색시키는 Button 컨트롤의 Name 속성값을변경시킴 여기서는귀찮아서안했음

74

75 <TextBox Height="72" HorizontalAlignment="Left" Margin="7,15,0,0" Name="textBox1" Text="about:blank" VerticalAlignment="Top" Width="360" /> <Button Content="Go" Height="72" HorizontalAlignment="Left" Margin="362,15,0,0" Name="button1" VerticalAlignment="Top" Width="88" Click="button1_Click" /> <phone:webbrowser HorizontalAlignment="Left" Margin="12,93,0,0" Name="webBrowser1" VerticalAlignment="Top" Height="508" Width="438" />

76 버튼컨트롤에대해이벤트핸들러추가 WebBrowser 컨트롤을활용해서 TextBox 컨트롤을통해입력된 URL 주소로탐색하는코드 탐색을위해서는 Navigate 메소드를사용함 URL 주소는 Uri 개체로만들어서패러미터로넘김

77 private void button1_click(object sender, RoutedEventArgs e) this.webbrowser1.navigate(new Uri(this.textBox1.Text, UriKind.Absolute));

78 TextBox 컨트롤을통해입력된 URL 주소는확인할수있으나, 해당웹페이지의링크를통해서다른웹페이지로이동하게되면, 이에대한 URL 주소는현재상태에서는확인할수없음 WebBrowser 컨트롤에서는탐색되는 URL 주소에대해컨트롤내부에서보여줄방법이제공되지않음 리디렉션되는 URL 주소나링크된 URL 주소를보기위해서는 WebBrowser 컨트롤의이벤트를활용한별도의코드를작성해야함 Navigating 이벤트 - URL 주소의리디렉션과같이탐색중일때발생함 패러미터는 NavigatingEventArgs Navigated 이벤트 탐색이완료된후에발생함 패러미터는 System.Windows.Navigation.NavigationEventArgs

79 // 생성자 public MainPage() InitializeComponent(); this.webbrowser1.navigating += new EventHandler<NavigatingEventArgs>(webBrowser1_Navigating); this.webbrowser1.navigated += new EventHandler<System.Windows.Navigation.NavigationEventArgs>(webBrowser1_Navigated); void webbrowser1_navigated(object sender, System.Windows.Navigation.NavigationEventArgs e) throw new NotImplementedException(); void webbrowser1_navigating(object sender, NavigatingEventArgs e) throw new NotImplementedException();

80 void webbrowser1_navigated(object sender, System.Windows.Navigation.NavigationEventArgs e) this.textbox1.text = e.uri.tostring(); void webbrowser1_navigating(object sender, NavigatingEventArgs e) this.textbox1.text = e.uri.tostring();

81

82 이전페이지로돌아가는기능은아직구현되지않았음 Back 버튼에대한핸들링으로구현 URL 주소를기억하기위한 string 배열변수 URL 주소의개수를 50 개미만으로설정 현재탐색된 URL 주소를가리키기위한인덱수변수 - nforwardindex

83 private string[] strhistory; private int nforwardindex; // 생성자 public MainPage() InitializeComponent(); this.webbrowser1.navigating += new EventHandler<NavigatingEventArgs>(webBrowser1_Naviga ting); this.webbrowser1.navigated += new EventHandler<System.Windows.Navigation.NavigationEven targs>(webbrowser1_navigated); this.strhistory = new string[50]; this.nforwardindex = -1;

84 void webbrowser1_navigated(object sender, System.Windows.Navigation.NavigationEventA rgs e) this.textbox1.text = e.uri.tostring(); this.strhistory[++this.nforwardindex] = e.uri.tostring();

85 OnBackKeyPress 메소드를오버라이드함 nforwardindex 를체크 이전주소가있으면이전페이지를로드해서가고 (e.cancel 을 true 로 ) 아니면애플리케이션을종료시킴 (e.cancel 을 false 로해서운영체제에서핸들하도록함 )

86 protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e) if (0 < this.nforwardindex) this.webbrowser1.navigate(new Uri(this.strHistory[-- this.nforwardindex], UriKind.Absolute)); e.cancel = true; else e.cancel = false; base.onbackkeypress(e);

87 여기까지만하면, Back 버튼을눌러도같은 URL 주소를계속탐색하는문제가발생함 그이유는 Back 버튼에대한이벤트핸들러에서 Navigate 메소드를호출하면 Navigated 이벤트핸들러가다시호출되면서계속같은 URL 주소가저장되기때문임 즉, Navigated 이벤트핸들러에서는 Back 버튼으로인해발생하는탐색의경우, 해당 URL 주소를저장하지않도록처리해야함 이를위해서는 Back 버튼에의한 Navigate 메소드호출인지를구별하기위한변수하나를추가함 private bool bnavigatedbyback;

88 using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using Microsoft.Phone.Controls; namespace PhoneApp4 public partial class MainPage : PhoneApplicationPage private string[] strhistory; private int nforwardindex; private bool bnavigatedbyback; // 생성자 public MainPage() InitializeComponent(); this.webbrowser1.navigating += new EventHandler<NavigatingEventArgs>(webBrowser1_Navigating); this.webbrowser1.navigated += new EventHandler<System.Windows.Navigation.NavigationEventArgs>(webBrowser1_Navigated); this.strhistory = new string[50]; this.nforwardindex = -1; this.bnavigatedbyback = false;

89 void webbrowser1_navigated(object sender, System.Windows.Navigation.NavigationEventArgs e) this.textbox1.text = e.uri.tostring(); if (this.bnavigatedbyback) this.bnavigatedbyback = false; else this.strhistory[++this.nforwardindex] = e.uri.tostring(); void webbrowser1_navigating(object sender, NavigatingEventArgs e) this.textbox1.text = e.uri.tostring();

90 private void button1_click(object sender, RoutedEventArgs e) this.webbrowser1.navigate(new Uri(this.textBox1.Text, UriKind.Absolute)); protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e) if (0 < this.nforwardindex) this.bnavigatedbyback = true; this.webbrowser1.navigate(new Uri(this.strHistory[--this.nForwardIndex], UriKind.Absolute)); e.cancel = true; else e.cancel = false; base.onbackkeypress(e);

91

92 앞의예제코드의문제점중하나는 50 개의주소만을히스토리로저장할수있다는것이다. 웹서핑중 50 개이상의페이지를탐색한경우, nforwardindex 값은 50보다크거나같게되고이는배열의범위값을넘어서는예외 (exception) 를발생하게된다. 이를해결한코드를작성하라. 앞의예제에서는과거의 URL로 Back 버튼을눌러서돌아가다가, 처음페이지에서 Back 버튼을누르면, 어플리케이션이자동으로종료한다. 이때, 자동으로종료하지않고, 어플리케이션이끝낼것인지를물어보도록하는코드를작성하라. 앞의예제에는주소들만가지고있다가새롭게로드하는방법이다. WebBrowser 개체의 SaveToString 메소드와 NavigateToString 메소드를사용하면해당웹컨텐츠를스트링으로바꾸거나웹페이지에스트링을집어넣을 (inject) 수있다. 이를이용해서웹컨텐츠도저장할수있도록예제를확장해보자.

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

PowerPoint Template

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

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

13 주차 - MDI, Exception, WebBrowser, RichTextBox, AlarmProgram 대림대학 년도 1 학기홍명덕

13 주차 - MDI, Exception, WebBrowser, RichTextBox, AlarmProgram 대림대학 년도 1 학기홍명덕 13 주차 - MDI, Exception, WebBrowser, RichTextBox, AlarmProgram 대림대학 - 2011 년도 1 학기홍명덕 (myungduk.hong@gmail.com) MDI(Multiple Document Interface) 응용프로그램은하나의응용프로그램에서동시에여러개의문서로작업할수있도록인터페이스를제공하는응용프로그램문서 (document)

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

PowerPoint Presentation

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

More information

스마트 서비스 퀵가이드 본 사용설명서는 제품사용에 필요한 기능을 설명한 가이드입니다. 목 차 1. 안전을 위한 주의사항...4 2. 스마트 서비스란?...5 리얼타임 3D... 5 스마트 퀵서비스... 5 스마트 파인드라이브 Wi-Fi 어플리케이션... 5 3. 스마트 서비스 사용 준비하기 - 휴대폰과 단말기 무선 연결...6 Wi-Fi 동글 연결하기...

More information

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - CSharp-10-예외처리 10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.

More information

제11장 프로세스와 쓰레드

제11장 프로세스와 쓰레드 제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드

More information

H3250_Wi-Fi_E.book

H3250_Wi-Fi_E.book 무선 LAN 기능으로 할 수 있는 것 2 무선 LAN 기능으로 할 수 있는 것 z q l D w 3 Wi-Fi 기능 플로우차트 z q l D 4 Wi-Fi 기능 플로우차트 w 5 본 사용 설명서의 기호 설명 6 각 장별 목차 1 2 3 4 5 6 7 8 9 10 11 12 13 14 7 목차 1 2 3 4 8 목차 5 6 7 8 9 9 목차 10 11 12

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

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

var answer = confirm( 확인이나취소를누르세요.); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write( 확인을눌렀습니다.); else { document.write( 취소를눌렀습니다.); 자바스크립트 (JavaScript) - HTML 은사용자에게인터페이스 (interface) 를제공하는언어 - 자바스크립트는서버로데이터를전송하지않고서할수있는데이터처리를수행한다. - 자바스크립트는 HTML 나 JSP 에서작성할수있고 ( 내부스크립트 ), 별도의파일로도작성이가능하다 ( 외 부스크립트 ). - 내부스크립트 - 외부스크립트

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

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

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 CHAPTER 13. HTML5 위치정보와드래그앤드롭 SVG SVG(Scalable Vector Graphics) 는 XML- 기반의벡터이미지포맷 웹에서벡터 - 기반의그래픽을정의하는데사용 1999 년부터 W3C 에의하여표준 SVG 의장점 SVG 그래픽은확대되거나크기가변경되어도품질이손상되지않는다. SVG 파일에서모든요소와속성은애니메이션이가능하다. SVG 이미지는어떤텍스트에디터로도생성하고편집할수있다.

More information

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

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

More information

슬라이드 1

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

More information

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

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

More information

슬라이드 1

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

More information

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어서가장중요한부분이라고도할수있기때문입니다. 1. 새로운메크로생성 새메크로만들기버튺을클릭하여파일을생성합니다. 2. 메크로저장 -

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

제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

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 PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

More information

Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx

Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx 과목명 : 웹프로그래밍응용교재 : 모던웹을위한 JavaScript Jquery 입문, 한빛미디어 Part3. Ajax Ch20. XMLHttpRequest 2014년 1학기 Professor Seung-Hoon Choi 20 XMLHttpRequest XMLHttpRequest 객체 자바스크립트로 Ajax를이용할때사용하는객체 간단하게 xhr 이라고도부름 서버

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

Microsoft PowerPoint - C++ 5 .pptx

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

More information

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx 2018 학년도 1 학기 JAVA 프로그래밍 II 514760-1 2018 년봄학기 5/10/2018 박경신 Lab#1 (ImageTest) Lab#1 은영상파일 (Image) 을읽어서정보를출력 Java Tutorials Lesson: Working with Images https://docs.oracle.com/javase/tutorial/2d/images/index.html

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

Microsoft PowerPoint - 07-Data Manipulation.pptx

Microsoft PowerPoint - 07-Data Manipulation.pptx Digital 3D Anthropometry 7. Data Analysis Sungmin Kim SEOUL NATIONAL UNIVERSITY Body 기본정보표시 Introduction 스케일조절하기 단면형상추출 단면정보관리 3D 단면형상표시 2 기본정보표시및스케일조절 UI 및핸들러구성 void fastcall TMainForm::BeginNewProject1Click(TObject

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

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 제이쿼리 () 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 CSS와마찬가지로, 문서에존재하는여러엘리먼트를접근할수있다. 엘리먼트접근방법 $( 엘리먼트 ) : 일반적인접근방법

More information

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가 혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가웹페이지내에뒤섞여있어서웹페이지의화면설계가점점어려워진다. - 서블릿이먼저등장하였으나, 자바내에

More information

DLL(Dynamic Linked Library)

DLL(Dynamic Linked Library) 제 11 장동적연결라이브러리 11.1 DLL 의링크 11.2 DLL 의종류 실습 11-1 Implicit 링킹을통한정규 DLL 달력만들기 실습 11-2 Explicit 링킹을통한정규 DLL 달력만들기 실습 11-3 확장 DLL 을통한주민등록번호조회 프로그램만들기 DLL(Dynamic Linked Library) DLL 이란? 동적연결라이브러리 프로그램내부에라이브러리가있는것이아니라따로독립적으로실행가능한파일

More information

Javascript

Javascript 1. 이벤트와이벤트핸들러의이해 이벤트 (Event) 는웹브라우저에서발생하는다양한사건을말합니다. 예를들면, 버튼을마우스로을했다거나브라우저를닫았다거나 Enter 키를눌렀다거나등등아주다양한사건들이있습니다. 그렇다면이벤트핸들러 (Event Handler) 는무엇일까요? 이다양한이벤트들을핸들링 ( 처리 ) 해주는것입니다. 예를들면, 어떤버튼을했을때메시지창이뜨게하는등을말합니다.

More information

. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요

. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요 . 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요소로써안드로이드시스템에서는 Activities, Services, Content Providers,

More information

PowerPoint Presentation

PowerPoint Presentation public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

More information

쉽게 풀어쓴 C 프로그래밍

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

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

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 오류처리 손시운 ssw5176@kangwon.ac.kr 오류메시지를분석한다. 오류메시지에서많은내용을알수있다. 2 디버깅 디버거를사용하면프로그램에서쉽게오류를감지하고진단할수있다. 디버거는중단점을설정하여서프로그램의실행을제어할수있으며문장 단위로실행하거나변수의값을살펴볼수있다. 3 이클립스에서디버깅 4 이클립스에서디버깅 5 이클립스의디버깅명령어 6 예외처리

More information

Chapter #01 Subject

Chapter #01  Subject Device Driver March 24, 2004 Kim, ki-hyeon 목차 1. 인터럽트처리복습 1. 인터럽트복습 입력검출방법 인터럽트방식, 폴링 (polling) 방식 인터럽트서비스등록함수 ( 커널에등록 ) int request_irq(unsigned int irq, void(*handler)(int,void*,struct pt_regs*), unsigned

More information

SBR-100S User Manual

SBR-100S User Manual ( 1 / 13 ) SBR-100S 모델에 대한 사용자 펌웨어 업그레이드 방법을 안내해 드립니다. SBR-100S 는 신규 펌웨어가 있을시 FOTA(자동업데이트) 기능을 통하여 자동 업그레이드가 되며, 필요시 사용자가 신규 펌웨어를 다운받아 수동으로 업그레이드 할 수 있습니다. 1. 준비하기 1.1 연결 장치 준비 펌웨어 업그레이드를 위해서는 SBR-100S

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 객체지향프로그래밍응용 Chap 4. 대화상자와컨트롤 (#1) 2013.09.27. 오병우 컴퓨터공학과금오공과대학교 Control 들을가진윈도우 Dialog 개요 사용자의입력을받기위한 Object 의집합 종류 프로그램수행도중사용자의입력이필요할때다이얼로그박스출력 다이얼로그박스는사용자로부터입력받은데이터를메인루틴에넘기고소멸 Modal Dialog Parent window

More information

임베디드 시스템 소프트웨어

임베디드 시스템 소프트웨어 9 주차강대기 내비게이션 애플리케이션바 내비게이션 내비게이션을이용하는애플리케이션맊들기 NavigationService 클래스홗용하기 URI 쿼리정보홗용하기 Back 버튺핸들링 애플리케이션실행모델 라이프사이클 Tombstone 현상 프로젝트생성및화면디자인 이벤트핸들러구성 화면에대한 Tombstone 현상 추가적인화면디자인및이벤트핸들러구성 코드에대한 Tombstone

More information

adfasdfasfdasfasfadf

adfasdfasfdasfasfadf C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

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

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

More information

( )부록

( )부록 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

MVVM 패턴의 이해

MVVM 패턴의 이해 Seo Hero 요약 joshua227.tistory. 2014 년 5 월 13 일 이문서는 WPF 어플리케이션개발에필요한 MVVM 패턴에대한내용을담고있다. 1. Model-View-ViewModel 1.1 기본개념 MVVM 모델은 MVC(Model-View-Contorl) 패턴에서출발했다. MVC 패턴은전체 project 를 model, view 로나누어

More information

(Microsoft PowerPoint - 07\300\345.ppt [\310\243\310\257 \270\360\265\345])

(Microsoft PowerPoint - 07\300\345.ppt [\310\243\310\257 \270\360\265\345]) 클래스의응용 클래스를자유자재로사용하자. 이장에서다룰내용 1 객체의치환 2 함수와클래스의상관관계 01_ 객체의치환 객체도변수와마찬가지로치환이가능하다. 기본예제 [7-1] 객체도일반변수와마찬가지로대입이가능하다. 기본예제 [7-2] 객체의치환시에는조심해야할점이있다. 복사생성자의필요성에대하여알아보자. [ 기본예제 7-1] 클래스의치환 01 #include

More information

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가

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

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

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

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

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Crash Unity SDK... Log & Crash Search. - Unity3D v4.0 ios

More information

gnu-lee-oop-kor-lec06-3-chap7

gnu-lee-oop-kor-lec06-3-chap7 어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base

More information

슬라이드 1

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

More information

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

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

More information

JAVA PROGRAMMING 실습 05. 객체의 활용

JAVA PROGRAMMING 실습 05. 객체의 활용 public class Person{ public String name; public int age; } public Person(){ } public Person(String s, int a){ name = s; age = a; } public String getname(){ return name; } @ 객체의선언 public static void main(string

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

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

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

17장 클래스와 메소드

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

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

JAVA PROGRAMMING 실습 09. 예외처리

JAVA PROGRAMMING 실습 09. 예외처리 2015 학년도 2 학기 예외? 프로그램실행중에발생하는예기치않은사건 예외가발생하는경우 정수를 0으로나누는경우 배열의크기보다큰인덱스로배열의원소를접근하는경우 파일의마지막부분에서데이터를읽으려고하는경우 예외처리 프로그램에문제를발생시키지않고프로그램을실행할수있게적절한조치를취하는것 자바는예외처리기를이용하여예외처리를할수있는기법제공 자바는예외를객체로취급!! 나뉨수를입력하시오

More information

ThisJava ..

ThisJava .. 자바언어에정확한타입을추가한 ThisJava 소개 나현익, 류석영 프로그래밍언어연구실 KAIST 2014 년 1 월 14 일 나현익, 류석영 자바언어에정확한타입을추가한 ThisJava 소개 1/29 APLAS 2013 나현익, 류석영 자바 언어에 정확한 타입을 추가한 ThisJava 소개 2/29 실제로부딪힌문제 자바스크립트프로그램분석을위한요약도메인 나현익,

More information

Design Issues

Design Issues 11 COMPUTER PROGRAMMING INHERIATANCE CONTENTS OVERVIEW OF INHERITANCE INHERITANCE OF MEMBER VARIABLE RESERVED WORD SUPER METHOD INHERITANCE and OVERRIDING INHERITANCE and CONSTRUCTOR 2 Overview of Inheritance

More information

제 1장 C#의 개요

제 1장 C#의 개요 C# 프로그래밍언어 MS사의앤더스헬스버그 (Anders Hejlsberg) 가고안.NET에최적화된언어컴포넌트지향프로그래밍언어자바의단점을보완 실행방법 : 자바 : 인터프리테이션, C#: 컴파일방법자바언어를대체할수있는언어 C# 의특징 객체지향언어 : 자료추상화델리게이트와이벤트멀티스레드, 예외처리연산자중복, 제네릭 C 계열의언어 C++ 와자바로부터영향을받았음. C:

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F32C2F7BDC32E >

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F32C2F7BDC32E > 6. ASP.NET ASP.NET 소개 ASP.NET 페이지및응용프로그램구조 Server Controls 데이터베이스와연동 8 장. 데이터베이스응용개발 (Page 20) 6.1 ASP.NET 소개 ASP.NET 동적웹응용프로그램을개발하기위한 MS 의웹기술 현재 ASP.NET 4.5까지출시.Net Framework 4.5 에포함 Visual Studio 2012

More information

Microsoft PowerPoint - web-part02-ch15-문서객체조작.pptx

Microsoft PowerPoint - web-part02-ch15-문서객체조작.pptx 과목명 : 웹프로그래밍응용교재 : 모던웹을위한 JavaScript Jquery 입문, 한빛미디어 Part2. jquery Ch15. 문서객체조작 2014년 1학기 Professor Seung-Hoon Choi 15 문서객체조작 문서객체조작 자바스크립트만으로문서객체모델을다루려면복잡함 jquery를이용하면쉽게다룰수있다. 이책에서가장중요한부분 15.1 문서객체의클래스속성추가

More information

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여

More information

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

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

More information

슬라이드 1

슬라이드 1 10. 위치기반서비스 시작하면서 2 목차 위치정보출력 요구기준에의한위치정보조회 지오코딩 MapView와 MapActivity Maps API 키발급 위치정보출력 위치정보출력 4 위치정보제공 GPS 무선 LAN 이동통신망 위치기반서비스 android.location 패키지 휴대단말의위치를얻기위한클래스를포함 위치정보는지리적좌표 ( 위도와경도 ) 사용 위치정보와주소정보를변환하는

More information

API 매뉴얼

API 매뉴얼 PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 1 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

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft Word - windows server 2003 수동설치_non pro support_.doc Windows Server 2003 수동 설치 가이드 INDEX 운영체제 설치 준비과정 1 드라이버를 위한 플로피 디스크 작성 2 드라이버를 위한 USB 메모리 작성 7 운영체제 설치 과정 14 Boot Sequence 변경 14 컨트롤러 드라이버 수동 설치 15 운영체제 설치 17 운영체제 설치 준비 과정 Windows Server 2003 에는 기본적으로

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

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 11 장상속 1. 상속의개념을이해한다. 2. 상속을이용하여자식클래스를작성할수있다. 3. 상속과접근지정자와의관계를이해한다. 4. 상속시생성자와소멸자가호출되는순서를이해한다. 이번장에서만들어볼프로그램 class Circle { int x, y; int radius;... class Rect { int x, y; int width, height;... 중복 상속의개요

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

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

어댑터뷰

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

More information

오버라이딩 (Overriding)

오버라이딩 (Overriding) WindowEvent WindowEvent 윈도우가열리거나 (opened) 닫힐때 (closed) 활성화되거나 (activated) 비활성화될때 (deactivated) 최소화되거나 (iconified) 복귀될때 (deiconified) 윈도우닫힘버튼을누를때 (closing) WindowEvent 수신자 abstract class WindowListener

More information

SIGIL 완벽입문

SIGIL 완벽입문 누구나 만드는 전자책 SIGIL 을 이용해 전자책을 만들기 EPUB 전자책이 가지는 단점 EPUB이라는 포맷과 제일 많이 비교되는 포맷은 PDF라는 포맷 입니다. EPUB이 나오기 전까지 전 세계에서 가장 많이 사용되던 전자책 포맷이고, 아직도 많이 사 용되기 때문이기도 한며, 또한 PDF는 종이책 출력을 위해서도 사용되기 때문에 종이책 VS

More information

임베디드 시스템 소프트웨어

임베디드 시스템 소프트웨어 6 주차강대기 컨트롟 지원되지않는실버라이트컨트롟 레이아웃관렦컨트롟 기타기본컨트롟 이벤트 컨트롟 지원되지않는실버라이트컨트롟 레이아웃관렦컨트롟 StackPanel 컨트롟, Grid 컨트롟, Canvas 컨트롟, Panel 컨트롟, ScrollViewer 컨트롟 기타기본컨트롟 TextBox/PasswordBox 컨트롟, Button/ToggleButton (PushButton)

More information

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1); void method() 2); void method1() public class Test 3); args) A 제 10 장상속 예제 1) ConstructorTest.java class Parent public Parent() super - default"); public Parent(int i) this("hello"); super(int) constructor" + i); public Parent(char c) this(); super(char) constructor

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 9 강. 클래스의활용목차 멤버함수의외부정의 this 포인터 friend 선언 static 멤버 임시객체 1 /17 9 강. 클래스의활용멤버함수의외부정의 멤버함수정의구현방법 내부정의 : 클래스선언내에함수정의구현 외부정의 클래스선언 : 함수프로토타입 멤버함수정의 : 클래스선언외부에구현

More information

게시판 스팸 실시간 차단 시스템

게시판 스팸 실시간 차단 시스템 오픈 API 2014. 11-1 - 목 차 1. 스팸지수측정요청프로토콜 3 1.1 스팸지수측정요청프로토콜개요 3 1.2 스팸지수측정요청방법 3 2. 게시판스팸차단도구오픈 API 활용 5 2.1 PHP 5 2.1.1 차단도구오픈 API 적용방법 5 2.1.2 차단도구오픈 API 스팸지수측정요청 5 2.1.3 차단도구오픈 API 스팸지수측정결과값 5 2.2 JSP

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

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

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2> 게임엔진 제 4 강프레임리스너와 OIS 입력시스템 이대현교수 한국산업기술대학교게임공학과 학습내용 프레임리스너의개념 프레임리스너를이용한엔터티의이동 OIS 입력시스템을이용한키보드입력의처리 게임루프 Initialization Game Logic Drawing N Exit? Y Finish 실제게임루프 오우거엔진의메인렌더링루프 Root::startRendering()

More information

슬라이드 1

슬라이드 1 핚국산업기술대학교 제 9 강캐릭터컨트롤러 이대현교수 학습안내 학습목표 씬노드의구성및회전방법을응용하여, 구면카메라및캐릭터컨트롤을구현해본다. 학습내용 구면카메라구현을위한씬노드구성및회전캐릭터컨트롤을위한씬노구구성및회전 카메라및캐릭터컨트롤구현목표 카메라컨트롤 WOW의카메라컨트롤 ( 구면카메라 ) 마우스를이용한좌우패닝, 상하피칭. 휠스크롤을이용한줌인및줌아웃. 캐릭터를중심으로회전됨.

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

JUNIT 실습및발표

JUNIT 실습및발표 JUNIT 실습및발표 JUNIT 접속 www.junit.org DownLoad JUnit JavaDoc API Document 를참조 JUNIT 4.8.1 다운로드 설치파일 (jar 파일 ) 을다운로드 CLASSPATH 를설정 환경변수에서설정 실행할클래스에서 import JUnit 설치하기 테스트실행주석 @Test Test 를실행할 method 앞에붙임 expected

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

유니티 변수-함수.key

유니티 변수-함수.key C# 1 or 16 (Binary or Hex) 1:1 C# C# (Java, Python, Go ) (0101010 ). (Variable) : (Value) (Variable) : (Value) ( ) (Variable) : (Value) ( ) ; (Variable) : (Value) ( ) ; = ; (Variable) : (Value) (Variable)

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

..,. Job Flow,. PC,.., (Drag & Drop),.,. PC,, Windows PC Mac,.,.,. NAS(Network Attached Storage),,,., Amazon Web Services*.,, (redundancy), SSL.,. * A

..,. Job Flow,. PC,.., (Drag & Drop),.,. PC,, Windows PC Mac,.,.,. NAS(Network Attached Storage),,,., Amazon Web Services*.,, (redundancy), SSL.,. * A ..,. Job Flow,. PC,.., (Drag & Drop),.,. PC,, Windows PC Mac,.,.,. NAS(Network Attached Storage),,,., Amazon Web Services*.,, (redundancy), SSL.,. * Amazon Web Services, Inc.. ID Microsoft Office 365*

More information

Microsoft PowerPoint - 09-CE-5-윈도우 핸들

Microsoft PowerPoint - 09-CE-5-윈도우 핸들 순천향대학교컴퓨터학부이상정 1 학습내용 윈도우핸들 윈도우찿기 윈도우확인및제거 윈도우숨기기 윈도우포커스 윈도우텍스트 윈도우핸들 순천향대학교컴퓨터학부이상정 3 핸들 (handle) 윈도우에서구체적인어떤대상을구분하기위해지정되는고유의번호 32비트의정수값 핸들은운영체제가발급하고사용자가이값을사용 실제값이무엇인지는몰라도상관없음 윈도우, DC, 브러쉬등등 순천향대학교컴퓨터학부이상정

More information