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

2 Nisan 2010 Cuma

string ile char arasındaki fark

genelde "string" ve "char" birbirine karıştırılır aradaki fark anlaşılamaz.

char:tek bir karakterdir

string:karakter dizisidir

char d='g';//diye kullanılır

string d="derya";//diye kullanılır

aynı şeyi hem string hem char ile de yazabiliriz:

char d[]={'d','e','r','y','a'} =     string d ="derya"

ekrana yazdırılırken de :

printf("%s",d);    =     printf("%c",d);

şeklinde yazdırılır..............................


DERYA GÜNDÜZ

31 Mart 2010 Çarşamba

c'de dosya kopyalama

"a" adında bir dosyamız olacak,bu dosyamızın bir kopyasını oluşturacaz ve "a"nın içindekiler "a_kopya"da
da    olacak;

main()

{

char k[20];//kopyalanacak dosya adı
p[28]="Kopya_";//oluşan dosya adının bir kısmı

FILE *derya;

printf("dosya adı : \n");

scanf("%s",k);

strcat(p,k);//2. oluşan dosyanın adı a_kopya

derya= fopen(p,"w");//w de dosya yoksa aynı zamnda oluşturuyordu da

FILE *gunduz;

int ch;
gunduz = fopen(k, "r");

if (gunduz== NULL) {

printf("Cannot open %s\n", k);

exit(8);

}

while (1) {

ch = fgetc(gunduz);

if (ch == EOF)

{ break;}

fprintf(derya,"%c", ch);

}
printf("copying is finished!\n");
return 0;
}



DERYA GÜNDÜZ

29 Mart 2010 Pazartesi

c'de strcat() fonksiyonu

dosya yapıları lab ödevi ile uğraşırken strcat()   fonksiyonu ile karşılaştım,ne işe yaradığını bilmiyordum,biraz bakındım,sizinle de  paylaşmak istedim:
strcat() c'de kullanılan hazır bir fonksiyondur içine aldığı iki arrayden ikincisini birincinin sonuna ekler,örnek koduna bakalım:

#include

int main(int argc, char *argv[])

{

char derya[]="yeni birsey";

char derya2[]="ogrendim";

strcat(derya,derya2);

puts(derya);

system("PAUSE");

return 0;

}

OUTPUT
yeni birseyogrendim

15 Mart 2010 Pazartesi

dosyadan okunan türkçe karakterleri ingilizce karaktere çevirme(yarınki lab uygulaması)

dosyamızın(yada kodumuzun) içinde yazan karakter türkçe(ingilizcede olmaya ç ü ö ğ ı gibi) olduğu zaman ekranda anlamlandıramadığımız bir takım semboller çıkar,bunları ing karakterere çevirebilmek için kontrolleri yapıp ingilizce karşılığı olan harfe atamak gerekiyor,aşağıdaki kodu inceleyebilirsiniz:
#include
#include

int main(int argc, char *argv[])

{

FILE *file;
char ch;

int a=0;

char filename[35];

printf("Dosyanin adini giriniz:");

gets(filename);

file = fopen(filename,"r");

for(;;)

{
while(fread(&ch,sizeof(char),1,file)!=0){

                if(ch=='ç' ||ch=='Ç')((bu karakterlerden varsa bunları çevirsin

ch='c';

           else if(ch=='ğ' ||ch=='Ğ')

ch='g';

             else if(ch=='ı' ||ch=='İ')

ch='i';

              else if(ch=='ö' ||ch=='Ö')

    ch='o';

         else if(ch=='ş' ||ch=='Ş')

ch='s';

              else if(ch=='Ü' ||ch=='ü')

ch='u';

               else if(ch==' ')//boşlık karakteri varsa saymasın

a--;
  printf("%c\n",ch);
a++;}

if(feof(file))
{

printf("Dosya sonuna gelindi\n");
fclose(file);

}
printf("%d tane karakter var",a);

system("PAUSE");

return 0;

}}

12 Mart 2010 Cuma

dosyadan okuma,fgetc() fonsiyonu

fgetc karakter karakter okumayı sağlıyor,getc(dosya pointer adı) şeklinde kullanılır
#include
int main(int argc, char *argv[])

       {
FILE *derya;
int b=-1;//null karakterini de sayıyor oyüzden -1den başlatıyoruz

       char temp,filename[20];
           gets(filename);
         derya=fopen(filename,"r");

      for(;;)
{
temp=fgetc(derya);

            printf("%c\n",temp);

          b++;//her bir eleman için b yi 1 arttıracağından dosyadaki eleman sayısını bulmuş olur


           if(feof(derya))//dosyanın sonuna geldiğinde döngüden çıkacak
{
          printf("dosya sonuna gelindi\n");
break;
}
              }
         printf("%d tane sayi okundu\n",b);

system("PAUSE");

return 0;

}

dosyadan okuma,fread() fonksiyonu

istenilen sayıda karakteri okutabilmek için kullanılır.içine 4 parametre alır:ilki,okunacak karakterin adresi,ikincisi okunacak karakterin boyutu,3.sü kaçar kaçar okuyacağı,4.sü dosya parametresi.
#include

#include
int main(int argc, char *argv[])

{

FILE *file;
char ch;
int a=0;
char filename[35];
printf("Dosyanin adini giriniz:");//kullanıcının istediği dosyayı okutmasına imkan sağlıyoruz
gets(filename);//E:/meltem.txt şeklinde ad yol ve uzantıyı içermelidir
         file = fopen(filename,"r"); //dosyayı okuyabilmek için açmak gerekir
                 for(;;)

{
 while(fread(&ch,sizeof(char),1,file)!=0)//
printf("%c\n",ch);//okuduğunu yazsın
               a++;//okuduğu her karakter için sayacı bir arttırsın

          if(feof(file))//dosyanın sonun agelip gelmediğinin kontrolü

        {

printf("Dosya sonuna gelindi\n");
    
           fclose(file);//açılan dosya kapatılmalı

}

printf("%d tane karakter var",a);//kaç karakter okuduysa ekrana yazsın

system("PAUSE");

return 0;

}}

25 Aralık 2009 Cuma

menü tabanlı ağaç uygulaması

//veri yapıları dersi için menü tabanlı ağaç uygulaması yazdım,kitaptan da yardım alarak üzerinde değişiklikler ve eklemeler yaparak yazıldı.
#include


#include

#include

typedef struct topluluk{

int bilgi;

struct topluluk *sol,*sag;



}agac;

agac *kok=NULL;

agac *ara(),*sil(),*okuklavye();

void ekranayaz(),ekle(),listele(),terslistele();

agac *sirala();

agac *ara();



int sayagacdugum();



int main(int argc, char *argv[])

{

agac *yeni,*adres;

int bilgi,miktar;

char secim;

while(1){

puts("\nekleme --------e\nsilme-------s\nkucukten buyuge sıralama----------l\nsayma----S\nprogramdan cıkıs------c\nara-----a\nbuyukten kucuge sırala------t ");

secim=getch();

switch(secim){

case 'e': yeni=okuklavye();

ekle(kok,yeni);

break;

case 'l':if(kok!=NULL)

listele(kok);

else

puts("bos liste");

break;

case 's':

puts("silinecek:");

scanf("%d",&bilgi);

adres=sil(kok,bilgi);

if(adres!=NULL)

puts("silindi");

else

puts("silinmek istenen yok!!!!");

break;

case 'c':

puts("hoşçakal!!!!!");

exit(0);

break;

case 'S': miktar=sayagacdugum(kok,0);



printf("agactaki eleman sayısı:%d",miktar);

break;

case 'a':

puts("aranan:");

scanf("%d",&bilgi);

adres=ara(kok,bilgi);

if(adres==NULL)

puts("Aaranan bulunamadı");

else

ekranayaz(adres);

break;

case 't':

if(kok!=NULL)

terslistele(kok);

else

puts("bos liste");

break;

default:

puts("yanlıs secim!!!");

}

}

}



void ekle(agackok,yeni)

agac *agackok,*yeni;

{

if(agackok==NULL)kok=yeni;

else

{

if((yeni->bilgi) <= (agackok->bilgi)){

if(agackok->sol==NULL)

agackok->sol=yeni;

else ekle(agackok->sol,yeni);



}

else{ if(agackok->sag==NULL)

agackok->sag=yeni;

else ekle(agackok->sag,yeni);



}

}



}

void listele(agac *agackok){

if(agackok!=NULL)

{listele(agackok->sol);

ekranayaz(agackok);

listele(agackok->sag);



}

}

void ekranayaz(agac *veri){

printf("\nbilgi:%d",veri->bilgi);

}

agac *sil(agac *agackok,int silinecek)

{ agac *qa,*q,*qc,*sa,*s;

if(agackok==NULL)//ağaçta düğüm olup olmadığı

return NULL;

q=agackok;

qa=NULL;

//silnecek veriyi içeren düğümğn ağaçta olup olmadığı vearsa kendisinin ve ailesinin adresinin bulunması

while(q!=NULL && q->bilgi!=silinecek){

qa=q;

if(silinecek <=q->bilgi)

q=q->sol;

else

q=q->sag;

}

if(q==NULL)//aranan bulundu mu

return NULL;//aranan yok

if(q->sol!=NULL && q->sag!=NULL)//iki alt cocuğu varsa

{

//iki çocuk varsa sol alt ağaçtaki en büyük değerin bulunması ve silinecek olanla yer değişmesi

s=q->sol;

sa=q;

while(s->sag!=NULL){

sa=s;

s=s->sag;

}

q->bilgi=s->bilgi;

q=s;

qa=sa;



}

if(q->sol!=NULL)//qnun en fazla bir çocuğu olabilir



qc=q->sol;

else

qc=q->sag;

//düğüm silme

if(q==agackok)//silinecek olan kök mü

kok=qc;

else

{ //q sag mı sol mu

if(q==qa->sol)

qa->sol=qc;

else

qa->sag=qc;



}

free(q);

return q;

}

int sayagacdugum(agac *agackok,int miktar)

{ if(agackok==NULL) return miktar;//agac bos ise mikrarı değiştirmeden geri döner

miktar++;

miktar=sayagacdugum(agackok->sol,miktar);

miktar=sayagacdugum(agackok->sag,miktar);

return miktar;



}

agac *okuklavye()

{ agac *yeni;

yeni=malloc(sizeof(agac));

if(yeni==NULL){

puts("bellek dolu");

return NULL;

}

puts("bilgi giriniz:");

scanf("%d",&(yeni->bilgi));

yeni->sag=NULL;

yeni->sol=NULL;

return yeni;//bilginin yerleştirildiği adres gönderiliyor

}

agac *ara(agackok,aranan)

agac *agackok;

int aranan;

{ while(agackok!=NULL && agackok->bilgi!=aranan)

{ if(aranan< agackok->bilgi)

agackok=agackok->sol;

else

agackok=agackok->sag;





}

return agackok;



}

agac *sirala(agackok)

agac *agackok;

{

ekranayaz(agackok->sol);

sirala(agackok);

ekranayaz(agackok->sag);





}

void terslistele(agac *agackok)

{ if(agackok!=NULL)

{ terslistele(agackok->sag);

ekranayaz(agackok);

terslistele(agackok->sol);



}

}

18 Aralık 2009 Cuma

ebobun recursive fonksiyon ile yazılması

%bir önce yazdığım kodu recursive fonksiyon kullanarak daha az kodla yazıyorum

#include

#include

int ebob(int x,int y);

int main(int argc, char *argv[])

{

int sayi1,sayi2;
                 printf("ebobunu bulmak icin iki sayi giriniz:");

scanf("%d%d",&sayi1,&sayi2);

printf("OBEB : %d\n",ebob( sayi1,sayi2 ));
system("PAUSE");

return 0;

}

           int ebob(int x,int y)//recursive function

           { if (y == 0)

return x;

             else

                return ebob(y, x % y);



}

öklid bölme algoritması yardımıyla ebob bulma.

%veri yapılarıları dersinin labının uygulaması olarak iki saynın ebobunun öklid bölme algoritması yardımıyla bulunmasnı yazdım

#include
#include
int main(int argc, char *argv[])
{
int sayi1,sayi2;

int ks,bs,i;

int kalan;

printf("ebobunu bulmak icin iki sayi giriniz:");
scanf("%d%d",&sayi1,&sayi2);

if(sayi1>sayi2)

{
ks=sayi2;

bs=sayi1;

}
else

{
ks=sayi1;

bs=sayi2;

}

for(i=0;i < ks ; i++){
kalan=bs% ks;

if(kalan==0)//ebobu bulmuşsa öıkacak

break;

else{

bs=ks;//her aşamada bs ve ksdeki değişiklikler
ks=kalan;
}

}

printf("%d",ks);/en son aşamadaki ks bizim ebobumuzdur

system("PAUSE");

return 0;

}

5 Aralık 2009 Cumartesi

stack yapısı kodu..

bugün veri yapılarının labı vardı.bugün yazdığımız kodu paylaşmak istedim.
kod dizi tabanlı bir stack yapısıdır.stack yapısını bir çuval gibi düşünürsek çuvala en son eklenen çuvaldan ilk çıkarılır.yani ekleme yapıldığında sona çıkarma yapıldığında en son konulan eleman çıkarılır.ko

#include


#include

#include

#define n 10//dizi 10 elemanlı

int yveri[n]={0},yi=0;

int koy();//ekleme fonksiyonu

int al();

void temizle();//dizideki bütün elemanları siler

int listele();//dizi elemanlarını sıralarına göre listeler

sayac=0;

int main(int argc, char *argv[])

{ int eklenecek;

char secim;

while(1)

{ puts("yigina eklene.................'e'\nyigindan eleman cikarma............'c'\nyigini temizleme...........'t'\nlisteleme.................'l'\nsay..............'s'");

secim=getchar();

switch(secim)

{ case 'e':

koy();

break;

case 'c':

al();

break;

case 't':

temizle();

break;

case 'l':

listele();

break;

case 's':

printf("%d\n tane eleman var ",sayac);

default:

printf("yanlis secim!!!");

break;

}

}





system("PAUSE");

return 0;

}

int koy()

{ int eklenecek;

printf("eklemek istediginiz sayiyi giriniz:");



scanf("%d",&eklenecek);

if(yi>=n)//eleman sayısı 10dan büyük olursa ekleme yapılamıyor

puts("yigin dolu!");

else

yveri[yi]=eklenecek;

yi++;



printf("%d yigina eklendi\n",eklenecek);

sayac++;

}

int al()

{ if(yi<=0)

puts("yigin bos");

else{

printf("%d elamnı yigindan cikarildi\n",yveri[yi-1]);

sayac--;

return yveri[--yi];





}

}

void temizle()

{ yi=0;

sayac=0;

printf("yiginda hic eleman yok!!!");}

int listele()

{int i;

if(yi<=0)

printf("yigin bos!!!\n");

else{

for(i=0;i< sayac;i++){< p="">

printf("yveri[%d]=%d\n",i,yveri[i]);

}}

}
 
Facebook

Bizi takip edin!

ESOGÜ Bilişim GünleriESOGÜ Bilişim Günleri