Otistik Bireylere Kinect İle Davranış Öğretimi

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "Otistik Bireylere Kinect İle Davranış Öğretimi"

Transkript

1 Otistik Bireylere Kinect İle Davranış Öğretimi Hazırlayanlar Ahmet YILDIZ Yağmur SUBAKAN Dilek SAĞLAM 1

2 İçindekiler İçindekiler....2 Kinect Nedir?...3 Kinect İçin Donanımsal Gereksinimler...5 Kinect İçin Yazılımsal Gereksinimler...5 Kinect Sensör İskelet Sistemi...6 Kinect Sensör Çalışma Mantığı Kinect Uygulama Platformu Kinect Sensör Uygulamaları Tıp Eğitim Oyun Projenin Amacı Kodlar Kaynakça Kinect Nedir? Kinect(1), Microsoft tarafından 2010 yılında dünya piyasalarına Project Natal adı altında satışa sunulmuş en güncel görüntüleme sensörüdür. 1.Kinect Sensör Kinect in en temel özelliği insan vücudunun hareketlerini algılayıp, onları temassız bir şekilde bilgisayar ortamına aktarmasıdır. Bu özelliğinden ötürü tıp, eğitim, oyun vb. alanlarda büyük ilgi görmüştür. 2 3

3 Kinect in yapısını(2);kinect i en belirgin özelliği ön tarafında yer alan 3 adet göz olacaktır. Bu üç gözden sağ ve sol taraftakiler 3 boyutlu derinliği algılamakta kullanılan sensörler iken ortada yer alan göz ise RGB görüntü alabilen bir kameradır. 3 boyut verisi için kullanılan iki gözden soldaki lazer projeksiyonu ile veri toplarken, sağdaki ise kızıl ötesi ışınları toplamaktadır. 2.Kinect Cihaz Bileşenleri -RGB Kamera; 640*480 piksel, saniyede 30 kare veya 1280*960 piksel, saniyede 12 kare olmak üzere iki farklı renk çözünürlüğü sunmaktadır. -3 Boyutlu Derinlik Sensörü; 80*60 piksel, 320*240 piksel veya 640*480 piksel çözünürlükte saniyede 30 kare olmak üzere 3 farklı derinlik görüntüsünü, 16 bit derinlik bilgisiyle alınabilmektedir. Aynı anda 6 farklı kişiden yalnız ikisi üzerinde işlemlerini gerçekleştirebilmektedir. -Mikrofon Grubunda; cihazın alt tarafına yerleştirilmiş 4 adet mikrofon dizisi bulunmaktadır. 24 bitlik ses algılama bilgisiyle işlem yapılabilmektedir. İdeal ses algılama mesafesi ise 1 metre ve 3 metre arasında değişmektedir. -Motor Mekanizması; alt kısmında bulunan DC motor yardımıyla + / - 27 derece dikey hareket kabiliyetine sahiptir. Kinect İçin Donanımsal Gereksinimler -32 bit (x86) veya 64 bit (x64) işlemci, -Çift çekirdek 2.66 GHz veya üzeri işlemci, -2 GB hafıza, -USB 2.0 veri yolu, -USB/Güç Kaynağı adaptörü bulunan bir Kinect sensör. Kinect İçin Yazılımsal Gereksinimler -Visual Studio 2010 Express veya üzeri sürümleri -.Net Framework 4.0 -Microsoft Speech Platform- Server Runtime 10.2 (x86 sürümü) -Microsoft Speech Platform- Software Development Kit 10.2 (x86 sürümü) 4 5

4 Kinect Sensör İskelet Sistemi Kinect, sensorları vasıtasıyla gelen bilgiler sayesinden bir insanın 3 boyutlu olarak hareketlerini yakalayabilmekte, yüzünü ve sesini tanımlayabilmektedir. Bu bilgiler sayesinde aynı anda 6 kişiyi takip edebilen Kinect, bu 6 kişi içerisinden ise aynı anda sadece ikisi üzerinde hareket analizi yapabilmekte ve bu iki kişinin her birinin vücudundaki 20 kesişim noktasına ait bilgileri verebilmektedir. Kinect tarafından takip edilebilen bu 20 kesişim noktasının nereler olduğunu aşağıdaki (3)Leonardo da Vinci nin Vitruvius Adamı (Vitruvian Man) üzerinde görebilirsiniz; Kinect Sensörün Çalışma Mantığı Kinect, üzerinde 3 Boyutlu derinlik sensörüyle 47 derece dikey ve 57 derece yatay alanda etrafını tarayarak bulunan cisimlerin uzaklıklarını hesaplamaktadır. Sensör, görüş açısına sürekli lazer ışını gönderir ve ışığın yansıma hızını hesaplayarak derinlik görüntüsüne ulaşmaktadır. Bu görüntüde yakaladığı en basit insan şekline ise içerisinde bulundurduğu görüntü işleme algoritmasıyla bir iskelet sistemi yerleştirmektedir. Kinect, bir kişiye ait 20 eklem noktasını X, Y ve Z koordinatlarını bilgisayar ortamına aktarmaktadır. Aynı anda 6 kişiyi algılayabilen sensör bunlardan yalnızca 2 tanesinin bilgisini işleyebilmektedir. Kinect in iskelet algılamasındaki önemli hususlardan biri ise en etkin ve doğru ölçümleri algılamasını 1, 2 metre ile 3, 5 metre mesafesinde yapabilmesidir. 6 7

5 Kinect Uygulama Platformu Kinect in üzerinde bulunan Mikrofon Grubu ve 3 Boyutlu Derinlik sensörleriyle algıladığı verileri ses, görüntü ve derinlik akışı verilerini yorumlamak üzere Doğal Kullanıcı Arayüzü kütüphanesine iletmektedir. Burada yorumlanan veriler ise uygulamalara bir komut olarak iletilerek program akışı sağlanmaktadır. Veri akışı Şekil 4 de gösterilmektedir. Kinect Sensörün Uygulamaları Hareket temelli işlemleri gerçekleştirebilen teknolojilerden biri de Kinect sensörüdür. Kinect cihazından bugün tıp, eğitim ve oyun gibi vb. birçok alanda yararlanılmaktadır. Bu alanlar için birçok uygulama geliştirilmektedir. Bu uygulamalar sayesinde kullanıcılar uygulama ile daha aktif bir iletişime geçmektedir. - Kinect ile Tıp Alanında Uygulama Hareket temelli işlemler teknolojisinden yararlanılabilecek ve uygulamalar geliştirilecek alanların en başında tıp gelmektedir. İnsan vücudu hareketlerinin temassız bir şekilde algılanması sayesinde tıp alanında birçok uygulama geliştirilmesine olanak sağlamıştır. 4. Bilgi Akış Yönü 8 9

6 Ameliyat esnasında sağlık personelinin, hastanın MR veya CT görüntülerini bilgisayar ortamında tekrar incelemek istediğinde aşağıdaki şekil-5 de görüldüğü üzere hem hijyen hem de zaman açısından avantaj oluşturmaktadır. - Kinect ile Eğitim Alanında Uygulama 5. Kinect ile Kalp Ritimlerinin Ölçümü Bugün, Kinect bu dezavantajları ortadan kaldırmaktadır. Temassız, insan vücudu hareketi sayesinde incelenecek görüntüler el hareketleriyle yönlendirilebilmektedir. Kinect ten fiziksel rehabilitasyon sürecinde de yararlanılmıştır. Yapılan bir çalışmada iki genç yetişkinin rehabilete olasılıkları Kinect ile Eğitim Öğrenmedeki verimliliği ve kalıcılığı sağlamak için daha çok duyu organını öğrenme sürecin dahil etmek gerekmektedir. Kinect, bilginin anlamlandırılarak çeşitli yollarla sunulması ve kazanılmasına imkan sağlamaktadır. İnsan vücudu hareketleriyle gerçekleştirilen uygulamalar, öğrencilerin hem eğlenerek öğrenmesi hem de öğrenmedeki motivasyonlarının artırılması sağlanabilir. Kinect in eğitim materyalleri arasındaki yerini hızlı bir şekilde alması yukarıda şekil-6 da görüldüğü üzere,birçok eğitim kurumunun hareket temelli teknolojik eğitim ortamları oluşmasına sebep olmaktadır. 11

7 - Kinect ile Oyun Alanında Uygulama Günümüzdeki oyunlardaki etkileşimi artırmak adına insan vücudu hareketinden yararlanılmıştır. Oyun içerisinde vücut hareketlerinin algılanıp değerlendirilmesi açısından diğer oyun uygulamalarına göre ön plana çıkmaktadır. (7) Oyun uygulamalarında önemli bir yapı olan 3 Boyutlu görselleştirme Kinect in derinlik sensörleri tarafından sağlanabilmektedir. Bu sayede oyun içerisinde kullanıcı vücut hareketlerinin tamamını 3 boyutlu görsel bir yapının içerisinde gerçekleştirebilmektedir. Projenin Amacı Yapılan projenin amacı otistik bireylerin psiko-motor beceri gerektiren davranışları kazanmaları ve psiko-motor becerilerinde problem yaşayan bireylerin psiko-motor becerilerini geliştirmeleridir. Bireyler ekrandan modeli izleyerek adımları takip edecekler, modelin hareketlerini yapmaya çalışacaklardır. Bireylerin bu süreçte model ile dikkatleri çekilecektir. Otistik bireyler söylenenleri anlamayabilirler. Bu proje ile bireyler yapmaları gerekenleri görecekler ve duyma problemlerinden kaynaklanan anlama sıkıntıları ile karşılaşmayacaklardır

8 Otistik Bireyler İçin Kinect İle Davranış Öğretimi Yapılan proje ile otistik bireylere diş fırçalamayı öğreten bir uygulama geliştirildi. Proje geliştirilmeye açıktır ve ilerleyen zamanlarda geliştirilecektir. Projenin genel olarak çalışma mantığı şu şekildedir: Kullanıcı arayüzü 4 parçadan oluşmaktadır. Ekranın solunda kullanıcının iskelet tanımlaması, sağ üstte hareketleri yapan, kullanıcıya örnek olacak iskelet videosu, sağ ortada kamera görüntüsü ve sağ altta derinlik görüntüsü yer almaktadır. Videodaki hareket görüntüleri kod ile tanımlanan iskelet karşısına geçilerek Kinect Studio ile kaydedilmiştir ve video halinde yayınlanmaktadır. Kullanıcı sensörün karşısına geçerek algılanacak ve ekranda gördüğü hareketleri yapacaktır. Proje görsel olarak dikkat çekmektedir ve hareketleri daha kolay yapabilmelerini sağlayacaktır. Temel olarak projede önemli olan eklemlerin hareketleridir. Projede ilk yapılması gereken Kinect SDK yı kurmaktır. Kurulumlar gerçekleştirdikten sonra Visual Studio nun açılması gerekmektedir. Projede 1.6 SDK ve Visual Studio 2015 kullanılmıştır. Visual Studio açıldıktan sonra New Project seçeneğine tıklıyoruz ve gelen ekranda WPF yi seçiyoruz. WPF kullanıcı arayüzü oluşturma platformudur. Kinect ile geliştirilen projeler genellikle WPF kullanılarak hazırlanır. 8. WPF Kullanıcı Arayüzü 14 15

9 -Projenin Kodlama Kısmı Kinect in kendine ait özel kütüphaneleri vardır. Elemanlara, metodlara erişebilmek için geliştirilen uygulamaya göre ilgili kütüphanenin eklenmesi gerekir. Yapılan projede Microsoft.Kinect.dll kütüphanesi kullanıldı. Kütüphanenizi açılan projenizde Project sekmesinden, Add Reference seçeneğini seçerek Browse bölümünden, dll inizin bulunduğu yere giderek ekleyebilirsiniz. Kütüphaneyi projede kullanabilmek için ekledikten sonra metodlara erişebilmek için birde using satırlarını eklenmesi gerekmektedir. Projede using Microsof.Kinect; satırı kullanılmıştır. Projeyi oluşturacak kodları oluştururken ilk öncelikle kullanıcı arayüzünü 4 parçaya bölündü. Bir Grid in içerisinde 3 adet İmage, 1 adette video için MediaElement eklendi. Kodlarımız ile birlikte ekran 4 parçaya bölünmüş oldu. Grid in içerisindeki her bir alan için yapılacaklar kodlandı. Kodlar aşağıdaki gibidir. 9. dll ekleme 16 17

10 <Window x:class= kamera.mainwindow xmlns= xmlns:x= xmlns:d= xmlns:mc= xmlns:local= clr-namespace:kamera mc:ignorable= d Title= Kinect Height= 700 Width= 700 WindowStartupLocati on= CenterScreen Loaded= Window_Loaded Closing= Window_Closing > <Grid Name= a Width= 700 Margin= 0,0,-8,-21 > <Image Name= imgcolorframe Stretch= Uniform Margin= 0,221,10,0 Height= 235 HorizontalAlignment= Right Width= 373 VerticalAlignment= Top /> <Image Name= imgdepthframe Stretch= Uniform Margin= 0,461,10,24 HorizontalAlignment= Right Width= 373 /> <Image Name= Skeleton1 Stretch= Uniform Margin= 12,1,0,0 Height= 665 HorizontalAlignment= Left Width= 300 VerticalAlignment= Top /> <MediaElement Name= mediaelement Source= disfircalama. mp4 LoadedBehavior= Manual HorizontalAlignment= Left Height= 174 Margin= 410,10,0,0 VerticalAlignment= Top Width= 280 /> <Button x:name= oynat Content= Oynat HorizontalAlignment= Left Margin= 452,196,0,0 VerticalAlignment= Top Width= 198 Height= 25 Click= oynat_click /> </Grid> </Window> 18 Kodlarımız ile birlikte ekranımız 4 parçaya bölündü. Kodlar içerisinde yer alan buton videoyu oynatmak içindir. Bu kısmı daha sonra iskelet tanımlamasından sonra ekleyebilirsiniz. Çünkü bu adımda henüz videomuz hazır değil. İlk önce iskeleti tanımlamamız gerekiyor. İskeletin tanımlanabilmesi için tanımlananlar: Sensörden gelen iskelet bilgisini tutacak olan Skeleton türünde bir dizi, gelen bilgilere göre iskeletin eklem bilgilerini tutacak olan Joint türünde bir dizi, eklemler dizisinde işlem yaptırılmak üzere kullanılacak bir iskelet değişkeni ve eklemlerimizi çizerek iskeleti oluşturmak için Line türünde bir List. Bu tanımlamalardan sonra iskeletin çizilebilmesi için program çalıştığında gelen iskelet veri akışına göre gelen bilgiyi işleyecek metot tetiklenmeli ve ilgili metota yönlendirilmelidir. Ayrıca iskeleti oluşturacak 18 adet çizgi (line) List e eklenmelidir. List e eklenen bu çizgiler daha sonra gelen bilginin işlenmesi ile verilen koordinatlara göre çizilmelidir. Çizilmeden önce işlenen bilgiye göre eklemler, eklemleri tutacak diziye eklenmeli ve buna göre çizgileri oluşturacak metot işlemi yapmalıdır. İşlemler bittikten sonra görüntü(iskelet) Grid e aktarılmalıdır ki kullanıcı görebilsin. Kodlar aşağıdaki gibidir. 19

11 public partial class MainWindow : Window private Skeleton[] iskeletler = new Skeleton[0]; // iskelet bilgisini tutacak dizi private Skeleton iskelet; // iskelet çizerken üzerinde işlem yapılacak değişken private int sayac = 0; // çizgi sayısını tutacak ve çizdikçe artacak değişken private Joint[,] dizi = new Joint[19, 2]; // eklem bilgilerini tutacak matris dizisi private List<Line> liste = new List<Line>(); // eklemleri çizecek Line türündeki List public MainWindow() InitializeComponent(); this.loaded += new RoutedEventHandler(Window_Loaded); private WriteableBitmap skeletongiris=null; // çizilen iskeleti İmage in içine aktarmak için kullanılacak. Bu değer ilk önce her zaman null atanmalıdır. Null olduğunu belirtmezseniz hata vermez programınız çalışır fakat uyarı olarak görünür. (başımıza geldi de :) ) private void Window_Loaded(object sender, RoutedEventArgs e) if (KinectSensor.KinectSensors.Count > 0) // sensör bağlı ise KinectSensor.KinectSensors[0].Start(); // sensörü başlat KinectSensor.KinectSensors[0].SkeletonStream.Enable(); // iskelet veri akışını aktifleştir. KinectSensor.KinectSensors[0].SkeletonFrameReady += new Eve nthandler<skeletonframereadyeventargs>(mainwindow_skeletonframeready); // akıştan gelen bilginin işlenmesi için ilgili metodu tetikle for (int i = 0; i < 18; i++) // 18 adet çizgi çizecek ve her bir çizgiyi List e ekleyecek Line line = new Line(); liste.add(line); 20 void MainWindow_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e) using (SkeletonFrame skeletonframe = e.openskeletonframe()) //Gelen bilgiyi açıp skeletonframe e aktar if (skeletonframe!= null) // akış boş değil ise iskeletler = new Skeleton[skeletonFrame.SkeletonArrayLength]; // dizinin uzunluğunu gelen akışa göre uzat skeletonframe.copyskeletondatato(iskeletler); // iskeletler dizisine kopyala foreach (Skeleton skel in iskeletler) // verileri sırala if (skel.trackingstate == SkeletonTrackingState.Tracked) // veriler izlenen veri ile eşitse iskelet = skel; // verileri iskelet değişkenine ata this.diziyeeklemekle(iskelet); 21

12 private void DiziyeEklemEkle(Skeleton iskelet) // gövdeyi çizmek için eklem bilgileri dizi[0, 0] = iskelet.joints[jointtype.head]; dizi[0, 1] = iskelet.joints[jointtype.shouldercenter]; dizi[1, 0] = iskelet.joints[jointtype.shouldercenter]; dizi[1, 1] = iskelet.joints[jointtype.shoulderleft]; dizi[2, 0] = iskelet.joints[jointtype.shouldercenter]; dizi[2, 1] = iskelet.joints[jointtype.shoulderright]; dizi[3, 0] = iskelet.joints[jointtype.shouldercenter]; dizi[3, 1] = iskelet.joints[jointtype.spine]; dizi[4, 0] = iskelet.joints[jointtype.spine]; dizi[4, 1] = iskelet.joints[jointtype.hipcenter]; dizi[5, 0] = iskelet.joints[jointtype.hipcenter]; dizi[5, 1] = iskelet.joints[jointtype.hipleft]; dizi[6, 0] = iskelet.joints[jointtype.hipcenter]; dizi[6, 1] = iskelet.joints[jointtype.hipright]; // sol kolu çizmek için eklem bilgileri dizi[7, 0] = iskelet.joints[jointtype.shoulderleft]; dizi[7, 1] = iskelet.joints[jointtype.elbowleft]; dizi[8, 0] =iskelet.joints[jointtype.elbowleft]; dizi[8, 1] = iskelet.joints[jointtype.wristleft]; dizi[9, 0] = iskelet.joints[jointtype.wristleft]; dizi[9, 1] = iskelet.joints[jointtype.handleft]; // sağ kolu çizmek için eklem bilgileri dizi[10, 0] = iskelet.joints[jointtype.shoulderright]; dizi[10, 1] = iskelet.joints[jointtype.elbowright]; dizi[11, 0] = iskelet.joints[jointtype.elbowright]; dizi[11, 1] = iskelet.joints[jointtype.wristright]; dizi[12, 0] = iskelet.joints[jointtype.wristright]; dizi[12, 1] = iskelet.joints[jointtype.handright]; Devamı -> // sol bacağı çizmek için eklem bilgileri dizi[13, 0] =iskelet.joints[jointtype.hipleft]; dizi[13, 1] = iskelet.joints[jointtype.kneeleft]; dizi[14, 0] = iskelet.joints[jointtype.kneeleft]; dizi[14, 1] = iskelet.joints[jointtype.ankleleft]; dizi[15, 0] = iskelet.joints[jointtype.ankleleft]; dizi[15, 1] = iskelet.joints[jointtype.footleft]; // sağ ayağı çizmek için eklem bilgileri dizi[16, 0] = iskelet.joints[jointtype.hipright]; dizi[16, 1] =iskelet.joints[jointtype.kneeright]; dizi[17, 0] = iskelet.joints[jointtype.kneeright]; dizi[17, 1] = iskelet.joints[jointtype.ankleright]; dizi[18, 0] = iskelet.joints[jointtype.ankleright]; dizi[18, 1] = iskelet.joints[jointtype.footright]; Ciz(); private void Ciz() for (int i = 0; i < 18; i++) liste[i].strokethickness = 8; // çizgilerin kalınlığı liste[i].stroke = System.Windows.Media.Brushes.Black; //çizgi rengi // çizgilerin koordinatları liste[i].x1 = (dizi[i, 0].Position.X + 1) * 100; liste[i].x2 = (dizi[i, 1].Position.X + 1) * 100; liste[i].y1 = (dizi[i, 0].Position.Y + 1) * 220; liste[i].y2 = (dizi[i, 1].Position.Y + 1) * 220; NOT: Koordinatları iskeletin yer alacağı bölgenin boyutuna göre ayarlamanız gerekmektedir. if (sayac < 18) a.children.add(liste[i]); // çizgileri gride ekle sayac++; Skeleton1.Source = skeletongiris; // skeleton image inde görünmesi için kaynak ver 22 23

13 Bu aşamadan sonra video çekildi. Sensörün karşısına geçerek yapılması gereken hareketler yapıldı ve bu sırada hareketler kayıt edildi. Kaydedilen videonun MediaElement içerisinde yolu gösterildi ve oynatma işlemi manuel yapılarak kullanıcının yeniden oynatabilmesi sağlandı. Bunun için MediaElement in başlangıç olayı manuel yapıldı. Kodlar aşağıdaki gibidir. private void Window_Loaded(object sender, RoutedEventArgs e) mediaelement.play();...// daha önce verilen kodlar yer alır. private void oynat_click(object sender, RoutedEventArgs e) mediaelement.stop(); mediaelement.play(); Bu aşamadan sonra kamera görüntüsü oluşturulması gerekmektedir. Kodlamalar ile sensörün görüş açısındaki her şey normal kameralardaki gibi görünecektir. Buradaki mantık şudur: Görüntü geldiğinde görüntü işlemek için kullanılan metot tetiklenecek. Gelen görüntü bilgisi alınacak ve ilk önce programda daha önceden belirtilen format ile karşılaştırılarak boyutlarına bakılacak. Biz tanımsız yaptık. Bu nedenle formatlar ilk program çalıştığında farklı olacaktır. Daha sonra gelen tüm görüntü bilgileri aynı formatta olursa akışın sürekliliği sağlanacak ve hatasız ilerleyecektir. Formatların farklılığı durumunda ilk önce yeni görüntü bilgileri diziye aktarılacak daha sonra görüntü için ayrılan alana göre genişlik ve yükseklik ayarı yapılacaktır. Bu işlemlerden sonra görüntü kullanıcıya aktarılacaktır. Kodlar aşağıdaki gibidir

14 private byte[] pixeldata; // görüntü akışını tutacak byte dizisi private WriteableBitmap cikisresmi; // işlenen akışı image e aktarmak için kullanılacak private ColorImageFormat eskirenkformati = ColorImageFormat.Undefined; // gelen akışın boyut değişikliğini algılayabilmek için yeni format ve eski format arasında karşılaştırma yapılacak. Şuan eski format tanımsız private void Window_Loaded(object sender, RoutedEventArgs e) if (KinectSensor.KinectSensors.Count > 0) KinectSensor.KinectSensors[0].Start(); KinectSensor.KinectSensors[0].ColorStream. Enable(ColorImageFormat.RgbResolution1280x960Fps12); // görüntü akışını başlat KinectSensor.KinectSensors[0].ColorFrameReady += new Event Handler<ColorImageFrameReadyEventArgs>(Kinect_ColorFrameReady); // akışın işlenebilmesi için ilgili metodu tetikle imageframe.copypixeldatato(pixeldata); // diziye kopyala if (havenewformat) // farklı ise cikisresmi = new WriteableBitmap(imageFrame.Width, image- Frame.Height, 105, 96, PixelFormats.Bgr32, null); // kullanıcıya görüntülenecek görüntünün boyutları ayarlandı. (Bu kısımda siz kullanacağınız ekran genişliğine göre width ve height değerlerinde oynama yapabilirsiniz.) imgcolorframe.source = cikisresmi; // imgcolorframe image inde görünebilmesi için kaynak ver cikisresmi.writepixels(new Int32Rect(0, 0, imageframe.width, imageframe.height),pixeldata,imageframe.width * 4,0); // görüntü akışının sürekliliği için içeriği güncelle eskirenkformati = imageframe.format; // yukarıda açıklandığı gibi boyutlarda hata olmaması için karşılaştırma yapmak amacıyla yeni formatı kaydet private void Kinect_ColorFrameReady(object sender, ColorImageFrameReadyEventArgs e) using (ColorImageFrame imageframe = e.opencolorimageframe()) if (imageframe!= null) bool havenewformat = eskirenkformati!= imageframe.format; // yeni görüntü formatı ile önceki görüntü formatı farklı mı? if (havenewformat) // farklı ise pixeldata = new byte[imageframe.pixeldatalength]; // pixeldata dizisinin uzunluğunu yeni gelen akışa göre uzat 26 27

15 Son aşama olarak derinlik bilgisi için kodlamalar yapılmaktadır. Derinlik görüntüsü işlenirken aslında kamera görüntüsü alırken yapılan adımlardan farklı bir şey yapmamaktadır. Her ikisi de aynı mantık ve sıralama ile kodlanmaktadır fakat her birinin kendine özgü metotları ve elemanları var. Örneğin derinlik için DepthImageFrame, kamera için ColorImageFrame kullanılır. Kodlar aşağıdaki gibidir. private short[] depthpixeldata; // derinlik bilgisini tutacak olan dizi private WriteableBitmap cikisderinlik; private DepthImageFormat eskiderinlikformati = DepthImage- Format.Undefined; private void Window_Loaded(object sender, RoutedEventArgs e) mediaelement.play(); if (KinectSensor.KinectSensors.Count > 0) KinectSensor.KinectSensors[0].Start(); KinectSensor.KinectSensors[0].DepthStream. Enable(DepthImageFormat.Resolution640x480Fps30); // derinlik akışını başlat KinectSensor.KinectSensors[0].DepthFrameReady += new Eve nthandler<depthimageframereadyeventargs>(kinect_depth- FrameReady); // akışın işlenebilmesi için ilgili metodu tetikle 28 private void Kinect_DepthFrameReady(object sender, DepthImageFrameReadyEventArgs e) using (DepthImageFrame depthframe = e.opendepthimageframe()) // Gelen derinlik bilgisini açıp depthframe e aktar if (depthframe!= null) bool havenewformat = eskiderinlikformati!= depthframe. Format; if (havenewformat) depthpixeldata = new short[depthframe.pixeldatalength]; // gelen akışın uzunluğuna göre dizinin uzunluğunu uzat depthframe.copypixeldatato(depthpixeldata); //diziye kopyala if (havenewformat) cikisderinlik = new WriteableBitmap(depthFrame. Width,depthFrame.Height,85, 96, PixelFormats.Gray16, null); // kullanıcının göreceği boyut ayarlandı imgdepthframe.source = cikisderinlik; cikisderinlik.writepixels(new Int32Rect(0, 0, depthframe. Width, depthframe.height),depthpixeldata,depthframe.width * depthframe.bytesperpixel,0); eskiderinlikformati = depthframe.format; 29

16 Kodlarımızı bitirdik. Projenin tüm kodları toplu olarak aşağıda vermiştir. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using Microsoft.Kinect; namespace kamera /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window private Skeleton[] iskeletler = new Skeleton[0]; private Skeleton iskelet; private int sayac = 0; private Joint[,] dizi = new Joint[19, 2]; private List<Line> liste = new List<Line>(); public MainWindow() InitializeComponent(); this.loaded += new RoutedEventHandler(Window_Loaded); public MainWindow() InitializeComponent(); this.loaded += new RoutedEventHandler(Window_Loaded); private byte[] pixeldata; private WriteableBitmap cikisresmi; private short[] depthpixeldata; private WriteableBitmap cikisderinlik; private WriteableBitmap skeletongiris=null; private DepthImageFormat eskiderinlikformati = DepthImage- Format.Undefined; private ColorImageFormat eskirenkformati = ColorImageFormat.Undefined; private void Window_Loaded(object sender, RoutedEventArgs e) mediaelement.play(); if (KinectSensor.KinectSensors.Count > 0) KinectSensor.KinectSensors[0].Start(); KinectSensor.KinectSensors[0].ColorStream. Enable(ColorImageFormat.RgbResolution1280x960Fps12); KinectSensor.KinectSensors[0].ColorFrameReady += new Event Handler<ColorImageFrameReadyEventArgs>(Kinect_ColorFrameReady); KinectSensor.KinectSensors[0].SkeletonStream.Enable(); KinectSensor.KinectSensors[0].SkeletonFrameReady += new EventHandler<SkeletonFrameReadyEventArgs>(MainWind ow_skeletonframeready); 30 31

17 KinectSensor.KinectSensors[0].DepthFrameReady += new Event Handler<DepthImageFrameReadyEventArgs>(Kinect_DepthFrameReady); KinectSensor.KinectSensors[0].DepthStream. Enable(DepthImageFormat.Resolution640x480Fps30); for (int i = 0; i < 18; i++) Line line = new Line(); liste.add(line); void MainWindow_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e) using (SkeletonFrame skeletonframe = e.openskeletonframe()) if (skeletonframe!= null) iskeletler = new Skeleton[skeletonFrame.SkeletonArrayLength]; skeletonframe.copyskeletondatato(iskeletler); foreach (Skeleton skel in iskeletler) if (skel.trackingstate == SkeletonTrackingState.Tracked) iskelet = skel; this.diziyeeklemekle(iskelet); private void DiziyeEklemEkle(Skeleton iskelet) dizi[0, 0] = iskelet.joints[jointtype.head]; dizi[0, 1] = iskelet.joints[jointtype.shouldercenter]; dizi[1, 0] = iskelet.joints[jointtype.shouldercenter]; dizi[1, 1] = iskelet.joints[jointtype.shoulderleft]; dizi[2, 0] = iskelet.joints[jointtype.shouldercenter]; dizi[2, 1] = iskelet.joints[jointtype.shoulderright]; dizi[3, 0] = iskelet.joints[jointtype.shouldercenter]; dizi[3, 1] = iskelet.joints[jointtype.spine]; dizi[4, 0] = iskelet.joints[jointtype.spine]; dizi[4, 1] = iskelet.joints[jointtype.hipcenter]; dizi[5, 0] = iskelet.joints[jointtype.hipcenter]; dizi[5, 1] = iskelet.joints[jointtype.hipleft]; dizi[6, 0] = iskelet.joints[jointtype.hipcenter]; dizi[6, 1] = iskelet.joints[jointtype.hipright]; dizi[7, 0] = iskelet.joints[jointtype.shoulderleft]; dizi[7, 1] = iskelet.joints[jointtype.elbowleft]; dizi[8, 0] = iskelet.joints[jointtype.elbowleft]; dizi[8, 1] = iskelet.joints[jointtype.wristleft]; dizi[9, 0] = iskelet.joints[jointtype.wristleft]; dizi[9, 1] = iskelet.joints[jointtype.handleft]; dizi[10, 0] = iskelet.joints[jointtype.shoulderright]; dizi[10, 1] = iskelet.joints[jointtype.elbowright]; dizi[11, 0] = iskelet.joints[jointtype.elbowright]; dizi[11, 1] = iskelet.joints[jointtype.wristright]; dizi[12, 0] = iskelet.joints[jointtype.wristright]; dizi[12, 1] = iskelet.joints[jointtype.handright]; dizi[13, 0] = iskelet.joints[jointtype.hipleft]; dizi[13, 1] = iskelet.joints[jointtype.kneeleft]; dizi[14, 0] = iskelet.joints[jointtype.kneeleft]; dizi[14, 1] = iskelet.joints[jointtype.ankleleft]; 32 33

18 dizi[15, 0] = iskelet.joints[jointtype.ankleleft]; dizi[15, 1] = iskelet.joints[jointtype.footleft]; dizi[16, 0] = iskelet.joints[jointtype.hipright]; dizi[16, 1] = iskelet.joints[jointtype.kneeright]; dizi[17, 0] = iskelet.joints[jointtype.kneeright]; dizi[17, 1] = iskelet.joints[jointtype.ankleright]; dizi[18, 0] = iskelet.joints[jointtype.ankleright]; dizi[18, 1] = iskelet.joints[jointtype.footright]; Ciz(); private void Ciz() for (int i = 0; i < 18; i++) liste[i].strokethickness = 8; liste[i].stroke = System.Windows.Media.Brushes.Black; liste[i].x1 = (dizi[i, 0].Position.X + 1) * 100; liste[i].x2 = (dizi[i, 1].Position.X + 1) * 100; liste[i].y1 = (dizi[i, 0].Position.Y + 1) * 220; liste[i].y2 = (dizi[i, 1].Position.Y + 1) * 220; if (sayac < 18) a.children.add(liste[i]); sayac++; Skeleton1.Source = skeletongiris; private void Kinect_ColorFrameReady(object sender, ColorImageFrameReadyEventArgs e) using (ColorImageFrame imageframe = e.opencolorimageframe()) if (imageframe!= null) bool havenewformat = eskirenkformati!= imageframe.format; 34 if (havenewformat) pixeldata = new byte[imageframe.pixeldatalength]; imageframe.copypixeldatato(pixeldata); if (havenewformat) cikisresmi = new WriteableBitmap(imageFrame.Width, image- Frame.Height, 105, 96, PixelFormats.Bgr32, null); imgcolorframe.source = cikisresmi; cikisresmi.writepixels(new Int32Rect(0, 0, imageframe. Width, imageframe.height),pixeldata,imageframe.width * 4,0); eskirenkformati = imageframe.format; private void Kinect_DepthFrameReady(object sender, DepthImageFrameReadyEventArgs e) using (DepthImageFrame depthframe = e.opendepthimageframe()) if (depthframe!= null) bool havenewformat = eskiderinlikformati!= depthframe. Format; if (havenewformat) depthpixeldata = new short[depthframe.pixeldatalength]; depthframe.copypixeldatato(depthpixeldata); 35

19 if (havenewformat) cikisderinlik = new WriteableBitmap(depthFrame. Width,depthFrame.Height,85, 96, PixelFormats.Gray16, null); imgdepthframe.source = cikisderinlik; cikisderinlik.writepixels(new Int32Rect(0, 0, depthframe. Width, depthframe.height),depthpixeldata,depthframe.width * depthframe.bytesperpixel,0); eskiderinlikformati = depthframe.format; private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) Tüm bu aşamalar tamamlandıktan sonra Kinect sensörün bilgisayara takılı olduğundan emin olup program başlatıldığında projenin çalışan hali görülecektir. Not: Kinect sensörün bilgisayara takılabilmesi için adaptör almanız gerekmektedir. Sensörün girişi bilgisayara uygun değildir. Adaptör ile bilgisayara uyumlu hale gelecektir. if (KinectSensor.KinectSensors.Count > 0) foreach (KinectSensor sensor in KinectSensor.KinectSensors) sensor.stop(); private void oynat_click(object sender, RoutedEventArgs e) mediaelement.stop(); mediaelement.play(); 36 37

20 Kaynakça tr/icerikler/okulumuza-microsoft-destegi-ile-xbox-kinect-oyun-konsolu-kuruldu_ html 10. Programın Çıktısı 38 39

Öğr. Gör. Hakan YÜKSEL hakanyuksel@sdu.edu.tr SÜLEYMAN DEMİREL ÜNİVERSİTESİ. Akademik Bilişim 2013 1

Öğr. Gör. Hakan YÜKSEL hakanyuksel@sdu.edu.tr SÜLEYMAN DEMİREL ÜNİVERSİTESİ. Akademik Bilişim 2013 1 Öğr. Gör. Hakan YÜKSEL hakanyuksel@sdu.edu.tr SÜLEYMAN DEMİREL ÜNİVERSİTESİ Akademik Bilişim 2013 1 İçerik Hareket Temelli İşlemler Temassız hareket algılayıcısı: Kinect Kinect Uygulamaları Kinect in getirdikleri

Detaylı

Fırat Üniversitesi DENEY NO: 8 KINECT İLE İNSAN HAREKETLERİNİN ALGILANMASI

Fırat Üniversitesi DENEY NO: 8 KINECT İLE İNSAN HAREKETLERİNİN ALGILANMASI Fırat Üniversitesi Bilgisayar Mühendisliği BMÜ-431 Bilgisayar Sistemleri Laboratuvarı DENEY NO: 8 KINECT İLE İNSAN HAREKETLERİNİN ALGILANMASI 1. GİRİŞ Eğitim ve öğretimde teknolojik araçların kullanılması,

Detaylı

İnsan Hareketinin Algılanmasından Yeni Bir Teknoloji Platformu: KİNECT

İnsan Hareketinin Algılanmasından Yeni Bir Teknoloji Platformu: KİNECT İnsan Hareketinin Algılanmasından Yeni Bir Teknoloji Platformu: KİNECT Hakan Yüksel 1 1 Süleyman Demirel Üniversitesi, Bilgisayar Programcılığı Bölümü, Isparta hakanyuksel@sdu.edu.tr Özet: Hızla gelişen

Detaylı

Karabük Üniversitesi, Mühendislik Fakültesi...www.ibrahimcayiroglu.com WEB TEKNOLOJİLERİ

Karabük Üniversitesi, Mühendislik Fakültesi...www.ibrahimcayiroglu.com WEB TEKNOLOJİLERİ WEB TEKNOLOJİLERİ VISUAL STUDIO DA YENİ BİR PROJE OLUŞTURMA Visual Studio (VS) programını çalıştırdığımızda karşımıza boş bir ekran gelir. Yeni bir proje oluştururken File>New>Project yolu kullanılarak

Detaylı

GENETİK ALGORİTMA GEZGİN SATICI ÖDEVİ

GENETİK ALGORİTMA GEZGİN SATICI ÖDEVİ GENETİK ALGORİTMA GEZGİN SATICI ÖDEVİ Aşağıda belli bir yere kadar programlanmış olan Gezgin satıcı problemine ait kodları inceleyerek programın geri kalan kısmını tamamlayınız. Seçme, Çaprazlama ve Mutasyon

Detaylı

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ

Detaylı

4. Bölüm Programlamaya Giriş

4. Bölüm Programlamaya Giriş 4. Bölüm Programlamaya Giriş Algoritma ve Programlamaya Giriş Dr. Serkan DİŞLİTAŞ 4.1. C# ile Program Geliştirme Net Framework, Microsoft firması tarafından açık internet protokolleri ve standartları

Detaylı

C#.Net & Linq (Language Integrated Query)

C#.Net & Linq (Language Integrated Query) C#.Net & Linq (Language Integrated Query) Adım-1 Adım-2 Adım-3: aşağıdaki ekran gelir. Bu ekrandan Server Explorer seçeneği ile SQL sunucuya bağlanılırsa Adım-4 deki gibi bir ekran gelir Adım-4: Soldaki

Detaylı

Windows form uygulamalarından alışık olduğumuz sabit piksel koordinatları, WPF ile son buldu. WPF uygulamaları farklı çözünürlüklerde çalışsalar bile

Windows form uygulamalarından alışık olduğumuz sabit piksel koordinatları, WPF ile son buldu. WPF uygulamaları farklı çözünürlüklerde çalışsalar bile Windows form uygulamalarından alışık olduğumuz sabit piksel koordinatları, WPF ile son buldu. WPF uygulamaları farklı çözünürlüklerde çalışsalar bile görüntü kaybı olmamaktadır. Bu yüzden tasarım yapılarının

Detaylı

İNTERNET TABANLI PROGRAMLAMA

İNTERNET TABANLI PROGRAMLAMA İNTERNET TABANLI PROGRAMLAMA VISUAL STUDIO DA YENİ BİR PROJE OLUŞTURMA Visual Studio (VS) programını çalıştırdığımızda karşımıza boş bir ekran gelir. Yeni bir proje oluştururken File>New>Project yolu kullanılarak

Detaylı

KRİPTOANALİZ DERSİ FİNAL ÖDEVİ. PSO ile TRANSPOSITION CIPHER ÇÖZÜMÜ

KRİPTOANALİZ DERSİ FİNAL ÖDEVİ. PSO ile TRANSPOSITION CIPHER ÇÖZÜMÜ KRİPTOANALİZ DERSİ FİNAL ÖDEVİ PSO ile TRANSPOSITION CIPHER ÇÖZÜMÜ 1 Uygulama Hakkında PSO kullanılarak şifreli metnin çözümü gerçekleştirilmiştir. Metin dosyadan okunmuştur. Okunan metin rastgele üretilen

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar

Detaylı

ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ

ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ Asp.NET mimarisinin temelini oluşturan CLASS yapısını kullanarak veri tabanı işlemlerini nasıl daha az kodla ve daha stabil yapabiliriz bunu göreceğiz. Mevzu

Detaylı

MEKANİZMA TEKNİĞİ (7. Hafta)

MEKANİZMA TEKNİĞİ (7. Hafta) MEKANİZMA TEKNİĞİ (7. Hafta) Mekanizmaların Sayısal ve Programatik Analizi Buraya kadar olan kısımda mekanizmaların üzerindeki tüm uzuvların konum, hız ve ivmelerini analitik yöntemlerle bulmuş olduk.

Detaylı

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik. ASP.NET DERS 1 Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik. Gelen ekranda Visual C# seçildikten

Detaylı

1 GİRİŞ 1 C# Hakkında Genel Bilgiler 1.Net Framework 1 CLR 2 CLR Ve CTS 2 Temel Sınıf Kütüphanesi 3 CIL 3 Algoritma Nedir? 4 Sözde Kod (Pseudocode) 5

1 GİRİŞ 1 C# Hakkında Genel Bilgiler 1.Net Framework 1 CLR 2 CLR Ve CTS 2 Temel Sınıf Kütüphanesi 3 CIL 3 Algoritma Nedir? 4 Sözde Kod (Pseudocode) 5 İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 C# Hakkında Genel Bilgiler 1.Net Framework 1 CLR 2 CLR Ve CTS 2 Temel Sınıf Kütüphanesi 3 CIL 3 Algoritma Nedir? 4 Sözde Kod (Pseudocode) 5 2 VISUAL STUDIO GELİŞTİRME

Detaylı

İNTERNET TABANLI PROGRAMLAMA- 3.ders

İNTERNET TABANLI PROGRAMLAMA- 3.ders DİZİLER İNTERNET TABANLI PROGRAMLAMA- 3.ders Diziler bir çok bilgiyi tek bir değişken içerisinde tutmamızı sağlayan ifadelerdir. Dizide tutulan bilgiler Ram da tutulur. Elektrikler kesildiğinde dizideki

Detaylı

Çalışmamız (Ne Yaptık?) Materyal Metot (Nasıl Yaptık?) Uygulama (Demo) Deneysel Sonuçlar Teşekkür ve Sorular

Çalışmamız (Ne Yaptık?) Materyal Metot (Nasıl Yaptık?) Uygulama (Demo) Deneysel Sonuçlar Teşekkür ve Sorular Çalışmamız (Ne Yaptık?) Materyal Metot (Nasıl Yaptık?) Uygulama (Demo) Deneysel Sonuçlar Teşekkür ve Sorular Kinect Sensör Kullanıcı Denetimi 3D Yapay Zekâ Teknikleri Yapılan bu çalışma Kinect sensörden

Detaylı

KATEGORİ MİZANI BAŞLARKEN KATEGORİ NEDİR? NEDEN N İHTİYAÇ DUYULUR?

KATEGORİ MİZANI BAŞLARKEN KATEGORİ NEDİR? NEDEN N İHTİYAÇ DUYULUR? KATEGORİ MİZANI Doküman Kodu : RNT-02 Açıklama : Vio Kategori Mizanı Kullanımı Kapsam : Vio Nitelikleri Revizyon No : 2 Yayın Tarihi : Aralık 2012 BAŞLARKEN SKOR YAZILIM tarafından geliştirilen ticari

Detaylı

C# ÖRNEKLERİ.

C# ÖRNEKLERİ. C# ÖRNEKLERİ www.yazilimbilisim.net İçindekiler C# Dik Üçgende Hipotenüs Hesaplama... 2 C# DataGridView e Resim Ekleme... 3 C# Class Kullanarak Dik Üçgende Hipotenüs Hesaplama... 4 C# WPF Form Binary Saat

Detaylı

2 VISUAL STUDIO 2012 GELİŞTİRME ORTAMI

2 VISUAL STUDIO 2012 GELİŞTİRME ORTAMI İÇİNDEKİLER VII İÇİNDEKİLER 1 GİRİŞ 1 C# Hakkında Genel Bilgiler 1.NET Framework 1 CLR 2 CLR Ve CTS 2 Temel Sınıf Kütüphanesi 3 CIL 3 Algoritma Nedir? 4 Sözde Kod (Pseudocode) 5 2 VISUAL STUDIO 2012 GELİŞTİRME

Detaylı

Önce Access açıp,masaüstü ne, vt.mdb adlı veri tabanı dosyasını oluşturuyoruz. Kayıt türünü 2002-2003 seçiyoruz

Önce Access açıp,masaüstü ne, vt.mdb adlı veri tabanı dosyasını oluşturuyoruz. Kayıt türünü 2002-2003 seçiyoruz 9 Şubat 2012 / Perşembe Önce Access açıp,masaüstü ne, vt.mdb adlı veri tabanı dosyasını oluşturuyoruz. Kayıt türünü 2002-2003 seçiyoruz 1) emlakkategorisi adlı tabloyu oluşturuyoruz 1 2) ilanlar adlı tabloyu

Detaylı

C# Console Uygulamaları ifelse Yapıları 2

C# Console Uygulamaları ifelse Yapıları 2 C# Console Uygulamaları ifelse Yapıları 2 C# Console Uygulamaları if-else Yapıları 2 yazımızda if-else, else if kontrol yapılarının devamını programlar içerisinde göreceğiz. visual-studio-c-sharp Almak

Detaylı

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say İÇİNDEKİLER 1. Bilgisayarın Yapısı Ve Programlama Dilleri Giriş 1 Bilgisayar ve Programlamanın Kısa Bir Tarihçesi 2 Donanım ve Yazılım Kavramları 3 Bilgisayarın Donanımsal yapısı 4 Giriş Birimi (Input

Detaylı

PDF. C# Console Örnekleri.

PDF. C# Console Örnekleri. PDF C# Console Örnekleri www.yazilimbilisim.net İçindekiler C# Console For Döngüsüyle Piramit Oluşturma... 2 C# Console Rasgele Sayı Üretme... 3 C# Class Kullanarak Daire Alan ve Çevresini Hesaplama...

Detaylı

ESKİŞEHİR OSMANGAZİ ÜNİVERSİTESİ EĞİTİM FAKÜLTESİ BÖTE PROJE GELİŞTİRME VE YÖNETİMİ II DERSİ PROJE RAPORU

ESKİŞEHİR OSMANGAZİ ÜNİVERSİTESİ EĞİTİM FAKÜLTESİ BÖTE PROJE GELİŞTİRME VE YÖNETİMİ II DERSİ PROJE RAPORU ESKİŞEHİR OSMANGAZİ ÜNİVERSİTESİ EĞİTİM FAKÜLTESİ BÖTE PROJE GELİŞTİRME VE YÖNETİMİ II DERSİ PROJE RAPORU code.org ile KLASİK LABİRENT OLUŞTURMA Kod saatinin ilk dakikalarına hoş geldin! Hadi, beraber

Detaylı

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ AD SOYAD: TESLİM TARİHİ: OKUL NO: TESLİM SÜRESİ: 2 hafta ÖDEV NO: 5 1- BANKA

Detaylı

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması Ağaç, verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen hiyararşik yapıya sahip

Detaylı

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları Diziler Temel Bilgisayar Programlama Final Sınavı Çalışma Notları (Dr. Övünç ÖZTÜRK, Dr. Tahir Emre KALAYCI) (İnşaat Mühendisliği ve Gıda Mühendisliği Grupları İçin) Diziler aynı türden bilgileri saklamak

Detaylı

Engelliler İçin Akıllı Ev Otomasyon Sistemi

Engelliler İçin Akıllı Ev Otomasyon Sistemi Engelliler İçin Akıllı Ev Otomasyon Sistemi AKILLI BİNA NEDİR? Akıllı bina, binanın ısıtma, havalandırma, klima, aydınlatma, güvenlik ve diğer sistemler dahil olmak üzere otomatik olarak kontrol edilmesini

Detaylı

Özyineleme (Recursion)

Özyineleme (Recursion) C PROGRAMLAMA Özyineleme (Recursion) Bir fonksiyonun kendisini çağırarak çözüme gitmesine özyineleme (recursion), böyle çalışan fonksiyonlara da özyinelemeli (recursive) fonksiyonlar denilir. Özyineleme,

Detaylı

2003 yılında P.D.C. de WPF in duyurulması ile beraber yazılım alanında farklılaşmanın başladığını gördük. İlk değişim, tasarım kodlama alanının

2003 yılında P.D.C. de WPF in duyurulması ile beraber yazılım alanında farklılaşmanın başladığını gördük. İlk değişim, tasarım kodlama alanının 2003 yılında P.D.C. de WPF in duyurulması ile beraber yazılım alanında farklılaşmanın başladığını gördük. İlk değişim, tasarım kodlama alanının codebehind dan ayrılması oldu. Tasarım alanının kendi içerisinde

Detaylı

Android Ders Notları

Android Ders Notları Android Ders Notları 1. Yeni Bir Proje Başlatma Android Studio programında yeni bir proje başlatıyoruz. İlk olarak karşımıza resim 1 deki gibi bir pencere gelecek. Burada Application name kısmına proje

Detaylı

Görsel Programlama (Visual Programming) 2.Hafta

Görsel Programlama (Visual Programming) 2.Hafta Görsel Programlama (Visual Programming) 2.Hafta 2016-2017 Bahar Dönemi Class Yapısı ve Form 1Muhammer İLKUÇAR, MAKÜ-2015 BURDUR Class - Obje Nesne (Nesne tabanlı programlama) İnsan ırkının ortak özelliklerini

Detaylı

EĞİTİMDE BİLGİSAYAR PROGRAMLAMA

EĞİTİMDE BİLGİSAYAR PROGRAMLAMA EĞİTİMDE BİLGİSAYAR PROGRAMLAMA GEOMETRİK ŞEKİLLERİ YAKALAMA Geometrik şekilleri yakalama oyununda, kedi sylvester elinde geometrik şekillerin resmi olan pankart ile oyun alanı üzerinde rastgele pozisyonlarda

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları Konsol Uygulaması Oluşturma Konsol uygulaması oluşturmak için program açıldıktan sonra Create: Project ya da New Project seçeneği tıklanabilir. New Project penceresini açmak için farklı yollar da vardır.

Detaylı

2.Eclipse açıldıktan sonra Workspace alanı seçilmesi gerekir. Workspace alanı projelerinizin fiziksel olarak bulunduğu kısımdır.

2.Eclipse açıldıktan sonra Workspace alanı seçilmesi gerekir. Workspace alanı projelerinizin fiziksel olarak bulunduğu kısımdır. 1.Eclipse http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/juno/s R2/eclipse-jee-juno-SR2-win32.zip&mirror_id=1163 linkinden indiriyoruz. 2.Eclipse açıldıktan sonra

Detaylı

Bu gün dersimizde değişik web kontrollerinin kullanımını gösteren birkaç web sitesi hazırlayacağız. Önce Visual Studio 2005 i açalım.

Bu gün dersimizde değişik web kontrollerinin kullanımını gösteren birkaç web sitesi hazırlayacağız. Önce Visual Studio 2005 i açalım. Bu gün dersimizde değişik web kontrollerinin kullanımını gösteren birkaç web sitesi hazırlayacağız. Önce Visual Studio 2005 i açalım. VS2005 den yeni bir web sitesi oluşturmasını isteyelim. Yeni bir ASP.NET

Detaylı

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA GİRİŞ Bilgisayarların önemli bir kullanım amacı, veri ve bilgilerin kullanılarak var olan belirli bir problemin çözülmeye çalışılmasıdır. Bunun için, bilgisayarlar

Detaylı

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler BMÜ-111 Algoritma ve Programlama Bölüm 5 Tek Boyutlu Diziler Yrd. Doç. Dr. İlhan AYDIN 1 Problem 100 adet sayı okumak istediğimizi düşünelim. Bu sayıların ortalaması hesaplanacak ve sayıların kaç tanesinin

Detaylı

OKUL HABER EKLEME MODÜLÜ TANITIM DOSYASI. Okul haberlerinizi ilçemiz web sitesinde yayınlayabilmek için aşağıdaki adımları uygulamanız gerekmektedir.

OKUL HABER EKLEME MODÜLÜ TANITIM DOSYASI. Okul haberlerinizi ilçemiz web sitesinde yayınlayabilmek için aşağıdaki adımları uygulamanız gerekmektedir. OKUL HABER EKLEME MODÜLÜ TANITIM DOSYASI Okul haberlerinizi ilçemiz web sitesinde yayınlayabilmek için aşağıdaki adımları uygulamanız gerekmektedir. http://maltepe.meb.gov.tr/mebpanel adresine giriniz.

Detaylı

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI BİR BOYUTLU DİZİLER Amaçlar: 1. 1 BOYUTLU DİZİLERİ TANIMLAMAK 2. 1 BOYUTLU DİZİ UYGULAMALARI YAPMAK Örnek 5-1 Aşağıdaki program öğrenci notlarını bularak en iyi notu hesaplar. Harf notu şu şekilde hesaplanır:

Detaylı

Windows Mobile İşletim Sistemleri İçin Veri Giriş Yazılımı

Windows Mobile İşletim Sistemleri İçin Veri Giriş Yazılımı Windows Mobile İşletim Sistemleri İçin Veri Giriş Yazılımı Yasin Hınıslıoğlu 1 Mehmet Serdar Güzel 2 1 Ahmet Yesevi Üniversitesi Yönetim Bilişim Sistemleri Bölümü, Ankara 2 Ankara Üniversitesi Bilgisayar

Detaylı

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler C# Programlama Dili İlk programımız Tür dönüşümü Yorum ekleme Operatörler 1 İlk Programımız Bu program konsol ekranına Merhaba dünya! yazıp kapanır. Programı geçen derste anlatıldığı gibi derleyin, sonra

Detaylı

Kayan Yazı LED Tabela Kullanım Klavuzu

Kayan Yazı LED Tabela Kullanım Klavuzu Kayan Yazı LED Tabela Kullanım Klavuzu Öncelikle nı tercih ettiğiniz için teşekkür ederiz. Kayan Yazı LED Tabela tasarım programı olan PowerLED programını www.leonisikdunyasi.com/destek adresinden indirip

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği BAŞLAMADAN ÖNCE Bu dersi alan öğrencilerin aşağıdaki konuları bildiği

Detaylı

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ C# Yazım Kuralları 1 İçindekiler C# Yazım Kuralları Veritipleri Değişkenler Operatörler Sınıflar Nesneler, Özellik, Metot ve Olay Bileşenler 2 C# yazım kuralları Deyimlerde büyük küçük harf yazıma uyulmalı

Detaylı

.. ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI

.. ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI .. ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE 2018 2019 ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI Hazırlayan : Özel Öğretim Kurumları Birliği (ÖZKURBİR) Dersin Adı : Bilişim

Detaylı

İl İlçe uygulaması. : Seçilen ile ait ilçeleri listeleyen program. //İl değişkeni için kodu aşağıdaki sayfadan kopyalayınız.

İl İlçe uygulaması. : Seçilen ile ait ilçeleri listeleyen program. //İl değişkeni için kodu aşağıdaki sayfadan kopyalayınız. İl İlçe uygulaması //İl değişkeni için kodu aşağıdaki sayfadan kopyalayınız Açıklama : Seçilen ile ait ilçeleri listeleyen program String [,] il= private void Form1_Load(object sender, EventArgs e) { for

Detaylı

Android Telefonlarla Yol Bozukluklarının Takibi: Kitle Kaynaklı Alternatif Çözüm

Android Telefonlarla Yol Bozukluklarının Takibi: Kitle Kaynaklı Alternatif Çözüm Galatasaray Üniversitesi Android Telefonlarla Yol Bozukluklarının Takibi: Kitle Kaynaklı Alternatif Çözüm Mustafa Tekeli, Özlem Durmaz İncel İçerik Giriş Literatür Özeti Sistem Mimarisi / Metodoloji Öncül

Detaylı

Bilgisayar Programcılığı. Görsel Programlama-I. Öğr. Gör. Cansu AYVAZ GÜVEN

Bilgisayar Programcılığı. Görsel Programlama-I. Öğr. Gör. Cansu AYVAZ GÜVEN Bilgisayar Programcılığı Görsel Programlama-I Öğr. Gör. Cansu AYVAZ GÜVEN DİYALOG PENCERELERİ MessageBox File Dialog Pencereleri o ColorDialog o FolderBrowserDialog o FontDialog o OpenFileDialog o SaveFileDialog

Detaylı

1. Hafta MS SQL Server 2008 Kurulum ve Tanıtımı BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: Kurulum:

1. Hafta MS SQL Server 2008 Kurulum ve Tanıtımı BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: Kurulum: Bu Derste Öğrenecekleriniz: 1- MS SQL Server 2008 Kurulumu ve Tanıtımı 2- Komut Kullanarak Veritabanı Oluşturma ve Silme 3- SQL Yazım Kuralları Kurulum: Sistem gereksinimleri: Desteklenen işletim sistemleri:

Detaylı

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş C Programlama Dr. Serkan DİŞLİTAŞ 1.1. C# ile Program Geliştirme.Net Framework, Microsoft firması tarafından

Detaylı

NOT: VERİTABANINDAKİ TABLOLARI OLUŞTURMAYI DA UNUTMAYACAĞIZ.

NOT: VERİTABANINDAKİ TABLOLARI OLUŞTURMAYI DA UNUTMAYACAĞIZ. 20 Ocak 2012 / Cuma Yeni uygulama Yönetim adlı bir klasör oluşturacağız. Yönetim klasörü içerisine bir masterpage oluşturacağız. (tabloyla) Örneğin; Ana Sayfa Albüm ekle Fotoğraf ekle Content Place Holder(Değişecek

Detaylı

Dijital (Sayısal) Fotogrametri

Dijital (Sayısal) Fotogrametri Dijital (Sayısal) Fotogrametri Dijital fotogrametri, cisimlere ait iki boyutlu görüntü ortamından üç boyutlu bilgi sağlayan, sayısal resim veya görüntü ile çalışan fotogrametri bilimidir. Girdi olarak

Detaylı

Görsel Programlama (Visual Programming) 2.Hafta

Görsel Programlama (Visual Programming) 2.Hafta Muhammer İLKUÇAR, MAKÜ-2015 BURDUR Görsel Programlama (Visual Programming) 2.Hafta 2014-2015 Bahar Dönemi CLASS YAPISI 1 Muhammer İLKUÇAR, MAKÜ-2011 BURDUR Class - Obje Nesne (Nesne tabanlı programlama)

Detaylı

İnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler

İnternet Programcılığı Öğr. Gör. Serkan AKSU  PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler PHP de Dizi-Değişkenler, Nesneler Dizilerle ilgili örneklere geçmeden önce aşağıdaki tabloyu inceleyelim. Tabloda dizi kavramının mantığı açıklanmaktadır. Tablonun tamamını bir dizi olarak düşünün ve bu

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA

NESNEYE YÖNELİK PROGRAMLAMA NESNEYE YÖNELİK PROGRAMLAMA Metotlar Şu ana kadar yaptığımız örneklerde hep önceden hazırlanmış ReadLine(), WriteLine() vb. gibi metotları kullandık. Artık kendi metotlarımızı yapmanın zamanı geldi. Bilmem

Detaylı

Programlama Dilleri 3

Programlama Dilleri 3 Diziler (Arrays) 1 Dizi Kavramı Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların

Detaylı

SINIF İÇİ UYGULAMA KODLARI

SINIF İÇİ UYGULAMA KODLARI SINIF İÇİ UYGULAMA KODLARI ARABA HAREKET ETTİRME using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text;

Detaylı

Ders Tanıtım Sunumu. Database Managegement II. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Ders Tanıtım Sunumu. Database Managegement II. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU Ders Tanıtım Sunumu Database Managegement II Elbistan Meslek Yüksek Okulu 2016 2017 Güz Yarıyılı Öğr. Gör. Murat KEÇECĠOĞLU 08 Eyl. 2016 KURULUM SQL SERVER 2016 yılı başlarında piyasaya çıkan SQL Server

Detaylı

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş Kurulum için ilk önce Sun Microsystems in sitesinden uygun J2SE sürümünü indirin. Ben J2SE v1. 4. 2_16 Windows Installer paketini kullandım J2SE SDK Kurulumu aşağıdaki gibi başlayacaktır. 1 Kurulum tamamlandıktan

Detaylı

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

Ders 4: Diziler (Arrays( Arrays) barisgokce.com Ders 4: Diziler (Arrays( Arrays) Hazırlayan : Öğr. Grv.. Barış GÖKÇE Đletişim im : www.barisgokce barisgokce.com Diziler Aynı tipteki bir veri gurubunun bir değişken içinde saklanmasıdır. Veriler Hafızada

Detaylı

Data Structures Lab 1 2012-Güz

Data Structures Lab 1 2012-Güz Data Structures Lab 1 2012-Güz C# Ortamı Tanıtımı ve Uygulama Geliştirilmesi Visual Studio 2010 Ortamının Temini -NYG'ndan MSDN üyeliği için başvuru dilekçesi alınıp doldurulmalı ve yine NYG'ye teslim

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Grafik Programlama Bilgisayar kullanılırken monitörlerde iki tür ekran moduyla karşılaşılır. Bu ekran modları Text modu ve Grafik modu dur. Text modunda ekran 25 satır ve 80 sütundan

Detaylı

Sanal Ortamda Nesnelerin Haptic Kol ile Manipülasyonu. Sevcan AYTEKİN Alpaslan DUYSAK

Sanal Ortamda Nesnelerin Haptic Kol ile Manipülasyonu. Sevcan AYTEKİN Alpaslan DUYSAK Sanal Ortamda Nesnelerin Haptic Kol ile Manipülasyonu Sevcan AYTEKİN Alpaslan DUYSAK İÇERİK Amaç Sanal Ortam Sanal Ortam Aygıtları Uygulama Alanları Üç Boyutlu Modelleme (3B) OpenGL, 3Dmax Sanal Ortamın

Detaylı

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI)

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI) MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI) Yard. Doç. Dr. Alper Kürşat Uysal Bilgisayar Mühendisliği Bölümü akuysal@anadolu.edu.tr Ders Web

Detaylı

Görsel Programlama 1

Görsel Programlama 1 Görsel Programlama 1 1. Ekrana Hello world! yazan c# console application kodları: Console.Write("Hello world!"); 2. Ekranda ilk satıra Hello, ikinci satıra world! yazan kod: Console.WriteLine("Hello");

Detaylı

Veri Yapıları Laboratuvarı

Veri Yapıları Laboratuvarı 2013 2014 Veri Yapıları Laboratuvarı Ders Sorumlusu: Yrd. Doç. Dr. Hakan KUTUCU Lab. Sorumlusu: Arş. Gör. Caner ÖZCAN İÇİNDEKİLER Uygulama 1: Diziler ve İşaretçiler, Dinamik Bellek Ayırma... 4 1.1. Amaç

Detaylı

Örnek bir Algoritma. Örneğimiz bir insanın evden çıkıp işe giderken izleyeceği yolu ve işyerine girişinde ilk yapacaklarını tanımlamaktadır.

Örnek bir Algoritma. Örneğimiz bir insanın evden çıkıp işe giderken izleyeceği yolu ve işyerine girişinde ilk yapacaklarını tanımlamaktadır. Örnek bir Algoritma Örneğimiz bir insanın evden çıkıp işe giderken izleyeceği yolu ve işyerine girişinde ilk yapacaklarını tanımlamaktadır. Çözüm 1: 1. Evden dışarıya çık 2. Otobüs durağına yürü 3. Durakta

Detaylı

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6 ix Yazılım Nedir? 2 Yazılımın Tarihçesi 3 Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5 Yazılımın Önemi 6 Yazılımcı (Programcı) Kimdir? 8 Yazılımcı Olmak 9 Adım Adım Yazılımcılık 9 Uzman

Detaylı

CBÜ Teknoloji Fakültesi, Yazılım Mühendisliği. Nesneye Yönelik Programlama

CBÜ Teknoloji Fakültesi, Yazılım Mühendisliği. Nesneye Yönelik Programlama CBÜ Teknoloji Fakültesi, Yazılım Mühendisliği Nesneye Yönelik Programlama Uygulama 1 Senaryo: Kisi sınıfı TCKimlikNo, Isim ve Adres bilgilerine sahip olup, Adres bilgisi de aynı zamanda bir sınıftır. Adres

Detaylı

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş Yard. Doç. Dr. Alper Kürşat Uysal Bilgisayar Mühendisliği Bölümü akuysal@anadolu.edu.tr Ders Web Sayfası: http://ceng.anadolu.edu.tr/ders.aspx?dersid=101

Detaylı

Scratch 2.0 GOL OYUNU

Scratch 2.0 GOL OYUNU Scratch 2.0 GOL OYUNU Algoritma: 1. Sahneye top sahası dekoru ekleyelim. 2. 3. Sahneye kütüphaneden top kuklası ekleyelim. 4. Top kuklasına komut olarak: - Topa tıklandığında hareket et, - Eğer kırmızı

Detaylı

NOT: Bazı donanımlar giriş hemde çıkış donanımıdır. HEM GİRİŞ- HEM ÇIKIŞ BİRİMİ OLAN DONANIMLAR SABİT DİSK HAFIZA KARTLARI FLASH BELLEK

NOT: Bazı donanımlar giriş hemde çıkış donanımıdır. HEM GİRİŞ- HEM ÇIKIŞ BİRİMİ OLAN DONANIMLAR SABİT DİSK HAFIZA KARTLARI FLASH BELLEK ÇEVRE BİRİMLERİ Giriş ve çıkış donanımları Giriş donanımları Çıkış donanımları Klayve fare Tarayıcı HEM GİRİŞ- HEM ÇIKIŞ BİRİMİ OLAN DONANIMLAR SABİT DİSK HAFIZA KARTLARI FLASH BELLEK Monitör(ekran) Yazıcı

Detaylı

ÖDEVLERİ SİSTEME YÜKLEME USULLERİ

ÖDEVLERİ SİSTEME YÜKLEME USULLERİ ÖDEVLERİ SİSTEME YÜKLEME USULLERİ Sistem yüklenecek ödevlerin hepsi PDF formatında olacaktır. Ödevlerinizi PDF formatında hazırlamak için aşağıdaki yöntemleri kullanabilirsiniz. Buradaki anlatımlarda hazırladığınız

Detaylı

BİYOMETRİK İRİS SINIFLANDIRMA SİSTEMLERİ

BİYOMETRİK İRİS SINIFLANDIRMA SİSTEMLERİ BİYOMETRİK İRİS SINIFLANDIRMA SİSTEMLERİ Emre DANDIL, K.İBRAHİM KAPLAN Akademik Bilişim 2013 İnternet ve bilgisayar teknolojilerinin etkin kullanılmaya başlanması ile birlikte, bazı kişisel bilgilere veya

Detaylı

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Kullanıcıdan aldığı veri ya da bilgilerle kullanıcının isteği doğrultusunda işlem ve karşılaştırmalar yapabilen, veri ya da bilgileri sabit disk,

Detaylı

WeldEYE. Kurulum Kılavuzu. İçindekiler

WeldEYE. Kurulum Kılavuzu. İçindekiler WeldEYE Kurulum Kılavuzu İçindekiler Giriş... Hata! Yer işareti tanımlanmamış. Kurulum... Hata! Yer işareti tanımlanmamış. Sistem/Ortam gerekleri... 3 Yazılımın kurulması... 3 Kamera sürücüsünün kurulumu...

Detaylı

C# nedir,.net Framework nedir?

C# nedir,.net Framework nedir? 1 C# nedir,.net Framework nedir? C# nedir? C#, C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip iyi yönlerinin alındığı, güçlü basit, esnek, tip-güvenli(typesafe,tür dönüşümlerindeki

Detaylı

İNTERNET TABANLI PROGRAMLAMA- 3.ders

İNTERNET TABANLI PROGRAMLAMA- 3.ders DİZİLER İNTERNET TABANLI PROGRAMLAMA- 3.ders Diziler bir çok bilgiyi tek bir değişken içerisinde tutmamızı sağlayan ifadelerdir. Dizide tutulan bilgiler Ram da tutulur. Elektrikler kesildiğinde dizideki

Detaylı

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta Ön bilgi: Özyineli fonksiyon tanımlanabilmeli. Dizilerin fonksiyon parametresi veya geri dönüş değeri olarak kullanımı bilinmeli. 1. Klavyeden girilen sayı n olmak üzere [1..n] aralığındaki sayıların toplamı

Detaylı

2007-2008 Bahar. BM 211 Programlama Dilleri 3 1

2007-2008 Bahar. BM 211 Programlama Dilleri 3 1 Programlama Dilleri III 2007-2008 Bahar BM 211 Programlama Dilleri 3 1 Ders Hakkında Ders Sorumlusu Öğr.Gör. Bora UĞURLU Ders Slaytları İçin http://members.comu.edu.tr/boraugurlu/ Dersle İlgili İletişim

Detaylı

MMT 106 Teknik Fotoğrafçılık 3 Digital Görüntüleme

MMT 106 Teknik Fotoğrafçılık 3 Digital Görüntüleme MMT 106 Teknik Fotoğrafçılık 3 Digital Görüntüleme 2010-2011 Bahar Yarıyılı Ar. Gör. Dr. Ersoy Erişir 1 Konvansiyonel Görüntüleme (Fotografi) 2 Görüntü Tasarımı 3 Digital Görüntüleme 3.1 Renkler 3.2.1

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 2 C# Programlama Dili Elemanları Bu bölümde;

Detaylı

WEB KULLANICI KONTROLLERİ ve ANASAYFA KULLANMA(Master Page)

WEB KULLANICI KONTROLLERİ ve ANASAYFA KULLANMA(Master Page) WEB KULLANICI KONTROLLERİ ve ANASAYFA KULLANMA(Master Page) WEB KULLANICI KONTROLLERİ Kullanıcı kontrolleri bir içeriğin birden fazla sayfada kullanılmasına olanak sağlar. Bir web sayfasına eklenerek içerik

Detaylı

DORYA ROBOTİK. İçindekiler. Kitap Sayfa Sayısı: 80 Kitap Fiyatı: 24,00 TL

DORYA ROBOTİK. İçindekiler. Kitap Sayfa Sayısı: 80 Kitap Fiyatı: 24,00 TL Kitap Sayfa Sayısı: 80 Kitap Fiyatı: 24,00 TL Kod bloklarıyla hiç zorlanmadan mobil uygulama geliştirmeye olanak veren App Inventor platformunun anlatıldığı bu kitapta bilgisayar dersini zenginleştirecek

Detaylı

«BM364» Veritabanı Uygulamaları

«BM364» Veritabanı Uygulamaları HAFTA 8 DB içerisinde CLR Bileşenleri" Yaşar GÖZÜDELİ ygozudeli@verivizyon.com http://blog.verivizyon.com/ygozudeli «BM364» Veritabanı Uygulamaları Konu Akışı SQL Server ve.net CLR SQL Server içerisinde

Detaylı

Bilgi ve Olay Yönetim Sistemi

Bilgi ve Olay Yönetim Sistemi 1 Bilgi ve Olay Yönetim Sistemi Kurulum Kılavuzu Nisan 2016 Versiyon Sürüm 2.1.3 2 İçindekiler Bilgi ve Olay Yönetim Sistemi... 1 1. Sistem Gereksinimleri... 3 2. Kurulum... 3 3. Lisanslama... 10 4. Windows

Detaylı

Lambda İfadeleri (Lambda Expressions)

Lambda İfadeleri (Lambda Expressions) Lambda İfadeleri (Lambda Expressions) Lambda İfadeleri, değişkenlere değer atamak için kullanılan sadeleştirilmiş anonim (isimsiz) fonksiyonlardır. Bu fonksiyonlar matematikteki ve bilgisayar bilimlerindeki

Detaylı

Archive Player Divar Series. Kullanım kılavuzu

Archive Player Divar Series. Kullanım kılavuzu Archive Player Divar Series tr Kullanım kılavuzu Archive Player İçindekiler tr 3 İçindekiler 1 Giriş 4 2 Çalışma 5 2.1 Programın başlatılması 5 2.2 Ana pencere tanıtımı 6 2.3 Açma düğmesi 6 2.4 Kamera

Detaylı

5S7 OYUN YAZIYORUM GENEL BAKIŞ A. PROJE - YILDIZ TOPLAYAN ÇOCUK

5S7 OYUN YAZIYORUM GENEL BAKIŞ A. PROJE - YILDIZ TOPLAYAN ÇOCUK GENEL BAKIŞ ÖĞRENME ÇIKTILARI Blok temelli programlama ortamında sunulan hedeflere ulaşmak için doğru algoritmayı oluşturur. Doğrusal mantık yapısını uygular. Döngü mantık yapısını uygular. Karar mantık

Detaylı

Muayene olmamış sekmesinde seçili hasta üzerinde sağ klik Randevu Kabul ile Açılan Randevu Kabul İşlemleri ekranından hasta randevusu kabul edilerek

Muayene olmamış sekmesinde seçili hasta üzerinde sağ klik Randevu Kabul ile Açılan Randevu Kabul İşlemleri ekranından hasta randevusu kabul edilerek Muayene olmamış sekmesinde seçili hasta üzerinde sağ klik Randevu Kabul ile Açılan Randevu Kabul İşlemleri ekranından hasta randevusu kabul edilerek muayeneye başlanır. Anamnez Toplu Metin sekmesinde kullanıcı

Detaylı

Aynı tipten çok sayıda değişken topluluğudur. X Y Score1 Score2 (0) (1) (2)...

Aynı tipten çok sayıda değişken topluluğudur. X Y Score1 Score2 (0) (1) (2)... Array (Diziler) Array Aynı tipten çok sayıda değişken topluluğudur. Birden fazla aynı tipteki değerle işlem yapmayı kolaylaştırır. X Y Score1 Score2 40 56 Grade 40 56 80 (0) (1) (2)... (13) Array tanımlama:

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 1 GUI Nesneleri ve Visual Studio IDE Kullanımı

Detaylı

Analiz Raporu. Projenin amacının, konusunun, işlevinin ne olacağı, hangi yazılımlar kullanılacak gibi parametrelerin belirlenmesi.

Analiz Raporu. Projenin amacının, konusunun, işlevinin ne olacağı, hangi yazılımlar kullanılacak gibi parametrelerin belirlenmesi. Grup İsmi Analiz Raporu Hüsna GÖÇER Merve SEYHAN Kısa Özet Projemiz Personel Takip Sistemi dir. Giriş ekranında iki tane ayrı kullanıcı girişi bulunmaktadır. Birincisi personel girişi, ikincisi yönetici

Detaylı

AKINSOFT Tahsilex. Yardım Dosyası. Doküman Versiyon : 1.01.01 Tarih : 23.12.2010. Sayfa-1. Copyright 2010 AKINSOFT

AKINSOFT Tahsilex. Yardım Dosyası. Doküman Versiyon : 1.01.01 Tarih : 23.12.2010. Sayfa-1. Copyright 2010 AKINSOFT AKINSOFT Yardım Dosyası Doküman Versiyon : 1.01.01 Tarih : 23.12.2010 Sayfa-1 1- ÇALIŞMA ŞEKLİ HAKKINDA GENEL BİLGİ AKINSOFT programı, fatura tahsilatı yapan tüm işletmelere hitap etmektedir. Program içerisinde

Detaylı

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1 Görsel Programlama DERS 03 Görsel Programlama - Ders03/ 1 Java Dili, Veri Tipleri ve Operatörleri İlkel(primitive) Veri Tipleri İLKEL TİP boolean byte short int long float double char void BOYUTU 1 bit

Detaylı

Zaman Ayarlayıcı İşlemler

Zaman Ayarlayıcı İşlemler Zaman Ayarlayıcı İşlemler LOGO Haziran 2008 İçindekiler Logo-GO Zaman Ayarlayıcı İşlemler...3 Zamanlanmış Görevler...5 Zamanlanmış Görev Bilgileri...5 Hatırlatıcı...8 Hatırlatıcı Bilgileri...9 Mesajlar...11

Detaylı