Previous
Next

C dili ile yazdığım ilk programlardan birisi

by Cem Kefeli 17. Mart 2009 15:18

Üniversite yıllarımın ilk günleriydi, C dersi alıyorduk. Kocaeli Üniversitesi(KOÜ) Elektronik ve Haberleşme Mühendisliği Bölümü(Elo-Hab)'ne C/C++yeni başlamış ve yazılım ile alakası olmayan insanlar için yazılım ile tanışmanın ne kadar acıklı olduğuna şahit olduğum günler. Neyse ki benim programlamaya biraz da olsa bir aşinalığım vardı da kolay denilebilecek bir dönem geçirdim. Programlamaya giriş dersi ile birlikte artık mesleki hayatımıza da adım atmış olduk. İşte tam bu aşamada C ile tanışmamı sağlayan ve bana algoritma yazmaktaki felseyi aşılayan sevgili hocam Yrd. Doç. Dr. Mehmet Yakut'a bana kazandırdıkları için çok teşekkür ediyorum yeri gelmişken. O yıllardan sonra aradan yedi sene kadar geçti, ve ben bu süre içerisinde birçok yazılım projesinde yer aldım, ve onun bana öğrettikleri her zaman aklımın bir köşesinde vardı ve hep de faydalı oldu, işe yaradı. Bu yazıyı neden yazdığıma gelince.. Sebebi yalnızca eski projelerimin arasında dolaşırken bir klasörün dikkatimi çekmesi :)

Unutmuyorum hiç. Üniversitenin ilk haftaları.. Mehmet hoca C dersinde sınıfa bir ödev verdi. Ödevi verirken de dedi ki, eğer bu ödevi yarın akşama kadar yapıp bana mail atan olursa onu vizeye almadan Rakamla rakam100 vereceğim. Mehmet hocanın bir programlama dersinden 100 almak o günün şartlarında büyük olay. Hatırlıyorum da sınavlara bir insan sürüsü olarak girerdik. Alttan dersi alanlar artık o kadar birikmiş ki, derslikler sınav zamanı az gelir olmuş. Hatta arkadaşlarla bir ara, 'bu sınavı yakında ÖSYM yapar artık' diye dalga geçiyoruz :) Ödev şu; Bankaların bankamatiklerinde sık sık karşılaşmışsınızdır. Bir sayı yazar ekranda, ama sayıyı oluşturan rakamlar da yine rakamlar kullanılarak yazılmıştır. Tıpkı sol tarafdaki resimde görüldüğü gibi, zaten programın çıktısı da bu şekilde. Ekranda sayıyı giriniz diye yazacak, siz bir sayı gireceksiniz, program da sol taraftaki gibi o sayısı yazacak, ödev bu. Ben o gün eve gittiğim gibi çalışmaya koyuldum ve aynı günün akşamı gece 1-2 gibi ödevi hocaya mail ile gönderdim. 100'ü kaptım diye, bir mutluluk oluştu tabi ki.. Ama Mehmet Hoca geriye bir cevap ile dönmüştü: "Bu kadar sürede, bu işi yeni öğrenen birisi olarak, bunu yazamaman gerekirdi. Yarın gel, program üzerine konuşalım ve bana anlat". :) Doğal olarak benim kendi başıma yazmayabileceğim ve başkasıyla birlikte yazmış olabileceğim gelmiş hocanın aklına ve benden bir açıklama bekliyordu. Ertesi gün hocanın yanına uğradım ve durumu anlatıp 100 puanı kaptım. Benim için yazılımcılık açısından çok ama çok güzel bir başlangıç olmuştu bu olay. Belki de şu an yazılımla uğraşmamın en büyük nedeni budur. Mehmet Hocam'a bana kazandırdıkları için tekrar teşekkürlerimi gönderiyorum.

Aşağıdaki linkleri kullanarak programın derlenmiş haline ve kodlarına ulaşabilirsiniz. Çok ufak ve kolay ama benim için çok değerli bir kod parçacığı... :)

1.2.1. Standart Geriye Yayılım Algoritması İçin Yazılan Program Kodları  |  Gizle  |  Göster
																																										 
						#include <stdio.h>
						#include <conio.h>
						#include <math.h>
						main()
						 {
						  sayigir:
						  clrscr();
						  int n=1,bsayisi=0,sayi2[10],k,p,w,t;
						  //n:saya‡ ;bsayisi:basamak says ;sayi2:sayi1 de§iŸkeninin son rakam
						  //P:sayi2[] i‡in saya‡; w:(a,b,c,d,e,f,g,h,i)[] i‡in saya‡
						  float sayi1;          //sayi1: scanf'le alnan say
						  printf("Yazlmasn istedi§iniz sayy giriniz.");
						  scanf("%f",&sayi1);
						  clrscr();
						  char a[15][15]={" 000000  ","   111   ","  22222  ","3333333 ","     44   ","5555555  "," 6666666 "," 77777777 "," 888888  "," 999999  "};
						  char b[15][15]={"00    00 ","  1111   "," 22   22 ","33   33 ","    44    ","55       ","66    66 ","77     77 ","88    88 ","99    99 "};
						  char c[15][15]={"00    00 "," 11 11   "," 22   22 ","     33 ","   44     ","55       ","66       ","77    77  ","88    88 ","99    99 "};
						  char d[15][15]={"00    00 ","11  11   "," 22   22 ","     33 ","  44      ","55 555   ","66       ","     77   ","88    88 ","99    99 "};
						  char e[15][15]={"00    00 ","    11   ","      22 "," 333333 "," 44       "," 555 55  ","6666666  ","    77    "," 888888  "," 9999999 "};
						  char f[15][15]={"00    00 ","    11   ","    22   ","     33 ","44  44    ","      55 ","66    66 ","   77     ","88    88 ","      99 "};
						  char g[15][15]={"00    00 ","    11   ","   22    ","     33 ","44444444  ","      55 ","66    66 ","  77      ","88    88 ","      99 "};
						  char h[15][15]={"00    00 ","    11   "," 222     ","33   33 ","    44    ","55    55 ","66    66 "," 77       ","88    88 ","99    99 "};
						  char i[15][15]={" 000000  ","  111111 ","22222222 ","3333333 ","    44    "," 555555  "," 666666  ","77        "," 888888  "," 999999  "};
						  if(sayi1==0)
						   {
						    bsayisi=1;
						    n=2;
						    sayi2[1]=0;
						    goto atla;
						   }
						  while(sayi1>0)
						   {
						    sayi2[n]=fmod(sayi1,10);
						    //printf("a[%d] = %d",n,sayi2[n]);
						    sayi1=(sayi1-sayi2[n])/10;
						    bsayisi++;
						    //printf(" basamak says = %d\n",bsayisi);
						    n++;
						   }
						  atla:
						  k=bsayisi;
						  t=n-1;
						  bsayisi=k;
						  p=t;
						  while(bsayisi>0)
						   {
						    w=sayi2[p];
						    printf("%s",a[w]);
						    p--;
						    bsayisi--;
						   }
						  printf("\n");
						  bsayisi=k;
						  p=t;
						  while(bsayisi>0)
						   {
						    w=sayi2[p];
						    printf("%s",b[w]);
						    p--;
						    bsayisi--;
						   }
						  printf("\n");
						  bsayisi=k;
						  p=t;
						  while(bsayisi>0)
						   {
						    w=sayi2[p];
						    printf("%s",c[w]);
						    p--;
						    bsayisi--;
						   }
						  printf("\n");
						  bsayisi=k;
						  p=t;
						  while(bsayisi>0)
						   {
						    w=sayi2[p];
						    printf("%s",d[w]);
						    p--;
						    bsayisi--;
						   }
						  printf("\n");
						  bsayisi=k;
						  p=t;
						  while(bsayisi>0)
						   {
						    w=sayi2[p];
						    printf("%s",e[w]);
						    p--;
						    bsayisi--;
						   }
						  printf("\n");
						  bsayisi=k;
						  p=t;
						  while(bsayisi>0)
						   {
						    w=sayi2[p];
						    printf("%s",f[w]);
						    p--;
						    bsayisi--;
						   }
						  printf("\n");
						  bsayisi=k;
						  p=t;
						  while(bsayisi>0)
						   {
						    w=sayi2[p];
						    printf("%s",g[w]);
						    p--;
						    bsayisi--;
						   }
						  printf("\n");
						  bsayisi=k;
						  p=t;
						  while(bsayisi>0)
						   {
						    w=sayi2[p];
						    printf("%s",h[w]);
						    p--;
						    bsayisi--;
						   }
						  printf("\n");
						  bsayisi=k;
						  p=t;
						  while(bsayisi>0)
						   {
						    w=sayi2[p];
						    printf("%s",i[w]);
						    p--;
						    bsayisi--;
						   }
						  menu:
						  char kr;
						  printf("\n\nSe‡iminizi belirten bir rakam giriniz:");
						  printf("\n[1]....... Yeniden dene.");
						  printf("\n[2]....... Programdan ‡k.");
						  kr=getch();
						  switch(kr)
						   {
						    case '1' :
						    goto sayigir;
						    break;
						    case '2' :
						    clrscr();
						    goto end;
						    break;
						    default :
						    clrscr();
						    goto menu;
						   }
						  return(0);
						  end:
						  printf("PROGRAN SONLANDIRILDI..!");
						 }
						

Ekler: RakamlaRakam.exe (35,98 kb) ,RakamlaRakam.cpp (4,33 kb)

Etiketler: , , , , , ,
Kategoriler: Çalışmalar | Çalışmalar - C/C++ | Yazılım

Yorum ekle

biuquote
  • Yorum
  • Canlı önizleme
Loading

Hakkımda...

Cem KEFELİ

Electronics and
Telecommunication Eng.
devamı...


Son yapılan yorumlar...

Comment RSS

Yasal bir uyarı...

Disclaimer"Bu web sitesinde görmüş olduğunuz bilgilerin, dokümanların ve diğer materyallerin kullanılmasından doğabilecek hiç bir sorumluluktan site sahibi sorumlu tutulamaz. Web sitesi içerisinde yer alan yazılar, yorumlar, resimler ve diğer tüm içerikler yalnızca sahibinin görüşünü yansıtmakta olup içeriğin sahibi kişilerin çalıştığı kurumları bağlayıcı hiç bir nitelik taşımamaktadır. Yapılan tüm alıntılar mutlaka kaynak gösterilerek verilmeye çalışılmaktadır. Web sitesi içerisinde bulunan ilgili materyaller, ilgili yasal kurumlar tarafından uygun görülmemesi durumda kaldırılacaktır."
General