Links

Kesir Sadeleştirme

❓ Soru

Girilen bir kesri sadeleştiren programı yazınız.

⛓ Program Kısımları

  1. 1.
    Pay ve payda değerlerini girmek.
  2. 2.
    Sadeleştirme işlemini gerçekleştirmek.
  3. 3.
    Kesrin sadeleştirilmiş halini yazdırmak.

👓 Çözüm Yöntemi

  • Başlangıç değeri 2 olan i adlı bir sayaç oluşturulur, pay ve paydanın sayaca bölünemediği durumlarda sayaç artırılır. Pay ve paydanın sayaca bölünebildiği durumlarda pay ve payda sayaca bölünüp sayaç yine 2’ye eşitlenir.
  • i, pay veya paydanın en küçüğünden büyük olmadığı surece bu işlem devam ettirilir.

👩‍🔧 Çözüm Adımları

  1. 1.
    Değişkenlerin tanımlanması.
  2. 2.
    Pay ve paydanın girilmesi.
  3. 3.
    Pay ve paydanın küçüğünün tespit edilmesi.
  4. 4.
    i kucukten büyük olmadığı sürece:
    • Pay ve payda iye bölünebilirse:
      • İkisi ve kucuk iye bölünür.
      • i 2’ye eşitlenir.
    • Pay ve payda iye bölünemezse:
      • i artırılır.
  5. 5.
    Kesrin son halinin yazdırılması.

🤖 Kod

⚙ C++ Kodu

#include <iostream>
using namespace std;
int main()
{
int pay, payda, i = 2, kucuk; // Değişkenlerin tanımlanması
// Pay ve paydanın girilmesi
cout << "Payi gir:";
cin >> pay;
cout << "Paydayi gir:";
cin >> payda;
// Pay ve paydanın küçüğünün tespit edilmesi
if (pay > payda)
kucuk = abs(payda);
else kucuk = abs(pay);
while (i <= kucuk) {
if (pay % i == 0 && payda % i == 0) {
// pay, payda ve “kucuk” “i”ye bölünmesi
pay /= i;
payda /= i;
kucuk /= i;
i = 2;
} else i++;
}
cout << pay << " / " << payda; // Kesrin son halinin yazdırılması
}

🐍 Python Kodu

# Değişkenlerin tanımlanması
i = 2
# Pay ve paydanın girilmesi
print("Payi gir:")
pay = int(input())
print("Paydayi gir:")
payda = int(input())
# Pay ve paydanın küçüğünün tespit edilmesi
if (pay > payda):
kucuk = abs(payda)
else:
kucuk = abs(pay)
while i <= kucuk:
if pay % i == 0 and payda % i == 0:
# pay, payda ve “kucuk” “i”ye bölünmesi
pay /= i
payda /= i
kucuk /= i
i = 2
else:
i += 1
print("{} / {}".format(pay, payda)) # Kesrin son halinin yazdırılması

☕ Java Kodu

import java.util.Scanner;
public class KesirSadelestirme {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int pay, payda, i = 2, kucuk; // Değişkenlerin tanımlanması
// Pay ve paydanın girilmesi
System.out.print("Payi gir:");
pay = input.nextInt();
System.out.print("Paydayi gir:");
payda = input.nextInt();
// Pay ve paydanın küçüğünün tespit edilmesi
if (pay > payda)
kucuk = Math.abs(payda);
else kucuk = Math.abs(pay);
while (i <= kucuk) //4. adim
{
if (pay % i == 0 && payda % i == 0) //4. adim (a)
{
// pay, payda ve “kucuk” “i”ye bölünmesi
pay /= i;
payda /= i;
kucuk /= i;
i = 2;
} else i++;
}
System.out.printf("%d / %d", pay, payda); // Kesrin son halinin yazdırılması
input.close();
}
}

🎉 Ekran Çıktısı

Payi gir:172
Paydayi gir:36
43 / 9

💡 Notlar

  1. 1.
    II. Yol: Pay ve paydanın OBEB’i bulunur, ikisi ona bölünerek sadeleştirilmiş haline getirebiliriz.