Upgrading Internet Technology skills of Information and

advertisement
The European Union’s “Making the Labour Market more
Inclusive III” programme For “North Cyprus”
Upgrading Internet Technology skills
of Information and Communication
Technologies (ICT) Professionals
Module 2:Server Side Internet
Programming
Modül 2: Sunucu Tarafı Internet
Programlaması
Laboratuar Notları
This project is funded by
The European Union
A project implemented by
CyberSoft Bilişim Teknolojileri Ltd.
İçerik
Bölüm 3: Kontrol Deyimleri ve Döngüler
Örnek 1: If Kontrol deyiminin kullanılışı..……………………………………..……………………………..….2
Örnek 2: while döngüsünün kullanılışı..…….…………………………………..………………………………..3
Örnek 3: for döngüsünün kullanılışı…..…….…………………………………..………………………………..4
Örnek 4: continue anahtar sözcüğünün kullanılışı ……………………………..………………………………..6
Çalışma 1: Credit……………………………….………………………………………………………………....6
Çalışma 2: Palindrome (Tersinden de aynı şekilde okunabilen sayılar)………………………………………….9
Çalışma 3: Largest Number (En Büyük Sayıyı Bulma)………………...……………………..………………….11
Çalışma 4: Triangles (Üçgen motifi yaratma)..……………...………………………………………..…………..13
Çalışma 5: Sales…………………………………………………………………………………………...……....15
1
Kontrol Deyimleri ve Döngüler
Program yazarken, yazdıgımız kodların yukarıdan asagıya dogru sırasıyla çalıstırıldıgını biliyoruz. Ancak
bazen bu kodların bu sırada değil de belirli şartlara bağlı olarak birkaç satırın atlanıp ileriden devam edilmesi
ya da aynı satırların birden fazla sayıda çalıştırılması gibi isteklerimiz olabilir. İste bunun için
kullanacağımız bazı deyimler ve döngüler vardır. Bu deyim ve döngüler sayesinde normalde her satırdan bir
defa geçen ve yukarıdan başlayarak aşağı satırlara dogru ilerleyen program akışını, bazı satırları belli
durumlarda okumadan, ya da bazı satırları birden fazla defa okuyacak şekilde yönlendirmemiz mümkün hale
gelir.
If Kontrol Deyimi:
If deyimi belli bir şart sağlanması durumunda program akışını kendi faliyet alanı içerisine yönlendirir. Kendi
faliyet alanının en son satırına kadar kodları çalıştırır ve daha sonra da program akışı if deyiminin faliyet
alanının bittiği yerden devam eder.
satır1
satır2
true
if (ifade) { false
satır3
satır4
}
satır5
Şekil1: If Kontrol deyiminin yapısı
Örnek 1: If Kontrol deyiminin kullanılışı
2
Bu örnekte de görüldüğü gibi bir şartın saglanması demek, aslında if deyiminin kontrol parantezleri
içerisindeki ifadenin true olması demektir. Aynı sekilde bu sartın saglanmaması ise ifadenin false degerini
üretmesi anlamına gelir. Yukarıdaki örnekte eğer number% 2 ifadesi eğer false olursa ekrana “ is odd”
mesajı gelecektir. Ancak true olursa “ is even” mesajını alırsınız.
while Döngüsü:
Simdi de kullanıcımız bizden program çalıstığında girdiği değer limitine kadar olan sayıların tek mi çift mi
olduğunu test etmek istiyor. Ne zaman ki girilen değer limitden büyük olur, o zaman program sonlansın
diyor. Bu durumda sayı testi bir döngü içerisine sokulmalıdır. Bu döngünün en basında önce sayının xlimit
den küçük olup olmadığına bakılmalı sonra ya döngü tekrar dönmeli ya da sonlandırılmalıdır. Bunun için en
uygun döngü while döngüsü olacaktır. while, eğer içerisindeki ifade true ise program akışını kendi içine
yönlendirir. Program while faliyet alanının en sonuna geldiğinde tekrar while döngüsünün ilk satırına döner
ve ifadeyi yine kontrol eder. Bu işlem, while içerisindeki ifade false olana kadar devam eder.
satır1
satır2
true
if (ifade) { false
satır3
satır4
}
satır5
Şekil2: while döngüsünün yapısı
.
Örnek 2: while döngüsünün kullanılışı
3
for Döngüsü:
Şu ana kadar bir koşul sağlandığı sürece otomatik olarak döngüye girilmesini while deyimi ile
yapabileceğimizi gördük. Ancak bu döngü koşul sağlandığı sürece, belli bir tekrar sayısı kadar değil her
zaman devam ediyordu. Koşul sağlansa bile belirli bir tekrar sayısı da belirlemek istiyorsak o zaman for
döngüsünü kullanmak gerekir. for döngüsü söyle çalısmaktadır:
for( <ilk değer> ; <koşul> ; <ifade> ) {
...
}
Şekil3: for döngüsünün yapısı
Buna göre ilk değer ile başlayan döngü ile program for bloğuna girdikten sonra bloğun sonuna geldiğinde
koşulun sağlanıp sağlanmadığını kontrol edecek ve koşul sağlanıyorsa ifade’yi gerçekleyip tekrar döngüye
girecektir. Örneğin,
/ /ForDongusu.java
public class ForDongusu {
public static void main(String arg[]){
for(int i = 0; i < 10; i++) {
System.out.println("i nin değeri: ",i);
}
}
}
Örnek 3: for döngüsünün kullanılışı
Bu program çalıstıgında ekrana 10 satır boyunca
i nin degeri: 0
i nin degeri: 1
...
i nin degeri: 9
şeklinde yazacaktır. Program akışı her döngüye girişinde i’nin değeri ekrana yazılmakta ve blok sonunda i++
ifadesinden dolayı bu değer bir artırılmakta ve koşulun sağlanıp sağlanmadığına bakılmaktadır.
switch Deyimi:
switch deyimi kullanımı da, birden fazla else if kullanımına alternatiftir. Mesela yazdığınız programda
kullanıcıdan bir giriş isteyebilirsiniz. Kullanıcının gireceği bu değer 4 tane değerden birtanesi olabilir ve siz
olası her değer için bir işlem yapmak istiyor olabilirsiniz. Bunun için
4
if(değer 1) {
}
else if(değer 2) {
}
...
else {
}
Şekil4: else-if döngüsünün yapısı
yapısını kullanabilirsiniz. Ancak böyle durumlarda switch daha iyi bir alternative olacaktır. switch deyimi
söyle çalısmaktadır:
switch( <değişken> ) {
case değer1:
ifade ya da islemler;
break;
case değer2:
ifade ya da islemler;
break;
...
...
case değer n:
ifade ya da işlemler;
break;
default:
ifade ya da işlemler;
break;
}
Şekil5: Switch deyiminin yapısı
Bu yapıya göre program akışı, değişken içindeki değere göre case anahtar sözcüğü ile belirlenmiş uygun
satıra atlar. O satırdaki ifade ya da işlemler gerçekleştirildikten sonra switch deyiminden çıkılır. Aşağıdaki
örnek programımızda kullanıcıya bir menü sunalım ve bu menüden bir seçenegi seçmesini isteyelim. Bu
seçim neticesinde de seçime uygun bir mesajın ekrana gelmesini saglayalım. Örneğimizde ilk basta yaratılan
seçim_flag adındaki boolean değişken ilk değer olarak true olduğu için, program akışının ilk seferde while
döngüsüne gireceğini garanti etmiş oluyoruz. Eger kullanıcı listede olmayan bir seçim girecek olursa,
secim_flag değiskeni tekrar true değerini alacak ve kullanıcıdan tekrar bir giriş yapması istenecektir.
Kullanıcı listede olan bir giriş yaparsa program sonlanacaktır. Bu durumda listede olmayan girişler girildigi
sürece program çalışmaya devam edecektir.
continue Anahtar Sözcüğü:
Herhangi bir döngü içerisine girildiğinde, daha döngü bloğunun sonuna gelinmeden o andaki adım için
işlemleri sonlandırıp bir sonraki döngü adımına hemen geçilmek isteniyorsa continue anahtar sözcüğünü
kullanmak gerekir. Mesela yazdıgımız programda 1'den 10'a kadar olan sayılar toplamak istiyoruz ama bu
toplam içerisine 3 ve 3’ün katlarını eklemek istemiyoruz. Bunun için bir for döngüsü kullanmak gerekir.
Ancak bu döngüyü 3 ve 3'ün katlarına gelindiğinde durdurup bir sonraki değerle döngüye devam etmek
gerekmektedir:
5
//Toplama.java
public class Toplama {
public static void main(String arg[]){
int toplam = 0;
for(int i = 0; i < 10; i++) {
if(i % 3 == 0) {
continue;
}
toplam += i;
}
System.out.println("Toplam: " , toplam);
System.exit(0);
}
}
Örnek 4: continue anahtar sözcüğünün kullanılışı
Bu örnekte % operatörünü kullandık. Bu operatör soldaki sayının sağdaki sayıya bölümünden kalan değeri
üretir.Yani i sayısı o anda hangi değere sahipse, bu değerin 3'e bölümünden kalan sayının 0'a eşit olup
olmadığı kontrol edilmektedir. Eğer bu kalan sayı 0'a eşit ise demek ki sayımız 3 ya da 3'ün bir katıdır. Bu
yüzden if parantezi içerisindeki == kontrolü sağlandığından dolayı true değeri üretilecek ve dolayısı ile if
bloğu içerisine girilecektir. If bloğu içerisinde continue anahtar sözcügü sayesinde o andaki for adımı
sonlanacak ve bir sonraki i değeri ile for bloğunun en başına dönülecektir.
Çalışma 1. Credit
Aşağıda verilen program şablonu hatasız çalışan bir Java programıdır. Ancak programdaki bir veya birden
fazla anahtar satırları açıklama satırlarıyla değiştirilmiştir. Problem tanımını okuyun ve örnek sonucu
inceleyin; daha sonra da şablon kod üzerinde çalışın. Problem çözme ipuçları’nı kullanarak /* */ gösterilen
açıklama satırlarını Java koduyla değiştirin. Programınızı derleyin ve çalıştırın. Bulduğunuz sonucu örnek
sonuçla karşılaştırın.
1.1 Credit Çalışmasının Amacı
Bu çalışmada şu konular incelenecektir:
pseudocode (sözde program) yazılması
kontrol deyimlerinin kullanılması
1.2 Credit Çalışmasının Problem Tanımı
Herhangi bir mağaza müşterilerinin kredi kartı hesabınının limitini aşıp aşmadığını control eden bir Java
uygulaması yazınız. Her müşteri için şu bilgiler mevcuttur:
hesap numarası (account)
Ayın başındaki bakiyesi (oldBalance)
Bu ayki toplam harcaması (charges)
Müşteri hesabına aktarılan toplam kredi miktarı (credits)
Kredi limiti (creditLimit)
6
Program yukarıda belirtilen değerleri giriş bilgisi (input) olarak isteyip yeni bakiyeyi (newBalance)
hesaplamalıdır. (newBalance = oldBalance + charges – credits). Daha sonra newBalance ekrana yazılıp
newBalance’ın credits limitini aşıp aşmadığı test edilmelidir. Eğer credits limiti aşılmışsa program "Credit
limit exceeded" mesajını ekrana yazmalıdır.
1.3 Credit Çalışmasının Örnek Program Çıktısı
1.4 Credit Çalışmasının Program Şablonu
//Lab : Credit.java
//Program monitors accounts
import java.util.Scanner
public class Credit
{
// calculates the balance on several credit accounts
public void calculateBalance()
{
Scanner input = new Scanner( System.in );
int account; // account number
int oldBalance; // starting balance
int charges; // total charges
int credits; // total credits
int creditLimit; // allowed credit limit
int newBalance; // new balance
System.out.print( "Enter Account Number (or - to quit): " );
/* programa bir sayıyı input olarak alıp onu account içerisinde saklayan kodu yazınız */
/* account numarası -1 olmadığı sürece dönecek olana bir while loop yazınız*/
/* diğer müşteri bilgilerini inpu olarak girileceği kodları yazınız */
7
/* newBalance hesaplayacak kodu yazınız */
/* newBalance değerinin credits den büyük olup olmadığını test eden if komutunu yazınız ve uygun
bilgiyi ekrana yazdırınz. */
/* new account number (yeni hesap numarasını input olarak alan kodu yazınız ve while loop bitiriniz.*/
}// end method calculateBalance
}// end class Credit
Şekil 1.1 Credit.java
// Lab 1: CreditTest.java
// Test application for class Credit
public class CreditTest
{
public static void main(String args[])
{
Credit application = new Credit();
application.calculateBalance();
} // end main
} // end class CreditTest
Şekil 1.2 CreditTest.java
1.5 Credit Çalışması için Problem Çözme İpuçları
1. Beş tane input değeri gereklidir. Ama account numarası uygun bir numara olup olmadığı bakılması
için while loop’undan once girilmelidir. Dolayısıyla toplamda altı tane input girişi olmalıdır. Beş
tanesi while loop içinde, bir tanesi while loop’dan önce olmalıdır.
2. newBalance hesaplarken (newBalance = oldBalance + charges – credits) formülünü kullanınız.
3. newBalance’ın creditLimit’ini aşıp aşmadığını control etmek için if komutunu kullanınız. Eğer
aşmışşsa limitin aşıldığını belirten mesajı ekrana yazdırınız.
4. Modify the program to use counter-controlled repetition to process 10 accounts.
5. Programı counter kontrolu kullanarak10 kere çalışacak şekilde değiştiriniz.
6. Programı counter kontrolu kullanarak kullanıcının istediği miktar kadar çalışacak şekilde
değiştiriniz. Bunun için number isminde yeni bir değişken tanımlayınız ve kullanıcının bu değeri
girmesini isteyiniz.
8
Çalışma 2: Palindrome (Tersinden de aynı şekilde okunabilen sayılar)
Aşağıda verilen GradeBook ismindeki program şablonu hatasız çalışan bir Java programıdır. Ancak
programdaki bir veya birden fazla anahtar satırları açıklama satırlarıyla değiştirilmiştir. Problem tanımını
okuyun ve örnek sonucu inceleyin; daha sonra da şablon kod üzerinde çalışın. Problem çözme ipuçları’nı
kullanarak /* */ gösterilen açıklama satırlarını Java koduyla değiştirin. Programınızı derleyin ve çalıştırın.
Bulduğunuz sonucu örnek program çıktısıyla karşılaştırın.
2.1 Palidrome Çalışmasının Amacı
Bu çalışmanın amacı aşağıda belirtilen Java programlama konseptlerinin öğrenilmesini sağlamaktır. Bu
çalışmada şu konular incelenecektir:
kontrol deyimlerinin kullanılması
if-else control deyimlerinin kullanılması
sentinel-controlled döngüler
2.2 Palindrome Çalışmasının Problem Tanımı
Palindrom tersten okunduğu zaman da aynı olan cümleler ve sayılar grubudur. 5 basamaklı palindrom sayı
örnekleri şunlardır: 12321, 55555, 45554. 5 basamaklı sayıyı input alıp, onun bir palindrome olup olmadığını
test eden bir uygulama kodu yazınız. Eğer girilen sayı beş basamaklı değilse, ekrana bir hata mesajı
yazdırınız ve kullanıcıdan yeni bir input girmesini isteyiniz.
2.3 Palindrome Çalışmasının Örnek Program Çıktısı
2.4 Palindrome Çalışmasının Program Şablonu
// Lab 2: Palindrome.java
// palindrome olup olmadigini test eden program
import java.util.Scanner;
public class Palindrome
{
// 5 basamaklı sayının palindrome olup olmadığını test eder.
public void checkPalindrome()
{
Scanner input = new Scanner( System.in );
int number; // kullanıcının girdiği input değeri
9
int digit1; // 1. sayı
int digit2; // 2. sayı
int digit4; // 4.sayı
int digit5; // 5. sayı
int digits; // girilen input’daki sayı miktarı
number = 0;
digits = 0;
/* 5 basamaklı sayı input girmek için kullanılan kodu yazınız. Eğer girilen değer 5 basamaklı değilse
hata mesajı yazdırınız. Doğru bir input devam edene kadar döngüyü devam ettiriniz. */
/* Beş basamaklı sayıyı 5 adet sayıya bölen kodu yazınız.
/* 1. ve 5. sayıların ve de 2. ve 4. sayıların aynı olup olmadığını kontrol eden kodu yazınız. Girilen
sayının palındromolup olmadığını ekrana yazdırınız.*/
} // end method checkPalindrome
} // end class Palindrome
Şekil 2.1 Palindrome.java
// Lab 2: PalindromeTest.java
// Test application for class Palindrome
public class PalindromeTest
{
public static void main( String args[] )
{
Palindrome application = new Palindrome();
application.checkPalindrome();
} // end main
} // end class PalindromeTest
Şekil 2.2 PalindromeTest.java
2.5 Palindrome Çalışması için Problem Çözme İpuçları
1. Girilen input sayısında kaç tane sayı olduğunu hesaplayınız ve bulduğunuz değeri digit isimli
değişkene atayınız. Girilen input’da 5 tane sayı olup olmadığını test etmek için while loop kullanınız.
Bunun için digit değerinin beşe eşit olup olmadığını test ediniz. Eğer değilse, kullanıcıdan yeni bir
ınput girmesini isteyiniz. Doğru input girilene kadar while loop dönmelidir.
2. 5 sayıyı elde edebilmek için Bölme (division) ve kalan (remaınder) hesaplamalarını kullanınız. 5
basamaklı bir sayının palidrom olabilmesi için (1. Ve 5. sayıların ) ve (2. Ve 4. sayıların) aynı olması
gereklidir.
3. Programı 7 basamaklı sayının palindrome olup olmadığını test edecek şekilde değiştiriniz.
10
Çalışma 3. Largest Number (En Büyük Sayıyı Bulma)
3.1 Largest Number Çalışmasının Amacı
Bu çalışmanın amacı aşağıda belirtilen Java programlama konseptlerinin öğrenilmesini sağlamaktır.
while döngüsünün kullanılışı
counter kontrollu tekrarların kullanılması
if kontrol deyimlerinin kullanılması
3.2 Largest Number Çalışmasının Problem Tanımı
En büyük sayıyı bulma sıkla kullanılar bir uygulamadır. Mesela ayın en çok satış yapan elemanını
belirlerken her eleman sattığı miktarı input olarak girer. En çok mal satan satış elemanı ayın elemanı seçilir.
10 tane sayıyı input alıp, bu sayıların içindeki en büyük sayıyı bulup ekrana yazdıran bir Java uygulaması
yazınız. Programda en az 3 tane değişken kullanılmalıdır:
counter: kaç tane sayının input olarak girildiğini ve ne zaman 10 tane olduğunu bulmak için
kullanılacak değişken
number: kullanıcı tarafından en son girilen input
largest: şimdiye kadarbulunan en büyük değer
3.3 Largest Number Çalışmasının Örnek Program Çıktısı
3.4 Largest Number Çalışmasının Program Şablonu
// Lab 3: Largest.java
// Bu program on sayıdan en büyüğünü bulup ekrana vazdırır
import java.util.Scanner;
public class Largest
{
// determine the largest of 10 numbers
public void determineLargest()
{
Scanner input = new Scanner( System.in );
int largest; // en büyük sayı
int number; // kullanıcı input
11
int counter; // girilen sayı miktarı
/* birinci sayıyı input olarak alıp largest değişkenine atayan kodu yazınız */
/* counter değerini 1’e eşitleyiniz*/
/* 10 tane sayı girilene kadar devam edilecek loop yazınız*/
/* kullanıcıdan bir sayı girmesini isteyen ve bu sayıyı okuyan kodu yazınız */
/* girilen değerin en son bulunan largest değerinden büyül olup olmadığını test edip, eğer büyükse
girilen değeri largest ile değiştiren kodu yazınız */
/* number değerini artıran kodu yazdırınız.*/
System.out.printf( "Largest number is %d\n", largest );
} // end method determineLargest
} // end class Largest
Şekil 3.1 Largest.java
// Lab 3: LargestTest.java
// Largest sınıfı için Test uygulaması
public class LargestTest
{
public static void main( String args[] )
{
Largest application = new Largest();
application.determineLargest();
} // end main
} // end class LargestTest
Şekil 3.2 LargestTest.java
3.5 Largest_Number Çalışması için Problem Çözme İpuçları
1. Programın başında count değerini 1’e eşitleyiniz.
2. Girilen değerin largest değerinden büyük olup olmadığını test eden if control deyımı kullanınız.
3. Programı en büyük iki sayıyı bulabilecek şekilde değiştiriniz.
12
Çalışma 4. Triangles (Üçgen motifi yaratma)
4.1 Triangles Çalışmasının Amacı
Bu çalışmanın amacı aşağıda belirtilen Java programlama konseptlerinin öğrenilmesini sağlamaktır.
içiçe geçmiş for döngülerinin kullanılması
counter kontrollu tekrarların kullanılması
4.2 Triangles Çalışmasının Problem Tanımı
for döngüsünü kullanarak aşağıdaki motif şeklini oluşturacak bir Java uygulaması yazınız. Herbir (*)’ı ayrı
bir System.out.print( "*" ); komutu kullanarak yanyana ekrana yazınız. Bir alt satıra geçmek için ise
System.out.println() komutunu kullanınız. İki motif arasındaki boşluğu yaratmak içinse System.out.print( " "
); komutunu kullanınız. Bu komutlar dışında başka hiçbir komut kullanılmamalıdır.
4.3 Triangles Çalışmasının Örnek Program Çıktısı
13
4.4 Triangles Çalışmasının Program Şablonu
// Lab 1: Triangles.java
// Program prints four triangles, one below the other
public class Triangles
{
// 4 tane üçgen çizer
public void drawTriangles()
{
int row; // the row position
int column; // the column position
int space; // number of spaces to print
// 1. üçgen
/* 1. Üçgeni çizecek kodu yazınız. İçiçe geçmis for döngüleri kullanınız. Dıştaki döngü “*”’ın hangi
satırda yazılacağını control etmelidir. İçteki for döngüsü ise her seferinde bir “*” ekrana yazdırmalıdır.
*/
// 2. üçgen
/* 1. Üçgeni yaparken kullandığınız teknikleri kullarak 2. üçgeni oluşturunuz */
// 3. üçgen
/*3. Üçgeni çizecek kodu yazınız. Dıştaki döngü iki ayrı for döngüsü içermelidir. İçteki for döngünden
biri boşlukları diğeri ise “*”’ı ekrana yazmalıdır.*/
// 4. üçgen
/* 3. üçgeni yaparken kullandığınız teknikleri kullarak 4. üçgeni oluşturunuz */
} // drawTriangles metodunun sonu
} // Triangles sınıfının sonu
Şekil 4.1 Triangles.java
// Lab 1: TrianglesTest.java
// Triangles sınıfı Test uygulaması
public class TrianglesTest
{
public static void main( String args[] )
{
Triangles application = new Triangles();
application.drawTriangles();
} // main sonu
} // TrianglesTest sınıfının sonu
Şekil 4.2 TrianglesTest.java
14
4.5 Triangles Çalışması için Problem Çözme İpuçları
1. Birinci üçgeni oluştururken içiçe geçmiş iki for döngüsü kullanınız. Dıştaki for döngüsü satır sayısını,
içteki for döngüsü ise sütun sayısını saymalaıdır. İçteki döngü 1’den o andaki satır numarasına kadar
saymalıdır.
2. İkinci üçgeni oluştururken içiçe geçmiş iki for döngüsü kullanınız. Dıştaki for döngüsü 10’dan 1’e
kadar geri saymalıdır. İçteki döngü ise birinci üçgenin içteki döngüsüyle aynı olmalıdır.
3. Son iki üçgen motifi ise her satırın başında uygun sayıda boşluk bırakılarak çizilmelidir.
4. Üçüncü ve dördüncü üçgenler için iki ayrı içiçe geçmiş for döngüsü kullanılmalıdır. İçteki for
döngünden biri boşlukları diğeri ise “*”’ı ekrana yazmalıdır.
Çalışma 5. Sales
5.1 Sales Çalışmasının Amacı
Bu çalışmanın amacı aşağıda belirtilen Java programlama konseptlerinin öğrenilmesini sağlamaktır.
switch komutunun kullanılması
5.2 Triangles Çalışmasının Problem Tanımı
İnternet üzerinden satış yapan bir firma beş çeşit ürün satmaktadır. Bu ürünlerin fiyatları şu şekildedir:
product 1, $2.98
product 2, $4.50;
product 3, $9.98
product 4, $4.49
product 5, $6.87
Ürün kodu (product_number) ve satılan miktar (quantity sold) bilgileri dizisini ekrandan alan bir Java
uygulaması yazınız. Her bir ürünün satış fiyatını belirlemek için switch komutunu kullanınız. Satılan bütün
ürünlerin toplam değerini hesaplayıp ekrana yazdırınız. Bitiş simgesi kontrollü döngü kullanarak programın
ne zaman sona ereceğini belirleyiniz ve sonucu ekrana yazınız.
5.3 Sales Çalışmasının Örnek Program Çıktısı
15
5.4 Sales Çalışmasının Program Şablonu
// Lab 2: Sales.java
// program girilen inputa göre toplam satışı hesaplar
//
import java.util.Scanner;
public class Sales
{
// 5 ürünün satışını hesaplar
public void calculateSales()
{
Scanner input = new Scanner( System.in );
double product1 = 0; // birinci üründen satılan miktar
double product2 = 0; // ikinci üründen satılan miktar
double product3 = 0; // üçüncü üründen satılan miktar
double product4 = 0; // dördüncü üründen satılan miktar
double product5 = 0; // beşinci üründen satılan miktar
/* kullanıcıya almak istediği ürün numarasını sorunuz. */
/* bitiş simgesi girilene kadar devam eden while dögüsünü yazınız */
/* kullanıcın girdiği ürün kodunun 1-5 arasında olup olmadığını kontrol ediniz */
/* Eğer girilen ürün kodu 1-5 arasındaysa kullanıcıya istediği miktarı (quantity sold) sorununuz */
/* Girilen ürünün toplamını belirlemek için kullanılan switch komutunu yazınız.*/
/* Eğer girilen ürün kodu 1-5 arasında değilse, 0 olup olmadığını test ediniz */
/* Yanlış girilmiş ürün kodu için ekrana mesaj yazınız */
/* Kullanıcıya başka bir ürün kodu sorunuz. */
/* while döngüsü sonu */
System.out.println();
System.out.printf( "Product 1: $%.2f\n", product1 );
/* her bir ürünün kalan ürün miktarını alt alta ekrana yazdırınız */
} // calculateSales metod sonu
} // Sales sınıfının sonu
Şekil 5.1 Sales.java
16
// Lab 2: SalesTest.java
// Test application for class Sales
public class SalesTest
{
public static void main( String args[] )
{
Sales application = new Sales();
application.calculateSales();
} // end main
} // end class SalesTest
Şekil 5.2 SalesTest.java
5.5 Sales Çalışması için Problem Çözme İpuçları
1. while dögüsünden önce kullanıcıdan ilk ürün kodunu girmesini isteyiniz.
2. döngüyü bitirmek için bitiş simgesi kullanınız. Bitis simgesi olarak ürün kodu “0” girilmelidir.
3. Eğer girilen ürün kodu doğruysa, döngü içerisinde kullanıcıya bu üründen kaç adet istediğini sorunuz.
Daha sonra switch komutunu kullanarak gerekli hesaplamaları yapınız.
4. switch komutu beş tane case içermelidir. Bu case’lerin içerisinde kullanıcın girdiği miktara uygun
olacak şekilde toplam hesaplanmalıdır.
17
Download