Yazılan kelimenin Palindrom Olup Olmadığını Kontrol Eden 'C' Kodu ve Algoritması

                                        


#include <stdio.h> #include <conio.h> #include <string.h> int pal (char hsc[]){ int i, b=1; int u=strlen(hsc); for(i=0;i<u;i++){ if(hsc[i]==hsc[u-(i+1)]){ } else b++; } return b; } int main(){ char hsc[20]; printf("Kelime Griniz\n"); scanf("%s", &hsc); if(pal(hsc)==1) printf("\nGirilen kelime palindromdur.\n"); else printf("\nGirilen kelime palindrom degildir.\n"); return 0; }
Öncelikle main fonksiyonumuzda bir string dizisi oluşturmalıyız (kod içerisinde  char hsc[20]; ).  Daha sonra kullanıcıdan hsc[20] içine atamak üzere scanf ile değer almalıyız. Alınan değeri üstte yeni bir fonksiyonda (pal fonksiyonu) işleme sokacağız.

int pal (char hsc[]){
    int i, b=1;
    int u=strlen(hsc);

    for(i=0;i<u;i++){
        if(hsc[i]==hsc[u-(i+1)]){

        }
        else
            b++;
    }


    return b;
 
} burada yapılan işlem şu şekilde ;
öncelikle for döngüsünde kullanmak için int değerler belirlerdik. Daha sonra strlen hazır fonsiyonunu kullanarak girilen kelimenin uzunluğunu bulduk ve bir değere eşitledik (int u=strlen(hsc);). For döngüsünde i<u değeri 'i' kelimenin uzunluğundan  küçük olduğu sürece döngü devam etsin anlamına gelmektedir. 

if(hsc[i]==hsc[u-(i+1)]) Burada ise her seferinde hsc[i]'deki karakterin uzunluk değerinden i+1 çıkmış haline eşit mi olduğunu kontrol ettik. Burası biraz karışık gelmiş olabilir. Kısaca şu şekilde; 
'madam' kelimesi palindromdur. Eğer bunu diziye atamış olsaydık :

m0a1d2a3m4 dizideki yerleri bu şekilde olacaktır. Eğer i=4 iken son m harfine gelmiş olacağız. Ama uzunluğumuz 5'e eşit. Bundan dolayı uzunluktan i+1 çıkartırsak son harf ile ilk harfi kontrol etmiş oluruz ve döngü durana kadar bu devam eder. 

if içindeki kontrol değerleri sağlanmazsa else içinde b değeri 1 artıyor. 'b nin' değeri 1 bile artsa sayı palindrom olmayacağından dolayı main foksiyonumuzda (if(pal(hsc)==1)) bu kontrolü yapıp bitiriyoruz.

Anlamadığınız kısımları yorumlarda yazabilirsiniz.

Ekran görüntüleri:








SHARE

Çaresizseniz Çare Biziz

Her telden paylaşımlar.

  • Image
  • Image
  • Image
  • Image
  • Image
    Blogger Comment
    Facebook Comment

0 yorum: