🍏🍎 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. Diziyi girmek.

  2. Dizinin simetrik olup olmadığını kontrol etmek.

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

  2. Boyutun girilmesi.

  3. Dizinin tanımlanması.

  4. boyut kere dönen döngü kullanarak elemanların girilmesi.

  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. 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

Last updated