Section 2 Programming Exercises

Bölüm 2 Sorular

2.1 (Convert Celsius to Fahrenheit) Write a program that reads a Celsius degree in a double value from the console, then converts it to Fahrenheit and displays the result. The formula for the conversion is as follows:

(Santigrat Fahrenhayt Dönüşümü) Konsoldan double türünde Santigrat değerini alan ve bunu Fahrenhayt olarak gösteren bir program yazınız. Dönüşüm için aşağıdaki formülü kullanabilirsiniz:

fahrenheit = (9 / 5) * celsius + 32

fahrenhayt = (9 / 5) * santigrat + 32

Hint: In Java, 9 / 5 is 1, but 9.0 / 5 is 1.8.

İpucu: Java’da 9 / 5 işleminin sonucu 1’dir ama 9.0 / 5 işleminin sonucu 1.8’dir.

Here is a sample run:

Örnek akışı inceleyiniz:

              Santigrat olarak bir derece giriniz: 43

              43 Santigrat 109.4 Fahrenhayt´tir.

2.2 (Compute the volume of a cylinder) Write a program that reads in the radius and length of a cylinder and computes the area and volume using the following formulas:

(Silindirin hacmi) Kullanıcıdan silindirin yarıçap ve yükseklik değerini isteyen ve aşağıdaki formüle göre alanını ve hacmini hesaplayan bir program yazınız:

area = radius * radius * p

volume = area * length

alan = yarıçap * yarıçap * pi

hacim = alan * yükseklik

Here is a sample run:

Örnek akışı inceleyiniz:

              Bir silindirin yaricapini ve yuksekligini giriniz:  5.5   12

              Alani 95.0331

              Hacmi 1140.4

2.3 (Convert feet into meters) Write a program that reads a number in feet, converts it to meters, and displays the result. One foot is 0.305 meter.

(Feet - metre dönüşümü) Kullanıcıdan feet değerini alan ve bunun metre karşılığını hesaplayıp gösteren bir program yazınız. Bir feet 0.305 metredir.

Here is a sample run:

Örnek akışı inceleyiniz:

                 Feet olarak bir deger giriniz:  16.5

                 16.5 feet 5.0325 metredir.  

2.4 (Convert pounds into kilograms) Write a program that converts pounds into kilograms.  The program prompts the user to enter a number in pounds, converts it to kilograms, and displays the result. One pound is 0.454 kilograms.

(Pound-kilogram dönüşümü) Poundu kilograma dönüştüren bir program yazınız.  Program, kullanıcıdan pound değerini alır ve sonucu kilograma dönüştürüp gösterir. Bir pound 0.454 kilogramdır.

Here is a sample run:

Örnek akışı inceleyiniz:

             Pound cinsinden bir deger giriniz:   55.5

             55.5 Pound 25.197 kilogramdir.

*2.5 (Financial application: calculate tips) Write a program that reads the subtotal and the gratuity rate, then computes the gratuity and total. For example, if the user enters 10 for subtotal and 15% for gratuity rate, the program displays $1.5 as gratuity and $11.5 as total.

(Finans uygulaması: komisyon hesaplama) Kullanıcıdan ara toplam ve komisyon oranını isteyen, komisyon miktarı ve toplamı hesaplayıp gösteren bir program yazınız. Örneğin, kullanıcı ara toplamı 10 TL ve komisyon oranını 15% olarak girdiğinde program, komisyon miktarı 1.5 TL ve toplamı 11.5 TL olarak gösterir.

 

        Here is a sample run:

Örnek akışı inceleyiniz:

               Ara toplam ve komisyon oranini giriniz:   10  15

               Komisyon $1.5 ve toplam $11.5’dir.

**2.6 (Sum the digits in an integer) Write a program that reads an integer between 0 and 1000 and adds all the digits in the integer. For example, if an integer is 932, the sum of all its digits is 14.

(Tam sayının basamak değerlerinin toplamı) 0 ve 1000 aralığında bir tam sayı alan ve basamak değerlerinin toplamını gösteren bir program yazınız. Örneğin; Girilen tam sayı  932, ise basamak değerli toplamı 14’tür.

Hint: Use the % operator to extract digits, and use the / operator to remove the extracted digit. For instance, 932 % 10 = 2 and 932 / 10 = 93.

İpucu:  % operatörünü kullanarak basamak değerlerini elde edebilir,  / operatörü ile değeri elde edilen basamağı kaldırabilirsiniz. Örneğin, 932 % 10 = 2 ve 932 / 10 = 93.

Here is a sample run:

Örnek akışı inceleyiniz :

               0 - 1000 arasi bir sayi giriniz:   999

               Sayidaki rakamlarin toplami 27’dir.

*2.7 (Find the number of years) Write a program that prompts the user to enter the minutes (e.g., 1 billion), and displays the number of years and days for the minutes. For simplicity, assume a year has 365 days.

(Kaç yıl) Kullanıcıdan dakika olarak giriş yapılmasını isteyen (ör. 1 000 000) ve buna karşılık gelen yıl, gün ve dakikayı gösteren bir program yazınız. Her zaman bir yılın 365 gün olduğunu varsayın.

Here is a sample run:        

Örnek akışı inceleyiniz :

                 Hesaplanacak dakika sayisini giriniz:   1000000000

                 1000000000 dakika ortalama 1902 yıl ve 214 gundur.

*2.8 (Current time) Listing 2.7, ShowCurrentTime.java, gives a program that displays the current time in GMT. Revise the program so that it prompts the user to enter the time zone offset to GMT and displays the time in the specified time zone.

(Şu anki saat) Madde 2.7’deki, ShowCurrentTime.java, dosyasında şu anki saati GMT olarak gösteren bir program bulunmaktadır. Kullanıcıdan GMT ye göre bulunulan zaman dilimini girmesini isteyen ve girilen zaman dilimindeki saati gösterecek şekilde programı yeniden düzenleyiniz.

Here is a sample run:

Örnek akışı inceleyiniz:

                GMT’ye gore bulunulan zaman dilimini giriniz:   -5

                Su anki saat 4:50:34

2.9 (Physics: acceleration) Average acceleration is defined as the change of velocity divided by the time taken to make the change, as shown in the following formula:

(Fizik: ivme) Aşağıdaki formülde gösterildiği gibi, ortalama ivme hızdaki değişimin zamana bölünmesiyle elde edilir.

Write a program that prompts the user to enter the starting velocity v0 in meters/second, the ending velocity v1 in meters/second, and the time span t in seconds, and displays the average acceleration.

Kullanıcıdan ilk hızı (v0) metre/saniye, son hızı (v1) metre/saniye ve zamanı (t) saniye olarak alan ve ortalama ivmeyi gösteren bir program yazınız.

Here is a sample run:

Örnek akışı inceleyiniz :

                     v0, v1 ve t’yi giriniz:    5.5   50.9   4.5

                    Ortalama ivme 10.0889’dur.

2.10 (Science: calculating energy) Write a program that calculates the energy needed to heat water from an initial temperature to a final temperature. Your program should prompt the user to enter the amount of water in kilograms and the initial and final temperatures of the water. The formula to compute the energy is

(Bilim: Enerji hesaplama) Belli miktar suyu, başlangıç sıcaklığından belirlenen sıcaklığa çıkarmak için gerekli enerjiyi hesaplayan bir program yazınız. Programınız kullanıcıdan su miktarını (kilogram), başlangıç ve son sıcaklığı alacak. Enerjiyi hesaplamak için kullanabileceğiniz formül:

Q = M * (finalTemperature – initialTemperature) * 4184

Q = M * (sonSicaklik – ilkSicaklik) * 4184

where M is the weight of water in kilograms, temperatures are in degrees Celsius, and energy Q is measured in joules.

M kilogram cinsinden suyun ağırlığı, sıcaklık santigrat derece cinsinden, ve Q joule cinsinden enerjiyi gösterir.

Here is a sample run:

Örnek akışı inceleyiniz :

                Suyun miktarini kilogram cinsinde giriniz: 55.5

                Baslangic isisini giriniz:  3.5

                Son sıcakligi giriniz: 10.5

                Gereken enerji 1625484.0

2.11 (Population projection) Rewrite Programming Exercise 1.11 to prompt the user to enter the number of years and displays the population after the number of years. Use the hint in Programming Exercise 1.11 for this program. The population should be cast into an integer.

(Nüfus tahmini) Kullanıcıdan yıl sayısını alan ve bu yıl için nüfus tahminini gösterecek şekilde Programlama Soruları 1.11 ‘i yeniden düzenleyiniz. Bu program için Bölüm 1 Sorulardan 11’incinin ipucunu kullanınız. Nüfus sonucu int türüne dönüştürülmelidir.

Here is a sample run of the program:

Programın örnek akışını inceleyiniz :

                     Yil sayisini giriniz:  5

                     5 yil icinde nufus 325932970 olacaktir.

2.12 (Physics: finding runway length) Given an airplane’s acceleration a and take-off speed v, you can compute the minimum runway length needed for an airplane to take off using the following formula:

(Fizik: iniş mesafesi) İvmesi a ve iniş anındaki hızı v olan bir uçak için gerekli en az pist mesafesini hesaplamak için aşağıdaki formülü kullanabilirsiniz :

Write a program that prompts the user to enter v in meters/second (m/s) and the acceleration a in meters/second squared (m/s2), and displays the minimum runway length.

Kullanıcıdan hızı v (metre/saniye) ve ivmeyi a (metre/saniye kare) alan ve gerekli en az pist mesafesini hesaplayan bir program yazınız.

Here is a sample run:

Örnek akışı inceleyiniz :

                Hizi ve ivmeyi giriniz:  60    3.5

                Bu ucak icin gereken minimum pist mesafesi 514.286  

**2.13 (Financial application: compound value) Suppose you save $100 each month into a savings account with the annual interest rate 5%. Thus, the monthly interest rate is 0.05/12 = 0.00417. After the first month, the value in the account becomes

(Finans uygulaması: birleşik faiz) Yıllık %5 faiz oranıyla hesabınızda her ay 100 TL biriktirdiğinizi varsayalım. Bu durumda aylık faiz oranı 0.05/12 = 0.00417. İlk ayın sonunda hesabınızdaki miktar:

100 * (1 + 0.00417) = 100.417

After the second month, the value in the account becomes

İkinci ayın sonunda hesabınızdaki miktar:

(100 + 100.417) * (1 + 0.00417) = 201.252

After the third month, the value in the account becomes

Üçüncü ayın sonunda hesabınızdaki miktar:

(100 + 201.252) * (1 + 0.00417) = 302.507

and so on.

ve böyle gider

Write a program that prompts the user to enter a monthly saving amount and displays the account value after the sixth month. (In Exercise 5.30, you will use a loop to simplify the code and display the account value for any month.)

Kullanıcıdan aylık biriktirdiği para miktarını alan ve altı ay sonra hesabının durumunu gösteren bir program yazınız. (Soru 5.30’da, bu kodu basitleştirmek için döngü kullanıyor olacaksınız ve hesabın durumunu aylık olarak göstereceksiniz.)

          Biriktirilen aylik para miktarini giriniz: 100

          Altinci aydan sonra hesaptaki miktar $608.81 olacaktir.

*2.14 (Health application: computing BMI) Body Mass Index (BMI) is a measure of health on weight. It can be calculated by taking your weight in kilograms and dividing by the square of your height in meters. Write a program that prompts the user to enter a weight in pounds and height in inches and displays the BMI. Note that one pound is 0.45359237 kilograms and one inch is 0.0254 meters.

(Sağlık: VKİ hesaplama) Vucüt Kitle İndeksi (VKİ) ideal kilonun hesaplanması için kullanılır. Kilogram olarak ağırlığınızın, metre cinsinden boy uzunluğunun karesine bölünmesiyle elde edilir. Kullanıcıdan ağırlığını pound ve boyunu inch olarak girmesini isteyen ve VKİ değerini gösteren bir program yazınız. Bir pound 0.45359237 kilogram ve bir inch 0.0254 metredir.

Here is a sample run:

Örnek akışı inceleyiniz :

                    Agirligi pound cinsinden giriniz: 95.5

                    Uzunlugu inch cinsinden giriniz: 50

                    BMI 26.8573’tur.

2.15 (Geometry: distance of two points) Write a program that prompts the user to enter two points (x1, y1) and (x2, y2) and displays their distance between them.

(Geometri: iki nokta arasındaki mesafe) Kullanıcıdan (x1, y1) ve (x2, y2) gibi iki nokta girmesini isteyen ve bu iki nokta arasındaki mesafeyi gösteren bir program yazınız.

The formula for computing the distance is. Note that you can use Math.pow(a, 0.5) to compute .

Mesafeyi hesaplamak için kullanabileceğiniz formül .   ‘yı hesaplamak için  Math.pow(a, 0.5) metodunu kullanabilirsiniz.

Here is a sample run:

Örnek akışı inceleyiniz :

              x1 ve y1’i giriniz:   1.5   -3.4

              x2 ve y2’yi giriniz: 4   5

              İki nokta arasindaki mesafe 8.764131445842194’tur.

2.16 (Geometry: area of a hexagon) Write a program that prompts the user to enter the side of a hexagon and displays its area. The formula for computing the area of a hexagon is

(Geometri: altıgenin alanı) Kullanıcıdan altıgenin kenar uzunluğunu isteyen ve alanını hesaplayıp gösteren bir program yazınız. Altıgenin alanını hesaplamak için kullanılacak formül:

where s is the length of a side.

 s altıgenin kenar uzunluğunu gösterir.

Here is a sample run:

Örnek akışı inceleyiniz:

               Kenar uzunlugunu yaziniz:  5.5

               Altigenin alani 78.5895’tir.

*2.17 (Science: wind-chill temperature) How cold is it outside? The temperature alone is not enough to provide the answer. Other factors including wind speed, relative humidity, and sunshine play important roles in determining coldness outside. In 2001, the National Weather Service (NWS) implemented the new wind-chill temperature to measure the coldness using temperature and wind speed.

 (Bilim: hissedilen sıcaklık) Dışarısı ne kadar soğuk? Bu soruyu cevaplamak için sadece sıcaklığı bilmek yeterli olmayacaktır. Havanın ne kadar soğuk olduğunu ölçmek için sıcaklığın yanında; rüzgarın hızı, nispi nem ve güneş ışığı önemli rol oynarlar. 2001 yılında, Ulusal Hava İstasyonu (UHİ) hissedilen sıcaklığı ölçmek için rüzgar hızını ve sıcaklığı kullanan yeni bir algoritma geliştirdiler.

The formula is

Bunun için geliştirilen formül:

where  is the outside temperature measured in degrees Fahrenheit and v is the speed measured in miles per hour.  is the wind-chill temperature. The formula cannot be used for wind speeds below 2 mph or temperatures below -58 ºF or above 41ºF.

 Fahrenhayt olarak dış sıcaklığı ve v mil/saat olarak hızı gösterir. hissedilen sıcaklığı gösterir. Bu formül eğer rüzgar 2 mil/saat üzerinde ve sıcaklık -58 ºF ile 41ºF arasında ise geçerlidir.

Write a program that prompts the user to enter a temperature between -58 ºF and 41ºF and a wind speed greater than or equal to 2 and displays the wind-chill temperature. Use Math.pow(a, b) to compute v0.16.

Kullanıcıdan -58 ºF ile 41ºF arasında sıcaklığı ve 2 mil / saate eşit ya da daha yüksek rüzgar hızını isteyen ve hissedilen sıcaklığı hesaplayan bir program yazınız.  v0.16. Hesaplamak için Math.pow(a, b) metodunu kullanınız.

Here is a sample run:

Örnek akışı inceleyiniz:

              -58 ºF ile 41ºF arasinda bir sıcaklik degeri giriniz:  5.3

              Ruzgar hiz degerini saatte mininum 2 mil olacak sekilde giriniz: 6

              Hissedilen sicaklik -5.56707’dir.

2.18 (Print a table) Write a program that displays the following table. Cast floating point numbers into integers.

 (Tablo oluşturma) Aşağıdaki tabloyu oluşturacak bir program yazınız: Gerçel sayıları tam sayıya dönüştürün.

a         b         pow(a, b)

1         2         1

2         3         8

3         4         81

4         5         1024

5         6         15625

*2.19 (Geometry: area of a triangle) Write a program that prompts the user to enter three points (x1, y1), (x2, y2), (x3, y3) of a triangle and displays its area.

(Geometri: üçgenin alanı) Kullanıcıdan (x1, y1), (x2, y2), (x3, y3) gibi üç nokta girmesini isteyen ve üçgenin alanını hesaplayıp gösteren bir program yazınız.

The formula for computing the area of a triangle is

Üçgenin alanını hesaplamak için kullanılacak formül:

Here is a sample run:

Örnek akışı inceleyiniz:

                     Ucgenin uc noktasini giriniz: 1.5  -3.4   4.6  5  9.5  -3.4

                     Ucgenin alani 33.6’dir.

*2.20 (Financial application: calculate interest) If you know the balance and the annual percentage interest rate, you can compute the interest on the next monthly payment using the following formula:

(Finans uygulaması: faiz hesaplama) Bakiye ve yıllık faiz oranını biliyorsak aşağıdaki formülü kullanarak bir sonraki ay elde edilecek faiz geliri hesap edilebilir.

interest = balance * (annualInterestRate/1200)

faizGetirisi = bakiye * (yillikFaizOrani / 1200)

Write a program that reads the balance and the annual percentage interest rate and displays the interest for the next month.

Kullanıcıdan, bakiye ve yıllık faiz oranını isteyen ve bir sonraki ay için elde edilecek faiz gelirini hesaplayan bir program yazınız.

Here is a sample run:

Örnek akışı inceleyiniz :

                Bakiye ve yillik faiz oranini giriniz:  1000  3.5

                Faiz 2.91667’dir.

*2.21 (Financial application: calculate future investment value) Write a program that reads in investment amount, annual interest rate, and number of years, and displays the future investment value using the following formula:

 (Finans uygulaması: Yatırımın geri dönüş değeri) Kullanıcıdan yatırım miktarı, yıllık faiz oranı ve yıl sayısını isteyen ve aşağıdaki formülü kullanarak yatırımın geri dönüş değerini hesaplayıp gösteren bir program yazınız.

futureInvestmentValue = investmentAmount * (1 + monthlyInterestRate) numberOfYears * 12

yatiriminGeriDonusDegeri = yatirimMiktari * (1 + aylikFaizOrani)  yilSayisi * 12

For example, if you enter amount 1000, annual interest rate 3.25%, and number of years 1, the future investment value is 1032.98.

Örneğin, miktar 1000, yıllık faiz oranı %3.25 ve yıl sayısı 1 olarak girilirse yatırımın getirisi 1032.98 olacaktır.

Here is a sample run:

Örnek akışı inceleyiniz :

        Yatirim miktarini giriniz: 1000.56

        Yillik faiz oranini yuzde olarak giriniz: 4.25

        Yil sayisini giriniz: 1

        Yatirimin geri donus degeri $1043.92’dir.

*2.22 (Financial application: monetary units) Rewrite Listing 2.10, ComputeChange.java, to fix the possible loss of accuracy when converting a double value to an int value. Enter the input as an integer whose last two digits represent the cents.

(Finans uygulaması: para birimi) Madde 2.10’daki, ComputeChange.java, uygulamasında double ’dan int ’e yapılan tür dönüşümünde değer kaybını engellemek için yeniden düzenleme yapınız. Girilen tam sayının son iki basamağı kuruşu temsil etsin.

For example, the input 1156 represents 11 dollars and 56 cents.

Örneğin, 1156 girildiğinde bu 11 lira  56 kuruş demektir.

*2.23 (Cost of driving) Write a program that prompts the user to enter the distance to drive, the fuel efficiency of the car in miles per gallon, and the price per gallon, and displays the cost of the trip.

(Yakıt maliyeti) Kullanıcıdan mesafe, aracın yakıt tüketimi ve yakıt fiyatını isteyen ve aracın sürüş boyunca yakıt maliyetini hesaplayan bir program yazınız.

Here is a sample run:

Örnek akışı inceleyiniz :

            Surus mesafesini giriniz: 900.5

            Galon basina gidilen mil sayisini giriniz: 25.5

            Galon fiyatını giriniz: 3.55

            Toplam surus maliyeti $125.36’dir.