2024 TYT matematik sorularının çözümünü programlama mantığıyla çözmeye başlayalım. Böylece hem matematik hem de programlama bilgimiz artacaktır. Sorunun çözümünü bilgisayara anlatmak için çözüme ait tüm aşamaları bilmemiz gerekir. Lafı uzatmadan soruyu verelim.

Bu sorunun çözümünde, verilen kesirlerin paydalarını eşitleyerek toplamlarının 1 olup olmadığını kontrol edebiliriz. Öncelikle, bu kesirlerin paydalarını en küçük ortak kat (EKOK) kullanarak eşitleyelim.
Verilen kesirler:
1/3, 1/6, 6/8, 8/12, 9/36
Bu kesirlerin paydalarının en küçük ortak katını (EKOK) bulalım. Paydalar:
3, 6, 8, 12, 36
Bu sayıların en küçük ortak katını (EKOK) bulmak için asal çarpanlarını kullanabiliriz:
3 : 3
6 : 2.3
8 : 23
12 : 22.3
36 : 22.32
Asal çarpanların en büyük kuvvetleri:
2'nin en büyük kuvveti: 23 = 8
3'ün en büyük kuvveti: 32 = 9
Bu kuvvetleri çarparak EKOK'u bulalım:
𝐸𝐾𝑂𝐾 = 23.32 = 8.9 = 72
Şimdi kesirli sayıları tekrar yazalım.
1/3 = 24/72
1/6 = 12/72
6/8 = 54/72
8/12 = 48/72
9/36 = 18/72
Eşleştirmeler yapıldığında 1/6 rasyonel sayısı yanı A şıkkı doğru cevap olacaktır.
Çözümü yapalım.
Web sayfasının tasarımını yapalım.
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Rasyonel Sayılar Problemi</title>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/
4.5.2/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<form id="form1" runat="server">
<div class="container mt-5">
<h2 class="text-center">Rasyonel Sayılar Problemi</h2>
<div class="row">
<div class="col-md-12">
<p>Verilen kesirler:</p>
<ul>
<li>1/3</li>
<li>1/6</li>
<li>6/8</li>
<li>8/12</li>
<li>9/36</li>
</ul>
<asp:Button ID="calculate" runat="server"
Text="Hesapla" CssClass="btn btn-primary" OnClick="Calculate_Click" />
<div id="result" class="mt-4">
<asp:Literal ID="ResultLiteral"
runat="server"></asp:Literal>
</div>
</div>
</div>
</div>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/
3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/
4.5.2/js/bootstrap.min.js"></script>
</body>
</html>
Şimdi de kodları yazalım.
protected void Calculate_Click(object sender, EventArgs e)
{
// Kesirler ve paydaları
List<Fraction> fractions = new List<Fraction>
{
new Fraction { Numerator = 1, Denominator = 3 },
new Fraction { Numerator = 1, Denominator = 6 },
new Fraction { Numerator = 6, Denominator = 8 },
new Fraction { Numerator = 8, Denominator = 12 },
new Fraction { Numerator = 9, Denominator = 36 }
};
int ekok = Lcm(fractions.Select(f => f.Denominator).ToArray());
// Kesirleri aynı paydaya çevirme
List<Fraction> convertedFractions = fractions.Select(f =>
new Fraction
{
Numerator = f.Numerator * (ekok / f.Denominator),
Denominator = ekok
}).ToList();
Fraction targetFraction = new Fraction { Numerator = 12,
Denominator = 72 };
var sums = convertedFractions.Select(f => new
{
SumNumerator = targetFraction.Numerator + f.Numerator,
SumDenominator = ekok,
OriginalFraction = $"{f.Numerator / (ekok / f.Denominator)}/
{f.Denominator}"
}).ToList();
string resultHtml = $"<h4>Paydaların
En Küçük Ortak Katı (EKOK): {ekok}</h4>";
resultHtml += "<h4>Kesirlerin Aynı Paydaya Çevrilmiş Hali:</h4><ul>";
foreach (var f in convertedFractions)
{
resultHtml += $"<li>{f.Numerator}/{f.Denominator}</li>";
}
resultHtml += "</ul>";
resultHtml += "<h4>12/72 ile diğer kesirlerin toplamları:</h4><ul>";
foreach (var s in sums)
{
resultHtml += $"<li>12/72 + {s.OriginalFraction} =
{s.SumNumerator}/{s.SumDenominator} =
({(double)s.SumNumerator / s.SumDenominator:F2})</li>";
}
resultHtml += "</ul>";
resultHtml += "<h4>Sonuç: 12/72 (yani 1/6) ile diğer
kesirlerin toplamı 1 olmamaktadır.</h4>";
ResultLiteral.Text = resultHtml;
}
// EKOK hesaplama
private int Lcm(int[] numbers)
{
return numbers.Aggregate(Lcm);
}
private int Lcm(int a, int b)
{
return (a * b) / Gcd(a, b);
}
// EBOB hesaplama
private int Gcd(int a, int b)
{
return b == 0 ? a : Gcd(b, a % b);
}
public class Fraction
{
public int Numerator { get; set; }
public int Denominator { get; set; }
}