Yrd. Doç. Dr. Şadi Evren ŞEKER
-
Bir masa lambasının 4 farklı durumu bulunabilmektedir. Kapalı, az ışık, orta ışık ve çok ışık seviyelerinde yanabilen bu lambayı nesne yönelimli olarak programlayınız. Herhangi bir insanın bu lambanın durumunu değiştirebilmesi ve lambanın mevcut durumunu görebilmesini sağlayınız. (JAVA dilinde sadece gerekli sınıfları yazınız) (10 puan)
Masa lambasında durumu tutan bir değişkene ve bu durumu değiştiren bir metoda ihtiyaç duyulmaktadır. 4 farklı durum olduğu için en uygun değişken int tipidir.
Yukarıdaki kod doğru olmakla birlikte, insan sınıfında yapıcı fonksiyon içerisinde masa lambası tanımlanmaması kabul edilebilir (insanın masa lambası olabilir ama her insanın masa lambası olmak zorunda değildir). Veya durumu döndüren fonksiyon (durumuBildir) değer döndürmek yerine ekrana durumu basabilir, veya String tipinde kapalı, az, orta ışık, çok ışık şeklinde değerler döndürebilir. Benzer şekilde yeniDurum fonksiyonu paramatre olarak int yerine String tipinde değer alabilir. Bu açıklamada olduğu üzere makul kabul edilebilecek değişken tipinde ve fonksiyon yapısında değişiklik olabilir.
-
Bir bankanın ATM cihazına gelen müşteriler, giriş (şifre yazarak), para yatırma, para çekme ve bakiye sorgulama işlemlerini yapabilmektedir. Bu sistemi nesne yönelimli olarak modelleyiniz, ihtiyaç duyuluyorsa ilave sınıfları da tanımlayınız. Her sınıfın metotlarını ve özelliklerini belirtiniz ve modelinizi JAVA dilinde kodlayınız. (30 puan)
-
Aşağıda verilen sınıfların özellik ve metotlarının isimlerini yazınız. Bu sınıflardan hangilerinin arasında ilişki olduğunu ve bu ilişkinin çeşidini yazınız.
{çember, daire, nokta, şekil, doğru, kare, yamuk, piramit, küp, silindir }
Yukarıdaki tanımınız ışığında, bir şekil vektörünü parametre olarak alıp bu vektördeki elemanların alanlarını hesaplayan fonksiyonu JAVA dilinde kodlayınız. (Bu sorudaki vektör kelimesi, java.util.Vector sınıfını ifade etmektedir, sorudaki hesaplama fonksiyonu dışında kod yazmanız gerekmemektedir ancak isterseniz sınıfların metotlarını ve özelliklerini kod yazarak da gösterebilirsiniz. Sınıflar arasındaki ilişkilerin isimlerini her durumda yazınız.) (50 puan)
-
Aşağıdaki kod parçasının ekran çıktısını yazınız (10 Puan):
int x = 6; // 110
int y = 3; // 011
// 101 = ^
// 010 = 2
// 111 = |
System.out.println(x^y|2);
if(++y == 3&& x<6 )
System.out.println(y);
System.out.println(y);
Not: Bu sorunun cevabı hem “Thinking in JAVA” kitabında hem de “JAVA Tutorial” içeriğinde bulunmaktadır.
7
3
Yukarıdaki ilk işlem x^y işlemidir ve ikilik tabanda XOR işlemi olarak çalışır. Bu durumad 6 = (110)2 ve 3 = (011)2 olarak çevrildikten sonra aralarında özel veya (xor) operatörü çalıştırıldığında, 101 sonucu bulunur. Ardından gelen tek boru (pipe) işlemi ise ikilik tabanda veya (or) işlemidir ve (101)2 | (010)2 şeklinde düşünülmelidir. Bu işlemin sağ tarafı 2 sayısının ikilik tabandaki karşılığıdır. Bu işlemin sonucu da (111)2 olarak bulunur ki bu değer onluk tabanda 7 yapar.
Ardından gelen if satırında önce x değerinin 6’dan küçük olup olmadığı kontrol edilir. Bu kontrol doğru değildir (false) dolayısıyla if satırındaki ikinci kısım çalışmaz. Yani y++ == 3 satırı çalışmaz. Bunun sebebi JAVA dilindeki kısa devre (short circuit) uygulamasıdır. Ve işlemi ile birbirine bağlı olan if kontrollerinde sol tarafın false dönmesi halinde sonuç flase olacağı için sağ tarafa bakılmaz. Ayrıca bu if satırının altında olan if bloğu da sonuç false olduğu için çalışmaz ve ikinci println fonksiyonu ekrana basılmaz.
Son satırdaki println fonksiyonu ise y’nin orijinal değeri olan 3’ü ekrana basar.
“Bilgisayarların, bilgisayar bilimindeki yeri, teleskopların, astronomi bilimindeki yerinden fazla değildir.” — Dijkstra
-
mrb hocam C de
1)Sağa dayalı metin ,
2) Sola hizalanmış metin ,
3) Ortalanmış metin gerceklemem gerekiyor bir fikrim yok netten arastırdım hiç bişi bulamadım hocaya yapıp teslim etmem lazım yardımcı olursanız sevinirim umarım bu konuyu buraya yazdığım için kızmazsınız herhangi bir C konusu olmadıgı için bir baslık altına yazamadım
şeklinde kodu yazdım hesap no grildiginde sorun yok fakat şifre girildiğinde
aldığınız hata mesajını yazabilir misiniz?
Exception in thread “main” java.lang.NullPointerException
at atmcihazı.atm.giris(Atmcihazı.java:32)
at atmcihazı.Atmcihazı.main(Atmcihazı.java:64)
Java Result: 1
hatası veriyor hocam
çok büyük ihtimalle musteriler isimli nesne atıfının (object referrer) içerisine bir nesne atamadan erişmeye çalışıyorsunuz.
Örneğin yukarıdaki ikinci kodunuzda (giris fonksiyonu) bulunan musteriler dizisi null olabilir veya musteriler dizisinin herhangi bir elemanı null olabilir. Bu durumu görmek için aşağıdaki şekilde kodunuzu değiştirebilirsiniz:
yukarıdaki kodun aynısını kullandım hocam sadece birkaç yerde kod ekledim müşterinin hesapnosunda hata vermiyor şifresinde hata veriyor
probleminiz, insanları (ali ve veli gibi) müşteri listenize eklemiyor oluşunuz.
En hızlı çözüm için (en güzel çözüm değil, sadece hızlıca çözmek istersek) aşağıdaki şekilde kodunuzu değiştirirdim:
main fonksiyonunda :
mainde yukarıdaki şekide araya eklenecek (yukarıdaki son iki) satırlar ile musteriler dizinizde artık müşteri olmuş olur. Daha önce olmadığı için hata alıyordunuz.
İlave olarak dizinin geri kalan 98 elemanı boş olduğu için giriş fonksiyonunuzdaki döngüye de kontrol eklemek gerekir (şayet girilen şifre bu iki kişiden birine ait değilse boş olan elemanlara bakacak ve nullpointerexception alacaksınız:
giriş fonksiyonunda:
yukarıdaki masa lambası örneğinin c#da örneği varmı lütfen yardım edebilirmisiniz bna