✂ Kesir Sadeleştirme

❓ Soru

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

⛓ Program Kısımları

  1. Pay ve payda değerlerini girmek.

  2. Sadeleştirme işlemini gerçekleştirmek.

  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. Değişkenlerin tanımlanması.

  2. Pay ve paydanın girilmesi.

  3. Pay ve paydanın küçüğünün tespit edilmesi.

  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. 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. II. Yol: Pay ve paydanın OBEB’i bulunur, ikisi ona bölünerek sadeleştirilmiş haline getirebiliriz.