Subscribe For Free Updates!

We'll not spam mate! We promise.

C Programlama etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
C Programlama etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

6 Mart 2015 Cuma

C Dili - Örnek 02 - c dili ile faktoriyel alan program



Bu örneğimizde c dili ile faktoriyel alan program yazdık.


#include <stdio.h>

int main(){
int sayi=5;
int faktoriyel=1;
while(sayi>0){
faktoriyel=faktoriyel*sayi;
sayi--;
}
printf("Sonuc:%d",faktoriyel);
return 0;
}



4 Mart 2015 Çarşamba

C Dili - İpuçları 01



C de değeri olan değişkene, örneğin bu tamsayı değişkeni olsun değer ekleme yapacak isek aşağıdaki gibi yaparız.


int deger=10;
deger=deger+5; //yeni değer 15

kodu kısa tutmak için aşağıdaki kodda da aynı işlemi yaparız.

deger+=5; //yeni değer gene 15
+ yerine (-,*,/,%) dan istediklerinizi de koyabilirsiniz.

C Dili - Örnek 03 - Floyd Üçgeni



Kodu çalıştırınca sonra nasıl birşey olduğunu görürsünüz.

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

int main() {
int i,a,b;
a=0;
b=0;
i=0;
while(i<10 data-blogger-escaped-br=""> printf("\n");
b+=a;
for(a=0;a<=i;a++){
printf("%3d",b+a+1);
}
i++;
}
getch();
return 0;
}

C Dili - Örnek 04 - Alfabe




İlk harften başlayıp alfabedeki bütün harfleri sıralayan ve onların ascii kodlarını ekrana yazdıran programı yazın



#include <stdio.h>

int main(){
char ilk_harf='A';
while(ilk_harf<='Z'){
printf("%c - %d\n",ilk_harf,ilk_harf);
ilk_harf++;
}
return 0;
}

C Dili - Örnek 05 - Büyük Küçük Harfe Çevirme



Kullanıcıdan alınan herhangi bir harfi büyükse küçüğe küçükse büyüğe çeviren program.

#include <stdio.h>
int main(){
char harf;
printf("Bir harf Gir:");
scanf("%c",&harf);
int fark='a'-'A';
if(harf>'Z'){
harf-=fark;
}else{
harf+=fark;
}

printf("Yeni Harf:%c",harf);
return 0;
}

C Dili - Ders 20 - Getch Fonksiyonu




Bu fonksiyon conio.h kütüphanesinde bulunur. Kullanıcıdan bir karakter almamıza yarar fakat kararkteri ekrana yazmaz. Kullanımı aşağıda



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

int main(){
printf("Bir karakter girin:");
char karakter=getch();
printf("Girdiğiniz Karakter %c",karakter);
return 0;
}



Yukarıdaki programı anlamak için şu programı yapmanızı öneririm. Kullanıcılardan sürekli bir karakter alan ve bu karakterlerin ascii kodlarını ekrana yazdıran bir program olsun fakat bu program '0' karakteri girildiğinde sona ersin. Bu programın kodunu örnek 06 da bulabilirsiniz.

C Dili - Örnek 06




Kullanıcıdan sürekli karakter alıyoruz. karakterin ascii kodunu ekrana yazdırıyoruz eğer karakter sıfır ise programı sonlandırıyoruz.


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

int main(){
char c;
printf("\nBir karakter Girin:");
while((ch=getch())!=0){
printf("%d",c);
printf("Bir karakter daha girin:");
}
printf("gule gule");
return 0;
}








C Dili - Ders 21 - Rastgele Sayı Üretmek







C dilinde rastgele sayı üretmek için rand() fonksiyonunu kullanırız. Aşağıda kullanılışını görelim

#include <stdio.h>
/*Kütüphaneleri unutmayın.*/
#include <time.h>
#include <stdlib.>

int main()
{
srand(time(null));
int rastgele=rand()%20; //0-19 arasında sayı üretir.
printf("%d",rastgele);
return 0;
}
Yukarıdaki örnekte üreteceği sayılar sıfırdan başlar. Peki bir 5 ile 19 arasında sayı üretmesini istersek.
#include <stdio.h>
/*Kütüphaneleri unutmayın.*/
#include <time.h>
#include <stdlib.>

int main()
{
srand(time(null)); //bu her zaman olacak.
int rastgele=5+rand()%15;
printf("%d",rastgele);
return 0;
}
Yukarıdakini anladıysanız sizde -5 ve 5 arasında sayı üreten kodu yazın.

C Dili - Ders 22 - Fonksiyonlar




Fonksiyonlar programlama da önemli bir konudur. Büyük programlar yazarken programı fonksiyonlara ayırırız daha sonra bunların herbirini ana fonksiyonumuzda birleştiririz. Örnek fonksiyon tanımlaması aşağıda gösterildiği gibidir.
#include "stdio.h"
int toplama(int x,int y){
int toplam=x+y;
return sonuc;
}

int main(){
int islem=toplama(3,6);
printf("%d",islem);
return 0;
}
Yukarıdaki kodu açıklamak gerekirse fonksiyon bir toplama fonksiyonu iki parametre alıyor. ve daha sonra bunları toplamyıp ana fonksiyonu geri döndürüyor. Bizim programımızda gönderdiğimiz parametreler 3 ve 6 bunlar sırasıyla x ve y yerel değişkenlerine aktarılıyor. daha sonra bu değişkenler toplanıyor ve toplam değişkenine aktarılıyor ve toplam değişkeni fonksiyonun sonunda geri döndürülüyor(return). Bundan sonra işlemler ana(main) fonksiyonunda devam ediyor. Fonksiyondan dönen değer islem değişkenine aktarılıyor ve islem değişkeni ekrana yazılıyor. Program son buluyor.
Arkadaşlar fonksiyonu tanımlarken başındaki int ibaresine dikkat edin. Bunu koymamızın sebebi fonksiyondan dönen değerin integer türünden olması. Eğere float türünden olsaydı float koyacaktık. Prki fonksiyon bir değer döndürmeseydi. O zaman ne koyacaktık. Aşağıda bunun örneği verilmiş.Ayrıca hiç parametre almayan fonksiyonada bir örnek.
#include "stdio.h"
void toplama(){
int toplam=3+6;
printf("%d",toplam);
}

int main(){
toplama();
return 0;
}
Yukarıdaki kodda fonksiyonun ana fonksiyonda kullanılışına da dikkat edin. Şimdi siz birşeyler yapın gelen bir parametreye göre 4 işlemden birini yapan ve geri değer döndürmeyen bir fonksiyon yazın ve kullanın.

C Dili - Örnek 07



Tek parametre alan ve parametreye göre 4 işlemden herhangi birini yapan program.
#include "stdio.h"

void fonksiyon(int x);

int main(){
//toplama
fonksiyon(1);
//çıkarma
fonksiyon(2);
//çarpma
fonksiyon(3);
//bölme
fonksiyon(4);
}

void fonksiyon(int x){
switch(x){
case 1:
printf("%d",3+6);
break;
case 2:
printf("%d",3-6);
break;
case 3:
printf("%d",3*6);
break;
case 4:
printf("%d",3/6);
break;
}

}
Fonksiyon tanımalaması yukarıdaki gibide yapılabilir. Önemli olan o fonksiyonu kullanacağımız fonksiyondan önce (bu genellikle ana fonksiyon olur) ne girdiğini ve ne çıktığını tanımlamaktır.

C Dili - Örnek 07 - Recursif Fonksiyon Örneği



Aşağıdaki kod decimal(onluk) tabandaki sayıyı ikilik tabandaki sayıya dönüştürür.
#include "stdio.h"

void fonk(int sayi){
if(sayi==1 || sayi==0){
printf("%d",sayi);
}else {
fonk(sayi/2);
printf("%d",sayi%2);
}
}

int main(int argc, char **argv)
{
fonk(9);
return 0;
}

C Dili - Ders 23 - Değişkenlerin Adresleri




Değişkenler herbirinin hafızda saklandıkları yerlerin adresleri vardır. Bu adresleri & (adresse of) operatörüyle görebiliriz. Örneğin;
int a=10;
printf("a degiskeninin adresi:%d",&a);

float b=56;
printf("b degiskenin adresi:%d",&b);

char harf='d';
printf("harf degiskenin adresi:%d",&harf);
Bu bilgi ileride pointerlar konusunda yardımcı olacak

C Dili - Örnek 08 - Faktoriyel (Rekürsif)



Faktoriyel alan rekürsif bir fonksiyon.
#include "stdio.h"
int faktoriyel(int x);
int main(){
int deger=1;
int sonuc=faktoriyel(deger);
printf("Sonuc=%d",sonuc);
return 0;
}
int faktoriyel(int x){
int birim;
if(x>0){
birim=faktoriyel(x-1);
return x*birim;
}else{
return 1;
}

}

C Dili - Ders 24 - Pointer



C programlama denilince akla ilk gelenler arasında pointer meselesi vardır. Aslında en zorlanılan konudur. Ama aslında süper bişeydir
Kısaca Pointerlar oluşturduğumuz değişkenlerin adreslerini gösterirler. Peki bu nasıl olur.
int a=5; //temel değişken tanımı.
şimdi bu değişkenin adresini ekrana yazdıralım.
printf("\na degiskenin adresi : %d",&a);
şimdi bir pointer tanımlayalım ve bu pointer a değişkenini göstersin.
int* pointer=&a;
Yukarıda görüldüğü gibi pointer tanımlarken *(yıldız) karakterini kullanıyoruz.
printf("\npointerin gostedigi adres : %d",pointer);
printf("\npointerin gosterdigi adresteki deger : %d",*pointer);
Yukarıdaki konuyu anlamışsınızdır umarım.Bu ilk bölümdü. Pointerlar daha bitmedi.

C Dili - Dinamik Dizi Oluşturmak



Yazacağımız program önce kullanıcıdan dizinin kaç elemanlı olacağını sorsun. Daha sonra dizinin elemanlarını kendi atayarak ekrana yazdırsın.
#include "stdio.h"
#include "stdlib.h"

int main()
{
int boyut=0;
printf("Dizi boyutunu girin:");
scanf("%d",&boyut);
int* dizi;
dizi=(int *)malloc((boyut*sizeof(int)));

int i=0;
for(i=0;i<boyut;i++)
{
*dizi=i;
printf("%d",*dizi);
dizi++;
}

return 0;
}

C Dili - Ders 25 - Pointer Aritmetik



bu yazımızda pointer aritmetik konusuna değineceğiz. Pointerlar bildiğiniz gibi adresleri gösterir. integer türünde bir pointer 1002 adresini gösteriyorsa; pointerın adresini bir artırırsak (pointer++) 1006 adresini göstercektir. Sebebi integer türünün 4 byte alan kaplamasıdır. Şimdi Bunu bir örnekle görelim.
int degisken=10;
int* p=°isken;
printf("%d\n",p);
p++;
printf("%d\n",p);
p++;
printf("%d\n",p);
p++;
Yukarıdaki örneği bir de char ve float türleriyle deneyin.
Yukarıda yaptığımız adresleri bir arttırmaktı. Pointerın gösterdiği değişkeni bir artıralım.
*p++;
printf("Degiskenin degeri:%d\n",*p);
Pointerları biraz daha işe yarar bir şeyde kullanalım. Bir dizi oluşturalım ve dizinin ilk elemanının adresini pointer göstersin. Daha sonra pointer ile dizinin bütün elemanlarını ekrana yazdıralım.
#include "stdio.h"
#include "stdlib.h"

int main()
{
int dizi[5]={1,2,3,4,5};
int* pointer=dizi; //dizinin ilk elemaninin adresi
int i=0;
while(i<5)
{
printf("eleman %d:%d - Adresi:%d\n",i,*pointer,pointer);
pointer++;
i++;
}
return 0;
}

C Dili - Ders 26 - Pointer ve Fonksiyonlar



Bu dersimizde pointerlarla fonksiyonlar nasıl kullanılır onu görecez. Örneğin dışarıda bir dizi tanımlayalım ve dizisirala adında bir fonksiyonumuz olsun. fonksiyona dizinin ilk adresini ve boyutunu gönderelim ve dizi elemanlarını ekrana sıralayalım.
#include "stdio.h"
#include "stdlib.h"

void dizisirala(int *pointer,int boy){
int i=0;
while(i<boy){
printf("%d\n",*pointer);
pointer++;
i++;
}
}

int main()
{
int dizi[10]={1,2,3,4,5,6,7,8,9,0};
dizisirala(dizi,10);
return 0;
}

C Dili - Ders 27 - Stringler




Stringler çok boyutlu char dizileridir. örneğin aşağıda.
char kelime[10]="merhaba";
Bu tek boyutlu bir dizi bunda sadece bir kelime yada bir satır bilgi tutabiliriz. peki çok satırlı bir yazımız var ise onu çok boyutlu char dizisinde tutmalıyız.
char metin[5][10]={
"csharp","assembly","fortran","pascal","java"
};
printf("ilk dilimiz %s",metin[0]);

C Dili - Ders 27 - Hafıza ile Çalışmak (malloc)



Bu dersimizde hafızadan nasıl yer ayrılır(allocate) ve ayrılan yer nasıl tekrar boşaltılır onu göreceğiz. Biz bunun için malloc (memory allocate) fonksiyonunu kullanıyoruz.
int *pointer=null;
pointer=malloc( sizeof(int) );
yukarıdaki kodda en başta bir pointer tanımlıyoruz. Daha sonra malloc ile hafızadan yer ayırıyoruz. Ve hafızanın baş adresini pointera atıyoruz. malloc fonksşyonunu kullanırken içine ayırmak istediğimiz hafıza miktarını yazıyoruz.
2 integer değişkeni tutacağımız kadar hafıza ayıralım ve hafızaların içini dolduralım.
#include "stdio.h"
#include "stdlib.h"
int main()
{
int *pointer=(int *)malloc((2*sizeof(int)));
*pointer=10;
printf("Adres: %d , Deger: %d\n",pointer,*pointer);
pointer++;
*pointer=9;
printf("Adres: %d , Deger: %d\n",pointer,*pointer);
return 0;
}
Bu fonksiyonu kullanabilmek için stdlib.h kütüphanesini include etmeniz lazım. Daha karışık bir örnek dinamik dizi oluşturmak yazısında var.

C Dili - pointer to pointer



C dilinde pointerları başka pointerlarda gösterebilir. Aşağıdaki kodda p pointerını q pointerı gösteriyor ve p pointerı da x değişkenini gösteriyor.
#include "stdio.h"
#include "stdlib.h"
int main()
{
int x, *p, **q;
x = 10;
p = &x;
q = &p;
printf("%d\n", **q);
printf("%d\n", q);
printf("%d\n", p);
printf("%d\n", *q);
printf("%d\n", *p);
return 0;
}

Haberci

Destek3

Related Posts Plugin for WordPress, Blogger...