Şimdi Ara

C Proje Ödevi[Yardım]Az bi yer kaldı yapamıyorum...

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
6
Cevap
0
Favori
1.073
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba arkadaşlar C proje ödevim şifreleme-deşifreleme programı yazmak.Program döngü-dizi kullanılarak yapılacak (pointer filan kullanılmayacak).
    quote:

    ullanıcı tarafından girilen bir metni şifreleyip ekrana yazdıran veya şifreli bir metni ve öteleme miktarını alarak asıl metni bulan programı yazınız.
    Program da şifreleme işlemi harflerin ötelenmesi ile oluşmaktadır. Kullanıcıdan mesaj istenir, daha sonra öteleme miktarı istenir.
    Örneğin;
    Hangi işlemi yapacaksınız?
    1-Şifreleme
    2-Deşifre
    seçiminiz=1
    Mesajınızı giriniz=abc
    Öteleme miktarı=1
    Şifreli metin=bdf
    olarak gerçekleştirir. Buradaki işlem mesajın 1.harfini öteleme miktarı kadar, 2 harfini öteleme miktarından 1 fazla 3.harf 2 fazla olacak şekilde devam etmektedir.Metnin içerisinde rakam, alfa nümerik karakter ve başuk varsa aynen bırakılmaktadır.
    Deşifre seçeneği seçildiğinde ise yukarıda yapılan işlemleri tersten yapacaktır.
    Şifreli mesajı giriniz=bdf
    öteleme miktarını giriniz=1
    metininiz=abc
    Dikkat edilmesi gereken bir konu örneğin metin olarak "yaz" yazıldığında, ve öteleme miktarı 1 denildiğinde y harfi z ile a harfi c ile z harfi ise c ile ötelenerek, zcc şekline dönüşmektedir. Yani z den sonra tekrar a dan başlanmaktadır. (ingiliz alfabesinde bulunan 26 harf kullanılmalıdır.)


    Burdaki çoğu zımbırtıyı ayarladım ama bi türlü döngüyü nerde kıracağımı kestiremedim.Sayı olsa boşluk oolmuyo boşluk olsa alfabe sapııtıyo yardımcı olabilecek varsa çok ii olur,Selamlar...

    benim yazdığım;
    #include "stdio.h" 
    #include "conio.h"
    #include "stdlib.h"
    #include "string.h"
    int main()
    {int ote,m,i,j,uz;

    char alfa[27]="abcdefghijklmnopqrstuvwxyz";
    char sayilar[11]={'1','2','3','4','5','6','7','8','9','0'};
    char dizi[255];


    printf("Sifrelenecek metni girin=");
    gets(dizi);
    printf("Sifreleme Kodunu giriniz=");
    scanf("%d",&ote);
    uz=strlen(dizi);

    for(m=0;m<uz;m++)//1. for
    {
    for(i=0;i<26;i++)//2. for
    {
    for(j=0;j<10;j++)//3. for
    {
    if(dizi[m]==alfa[i])
    {
    printf("%c",alfa[(i+ote)%26]);ote++;
    break;}
    else if(dizi[m]==' ') printf("%c",dizi[m]);

    else if(dizi[m]==sayilar[j])
    {

    printf("%c",sayilar[j]);break;
    }



    }//3. for sonu
    }//2. for sonu
    }//1. for sonu
    getch();}







  • Anladığım kadarıyla kodu soyle degistir bi dene biraz aceleye geldi ama muhtemelen çalışır.
    for(m=0;m<uz;m++)//1. for
    {
    for(i=0;i<26;i++)//2. for
    {
    if( dizi[m]==alfa ) ///alfa i olacak burası cıkmıyor
    {
    printf("%c",alfa[(i+ote+m)%26]);
    i=28;

    }


    }//1. for sonu
    }//2. for sonu
    getch();}



    < Bu mesaj bu kişi tarafından değiştirildi Tegir -- 7 Mayıs 2010; 17:46:30 >
  • ilgilendeğin için teş. ederim ama olmadı :)
  • Bir şey değil ama sorunun nerde olduğunu söylersen kodu değiştirip tekrar deneyebilirsin.
  • Buna benzer ödevi c++ da yapmıştım. Yardımcı olacaksa pm at, yollayabilirim.
  • for(m=0;m<uz;m++)//1. for 
    {
    a=0;
    for(i=0;i<26;i++)//2. for
    {
    if(dizi[m]==alfa[i])
    {
    printf("%c",alfa[(i+ote+m)%26]);
    a=1;
    }
    }

    if (a=0)
    printf("%c",dizi[m]);



    }//1. for sonu


    Böyle yapınca olacaktır.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.