• Sonuç bulunamadı

ile Nesne Yönelimli Programlama

N/A
N/A
Protected

Academic year: 2022

Share "ile Nesne Yönelimli Programlama"

Copied!
31
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

ile Nesne Yönelimli Programlama

03 – Şart Yapılarından, Switch Case, Ternary Operator

Beykent Üniversitesi Öğr. Gör. Oğuzhan TAŞ

(2)

Şart Yapıları VE, VEYA Durumu

and (VE) : iki durum da aynı anda gerçekleşmelidir.

or (VEYA) : iki durumdan birinin gerçekleşmesi yeterlidir if ( k=="oguzhan" && s=="1234")

#hem k==oguzhan olacak hem de s=1234 olacak if (hava=="gunesli" || sicaklik>20)

#hava güneşli ise veya sıcaklık 20’den büyük ise

Şimdi de kullanıcı adı ve şifre doğru mu kontrol edelim. Kullanıcı adı

«oguzhan» ve şifre «1234» ise giriş yapabilirsiniz, değilse «giriş geçersiz»

bilgisi verelim.

Bu örnekte birden fazla durum vardır. İki durumun aynı anda gerçekleşmesi için VE(&&) kullanmalıyız, durumlardan birinin geçerli olması yeterli ise

VEYA(||) kullanmalıyız.

Pipe «|» işaretini çıkarabilmek için Altgr ve <> tuşlarına

(3)

Şart Yapıları

Maaş miktarına göre değişen oranlarda vergi alınmaktadır. Aşağıdaki şartlara göre gerekli programı geliştiriniz.

Maaş<5000 ise Vergi 100 TL

5000<=Maaş<6000 ise Vergi 150 TL

6000<=Maaş<7000 ise Vergi 200 TL

Maaş>=7000 ise Vergi 250 TL’dir.

(4)

Şart Yapıları

import java.util.Scanner;

public class VergiOdeme {

public static void main(String[] args) { double maas, vergi=0;

Scanner giris = new Scanner(System.in);

System.out.print("Maaş giriniz:");

maas = giris.nextDouble();

if(maas<5000) vergi=100;

else if(maas>=5000 && maas<6000) vergi=150;

else if(maas>=6000 && maas<7000) vergi=200;

else if(maas>=7000) vergi=250;

System.out.print("Vergi:"+vergi);

}

}

(5)

Şart Yapıları

 Soru: Kargonun ağırlığına fiyat belirlenecektir.

* 0,1 ile 1000 gr (1000 dahil değil) arasında ise 10 TL,

* 1000 gr ile 2000(2000 dahil değil) arasında ise 20 TL,

* 2000 ile 3000(dahil değil) arasında ise 30 TL,

* 3000 gr ve yukarısı 40TL 'dir.

 Buna girilen gram miktarına göre ödenecek kargo

ücretini bulunuz.

(6)

Şart Yapıları

import java.util.Scanner;

public class KargoHesaplama {

public static void main(String[] args) { double agirlik, ucret=0;

Scanner konsol = new Scanner(System.in);

System.out.print("Ağırlık giriniz:");

agirlik=konsol.nextDouble();

if(agirlik>=0.1 && agirlik<1000) ucret=10;

else if(agirlik>=1000 && agirlik<2000) ucret=20;

else if(agirlik>=2000 && agirlik<3000) ucret=30;

else if (agirlik>=3000) ucret=40;

System.out.println("Ödenecek:"+ucret);

}

(7)

Şart Yapıları

Bilet fiyatları aşağıdaki tarifeye göre

değişmektedir. Buna göre klavyeden bilet fiyatını ve hangi mesleğe mensup olduğunu seçerek indirimli bilet fiyatını yazdırınız.

1) Öğrenci %40 indirimli, 2) Öğretmen %30 indirimli, 3) Sağlık Çalışanı %30,

4) TSK Mensubu %30, 5) Diğer (İndirim yok) Tarife seçiniz(1-5):

Bilet fiyatını giriniz:

(8)

İç içe Şart Yapıları

if (şart1){

//şart1 doğru ise bu kısma girilir.

if(şart2){

//şart1 ve şart2 doğru ise bu kısım gerçekleşir

} else{

//şart1 doğru ve şart2 yanlış ise bu kısım gerçekleşir

} }

İç içe şart yapısı kullanılabilir, örneğin iç içe if kullanabiliriz.

(9)

Şart Yapıları

Şimdi de bir iç içe if uygulaması daha yapalım. Klavyeden kişinin cinsiyetini ve doğum tarihini alalım. Eğer kişi bayansa K, bay ise E girsin. Bulunduğumuz yıldan doğum tarihini de çıkarıp yaşını bulalım.

• Eğer cinsiyeti Bay ise ve Yaşı 18'den büyük ve eşit ise ekrana "Askere

gidebilirsiniz" yazsın.

• Eğer cinsiyeti Bay ve Yaşı 18'den

küçükse "Yaşınız küçük daha 2 yılınız

var" yazsın.

(10)

Şart Yapıları

import java.util.Scanner;

public class AskerlikDurum {

public static void main(String[] args) {

char cinsiyet;

int dogumTarihi;

int yas;

Scanner konsol = new Scanner(System.in);

System.out.print("Cinsiyetiniz:");

cinsiyet = konsol.next().charAt(0);

if(cinsiyet=='E' || cinsiyet=='e'){

System.out.print("Doğum tarihiniz:");

dogumTarihi=konsol.nextInt();

yas=2021-dogumTarihi;

if(yas>=18)

System.out.print("Askere gidebilirsiniz");

else

System.out.print("Yaşınız küçük");

}else{

System.out.print("Kızlara askerlik yok");

}

}

}

(11)

Şart Yapıları

Memur kadrosuna sahip kişilere devlet 2 çocuğa kadar ücret

vermektedir, çocukların yaşı 6'dan küçükse ücret 60 TL, 6'dan büyük ise ücret 40 TL'dir.

Kişinin 2'den fazla çocuğunun olması durumunda ücret alamamaktadır. Bu bilgilere göre klavyeden çocuk

sayısını alıp, alınacak ücreti hesaplayan programı yazınız.

Çözüm: İlk önce çocuk sayısını klavyeden alacağız.

Devlet maksimum 2 çocuğa kadar ücret ödediği için 2 durum vardır;

a) Çocuk sayısının 1 olması;

b) Çocuk sayısının 2 veya daha fazla olması.

a) Durumunda yani 1 çocuk var ise yaşiını soracağız ve 6'dan küçükse ücret 60 TL, büyük ve eşitse ücret 40 TL olacak.

b) Durumunda yani 2 veya daha fazla çocuk varsa önce 1. çocuğun yaşını soracağız, ücreti

hesaplayacağız, daha sonra 2. çocuğun yaşını sorup

ücretini hesaplayacağız.

(12)

Şart Yapılarında Kısa

Kullanım(Ternary Operator)

Şart ifadesi ? Durum Doğru ise : Durum Yanlış ise ; sonuc=(puan>=50)?"Geçti":"Kaldı";

Şart ifadesi, eğer puan

50’den büyük

İfade True ise

yapılacaklar

İfade False ise

yapılacaklar

(13)

Şart Yapılarında Kısa Kullanım (Ternary Operator)

public class ternaryOperator1 {

public static void main(String[] args) { int puan=60;

String sonuc=(puan>=50)?"Geçti":"Kaldı";

System.out.println(sonuc);

} }

if(puan>=50)

System.out.println("Geçti");

else

System.out.println("Kaldı");

(14)

Şart Yapılarında Kısa Kullanım (Ternary Operator)

public class TernaryOperator2 {

public static void main(String[] args) { int sayi=5;

String sonuc=(sayi%2==0)?"İkiye bölünür":"İkiye Bölünemez";

System.out.println(sonuc);

}

}

(15)

Şart Yapıları

Şimdi de 4 şıklı bir test sorusu hazırlayalım.

Kullanıcı cevabı doğru tahmin ederse

«tebrikler», yanlış cevap verirse

«cevabınız yanlış» diyelim.

Dikkat edeceğimiz nokta kullanıcı klavyeden cevabı yazarken B veya b olarak yazabilir, iki durumu da

kontrol edip, ikisinden birinin

gerçekleşmesi durumunda «cevabınız doğru» yazalım.

Aşağıdakilerden hangisi Türkiye'nin en büyük dağıdır?

A) Erciyes B) Ağrı C) Ilgaz

D) Toroslar"

(16)

Şart Yapıları

Şimdi trafik ışıklarına göre bir şart yapısı yazalım. Kullanıcıdan ışık rengini isteyelim, K/S/Y harflerinden birini girmiş ise ona göre cevap yazalım.

Küçük büyük harf de girilebilsin.

package ifOrnekTrafik;

import java.util.Scanner;

public class trafikIsik {

public static void main(String[] args) { char renk;

Scanner giris = new Scanner(System.in);

System.out.print("Işık rengi(K/Y/S):");

renk= giris.next().charAt(0);

if(renk=='K' || renk=='k’) System.out.print("DUR");

else if(renk=='S' || renk=='s’) System.out.print("BEKLE");

else if(renk=='Y' || renk=='y’) System.out.print("GEÇ");

else

System.out.println("K/S/Y harflerinden birini giriniz");

}

(17)

Şart Yapıları

Şimdi de maddenin 3 durumunu inceleylim.

1.Durum: sıcaklık sıfırdan küçük eşit ise, madde katı halde.

2.Durum: Sıcaklık 0’dan büyük 100’den küçük ise, madde sıvı halde.

3.Durum: Sıcaklık 100’den büyük eşit ise, madde gaz halinde.

Hem sıfırdan büyük hem de 100’den küçük

durumu için aşağıda görüldüğü gibi and(VE)

ifadesi kullanılmıştır. İki durumun aynı anda

gerçekleşmesi isteniyorsa VE yapısı kullanılır.

(18)

Şart Yapıları

Klavyeden girilen sayının 2 ve 3’e bölünebilme durumu kontrol edilecektir. Örneğin;

• 4 girilmiş ise «ikiye bölünebilir»,

• 9 girilmiş ise «üçe bölünebilir»

• 6 girilmiş ise «ikiye ve üçe bölünebilir»

• 7 girilmiş ise «ikiye ve üçe bölünemez»

(19)

Şart Yapıları

import java.util.Scanner;

public class ifOrnekBolunebilme {

public static void main(String[] args) { Scanner konsol= new Scanner(System.in);

System.out.println("Sayı giriniz:");

byte sayi=konsol.nextByte();

if (sayi%2==0 && sayi%3==0)

System.out.println("Sayı 2'ye ve 3'e bölünür");

else if(sayi%2==0 || sayi%3==0){

if (sayi%2==0)

System.out.println("Sayı 2'ye bölünür");

else if(sayi%3==0)

System.out.println("Sayı 3'e bölünür");

}else{

System.out.println("Sayı 2 ve 3'e bölünemez");

}

}

(20)

Şart Yapıları

Günün saatlerine göre, Günaydın, Tünaydın, İyi Akşamlar, İyi uykular yazalım

Günün saatini giriniz(0-23)

6<=saat<12 Günaydın

12<=saat<17 Tünaydın

17<=saat<20 İyi akşamlar

20<=saat<24 İyi geceler

0 <=saat<6 İyi uykular

(21)

Şart Yapıları

Soru: Bir şirkette pazarlamacı olarak çalışanlara

yaptıkları satışa göre prim verilmektedir. Pazarlamacı, ne kadar çok satış yaparsa o kadar prim kazanacaktır.

Satışlara göre prim yüzdeleri şöyledir;

2.000 TL’den küçük satışlar için prim yok.

2.000 TL ile 5.000 TL arası (2.000 dâhil, 5.000 dâhil değil) satışın %5’si prim,

5000 TL ile 7.000 TL arası (5.000 dâhil, 7.000 dâhil değil) satışın %10’u prim,

7.000 TL ve üstü %15 prim kazanmaktadır.

Buna göre girilen satış miktarına göre pazarlamacının

ne kadar prim kazanacağını hesaplayan programı

(22)

Şart Yapıları

Bir otoparkta aşağıdaki saatlere göre tarife uygulanmaktadır.

Saat bilgisini kullanıcıdan alarak ödenecek ücreti bulunuz.

0-1 saat ücretsiz

2-4 saat ücret 10 TL

5-8 saat ücret 20 TL

9-12 saat ücret 25 TL

12-24 saat ücret 40 TL

(23)

Şart Yapıları

Boy Kitle İndeksi(BKI) değeri kilo/boy 2 formülü ile hesaplanır. Buna göre kullanıcıdan kilo ve boy(metre cinsinden) alarak BKI değerini hesaplayınız.

Şart Durum

<20 Zayıf

20<=BKI<25 Normal

25<=BKİ<30 Hafif Şişman 30<=BKİ<35 Şişman

35<=BKİ<45 Sağlık Açısından Önemli 45<=BKİ<50 Aşırı Şişman

BKİ>=50 Morbid

(24)

Switch-Case Kullanımı

Switch-case kullanımı da C,C++,C#, Java, PHP gibi birçok programlama dilinde var olan bir yapıdır.

Switch içinde değişken yazılır, her bir durum(case) içinde de bu değişken seçilirse ne olacağı yazılır. Her bir durum(case) mutlaka break ile sonlandırılır.

Default(varsayılan) ise hiçbir durum gerçekleşmezse işletilir, default

durumunu if yapısındaki else gibi düşünebilirsiniz.

switch(secim){

case 1:

//Yapılacaklar

break;

case 2:

//Yapılacaklar

break;

….

default:

//Hiçbiri gerçekleşmezse yapılacaklar

}

(25)

Switch-Case Kullanımı

switch(secim){

case 1:

//Yapılacaklar

break;

case 2:

//Yapılacaklar

break;

….

default:

//Hiçbiri gerçekleşmezse yapılacaklar

}

(26)

Switch-Case Kullanımı

import java.util.Scanner;

public class SwitchCaseOrnek1 {

public static void main(String[] args) { byte secim;

System.out.print("1)İlkbahar");

System.out.print("2)Yaz");

Scanner konsol= new Scanner(System.in);

secim=konsol.nextByte();

switch (secim){

case 1:

System.out.println("Mart-Nisan-Mayıs");

break;

case 2:

System.out.println("Haziran-Temmuz-Ağustos");

break;

default:

System.out.println("1 veya 2 giriniz");

}

}

}

(27)

Şimdi siz yapınız

Yandaki tabloda araç tipine göre hız sınırı tablosu görülmektedir. Buna göre

otomobil ile otoyolda seyahat ettiğimizi düşünelim. Hızı klavyeden alarak ceza tutarını ve ceza puanını hesaplayınız.

- Hız sınırının yüzde 10 ila yüzde 30 aşılmasının cezası 314 TL ve 10 ceza puanı.

- Hız sınırının yüzde 30 ila yüzde 50 aşılmasının cezası 652 TL ve 15 ceza puanı.

- Hız sınırının yüzde 50’nin üzerinde

aşılmasının cezası ise 1.340 TL ve 15

(28)

Şimdi siz yapınız

Gelir vergisi dilimleri yandaki

tablodaki gibidir. 24.000 TL ve altı kazanç için %15 vergi alınmaktadır.

Kazanç 24.000 TL’yi geçerse,

24.000 TL’lik kısmı için %15, kalan kısmı için %20 vergi alınacaktır.

Buna göre klavyeden girilen kazanç

miktarına göre ödenecek vergiyi

bulunuz.

(29)

Kaynaklar

 Deitel & Deitel, «Java How to Program», Prentice Hall Yayınevi.

 Altuğ B. Altıntaş, «Java ile Yazılım Tasarımı», Papatya Yayınevi.

 Bruce Eckel, «Thinking in Java», Prentice Hall Yayınevi

 K.Sierra, B. Bates, «Head First Java», Oreilly Yayınevi

 Oracle Java Docs https://docs.oracle.com/

 MIT Üniversitesi Java Ders Notları Lecture Notes | Introduction to Programming in Java | Electrical Engineering and Computer Science | MIT OpenCourseWare

 Açık Kaynak Java Kitabı Javanotes 8.1.3 -- Title Page (hws.edu)

 Cornell Üniversitesi Ders Notları CS 2110 Spring 2014 (cornell.edu)

(30)

Yardımcı Kaynaklar

 Deitel & Deitel, «Android How to Program», Palme Yayıncılık (Türkçe çeviri)

 Özcan Acar, «Java Tasarım Şablonları», Pusula Yayınevi.

 Memik Yanık, «Java 8», Sistem Yayınevi

 Oğuzhan TAŞ, «C# başlangıç kitabı», 119 Sayfa, 2014.

 Oğuzhan TAŞ, «C# ile Nesne Yönelimli Programlama Ders Notları», 2021.

 Oğuzhan TAŞ, «C++ ile Nesne Yönelimli Programlama Ders Notları», 2020.

 Oğuzhan TAŞ, «Python Ders Notları», 2020.

 Oğuzhan TAŞ, «JavaScript, REACT Ders Notları»,2020.

 Oğuzhan TAŞ, «Flutter Ders Notları», 2020,2021.

 Oğuzhan TAŞ, «Veritabanı Ders Noları», 2010-2021.

(31)

Sorularınız

• Dinlediğiniz için teşekkür ederim.

E-mail: info@oguzhantas.com

Referanslar

Benzer Belgeler

113 Abortus örneklerinden Campylobacter spp. izolasyonu

Gelir Vergisi Kanunu’nun 24/2’nci maddesinde, 6245 sayılı Harcırah Kanunu kapsamı dışında kalan müesseseler tarafından idare meclisi başkanı ve üyeleri

[r]

 Sendikalar: Geçim şartlarının giderek zorlaşması ve bu yöndeki masrafların artması, enflasyon karşısında ücretlerde meydana gelen kayıplar gibi nedenlerle

 Yeni türetilen sınıf, türetildiği sınıfın global alanlarına ve yordamlarına (statik olsa dahi) otomatik olarak sahip olur (private olanlara doğrudan erişim yapamaz.)..

 Soyut bir sınıftan türetilmiş alt sınıflara ait nesneler, bu soyut sınıf tipindeki referanslara bağlanabilirler (upcasting).  Böylece polimorfizm ve geç

 statik dahili üye sınıf içerisindeki statik bir yordamı çağırmak için ne statik dahili üye sınıfına ne de onu çevreleyen sınıfa ait nesne oluşturmak gerekmez.

 Tüm istisnaları yakalamak (Error, RuntimeException ve diğer Exception türleri) için Throwable istisna tipi kullanılabilir.  Ancak, oluşabilecek istisnalar için bu üç