4 Haziran 2010 Cuma

2. Final Sorusu

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>

#define temizle system("cls");

int ebob(int,int);

int main()
{
    int sayi1,sayi2;
    char karar;

    do{

        temizle;
        printf("\n\t\t\tBirinci Sayiyi Giriniz: "); scanf("%d",&sayi1);
        printf("\n\t\t\tIkinci Sayiyi Giriniz: "); scanf("%d",&sayi2);
        temizle;

        printf("\n\n\n\t\t\tEbob ( %d , %d )= %d",sayi1,sayi2,ebob(sayi1,sayi2));
        printf("\n\n\t\tYeni Bir Giris Yapmak Istiyor musunuz? ( E / H )");

        do{
        karar=toupper(getch());
        }while(karar!='H'&&karar!='E');

    }while(karar=='E');

    temizle;
    printf("\n\n\n\t\tProgram Sonlandirildi. . .\n\t\t");
    system("PAUSE");

    return 0;
}

int ebob(int bolunen,int bolen)
{
   return (bolen==0) ? bolunen : ebob(bolen,bolunen % bolen); 
}


1. Final Sorusu

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>

#define temizle system("cls")


int main()
{
    char cumle[21],uzunluk;
    int kontrol,i;
    char karar;

    do{
        temizle;
        printf("\n\tCumle giriniz: ");
        gets(cumle);
        uzunluk=strlen(cumle);


        kontrol=1;

        for(i=0;i<=(uzunluk/2)-1;i++)
        {
            if(cumle[i]!=cumle[uzunluk-i-1])
                kontrol=0;
        }

        if(kontrol==0)
            printf("\n\tGirilen Cumle Polindromik degildir");
        else if(kontrol==1)
            printf("\n\tGirilen Cumle Polindromiktir");

        puts("\n\n\t\tYeni Bir Giris Yapmak Ister misiniz? ( E / H )");
        do{
            karar=toupper(getch());
        }while(karar!='E'&&karar!='H');


    }while(karar=='E');

    temizle;
    printf("\n\n\t\tProgram Sonlandirildi. . .\n\t\t");
    system("PAUSE");

    return 0;
}


3 Haziran 2010 Perşembe

(Dosyalama + Struct) Bilgi Sistemi

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
#include <string.h>


#define YapiBoyutu sizeof(struct kayitYapisi)

struct kayitYapisi{
        char isim[30];
        char soyisim[40];
        char numara[15];
        char doluMu;
    };

char anaMenu(void);
void kayitEkle(FILE*);
void kayitSil(FILE*);
void kayitListele(FILE*);


int main()
{
    FILE *dosya;
    int i;
    struct kayitYapisi insan={"","","",'H'};
    char karar;

    if((dosya=fopen("dosyam.txt","r+"))==NULL)
    {
        dosya=fopen("dosyam.txt","w+");
        fclose(dosya);
        dosya=fopen("dosyam.txt","r+");
        printf("DOSYA OLUSTURULDU"); getch();
        for(i=0;i<30;i++)
        {
            fseek(dosya,i*YapiBoyutu,SEEK_SET);
            fwrite(&insan,YapiBoyutu,1,dosya);
        }
    }


    while(1==1)
    {
        karar=anaMenu();

        switch (karar)
        {
            case '1': kayitEkle(dosya); break;
            case '2': kayitListele(dosya); break;
            case '3': kayitSil(dosya); break;
            case '4': fclose(dosya); return;
        }
    }
}

void kayitEkle(FILE *dosya)
{
    int i;
    struct kayitYapisi insan;



    for(i=0;i<30;i++)
    {
        fseek(dosya,i*YapiBoyutu,SEEK_SET);
        fread(&insan,YapiBoyutu,1,dosya);

        if(insan.doluMu=='H')
        {
            printf("\n\tIsim Giriniz: ");
                scanf("%s",&insan.isim);

            printf("\n\tSoyisim Giriniz: ");
                scanf("%s",&insan.soyisim);

            printf("\n\tNumara Giriniz: ");
                scanf("%s",&insan.numara);

            insan.doluMu='E';

            fseek(dosya,i*YapiBoyutu,SEEK_SET);
            fwrite(&insan,YapiBoyutu,1,dosya);
            printf("\n\n\tKayit Eklendi...");

            getch();
            return;
        }
    }
}

void kayitSil(FILE *dosya)
{
    char tus,eminMi;
    int i;
    char isim[20];
    char numara[15];
    int silinecek=-1;
    struct kayitYapisi insan={"","","",'H'};

    printf("\n\t(1) Isme gore sil");
    printf("\n\t(2) Numaraya gore sil");

    do{
    tus=getch();
    }while(tus!='1'&&tus!='2');

    switch (tus)
    {
        case '1':   printf("\n\tSilmek istediginiz kisinin ismini giriniz :");
                    scanf("%s",&isim);
                    break;
        case '2':   printf("\n\tSilmek istediginiz kisinin numarasini giriniz :");
                    scanf("%s",&numara);
                    break;
    }

    for(i=0;i<30;i++)
    {
        silinecek=-1;

        fseek(dosya,i*YapiBoyutu,SEEK_SET);
        fread(&insan,YapiBoyutu,1,dosya);

        if(insan.doluMu=='E')
        {
            if(tus=='1'&&strcmp(isim,insan.isim)==0) //isme göre aranıyor ise
                silinecek=i;

            else if(tus=='2'&&strcmp(numara,insan.numara)==0)
                silinecek=i;
        }

        if(silinecek!=-1)
        {
            printf("\n\tIsim:    %s\n\tSoyisim: %s\n\tNumara:  %s",insan.isim,insan.soyisim,insan.numara);
            printf("\n\n\t\tBu kayidi silmek istediginize emin misiniz ? (E / H)");
            do{
                eminMi=getch();
                eminMi=toupper(eminMi);
            }while(eminMi!='E'&&eminMi!='H');

            if (eminMi=='E')
            {
                insan.doluMu='H';
                fseek(dosya,i*YapiBoyutu,SEEK_SET);
                fwrite(&insan,YapiBoyutu,1,dosya);
                printf("\n\tKayit Silindi..");
            }

            else if(eminMi='H')
                printf("\n\tSilme isleminden vazgecildi");

            getch();
            return;
        }
    }

    printf("\n\t\tKayit Bulunamadi..");
    getch();
    return;
}

void kayitListele(FILE *dosya)
{
    struct kayitYapisi insan={"","","",'H'};
    int i;
    system("cls");
    printf("%10s%20s%20s","Isim","Soyisim","Numara");

    for(i=0;i<30;i++)
    {
        fseek(dosya,i*YapiBoyutu,SEEK_SET);
        fread(&insan,YapiBoyutu,1,dosya);

        if(insan.doluMu=='E')
        {
            printf("\n%10s%20s%20s",insan.isim,insan.soyisim,insan.numara);
        }
    }
    getch();
}

char anaMenu()
{
    char tus;

    system("cls");

    puts("\t   Ana Menu");
    puts("\n\n\t(1) Kayit Ekle");
    puts("\n\t(2) Kayitlari Listele");
    puts("\n\t(3) Kayit Sil");
    puts("\n\t(4) Cikis");

    do{
        tus=getch();
    }while(tus<'1'||tus>'4');

    return tus;
}

(Dizi + Struct) Bilgi Sistemi

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
#include <string.h>

struct kayitYapisi{
        char isim[30];
        char soyisim[40];
        char numara[15];
        char doluMu;
    };

char anaMenu(void);
void kayitEkle(struct kayitYapisi*);
void kayitSil(struct kayitYapisi* );
void kayitListele(struct kayitYapisi*);


int main()
{
    struct kayitYapisi kisi[30];
    int i;
    char karar;

    for(i=0;i<=29;i++)
    {
        kisi[i].doluMu='H';
    }

    while(1==1)
    {
        karar=anaMenu();

        switch (karar)
        {
            case '1': kayitEkle(kisi); break;
            case '2': kayitListele(kisi); break;
            case '3': kayitSil(kisi); break;
            case '4': exit(1); break;
        }
    }
}

void kayitEkle(struct kayitYapisi* insan)
{
    int i;

    for(i=0;i<30;i++)
    {
        if(insan[i].doluMu=='H')
        {
            printf("\n\tIsim Giriniz: ");
                scanf("%s",&insan[i].isim);

            printf("\n\tSoyisim Giriniz: ");
                scanf("%s",&insan[i].soyisim);

            printf("\n\tNumara Giriniz: ");
                scanf("%s",&insan[i].numara);

            insan[i].doluMu='E';

            printf("\n\n\tKayit Eklendi...");

            getch();
            return;
        }
    }
}

void kayitSil(struct kayitYapisi* insan)
{
    char tus,eminMi;
    int i;
    char isim[20];
    char numara[15];
    int silinecek=-1;

    printf("\n\t(1) Isme gore sil");
    printf("\n\t(2) Numaraya gore sil");

    do{
    tus=getch();
    }while(tus!='1'&&tus!='2');

    switch (tus)
    {
        case '1':   printf("\n\tSilmek istediginiz kisinin ismini giriniz :");
                    scanf("%s",&isim); printf("***%d***",isim);
                    break;
        case '2':   printf("\n\tSilmek istediginiz kisinin numarasini giriniz :");
                    scanf("%s",&numara);
                    break;
    }

    for(i=0;i<30;i++)
    {
        silinecek=-1;
        if(insan[i].doluMu=='E')
        {
            if(tus=='1'&&strcmp(isim,insan[i].isim)==0) //isme göre aranıyor ise
                silinecek=i;

            else if(tus=='2'&&strcmp(numara,insan[i].numara)==0)
                silinecek=i;
        }

        if(silinecek!=-1)
        {
            printf("%s\t%s\t%s",insan[i].isim,insan[i].soyisim,insan[i].numara);
            printf("\n\t\tBu kayidi silmek istediginize emin misiniz ? (E / H)");
            do{
                eminMi=getch();
                eminMi=toupper(eminMi);
            }while(eminMi!='E'&&eminMi!='H');

            if (eminMi=='E')
            {
                insan[i].doluMu='H';
                printf("\n\tKayit Silindi..");
            }

            getch();
            return;
        }
    }

    printf("\n\t\tKayit Bulunamadi..");
    getch();
    return;
}

void kayitListele(struct kayitYapisi* insan)
{
    int i;
    system("cls");
    printf("%10s%20s%20s","Isim","Soyisim","Numara");

    for(i=0;i<30;i++)
    {
        if(insan[i].doluMu=='E')
        {
            printf("\n%10s%20s%20s",insan[i].isim,insan[i].soyisim,insan[i].numara);
        }
    }
    getch();
}

char anaMenu()
{
    char tus;

    system("cls");

    puts("\t   Ana Menu");
    puts("\n\n\t(1) Kayit Ekle");
    puts("\n\t(2) Kayitlari Listele");
    puts("\n\t(3) Kayit Sil");
    puts("\n\t(4) Cikis");

    do{
        tus=getch();
    }while(tus<'1'||tus>'4');

    return tus;
}

1 Haziran 2010 Salı

Taban Değiştirme

Dışarıdan girilen tabandaki sayıyı istenilen tabana ceviren program


#include <stdio.h>
#include <ctype.h> //toupper fonk.
#include <conio.h>

#define Temizle system("cls");

int OnlukTabanaCevir(int,int);
int Kontrol(int,int); // 0 > Yanlış   / 1 > Doğru
int IstenilenTabanaCevir(int,int);
int UsAl(int,int);

void main()
{
    int ilkTaban,Sayi,sonTaban,Sonuc,OnlukTaban;
    char Karar;

    Temizle;

    do
    {
        printf("Kac Tabaninda Sayi Gireceksiniz? ");
        scanf("%d",&ilkTaban);
        if (ilkTaban>10)
        {
            Temizle;
            printf("Taban 10'dan Buyuk Olamaz!! \n");
        }
    }
    while (ilkTaban>10);

    Temizle;

    do
    {
        printf("%d Tabaninda Bir Sayi Giriniz: ",ilkTaban);
        scanf("%d",&Sayi);


        if (Kontrol(ilkTaban,Sayi)==0)
        {
            Temizle;
            printf("Girdiginiz Sayinin Rakamlari Tabandan Kucuk Olmalidir!\n");
        }
    }
    while (Kontrol(ilkTaban,Sayi)==0);

    printf("Sayiyi Kac Tabanina Cevirmek Istiyorsunuz? ");
    scanf("%d",&sonTaban);

    OnlukTaban=OnlukTabanaCevir(ilkTaban,Sayi);

    Sonuc=IstenilenTabanaCevir(sonTaban,OnlukTaban);

    Temizle;

    printf("\n\nSayinin On Tabaninda Karsiligi: %d\n\n",OnlukTaban);
    printf("%d Tabanindaki %d Sayisinin %d Tabaninda Karsiligi: %d",ilkTaban,Sayi,sonTaban,Sonuc);

    printf("\n\nYeni Bir Sayi Girmek Istiyor musunuz? ( E / H )");
    do
    {
        Karar=toupper(getch());
    }while(Karar!='E'&&Karar!='H');

    if(Karar=='E') main();

    else
    {
        Temizle;
        printf("Program Kapatildi...");
    }

    getch();

}

int OnlukTabanaCevir(int ilkTaban,int Sayi)  // Gönderilen Sayının Onluk Tabandaki Karşılığını Döndürür
{
    int OnlukTabanda=0,Kuvvet=0;

    do
    {
        OnlukTabanda=OnlukTabanda + (Sayi%10)*UsAl(ilkTaban,Kuvvet);
        Sayi=Sayi/10;
        Kuvvet++;
    }
    while (Sayi>=1);

    return OnlukTabanda;
}

int IstenilenTabanaCevir(int sonTaban,int Sayi)
{
    int Basamak,Toplam=0,Us=1;

    while (Sayi>=1)
    {
        Basamak=Sayi%sonTaban;
        Sayi=Sayi/sonTaban;
        Toplam+=Basamak*Us;
        Us*=10;
    }

    return Toplam;
}

int Kontrol(int ilkTaban,int Sayi)
{
    while (Sayi>=1)
    {
        if ((Sayi%10)>=ilkTaban)
            return 0;
        Sayi=Sayi/10;
    }
    return 1;
}

int UsAl(int Taban,int Kuvvet)
{
    int Sonuc=1,i;

    for (i=1;i<=Kuvvet;i++)
        Sonuc=Sonuc*Taban;

    return Sonuc;
}


Girilen Kelimenin harflerini, harf matrisi içinde bulmak

#include <stdlib.h>
#include <conio.h>

#define diziboyutu 5

int main()
{
    char dizi[diziboyutu][diziboyutu];
    char i,j,k=0;
    char kelime[10];
    srand(time(0));

    for(i=0;i<=diziboyutu-1;i++)
        for(j=0;j<=diziboyutu-1;j++)
            dizi[i][j]=rand()%26+97;

    for(i=0;i<=diziboyutu-1;i++)
    {
        for(j=0;j<=diziboyutu-1;j++)
            printf("%4c ",dizi[i][j]);
        printf("\n\n");
    }

    printf("Bir kelime giriniz: ");
    gets(kelime);

    while(kelime[k]!='\0')
    {
        for(i=0;i<=diziboyutu-1;i++)
        {
            for(j=0;j<=diziboyutu-1;j++)
                    if(kelime[k]==dizi[i][j])
                        printf("\n%4c : [%d][%d]",kelime[k],i,j);

        }
        k++;
    }

    getch();
    return 0;
}


Sayısal Loto Programı

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>

#define Temizle system("cls")

void Sirala(int[]);

int main()
{
    int KolonSay,*Kolon,i,j,k,Collon;

    printf("Kac Kolon Oynamak Istersiniz?");
    scanf("%d",&KolonSay);

    Temizle;

    srand(time(NULL));

    for (i=1;i<=KolonSay;i++)
    {
        Kolon=(int *)malloc(6*sizeof(int));

        for (j=0;j<6;j++)
        {
KolonOlustur:
            *(Kolon+j) = rand()%49+1;

            for (k=j-1;k>=0;k--)
                if (Kolon[k]==Kolon[j]) goto KolonOlustur;
        }

        Sirala(Kolon); /*Kolon Elemanları Küçükten Büyüğe Siralanir */

        /* i. kolon ekrana yazdirilir */
        printf("\n\t%2d. Kolon: ",i);
        for (k=0;k<6;k++)
        {
            printf("%3d ",Kolon[k]);
            if (k!=5) printf("-");
        }

        free(Kolon);
    }

    printf("\n\n\t%d Kolon Fiyati %d TLdir. Bol Sanslar.",KolonSay,KolonSay);
    getch();
    return 0;
}


void Sirala(int Kolon[])
{
    char kontrol=0;
    int i;

    while (!kontrol)
    {
        kontrol=1;
        for (i=0;i<5;i++)
            if (Kolon[i]>=Kolon[i+1])
            {
                int temp=Kolon[i];
                Kolon[i]=Kolon[i+1];
                Kolon[i+1]=temp;
                kontrol=0;
            }
    }

}


Cevizli Tek Sayılı Baklava (2. Quiz)

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>


/*
    *       1   1
   ***      2   3
  *****     3   5
*******    4   7
*********
*******
  *****
   ***
    *

    */
int main()
{
   
int Sayi,i,j;
   
char Yildiz='*';BasaDon:
   
printf("Tek Sayi Giriniz: ");
   
scanf("%d",&Sayi);
   
if (Sayi%2==0)
    {
       
printf("\nCift Sayi Girdiniz, Lutfen Tekrar Deneyin..\n");
       
goto BasaDon;
    }

   
// Orta Satıra Kadar (Orta Satır Hariç)
   
for (i=1;i<=(Sayi/2);i++)
    {
       
printf("\n%*c",Sayi-i,Yildiz);
       
for (j=1;j<i*2-1;j++)
           
printf("*");
    }


   
// Orta Satır
   
printf("\n%*c",Sayi/2);
   
for (i=1;i<Sayi;i++)
       
printf("*");


   
// Orta Satırın Altı (Orta Satır Hariç)
   
for (i=(Sayi/2);i>=1;i--)
    {
       
printf("\n%*c",Sayi-i,Yildiz);
       
for (j=1;j<i*2-1;j++)
           
printf("*");
    }

   
printf("\n\n\n");



   
getch();
   
return 0;
}