妓 En Yak覺n Say覺y覺 Bulmak

Soru

Arka arkaya girilen 10 say覺dan istenilen bir say覺ya en yak覺n olan say覺y覺 bulan algoritmay覺 yaz覺n覺z.

Program K覺s覺mlar覺

  1. 襤stenilen say覺y覺 girmek.

  2. 10 tane deer girmek.

  3. En yak覺n deeri bulmak.

  4. En yak覺n deeri ekrana yazd覺rmak.

繹z羹m Y繹ntemi

  • Yak覺nl覺k (a ,b) = |a-b| olduu bellidir.

  • Her deer girildiinde yak覺nl覺覺n覺 hesaplay覺p 繹nceki yak覺nl覺kla kar覺lat覺r覺r覺z.

抽 繹z羹m Ad覺mlar覺

  1. Deikenlerin tan覺mlanmas覺.

  2. sayin覺n girilmesi.

  3. 襤lk x deerinin girilmesi.

  4. 襤lk deere g繹re deikenlere deer atanmas覺.

  5. (10-1) kere d繹nen d繹ng羹n羹n oluturulmas覺.

    • xin girilmesi.

    • Koullar kontrol edilirken yakinlik ve enyakin deerlerin deitirilmesi.

  6. Sonu癟lar覺n yazd覺r覺lmas覺.

Kod

C++ Kodu

#include <iostream>
using namespace std;
int main()
{
int x, sayi, yakinlik, enyakin, i; // Deikenlerin tan覺mlanmas覺
int enyakin2 = 0, yakinlik2 = -1;
cin >> sayi; // sayin覺n girilmesi
cin >> x; // 襤lk x deerinin girilmesi
enyakin = x; // 襤lk deere g繹re deikenlere deer atanmas覺
yakinlik = abs(x - sayi);
for (i = 0; i < 9; i++) {
cin >> x; // xin girilmesi
// Koullar kontrol edilirken yakinlik ve enyakin deerlerin deitirilmesi
if (abs(x - sayi) < yakinlik) {
yakinlik =abs(x - sayi);
enyakin = x;
} else if (abs(x - sayi) == yakinlik) {
if (x != enyakin) {
yakinlik2 = yakinlik;
enyakin2 = x;
}
}
}
if (yakinlik2 == yakinlik)
cout << "Diger en yakin sayi= " << enyakin2;
cout << "En yakin sayi= " << enyakin;
}

Python Kodu

enyakin2 = 0; yakinlik2 = -1;
sayi = int(input()) # sayin覺n girilmesi
x = int(input()) # 襤lk x deerinin girilmesi
# 襤lk deere g繹re deikenlere deer atanmas覺
enyakin = x
yakinlik = abs(x - sayi)
for i in range(0,9):
x = int(input()) # xin girilmesi
# Koullar kontrol edilirken yakinlik ve enyakin deerlerin deitirilmesi
if abs(x - sayi) < yakinlik:
yakinlik = abs(x - sayi)
enyakin = x
else:
if abs(x - sayi) == yakinlik:
if x != enyakin:
yakinlik2 = yakinlik
enyakin2 = x
if (yakinlik2 == yakinlik):
print("Diger en yakin sayi= ", enyakin2)
print("En yakin sayi= ", enyakin)

Java Kodu

import java.util.*;
public class YakiniBulmak {
public static void main(String arg[]) {
Scanner input = new Scanner(System.in);
// Deikenlerin tan覺mlanmas覺
int x, sayi, yakinlik, enyakin, i, enyakin2 = 0, yakinlik2 = -1;
sayi = input.nextInt(); // sayin覺n girilmesi
x = input.nextInt(); // 襤lk x deerinin girilmesi
// 襤lk deere g繹re deikenlere deer atanmas覺
enyakin = x;
yakinlik = Math.abs(x - sayi);
for (i = 0; i < 9; i++) {
x = input.nextInt(); // xin girilmesi
// Koullar kontrol edilirken yakinlik ve enyakin deerlerin deitirilmesi
if (Math.abs(x - sayi) < yakinlik) {
yakinlik = Math.abs(x - sayi);
enyakin = x;
} else if (Math.abs(x - sayi) == yakinlik) {
if (x != enyakin) {
yakinlik2 = yakinlik;
enyakin2 = x;
}
}
}
if (yakinlik2 == yakinlik)
System.out.println("Diger en yakin sayi= " + enyakin2);
System.out.println("En yakin sayi= " + enyakin);
input.close();
}
}

C# Kodu

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace YakiniBulmak
{
class Program{
static void Main(string[] args){
// Deikenlerin tan覺mlanmas覺
int x, sayi, yakinlik, enyakin, i, enyakin2 = -1, yakinlik2 = -1;
sayi = Convert.ToInt32(Console.ReadLine()); // sayin覺n girilmesi
x = Convert.ToInt32(Console.ReadLine()); // 襤lk x deerinin girilmesi
// 襤lk deere g繹re deikenlere deer atanmas覺
enyakin = x;
yakinlik = Math.Abs(x - sayi);
for (i = 0; i < 9; i++){
x = Convert.ToInt32(Console.ReadLine());
// Koullar kontrol edilirken yakinlik ve enyakin deerlerin deitirilmesi
if (Math.Abs(x - sayi) < yakinlik){
yakinlik = Math.Abs(x - sayi);
enyakin = x;
}
else if (Math.Abs(x - sayi) == yakinlik){
if (x != enyakin){
yakinlik2 = yakinlik;
enyakin2 = x;
}
}
}
if (yakinlik2 == yakinlik)
Console.WriteLine(enyakin2);
Console.WriteLine(enyakin);
Console.ReadLine();
}
}
}

妝 Ak覺 emas覺

Ekran 覺kt覺s覺

5
1 9 0 88 3 4 2 2 11 10
En yakin sayi= 4

Notlar

  1. Bir yak覺nl覺k 繹nceki yak覺nl覺a eitse 2 durum olabilir:

    • Yak覺nl覺k(2) = yak覺nl覺k(1) ise:

      • Ya : say覺(2) = say覺(1) say覺 tekrarl覺.

      • Ya da: say覺 (2) = 2*x say覺(1) say覺lar覺n ikisi ayn覺 yak覺nl覺kta, say覺(2) deerini enyak覺n2 deikenine atar覺z.

  2. D繹ng羹den 癟覺kt覺ktan sonra yakinlik = yakinlik2 ise ayn覺 yak覺nl覺kta iki say覺 bulunmu olur, dolay覺s覺yla ikisini yazd覺rmal覺y覺z.