Problem 1:
f(x) ve g(x) fonksiyonları,
x > 0 ise f(x)= 1 / ( 1 + ln x ) ve g(x)= 1 / ( x + ln x )
x≤0 ise f(x) = 1 / ( 1+ x2 ) ve g(x)=1 / ( 1 + x + x2 )
şeklinde tanımlanıyor. x değeri klavyeden girildiğinde, f(x) ve g(x)’i hesaplatan ve yazdıran bir Java programı yazalım.
import java.io.IOException;
import java.util.Scanner;
public class If1
{
public static void main(String args[]) throws IOException
{
Scanner giris = new Scanner(System.in);
double x, f, g;
System.out.println("Bir sayi giriniz: ");
x = giris.nextDouble();
if (x > 0.0)
{
f = 1.0 / (1.0 + Math.log(x)); g = 1.0 / (x + Math.log(x));
}
else
{
f = 1.0 / (1.0 + x * x); g = 1.0 / (1.0 + x + x * x);
}
System.out.println("\nf(x)=" + f);
System.out.println("\ng(x)=" + g);
}
}
Programın çıktısı:
x negatif bir değer olarak girildiğindeyse,
çıktısı elde edilecektir.
NOT: Java'da birçok matematik kütüphanesi Math adında bir sınıfın altında bulunur. log fonksiyonu, e tabanına göre logaritma yani tabii logaritma hesaplayan bir Java fonksiyonudur.
Hatırlatma: Buradaki örneklerin main() metotlarının sonunda yer alan "throws IOException" ifadesi şu anlama gelir:
main() metodunun içinde meydana gelecek bir hatada IO yani girdi-çıktıyla ilgili bir istisnai durumu fırlat/ortaya dök (throw). Bu gibi istisnai (exception) durumları ortaya dökmekle ilgili daha ayrıntılı bilgiyi ilerleyen bölümlerdeki "Olağan dışı durumların değerlendirilmesi" ve sonraki eğitim içeriklerinde bulabilirsiniz.
Problem 2:
Bir satış elemanının sattığı ürün miktarına göre alacağı günlük ücret aşağıdaki gibi belirleniyor:
- Günlük satış miktarı 50 adetten az ise 15 TL tutarındaki sabit ücrete, satılan ürün başına 1 TL değerinde prim eklenerek günlük ücret belirlenir.
- Günlük satış miktarı 50 adet ya da daha fazla ise, bu durumda günlük sabit ücret 15 TL alınarak, satılan ürün başına da ilk 50 adet ürün için 2 TL, 50 adedi aşan kısım için de 3 TL prim verilerek günlük ücret belirlenir.
Bir satıcının günlük satış miktarı bilgisayara girildiğinde satıcının alacağı günlük ücreti hesaplayan bir Java programı yazınız.
import java.io.IOException;
import java.text.DecimalFormat;
import java.util.Scanner;
public class Satis
{
public static void main(String args[]) throws IOException
{
Scanner giris = new Scanner(System.in);
double satis, ucret; //DecimalFormat tipiyle özel biçimlerde sayılar gösterebilirsiniz.
DecimalFormat nf = new DecimalFormat("###,###.00");
System.out.println("Gunluk kac tane urun satiyorsunuz? ");
satis = giris.nextDouble();
if (satis < 50)
{
ucret = 15.0 + satis * 1.0;
}
else
{
ucret = 15.0 + 50 * 2.0 + (satis - 50) * 3.0;
}
System.out.println("Buna gore gunluk ucretiniz: "+nf.format(ucret)+" TL");
}
}
Programın çıktısı:
Gerekli tüm aralıkların kontrolü için program 10, 30 ve 60 adetlik satış miktarları için test edildiğinde aşağıdaki sonuçlar elde ediliyor:
Problem 3:
Bilgisayara negatif olmayan bir sayı girildiğinde bu sayının karekökünü hesaplayan, negatif bir sayı girildiğinde ise kullanıcıyı uyaran bir Java programı yazalım.
import java.util.Scanner;
public class KareKok
{
public static void main(String args[])
{
Scanner giris = new Scanner(System.in);
double sayi; System.out.println("Karekokunu bulmak icin bir sayi giriniz: ");
sayi = giris.nextDouble();
if(sayi < 0)
System.out.println ("Olmadi, pozitif sayi girmeliydiniz");
else
System.out.println (sayi + "'nin karekoku: "+ Math.sqrt(sayi));
}
}
Programın çıktısı:
Not: Programda, verilen bir sayının karekökünü hesaplayan sqrt fonksiyonu kullanılmıştır. Bu fonksiyon math kütüphanesinin bir elemanı olup sayının karekökünü bulur. Math kütüphanesinin içinde matematik işlemlerini yapmak için daha birçok fonksiyon bulunur. Bu sayede programcı matematiksel işlemleri math kütüphanesinin özelliklerini kullanarak çok rahat bir şekilde yapabilir.