İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ



Benzer belgeler
KUYRUKLAR QUEUES. Doç. Dr. Aybars UĞUR

PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI. BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

KUYRUKLAR. Doç. Dr. Aybars UĞUR

İki Yöntem. Komposizyon (Composition) Kalıtım (Inheritance)

Sınıfların Tekrardan Kullanılması. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 1

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

7. HAFTA. Erişim Belirleyiciler

POLIMORFIZM. Java ve Yazılım Tasarımı ; Bölüm- 6. Örnek: PolimorfizmOrnekBir.java (yorum ekle)

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 7

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

BİL-141 Bilgisayar Programlama I (Java)

Bölüm 6. Karma. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 31

YZM 2116 Veri Yapıları

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır.

YMT219 VERİ YAPILARI ÖDEV-1

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

Arasınav Örnek Soruları Bahar 2018

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

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

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58;

Merge (Bireşim) Algoritmayı önce bir örnek üzerinde açıklayalım.

Bire-bir Sahiplik İlişkisi ile İlgili Sorular:

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi

Yigin & Kuyruk {\} /\ Suhap SAHIN Onur GÖK

Polimorfizm. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 6 1

D İ Z İ L E R A R R A Y S

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Arayüz (Interface) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 7 1

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

İçerik. Kapsülleme ( Encapsulation ) Java da Kalıtım: Örnek 2.1. Kalıtım ( Inheritance ) Tekrar Ziyaret. Java da Kalıtım: Örnek 2.2.

Karşılaştırma İşlemleri ve Koşullu İfadeler

MAT213 Bilgisayar Programlama I

Bölüm 8. Ayrık Küme. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 16

Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama

NESNEYE DAYALI PROGRAMLAMA 9. HAFTA UYGULAMA DERSİ

Sınav Dağılım & IMKB Endeks

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 6

İST 264 VERİ YAPILARI Bitirme Sınavı A Grubu

Veri Yapıları ve Algoritmalar dönem

Nesne Yönelimli Programlama

VERİ YAPILARI DERS NOTLARI BÖLÜM 5 QUEUE (KUYRUK) Yard. Doç. Dr. Deniz KILINÇ

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

MOBIL UYGULAMA GELIŞTIRME

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

Yığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır.

Final Sınavı Örnek Soruları Bahar 2018

Interface Comparator. Kılgılayan sınıf: Collator. Bildirimi: public interface Comparator

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

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ

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

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

Paket Erişimleri. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1

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

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

3.Hafta. . Kontrol Deyimleri/İfadeler

Java dili, aşağıdakiler de dahil olmak üzere çok çeşitli denetleyici türlerine sahiptir.

Chain of Responsibility Tasarım Şablonu KurumsalJava.com

Ağaçlar (Trees) Ağaçlar (Trees)

Erişim konusunda iki taraf vardır:

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

Yrd. Doç. Dr. Caner ÖZCAN

AĞAÇLAR. Doç. Dr. Aybars UĞUR

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

Java da Program Denetimi ve Operatörler. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 2 1

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 9

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

Programlama Dili Prensipleri. Lab Notları 4

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

AĞAÇLAR TREES. Doç. Dr. Aybars UĞUR

Java da İşleçler, Ders #3 (4 Kasım 2009)

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA. Muhammet BAYKARA

JAVADA DİZİ İŞLEMLERİ

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

Nesne Yönelimli Programlama

Nesne Yönelimli Programlama

Görsel Programlama (Visual Programming)

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

GÜZ YY. - MKT103 - GÖRSEL PROGRAMLAMA DERSİ - ARA SINAVI

Görsel Programlama. Temel Veri Tipleri, Değişkenler, Operatörler, Akış Kontrolü, Sınıflar, Metotlar, Paketler ve JavaDoc

Lambda İfadeleri (Lambda Expressions)

Ana sınıf içerisinde tanımlanmış bir yordam, ana sınıftan türeyen bir alt sınıfın içerisinde iptal edilebilir. ()

Java String İşlemleri

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF

Java Dersi. Altuğ Bilgin Altıntaş

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

Yazılım Kodlama ve İ simlendirme Standartları v1.0

Transkript:

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ AD SOYAD : TESLİM TARİHİ : OKUL NO : TESLİM SÜRESİ : 2 hafta Ödev No : 8 1. ve 2. soruların sayfa çıktıları üzerinde el ile çözümleme yapılacaktır. Ekran çıktıları hesaplanarak altlardaki boşluklara yazılacaktır. Uygulama programları olan 3. Soru ise laboratuvarda kontrol edilmeyecek ödev teslim mailine mail yoluyla gönderilecektir. 4. Sorunun UML diyagramı 1. 2. Soru gibi elden teslim edilecek kodlanan sınıflar ise 3. Sorudaki gibi ECLIPSE editöründe kodlanarak mail yolu iödev teslim e-postasına gönderilecektir. 1- Aşağıda kalıtım ve override işlemleri ile ilgili JAVA kodları verilmiştir. Bu kodları el yordamı ile çözerek çıktılarını altlarına yazınız. class Vehicle { public void move() { System.out.println("araç kullan"); class Car extends Vehicle { public void move() { super.move(); System.out.println("otomobil kullan"); public static void main(string[] args) { Vehicle b = new Car(); b.move(); class X { public void methoda() { System.out.println("X sınıfı metodu"); public void metodb() { System.out.println("X sınıfı B metodu"); class Y extends X { public void methoda() { System.out.println("Y sınıfı metodu"); X obj1 = new X(); Y obj2 = new Y(); obj1.methoda(); obj2.methoda(); obj1.metodb(); obj2.metodb(); class A { public A() { System.out.println("New A"); class B extends A { public B() { super(); System.out.println("New B"); public static void main(string[] args) { B b = new B(); class Animal { public Animal() { System.out.println("yeni hayvan oluşturuldu!"); public void sleep() { System.out.println("hayvanlar uyur"); public void eat() { System.out.println("hayvanlar yer"); class Bird extends Animal { public Bird() { super(); System.out.println("yeni kuş oluşturuldu"); public void sleep() { System.out.println("kuşlar uyur"); public static void main(string[] args) { Animal animal = new Animal(); Bird bird = new Bird(); animal.sleep(); animal.eat(); bird.sleep(); bird.eat();

class Hayvan { public Hayvan() { System.out.println("yeni bir hayvan oluştu"); public void uyu() { System.out.println("hayvanlar uyur"); public void ye() { System.out.println("hayvanlar yer"); class Kopek extends Hayvan { public Kopek() { super(); System.out.println("yeni bir kökek oluştu"); public void uyu() { System.out.println("köpek uyuyor"); public void ye() { System.out.println("köpek yiyiyor"); class Kangal extends Kopek { public Kangal() { super(); System.out.println("KANGAL türü köpek oluştu"); public void cobanlikyap() { System.out.println("KANGAL çobanlık yapıyor"); public static void main(string[] args) { Kangal kangal = new Kangal(); kangal.uyu(); kangal.ye(); kangal.cobanlikyap(); class KontrolMerkezi { public static void checkup(sporcu s) { s.calis(); class Sporcu { System.out.println("Sporcu.calis()"); public class Futbolcu extends Sporcu { System.out.println("Futbolcu.calis()"); Sporcu s = new Sporcu(); Futbolcu f = new Futbolcu(); KontrolMerkezi.checkUp(s); KontrolMerkezi.checkUp(f); class Worker { public void work(double a) { System.out.println("Worker.work()"); class Manager extends Worker { public void work(int a) { // adas yordam (overloaded) System.out.println("Manager.work()"); class XX { public XX(int par) { System.out.println("XX Yapilandiricisi " + par); class YY extends XX { public YY(int par) { super(par + 1); System.out.println("YY Yapilandiricisi " + par);

Manager m = new Manager(); m.work(3.3); m.work(2); class ZZ extends YY { public ZZ(int par) { super(par + 1); System.out.println("ZZ Yapilandiricisi " + par); ZZ zz = new ZZ(5); class Animal { class Mammal extends Animal { class Reptile extends Animal { class Dog extends Mammal { Animal a = new Animal(); Mammal m = new Mammal(); Dog d = new Dog(); System.out.println(m instanceof Animal); System.out.println(d instanceof Mammal); System.out.println(d instanceof Animal); class X { public void methodx() { System.out.println("X sınıf methodu"); class Y extends X { public void methody() { System.out.println("Y sınıf methodu"); public class Kalitim extends Y { public void methodz() { System.out.println("Kalıtım sınıf methodu"); Kalitim obj = new Kalitim(); obj.methodx(); obj.methody(); obj.methodz(); class Vehicle { String vehicletype; class Car extends Vehicle { String modeltype; public void showdetail() { vehicletype = "Car"; modeltype = "sports"; System.out.println(modelType +" " +vehicletype); Car car = new Car(); car.showdetail(); class Parent { class Child extends Parent { public void details() { super.name = "Parent"; name = "Child"; System.out.println(super.name + and " +name); Child cobj = new Child(); cobj.details(); class Parent { public void details() { name = "Parent"; System.out.println(name); class Child extends Parent { public void details() { super.details(); name = "Child"; System.out.println(name); class Parent { public Parent(String n) { name = n; class Child extends Parent { public Child(String n1, String n2) { super(n1); this.name = n2; public void details() { System.out.println(super.name +" and " +name);

Child cobj = new Child(); cobj.details(); Child cobj = new Child("Parent", "Child"); cobj.details(); class Box { double width; double height; double depth; Box(double w, double h, double d) { width = w; height = h; depth = d; void getvolume() { System.out.println("Boyut: " + width * height * depth); class MatchBox extends Box { double weight; MatchBox(double w, double h, double d, double m){ super(w, h, d); weight = m; class Counter { int i = 0; Counter increment() { i++; return this; void print() { System.out.println("i = " + i); public class Kalitim extends Counter { Kalitim x = new Kalitim(); x.increment().increment().increment().print(); MatchBox mb1 = new MatchBox(10, 10, 10, 10); mb1.getvolume(); System.out.println("mb1 genişliği " + mb1.width); System.out.println("mb1 yüksekliği" +mb1.height); System.out.println("mb1 derinliği " + mb1.depth); System.out.println("mb1 ağırlığı " + mb1.weight); 2- Aşağıda çok biçimlilik soyut sınıf işlemleri ile ilgili JAVA kodları verilmiştir. Bu kodları el yordamı ile çözerek çıktılarını altlarına yazınız. class Asker { public void selamver() { System.out.println("Asker Selam verdi"); class Hayvan { public void avyakala() { System.out.println("Hayvan avyakala"); class Er extends Asker { public void selamver() { System.out.println("Er Selam verdi"); class Kartal extends Hayvan { public void avyakala() { System.out.println("Kartal avyakala"); class Yuzbasi extends Asker { public void selamver() { System.out.println("Yuzbasi Selam verdi"); class Timsah extends Hayvan { public void avyakala() { System.out.println("Timsah avyakala"); public class ilkclass1 { public static void hazirol(asker a) { a.selamver(); Asker a = new Asker(); Er e = new Er(); public class ilkclass1 { public static Hayvan hayvansec(int sec) { Hayvan h = null; if (sec == 0) h = new Hayvan(); if (sec == 1) h = new Kartal();

Yuzbasi y = new Yuzbasi(); hazirol(a); hazirol(e); hazirol(y); if (sec == 2) h = new Timsah(); return h; Hayvan[] h = new Hayvan[3]; for (int i = 0; i < 3; i++) { h[i] = hayvansec(i); for (int j = 0; j < 3; j++) { h[j].avyakala(); abstract class Arac { int deger; public abstract void Uret(); class Otomobil extends Arac { public void Uret() { System.out.println("OTOMOBİL ÜRETİLDİ"); class Kamyon extends Arac { public void Uret() { System.out.println("Kamyon ÜRETİLDİ"); class Minubus extends Arac { public void Uret() { System.out.println("Minubus ÜRETİLDİ"); public class ilkclass1 { public static void main(string[] args) { Arac ar = null; switch (2) { case 1: ar = new Otomobil(); break; case 2: ar = new Minubus(); break; case 3: ar = new Kamyon(); break; ar.uret(); class Calisan { public String pozisyon = "Calisan"; class Mudur extends Calisan { public Mudur() { pozisyon = "Mudur"; System.out.println("Mudur class Programci extends Calisan { public Programci() { pozisyon = "Programci"; System.out.println("Programci class Pazarlamaci extends Calisan { public Pazarlamaci() { pozisyon = "Pazarlamaci"; System.out.println("Pazarlamaci public static void mesaibasla(calisan[] c) { for (int i = 0; i < c.length; i++) { c[i].calis(); Calisan[] c = new Calisan[4]; c[0] = new Calisan(); c[1] = new Programci(); c[2] = new Pazarlamaci(); c[3] = new Mudur(); mesaibasla(c); abstract class Calisan { public String pozisyon; abstract public void calis(); class Mudur extends Calisan { public Mudur() { pozisyon = "Mudur"; System.out.println("Mudur abstract class Calisan { public String pozisyon; abstract public void calis(); class Mudur extends Calisan { public Mudur() { pozisyon = "Mudur"; System.out.println(pozisyon +"

class Programci extends Calisan { public Programci() { pozisyon = "Programci"; System.out.println("Programci public void zamiste() { System.out.println("Programci Zam Istiyor"); public static void mesaibasla(calisan[] c) { for (int i = 0; i < c.length; i++) { c[i].calis(); Calisan[] c = new Calisan[2]; c[0] = new Programci(); c[1] = new Mudur(); mesaibasla(c); class Programci extends Calisan { public Programci() { pozisyon = "Programci"; System.out.println(pozisyon +" public static void mesaibasla(calisan[] c) { for (int i = 0; i < c.length; i++) { c[i].calis(); Calisan[] c = new Calisan[2]; c[0] = new Programci(); c[1] = new Mudur(); mesaibasla(c); abstract class Calisan { public String pozisyon; abstract public void calis(); public void zamiste() { System.out.println("Calisan zam istiyor"); class Mudur extends Calisan { public Mudur() { pozisyon = "Mudur"; System.out.println(pozisyon + " class Programci extends Calisan { public Programci() { pozisyon = "Programci"; System.out.println(pozisyon + " public void zamiste() { System.out.println(pozisyon + " zamiste"); public static void mesaibasla(calisan[] c) { for (int i = 0; i < c.length; i++) { c[i].calis(); Calisan[] c = new Calisan[2]; c[0] = new Programci(); c[1] = new Mudur(); mesaibasla(c); c[0].zamiste(); c[1].zamiste(); abstract class Sekil { public abstract int cevre(); public abstract int alan(); class Dikdortgen extends Sekil { private int boy; private int en; public Dikdortgen(int boy, int en){ this.boy=boy; this.en=en; public int cevre() { return (2 * (boy + en)); public int alan() { return (boy * en); class Cember extends Sekil { private int yaricap; public Cember(int yaricap){ this.yaricap=yaricap; public int cevre() { return (2 * 3 * yaricap); public int alan() { return (3 * yaricap * yaricap); class EsUcgen extends Sekil { private int kenar; private int yukseklik; public EsUcgen(int kenar, int yukseklik){ this.kenar=kenar; this.yukseklik=yukseklik; public int cevre() { return (kenar * 3); public int alan() { return ((kenar * yukseklik) / 2); public static void mesaibasla(calisan[] c) { for (int i = 0; i < c.length; i++) { c[i].calis();

Sekil[] s = new Sekil[3]; s[0]=new Dikdortgen(3,4); s[1]=new Cember(3); s[2]=new EsUcgen(2,5); System.out.println(s[0].alan()); System.out.println(s[0].cevre()); System.out.println(s[1].alan()); System.out.println(s[1].cevre()); System.out.println(s[2].alan()); System.out.println(s[2].cevre()); abstract class Arac { public abstract void Uret(); class Otomobil extends Arac { public void Uret() { System.out.println("OTOMOBİL ÜRETİLDİ"); class Kamyon extends Arac { public void Uret() { System.out.println("Kamyon ÜRETİLDİ"); class Minubus extends Arac { public void Uret() { System.out.println("Minubus ÜRETİLDİ"); Arac ar = null; for (int i = 1; i <= 3; i++) { switch (i) { case 1: ar = new Otomobil(); class Kedi { public void yakalaav() { System.out.println("Kedi sinifi Av yakaladi"); public class Kaplan extends Kedi { public static void goster(kedi k) { k.yakalaav(); public void yakalaav() { System.out.println("Kaplan sinifi Av yakaladi"); Kedi k = new Kedi(); Kaplan kp = new Kaplan(); goster(k); goster(kp); break; case 2: ar = new Minubus(); break; case 3: ar = new Kamyon(); break; ar.uret(); class Universite { public void derscalis() { System.out.println("Herkes ders calisti"); class Ogrenci extends Universite { public void derscalis() { System.out.println("Ogrenci ders calisti"); class BClass { public void mtoover() { System.out.println("I'm the method of BClass"); class DClass extends BClass { public void mtoover() { System.out.println("I'm the method of DClass");

class Akademisyen extends Universite { public void derscalis() { System.out.println("Akademisyen ders calisti"); public static void hazirlansinavvar(universite uni) { uni.derscalis(); Universite uni = new Universite(); Ogrenci ogr = new Ogrenci(); Akademisyen ogrgor = new Akademisyen(); hazirlansinavvar(uni); hazirlansinavvar(ogr); hazirlansinavvar(ogrgor); BClass obj1 = new BClass(); BClass obj2 = new DClass(); obj1.mtoover(); obj2.mtoover(); abstract class Vehicle { public String vehicletype; public Integer getnumberofseats() { if (this.vehicletype.equals("araba")) { return 5; else if (this.vehicletype.equals("otobüs")){ return 20; else if (this.vehicletype.equals("motor")){ return 1; return null; public String getvehicletype() { return this.vehicletype; public abstract Integer getnumberofwheels(); class Car extends Vehicle { public Car() { this.vehicletype = "araba"; public Integer getnumberofwheels() { return 4; Vehicle mycar = new Car(); System.out.println("Benim" +mycar.getvehicletype() + mycar.getnumberofseats() + " kişiliktir"); System.out.println("Benim" +mycar.getvehicletype() + mycar.getnumberofwheels() + " tekerleklidir");

2- VERİ YAPILARI 2: KUYRUK VERİ YAPISI (Queue Data Structure) Veri yapıları programcılığın en önemli alanlarından birisidir. Veri yapıları içerisinde yığın gibi en yaygın kullanılanlardan bir diğeri ise kuyruk veri yapısıdır. Aşağıda kuyruk veri yapısı ile ilgili detaylı açıklamalar verilmiştir. Bunları inceleyerek istenen kuyruk veri yapısını oluşturacak QueueData sınıfını JAVA ile kodlayınız. KUYRUK VERİ YAPISININ KISA TANITIMI Veri yapıları bilgisayar ortamında verilerin etkin olarak saklanması ve işlenmesi için kullanılan yapılardır. Yığın veri yapısı gibi kuyruk veri yapısı da hafıza gerektiren birçok sistemde önemli ve yaygın kullanımı vardır. Kuyruklar, eleman eklemelerin sondan (back) ve eleman çıkarmaların baştan (front) yapıldığı veri yapılarıdır (Şekil-1). Bir eleman ekleneceği zaman kuyruğun sonuna eklenir. Bir eleman çıkarılacağı zaman kuyrukta bulunan ilk eleman çıkarılır. Bu eleman da kuyruktaki elemanlar içinde ilk eklenen elemandır. Bu nedenle kuyruklara FIFO (First-In First- Out = ilk giren ilk çıkar) listeleri de denilmektedir. Gerçek yaşamda da bankalarda, duraklarda, gişelerde, süpermarketlerde, otoyollarda kuyruklar oluşmaktadır. Kuyruğa ilk olarak girenler işlemlerini ilk olarak tamamlayıp kuyruktan çıkarlar. Veri yapılarındaki kuyruklar bu tür veri yapılarının simülasyonunda kullanılmaktadır. Ayrıca işlemci, yazıcı, disk gibi kaynaklar üzerindeki işlemlerin yürütülmesinde ve bilgisayar ağlarında paketlerin yönlendirilmesinde de kuyruklardan yararlanılmaktadır. Kuyruk veri yapısında kuyruğun başını ve sonunu gösteren iki işaretçi bulunur (Şekil-2). Kuyruk için kuyruk sınıfının global alanında bir int dizi, kuyruk başını gösteren bas işaretçisi, kuyruk sonunu gösteren son değişkenler ve ihtiyaca göre başka değişkenlerde tanımlanmalıdır. DİZİ (int dizi []=new Integer[N]): kuyruk olarak kullanılacak depolama alanıdır. DİZİ[İNDİS] her dizinin bir indis numarası olduğu unutulmamalıdır. Bu uygulamada N değişkeni dizinin boyutunu belirtecektir. KUYRUK BAŞI:(int bas) bu değişken kuyruğun ilk elemanını göstermektedir. Her zaman boş hücreyi gösterir, yani o DİZİ de boş hücrenin İNDİS numarasını tutar. Kuyruktan eleman çekme (silme) yapılacağı zaman bu işaretçinin gösterdiği değer çekilir ve işaretçi bir önceki indisi gösterir. KUYRUK SONU(int son): son değişkeni ise kuyruğun son elemanını işaret etmektedir. Son eleman boş hücreyi yani yeni ekleme yapıldığında kuyruğa ekleme yapılacak hücreyi göstermektedir. Ekleme yapıldıktan sonra bu değişken bir sonraki hücreyi göstermelidir. Aşağıdaki şekli inceleyiniz. YAZILMASI TAVSİYE EDİLEN YORDAMLAR: Yapılandırıcı: public Kuyruk(int N) Kuyruk değişkenlerine gerekli değerlerin atanması sağlanmalıdır. Kuyruk oluşturulurken kuyruk boyu parametre olarak girilmelidir. Kuyruğa veri ekleme: void KuyrugaEkle(int yeni) Kuyruğa int tipinde yeni veri ekleme işlemi yapar. Ekleme işleminde; öncelikle kuyruk dolumu diye kontrol edilir. Kuyruk dolu değilse son değişkeninin gösterdiği indise yeni kaydedilir, son indisinin bir üst hücreyi göstermesi sağlanır. Kuyruktan veri silme: int kuyruksil() Kuyruktan veri silme; bas değişkeninin gösterdiği veriyi döndürüp, bas değişkenini de bir ileri taşınmasından ibarettir.

Kuyruk boş mu?: private boolean kuyrukbos() Kuyruğun boş olup olmadığını döndürür. Kuyruk boşsa TRUE, doluysa FALSE döndürür. Kuyruğun boş olup olmadığı bas ve son değişkenlerinin durumuna göre kontrol edilir. Bu değişkenler aynı indisleri gösteriyorlarsa kuyruk boştur. Bu yordam sadece sınıf içindeki diğer yordamlar tarafından kullanılmalıdır Kuyruk Dolu mu?: private boolean kuyrukdolu() Kuyruğun dolu olup olmadığını döndürür. Kuyruk doluysa TRUE, boşsa FALSE döndürür. Kuyruğun dolu olup olmadığı kuyruğun sonunu gösteren son değişkeni, kuyruğun başını gösteren bas değişkeninden bir önde olduğunda kuyruk dolu olacaktır. Bu yordam sadece sınıf içindeki diğer yordamlar tarafından kullanılmalıdır Kuyruk listele: kuyruklistele() Kuyrukta var olan tüm verileri Kuyrukdaki sıraya göre listeleyerek ekrana yazdırır. Yazdırma işlemi bas değişkeninden başlayarak aşağı doğru tüm verileri ekranayazdıracak bir döngü ile yapılabilir. Kuyruk sırala kuyruksirala() Kuyruktaki tüm elemanları büyükten küçüğe doğru sıralayarak ekrana yazdırır. Bu sıralamada quick sort, buble sort gibi basit sıralama algoritmaları kullanılabilir. Şekil-1: kuyruk yapısına veri ekleme (Push), ve çekme (Pop) Şekil-2: kuyruk baş ve son işaretçileri durumu UML DİYAGRAMI QueueData + N: int + bas: private int + son: private int + dizi: private int[] + QueueData() : public + kuyrukdolu() : private boolean + kuyrukbos() : private boolean + kuyrugaekle(x : int) : public boolean + kuyrukbos() : public int + kuyruklistele() : public void + kuyruksirala() : public void ANA KOD GÖVDESİ: public class QueueData{ final int N;//dizi boyutu private int dizi []=new Integer[N]; private int bas; //kuyruk başı private int son; //kuyruk sonu //Yapılandırıcıda kuyruk boyu ve baş ve son değişkenleri ayarlanmalıdır public QueueData(int N){. //kuyruk dolu ise true donmeli private boolean kuyrukdolu(){. //kuyruk boş ise true dönmeli private boolean kuyrukbos(){

//kuyruğa yeni eleman ekler void kuyrugaekle(int yeni){ //kuyruktan başın gösterdiği elemanı çeker ve döndürür int kuyruksil(){. //kuyruk sırasına göre baştan sona kuyruğu listeler public void kuyruklistele(){ //Kuyruk elemanlarını büyükten küçüğe listeler public void kuyruksirala(){ public static void main(string[] args) { QueueData qd=new QueueData(); qd. kuyrugaekle(3); qd.kuyrugaekle(5); qd.kuyrugaekle(2); qd.kuyrugaekle(8); qd.kuyruksirala(); System.out.println(qd.kuyrukSil() +"kuyruktan çekildi"); qd.kuyruksirala(); İSTENEN EKRAN ÇIKTILARI: 3 5 2 8 3 kuyruktan silindi 5 2 8

3- KALITIM: ARI KOLONİSİ Arıların detaylı şekilde türlerini araştırınız. Kovan içerisinde var olan arı türlerine göre bir soy ağacı oluşturunuz. Kovanda görevli bu arıların her birinin görev listesini v sahip oldukları özelliklerini çıkarınız. UML sınıf diyagramları ile en üstte soyut ArıSinifi ile başlayarak hiyerarşik olarak türeme şekline göre sınıflayınız. Bu sınıflamayı tam bir UML diyagramında gösteriniz. Daha sonra her bir arı türününe ait, görevlerini ve özelliklerini içeren sınıfları JAVA ile kodlayınız. ÖRNEK KISA TANIM Besin Arama surecinin başlangıcında, kaşif arılar çevrede rastgele arama yaparak besin aramaya başlarlar. Besin kaynakları bulunduktan sonra, kaşif arılar artık görevli arı olurlar ve buldukları kaynaklardan kovana nektar taşımaya başlarlar. Her bir görevli arı kovana dönüp getirdiği nektarı boşaltır ve bu noktadan sonra ya bulduğu kaynağa geri döner ya da kaynakla ilgili bilgiyi dans alanında sergilediği dans aracılığıyla kovanda bekleyen gözcü arılara iletir. Eğer faydalandığı kaynak tükenmiş ise görevli kaşif arı haline gelir ve yeni kaynak arayışına yönelir. Kovanda Bekleyen gözcü arılar zengin kaynakları işaret eden dansları izlerler ve yiyeceğin kalitesi ile orantılı olan dans frekansına bağlı olarak bir kaynağı tercih ederler.