C PROGRAMLAMA DİLİ ÖRNEKLERİ
C programlama dili nasıl kullanılır ? Projeler nasıl yapılır ? C programlama dilinde örnek projeler nasıl yapılır ? Bu ve benzeri sorulara cevap aradığımız C Programlama Dili Örnekler adlı yazımızda C Programlama dili ile yapılmış örnek projeleri sizlerle paylaşıyoruz.
C DİLİ ÖRNEKLER
C Programlama Örneği 1 :
Bir Stack uygulaması için C programı yazalım.Stack anlam olarak yığın,dizi anlamlarına gelmektedir.Stack LIFO (Last in First Out – Son girer , İlk çıkar) data yapısına sahiptir.Burada Push (içeri alma işlemi) , POP (Silme işlemi) ve Display (gösterme işlemi) kullanılacaktır.
Başlayalım ;
#include <stdio.h>
#include <conio.h>
#define MAXSIZE 5
struct stack /* Stack için yapı tanımlaması */
{
int stk[MAXSIZE];
int top;
};
typedef struct stack STACK;
STACK s;
/* Fonksiyon Bildirimi/Prototip*/
void push (void);
int pop(void);
void display (void);
void main ()
{
int choice;
int option = 1;
clrscr ();
s.top = -1;
printf (“Stack İslemleri\n”);
while (option)
{
printf (“——————————————\n”);
printf (” 1 –> PUSH \n”);
printf (” 2 –> POP \n”);
printf (” 3 –> DISPLAY \n”);
printf (” 4 –> EXIT \n”);
printf (“——————————————\n”);
printf (“Seciminizi Giriniz\n”);
scanf (“%d”, &choice);
switch (choice)
{
case 1: push();
break;
case 2: pop();
break;
case 3: display();
break;
case 4: return;
}
fflush (stdin);
printf (“Devam Etmek İstiyormusunuz (Seç : 0 ya da 1)?\n”);
scanf (“%d”, &option);
}
}
/*Stack’a element ekleme fonksiyonu*/
void push ()
{
int num;
if (s.top == (MAXSIZE – 1))
{
printf (“Stack Dolu\n”);
return;
}
else
{
printf (“İçeri alınacak elaman girişi yapınız\n”);
scanf (“%d”, &num);
s.top = s.top + 1;
s.stk[s.top] = num;
}
return;
}
/*Stack’dan element silme fonksiyonu*/
int pop ()
{
int num;
if (s.top == – 1)
{
printf (“Stack Bos\n”);
return (s.top);
}
else
{
num = s.stk[s.top];
printf (“pop edilen element = %d\n”, s.stk[s.top]);
s.top = s.top – 1;
}
return(num);
}
/*Stack durum gösterme fonksiyonu*/
void display ()
{
int i;
if (s.top == -1)
{
printf (“Stack bos\n”);
return;
}
else
{
printf (“\nStack’ın durumu\n”);
for (i = s.top; i >= 0; i–)
{
printf (“%d\n”, s.stk[i]);
}
}
printf (“\n”);
}
Çıktılar :
Stack İşlemleri ;
——————————————
1 –> PUSH
2 –> POP
3 –> DISPLAY
4 –> EXIT
——————————————
Seçiminizi Giriniz ;
1
Push edilecek elementi giriniz :
23
Devam Etmek İstiyor musunuz ? (Seç : 0 ya da 1)?
1
——————————————
1 –> PUSH
2 –> POP
3 –> DISPLAY
4 –> EXIT
——————————————
Seçiminizi Giriniz ;
1
Push edilecek elementi giriniz :
45
Devam Etmek İstiyor musunuz ? (Seç : 0 ya da 1)?
1
——————————————
1 –> PUSH
2 –> POP
3 –> DISPLAY
4 –> EXIT
——————————————
Seçiminizi Giriniz ;
1
Push edilecek elementi giriniz :
78
Devam Etmek İstiyor musunuz ? (Seç : 0 ya da 1)?
1
——————————————
1 –> PUSH
2 –> POP
3 –> DISPLAY
4 –> EXIT
——————————————
Seçimizini Giriniz :
3
Stack’ın Statüsü :
78
45
23
Devam Etmek İstiyor musunuz ? (Seç : 0 ya da 1)?
1
——————————————
1 –> PUSH
2 –> POP
3 –> DISPLAY
4 –> EXIT
——————————————
Seçiminizi Giriniz :
2
poped element = 78
Devam Etmek İstiyor musunuz ? (Seç : 0 ya da 1)?
1
——————————————
1 –> PUSH
2 –> POP
3 –> DISPLAY
4 –> EXIT
——————————————
Seçimizini Giriniz :
3
Stack’ın Statüsü :
78
45
23
Devam Etmek İstiyor musunuz ? (Seç : 0 ya da 1)?
0
C Programlama Örneği 2 :
Tek bağlantılı olan bir listenin işlemlerini göstermek adına bir C programı yazalım ;
Başlayalım :
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#define MAX 30
struct EMP
{
int empno;
char empName[MAX];
char designation[MAX];
struct EMP *next;
};
/*Fonksiyon , karşı bağlantılı listeden bir node içeri alır */
/*front : Front pointer’ı , id : Çalışan ID , name : Çalışan ismi*/
/* desg: Çalışan Gösterimi/Belirleme */
struct EMP* insert(struct EMP *front, int id, char name[], char desg[])
{
struct EMP *newnode;
newnode = (struct EMP*) malloc(sizeof(struct EMP));
if (newnode == NULL)
{
printf(“\nYerleştirme Yapılamadı\n”);
exit(2);
}
newnode->empno = id;
strcpy(newnode->empName, name);
strcpy(newnode->designation, desg);
newnode->next = front;
front = newnode;
return(front);
} /*insert() işleminin sonu */
/* Bağlantılılı listede gösterilecek nod fonksiyonu */
void printNode(struct EMP *p)
{
printf(“\nCalısan Detayları\n”);
printf(“\nCal No : %d”, p->empno);
printf(“\nİsim : %s”, p->empName);
printf(“\nGösterim : %s\n”, p->designation);
printf(“————————————-\n”);
} /*printNode()’un sonu */
/*Calısan numarasına göre deleteNode işlemi fonksiyonu*/
/* front: front pointer, id: anahtar deger */
/* Returns: ayarlı liste */
struct EMP* deleteNode(struct EMP *front, int id)
{
struct EMP *ptr;
struct EMP *bptr; /* bptr is pointing to the node behind ptr */
if (front->empno == id)
{
ptr = front;
printf(“\nNode silindi:”);
printNode(front);
front = front->next;
free(ptr);
return(front);
}
for(ptr=front->next, bptr=front; ptr!=NULL; ptr=ptr->next, bptr=bptr->next)
{
if (ptr->empno == id)
{
printf(“\nNode silindi:”);
printNode(ptr);
bptr->next = ptr->next;
free(ptr);
return(front);
}
}
printf(“\nCalısan numarası %d bulunamadı “, id);
return(front);
} /*deleteNode()’un sonu */
/* emp ID’e göre arama yapan fonksiyon */
/* front: front pointer, key: key ID. */
void search(struct EMP *front, int key)
{
struct EMP *ptr;
for (ptr = front; ptr != NULL; ptr = ptr -> next)
{
if (ptr->empno == key)
{
printf(“\nKey bulundu:”);
printNode(ptr);
return;
}
}
printf(“\nCalisan No %d bulunamadı “, key);
} /*End of search() */
/* Bağlantılı liste gösterme fonksiyonu */
void display(struct EMP *front)
{
struct EMP *ptr;
for (ptr = front; ptr != NULL; ptr = ptr->next)
{
printNode(ptr);
}
} /*display()’in sonu */
/* Bağlantılı listede menü işlemlerini gösterme fonksiyonu */
void menu()
{
printf(“*****************\n”);
printf(“Listeye nod eklemek icin 1’e basın. \n”);
printf(“Listeden nod silmek için 2’ye basın. \n”);
printf(“Listeyi göstermek için 3’e basın. \n”);
printf(“Listeyi aramak için 4’e basın \n”);
printf(“Cıkmak için 5’e basın \n”);
printf(“*******************\n”);
} /*menu() sonu */
/* Seçilmiş Fonksiyon */
char option()
{
char choice;
printf(“\n\n>> Seçiminizi Girin : “);
switch(choice=getche())
{
case ‘1’:
case ‘2’:
case ‘3’:
case ‘4’:
case ‘5’: return(choice);
default : printf(“\nYanlis Secim.”);
}
return choice;
} /*option() Sonu */
/*main() programı başlar ! */
void main()
{
struct EMP *linkList;
char name[21], desig[51];
char choice;
int eno;
linkList = NULL;
printf(“\nTek bağlantılı liste gösterimine hoşgeldiniz ! \n”);
menu(); /*Fonksiyon çağrısı */
do {
choice = option(); /*çalışacak işlemleri seçmek adına ; */
switch(choice)
{
case ‘1’: printf(“\nCalisan numarasını gir : “);
scanf(“%d”, &eno);
printf(“Calisan adını gir : “);
fflush(stdin);
gets(name);
printf(“Calisan tanımlamasını gir : “);
gets(desig);
linkList = insert(linkList, eno, name, desig);
break;
case ‘2’: printf(“\n\nSilinecek calisan numarasını gir: “);
scanf(“%d”, &eno);
linkList = deleteNode(linkList, eno);
break;
case ‘3’: if (linkList == NULL)
{
printf(“\nListe bos.”);
break;
}
display(linkList);
break;
case ‘4’: printf(“\n\nAranacak calisan numarasını gir : “);
scanf(“%d”, &eno);
search(linkList, eno);
break;
case ‘5’: break;
}
} while (choice != ‘5’);
} /*main() sonu*/
Çıktılar :
Tek Bağlantılı Liste Gösterimi :
———————————————
Listeye node eklemek için 1’e basınız !
Listeden node silmek için 2’e basınız !
Liste gösterimi için 3’e basınız !
Arama yapmak için 4’e basınız !
Çıkmak için 5’e basınız.
———————————————
>> Seciminizi Girin : 1
Calisan numarasını gir : 1278
Calisan adını gir : Ahmet
Calisan tanımını gir : İsci
>> Seciminizi Girin : 1
Calisan numarasını gir : 9734
Calisan adını gir : Bayram
Calisan tanımını gir : Mühendis
>> Seciminizi Girin : 1
Calisan numarasını gir : 8761
Calisan adını gir : Kamil
Calisan tanımını gir : Yönetici
>> Seciminizi Girin : 3
Calisan Detayları ;
Calisan No : 1278
İsim : Ahmet
Tanım : İsci
————————————-
Calisan Detayları ;
Calisan No : 9734
İsim : Bayram
Tanım : Mühendis
————————————-
Calisan Detayları ;
Calisan No : 8761
İsim : Kamil
Tanım : Yönetici
————————————-
>> Seciminizi Girin : 2
Silinecek Calisan Numarasını yazın : 1278
Node Silindi:
Calisan Detayları :
Calisan No : 1278
İsim : Ahmet
Tanım : İsci
————————————-
>> Seciminizi Girin : 3
Calisan Detayları ;
Calisan No : 9734
İsim : Bayram
Tanım : Mühendis
————————————-
Calisan Detayları ;
Calisan No : 8761
İsim : Kamil
Tanım : Yönetici
————————————-
>> Seçiminizi Girin : 4
Aratılacak calisan numarasını giriniz : 8762
8762 calisan numarası bulunamadı !
>> Seciminizi girin : 5
C Programlama Örneği 3 :
Bir array arama işlemi yapacağız.Eğer istenilen elementler bulunursa ‘başarılı arama’ , eğer bulunamazsa ‘başarısız arama’ olarak mesaj alacağız.
Başlayalım ;
#include <stdio.h>
void main()
{
int table[20];
int i, low, mid, high, key, size;
printf(“Dizi boyutunu giriniz \n”);
scanf(“%d”, &size);
printf(“Dizi elementlerini giriniz ! \n”);
for(i = 0; i < size; i++)
{
scanf(“%d”, &table[i]);
}
printf(“Anahtar ifadeyi girin ! \n”);
scanf(“%d”, &key);
/* Arama başlatma */
low = 0;
high = (size – 1);
while(low <= high)
{
mid = (low + high)/2;
if(key == table[mid])
{
printf(“Basarılı Arama\n”);
return;
}
if(key < table[mid])
high = mid – 1;
else
low = mid + 1;
}
printf(“Basarisiz Arama\n”);
} /* main() fonk. sonu */
Çıktılar :
Dizi boyutunu giriniz !
5
Dizi Elementlerini giriniz !
12
36
45
78
99
Anahtar ifadeyi girin !
45
‘Basarili Arama’
C Programlama Örneği 4 :
Diskte depolanan verilerin nasıl okunduğunu bizlere gösteren bir C programı yazalım.
Başlayalım ;
#include <stdio.h>
#include <stdlib.h>
void main()
{
FILE *fptr;
char filename[15];
char ch;
printf(“Açılacak Dosya Adı nedir ? \n”);
gets(filename);
fptr = fopen (filename, “r”); /*okuma için aç*/
if (fptr == NULL)
{
printf(“dosya acılamaz\n”);
exit(0);
}
ch = fgetc(fptr);
while (ch != EOF)
{
printf (“%c”, ch);
ch = fgetc(fptr);
}
fclose(fptr);
} /*main()’in sonu */
Çıktılar :
Açılacak dosya adı nedir ?
emp.rec (örnek ! )
İsim = Mehmet
Yaş = 25
Ücret = 3000
C PROGRAMLAMA DİLİ ÖRNEKLER SONUÇ :
Bugün C programlama dili örnekler adlı yazımızı sizlerle paylaştık.Bu yazı dizisi ile C programlama diline daha hakim hale gelmek için örnek programları inceleyecek ve paylaşacağız.Umuyorum faydalı olacaktır.
İyi Çalışmalar