osa1 feed

Bil113 Lab 1. arasınav cevapları

October 18, 2010 - Tagged as: java, tr.

Birkaç güne dersin sayfasında cevaplar açıklanır muhtemelen, en azından alternatif olarak, sınavda benim yazdığım cevaplar:

Soru 1: Girilen iki kesiri toplayıp çarpıp yine a/b şeklinde ifade etme:

import java.util.Scanner;
public class Soru1 {

    public static void main(String[] args) {
    
        Scanner girdi = new Scanner(System.in);
        System.out.print("İlk kesirin pay ve paydasını giriniz : ");
        int pay1 = girdi.nextInt();
        int payda1 = girdi.nextInt();
        System.out.print("İkinci kesirin pay ve paydasını giriniz : ");
        int pay2 = girdi.nextInt();
        int payda2 = girdi.nextInt();
    
        int sonucToplamPay, sonucToplamPayda, sonucCarpimPay, sonucCarpimPayda;
    
        sonucToplamPayda = payda1 * payda2;
        sonucToplamPay = pay1*payda2 + pay2*payda1;
    
        sonucCarpimPay = pay1*pay2;
        sonucCarpimPayda = payda1*payda2;
    
        System.out.println(pay1 + "/" + payda1 + " + " + pay2 + "/" + payda2 + " = " + sonucToplamPay + "/" + sonucToplamPayda);
        System.out.println(pay1 + "/" + payda1 + " * " + pay2 + "/" + payda2 + " = " + sonucCarpimPay + "/" + sonucCarpimPayda);
    }
}

Soru 2: Girilen 3 sayıyı küçükten büyüğe sıralama. Aşağıdaki kod eşitlik durumunda da düzgün çalışıyor(daha kısa bir şekilde çözen var mı?):

import java.util.Scanner;
public class Soru2 {
    public static void main(String[] args) {
    
        boolean devam = true;
    
        while (devam) {
            Scanner girdi = new Scanner(System.in);
            int a = girdi.nextInt();
            int b = girdi.nextInt();
            int c = girdi.nextInt();
        
            if (a > b) {
                if (b > c) {
                    System.out.println(c + " " + b + " " + a);
                } else { // a > b, c > b veya b == c durumu
                    if (a > c) {
                        System.out.println(b + " " + c + " " + a);
                    } else { // a > b, c > a veya a == c durumu
                        System.out.println(b + " " + a + " " + c);
                    }
                }
            } else { // b > a veya b == a durumu
                if (a > c) { // b > a > c
                    System.out.println(c + " " + a + " " + b);
                } else { // b > a, c > a veya a == c
                    if (b > c) { // b > c > a
                        System.out.println(a + " " + c + " " + b);
                    } else { // c > b > a veya c == b > a
                        System.out.println(a + " " + b + " " + c);
                    }
                }
            }
        
            System.out.print("Devam?");
            girdi.nextLine(); // bug gibi birşey
            if (girdi.nextLine().equals("hayır")) {
                devam = false;
            }
        }
    }
}

Soru 3: Girilen cümledeki büyük harfleri küçük, küçük harfleri büyük harfe çevirme(türkçe karakter girilmeyecek). Her harf için, eğer harfin büyültülmüş hali kendisine eşitse, harfi küçülttüm, değilse büyülttüm. Bir arkadaş da ASCII tablosundan küçük ve büyük harflerin aralığını tespit edip yapmış.

import java.util.Scanner;
public class Soru3 {
    public static void main(String[] args) {
    
        Scanner girdi = new Scanner(System.in);
        String str = girdi.nextLine();
        String harf;
    
        for (int i = 0; i < str.length(); i++) {
            harf = str.substring(i, i+1);
            if (harf.equals(harf.toLowerCase())) { // harf zaten kucuk
                System.out.print(harf.toUpperCase());
            } else { // harf buyuk
                System.out.print(harf.toLowerCase());
            }
        }
    }
}

Soru 4: Guess my number. 1 ile 100 arasında bir sayı tutulacak.

import java.util.Random;
import java.util.Scanner;
public class Soru4 {
    public static void main(String[] args) {
    
        Scanner girdi = new Scanner(System.in);
    
        Random r = new Random();
        int randomNumber = Math.abs(r.nextInt());
        randomNumber = (randomNumber % 100) + 1;
    
        int tahminSayisi = 1;
        int tahmin = -1;
    
        System.out.println("Bilgisayar 1 ile 100 arasında bir sayı tuttu.");
    
        while (!(tahmin == randomNumber)) {    
            System.out.print("Tahmininiz? ");
            tahmin = girdi.nextInt();
            if (tahmin < randomNumber) {
                System.out.println("Tahmininizi arttırın.");
            } else if (tahmin > randomNumber) {
                System.out.println("Tahmininizi azaltın.");
            } else {
                System.out.println("Tebrikler, " + tahminSayisi + " tahminde sayıyı bildiniz.");
            }
            tahminSayisi++;
        } // while biter
    }
}

Alternatif çözümü olan var mı?