Links

🍏🍎 Simetrik Diziler

❓ Soru

Boyutu ve elemanları klavyeden girilen bir dizinin simetrik olup olmadığını kontrol eden programı yazınız.

⛓ Program Kısımları

  1. 1.
    Diziyi girmek.
  2. 2.
    Dizinin simetrik olup olmadığını kontrol etmek.
  3. 3.
    Sonucu yazdırmak.

👓 Çözüm Yöntemi

  • Bir dizinin simetrik olması için merkezine göre simetrik elemanlar eşit olmalıdır.
    • Örneğin: A= {1,5,8,5,1}, B= {1,5,5,1} dizileri simetriklerdir.
  • Başlangıç değeri b=1 olan bir değişken tanımlanır dizinin herhangi iki simetrik elemanı eşit değilse değişkenin değeri değişecek.
  • En sonda, değişkenin değeri 1 ise dizi simetriktir, değilse dizi simetrik değildir.

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

  1. 1.
    Değişkenlerin tanımlanması.
  2. 2.
    Boyutun girilmesi.
  3. 3.
    Dizinin tanımlanması.
  4. 4.
    boyut kere dönen döngü kullanarak elemanların girilmesi.
  5. 5.
    Dizinin başından merkezine kadar tarayan döngünün oluşturulması:
    • Simetrik elemanlar eşit değilse:
      • b=0
      • döngü kırılır.
  6. 6.
    bye göre sonucun yazdırılması.

🤖 Kod

⚙ C++ Kodu

#include <iostream>
using namespace std;
int main() {
int boyut, i, b=1, * A; // Değişkenlerin tanımlanması
// Boyutun girilmesi
cout << "Boyut=";
cin >> boyut;
A = new int[boyut]; // Dizinin tanımlanması
// “boyut” kere dönen döngü kullanarak elemanların girilmesi
for (i = 0; i < boyut; i++) {
cout << "A[" << i + 1 << "]= ";
cin >> A[i];
}
// Dizinin başından merkezine kadar tarayan döngünün oluşturulması
for (i = 0; i < boyut / 2; i++)
if (A[i] != A[boyut - 1 - i]) { // Simetrik elemanlar eşitlik kontrolu
b = 0;
break;
}
// “b”ye göre sonucun yazdırılması
if (b == 1)
cout << "A dizisi simetriktir";
else
cout << "A dizisi simetrik degildir";
}

🐍 Python Kodu

# Değişkenlerin tanımlanması
b = 1
print("Boyut=")
boyut = int(input())# Boyutun girilmesi
A = [] # Dizinin tanımlanması
# “boyut” kere dönen döngü kullanarak elemanların girilmesi
for i in range(boyut):
print("A[{}]=".format(i + 1))
A.append(int(input()))
# Dizinin başından merkezine kadar tarayan döngünün oluşturulması
for i in range(boyut // 2):
# Simetrik elemanlar eşitlik kontrolu
if A[i] != A[boyut - 1 - i]:
b = 0
break
# “b”ye göre sonucun yazdırılması
if b == 1:
print("A dizisi simetriktir")
else:
print("A dizisi simetrik degildir")

☕ Java Kodu

import java.util.*;
class SimetrikDiziler {
public static void main(String arg[]) {
Scanner input = new Scanner(System.in);
int i, boyut, b = 1; // Değişkenlerin tanımlanması
System.out.printf("Boyut=");
boyut = input.nextInt(); // Boyutun girilmesi
int A[] = new int[boyut]; // Dizinin tanımlanması
// “boyut” kere dönen döngü kullanarak elemanların girilmesi
for (i = 0; i < boyut; i++) {
System.out.printf("A[%d]=", i + 1);
A[i] = input.nextInt();
}
// Dizinin başından merkezine kadar tarayan döngünün oluşturulması
for (i = 0; i < boyut / 2; i++)
if (A[i] != A[boyut - 1 - i]) { // Simetrik elemanlar eşitlik kontrolu
b = 0;
break;
}
// “b”ye göre sonucun yazdırılması
if (b == 1)
System.out.println("A dizisi simetriktir");
else
System.out.println("A dizisi simetrik degildir");
input.close();
}
}

🎉 Ekran Çıktısı

Boyut=5
A[1]=1
A[2]=4
A[3]=5
A[4]=4
A[5]=1
A dizisi simetriktir
Boyut=4
A[1]=1
A[2]=2
A[3]=3
A[4]=4
A dizisi simetrik degildir