Veri Tiplerini Bir Arada Kullandığımız C Program Örneği

Bir önceki konumuzda kısaca hangi veri tipini hangi amaç için kullandığımızdan bahsettik. Şimdi genel bir tekrar olması açısından kullanıcıdan tamsayı, ondalık sayı, karakter ve string (dizgi, karakter dizisi) bilgileri girmesini isteyen ve bunları ekrana yazdıran bir C programı yazalım:

#include<stdio.h>

int main(void)
{

    int numara=0;
    float ortalama=0;
    char harf;
    char isim[10];
    printf("Numara giriniz: ");
    scanf("%d",&amp;numara);
    printf("Isim: ");
    scanf("%s",&amp;isim);
    printf("Not ortalamasi: ");
    scanf("%f",&amp;ortalama);
    printf("Notun harf karsiligi: ");
    scanf("%c",&amp;harf);
    scanf("%c",&amp;harf);

/*buraya kadar kullanıcıdan sırayla bir öğrenci numarası, isim (10 karakter uzunluğunda tanımladık dikkat ederseniz), not ortalamasıve notun harf karşılığını girmesini istedik. Dikkat ettiyseniz harfkarşılığını iki kez girmesini istedik. Bunun sebebi not ortalamasındansonra “Enter”a bastığımız zaman bunu karakter olarak okuması.Şimdi bunları formatlı biçimde kullanıcıya gösteren kodları yazalım */

    printf("\n\nOgrencinin:\nNumarasi: %d\n",numara);
    printf("Adi: %s\n",isim);
    printf("Not Ortalamasi: %f\n",ortalama);
    printf("Notun Harf Karsiligi: %c\n",harf);
    return 0;
}

Bu basit program ile de sadece tamsayılarla uğraşmaktan kurtulmuş olup karakter, ondalık sayı ve string’lerin ne şekilde kullanıldığını öğrenmiş olduk. Diğer yazımda karşılaştırma ve döngü işlemlerinin ne şekilde yapıldığından bahsedeceğim ve kullanıcıdan aldığı bilgileri geri gösteren değil, daha işlevsel programcıklar yazmaya başlayacağız.

Birinci Sınıfın Sonunda...

Daha okula ilk gittiğim günü hatırlıyorum. Zaman çok çabuk akıp geçmiş. Koca sene bitmiş. Sorana 2. sınıfa geçtim diyebilecek bir yere gelmişim altta iki dersim kalsa da. Onlar da nazar boncuğu olsun :) Seneye hallederiz…

Bütün sene okula gidip gelmek dışında neler yaptım, bize neler öğrettiler diye bir gözden geçireyim dedim bir nevi hesaplaşma, kendimle yüzleşme. Gördüm ki pek bir şey öğrenmemişim. Pek bir şey öğretilmemesinin de büyük payı var tabi ki bunda.

İlk dönem bilgi teknolojileri dersinde ofis uygulamalarına göz attık bol bol. E Microsoft Word zaten çok yabancı bir program değildi önceden de. Excel bir yere kadar. PowerPoint lazım oldukça kurcaladığımız bir program. Access’e girmekle çıkmak bir oldu bir şey anlatıldığını da anladığımı da hatırlamıyorum hala bilmem nasıl kullanılır. Ama genel olarak bakınca yine en çok iş yaptığımız, uygulama yaptığımız ders buydu. Diğerlerinde yapılanlara bakınca (bana göre) en yararlısıydı.

Algoritmalar ve Programlama. Mübarek ders. İlk dönem hemen hemen herkesin kaldığı ders. Benim de FF ile kaldığım ilk nazar boncuğum. İlk dönem pointer’lara kadar ilerlememiş olsak da soruların o zamanki acayipliği sayesinde kimsenin bir şey anlamadığı, kimsenin bir şey yapamadığı acayip acayip sınavlar sayesinde sınıfın çoğunun beyaz bayrağı çektiği güzide ders. İlk dönem bir facia olsa da ikinci dönem yaptığımız projeler sayesinde (ki benimki c ile yazılmış bir araba yarışıydı) sorumlu geçebilecek seviyeye çıkabildik. En azından kalmadık. Bütün sene C programlama ile uğraştık sular seller gibi öğrendik mi? Tabi ki HAYIR. Çok yüzeysel ve yetersiz şeyler biliyor da olsam yine de “bilmiyor değil” olarak niteliyorum kendimi :) En doğru tanım bu sanırım.

Bilgisayar Mühendisliğine Giriş adı altında aldığımız dersin içeriği bölümümüz sitesinde böyle belirtilmiş olsa da, basitçe bilgisayar nedir tanımı yaptıktan sonra IP adresleri, sınıfları, subnet oluşturma ve öğrencilik hayatım boyunca sevemediğim “olasılık” konuları bu dersimizin içeriğini oluşturdu. Yine sorumluluk sahibi bir öğrenci olarak “sorumlu” geçebilsem de kendimi şanslı sayıyorum. Sınıfta geçen sayısı bir elin parmaklarını geçmeyince kıymeti büyük oluyor tabi.

Fizik, matematik gibi derslerden bahsetmeye gerek duymuyorum. Sınavlardan bir gün önce formül ezberleyip sonra ders geçmeye çalışmaktı tüm çabam. Fizik 2 hariç başardım da aslında. Matematiği, fiziği çok iyi öğrendim mi? Cevap hayır. Birşeyler biliyor muyum? Cevap evet. İdare eder ile kötü arasında bir yere koyuyorum kendimi bu derslerde. İdare ediyorum yani :)

Yaza kendimi değerlendirip girmek güzel bir duygu aslında ne olduğumun farkına vardım. Okulun gidişatına bakınca %25 bilgisayar mühendisi sayılsam da aslında çok çok yetersizim birçok konuda. Bu kadar yetersiz hissederken koca yaz boş geçmesin diye bir arkadaşın tavsiyesiyle C# öğrenmeye başladım. Bitince ASP.NET ile devam edeceğim. Öğreneyim, işe yarar noktalar buldukça sizlere de yazarım :)

Burada sözlerime son verip herkese iyi tatiller diliyorum. Yazı boş geçirmeyin diyorum ;) Esen kalın…

6 yıl hasretin ardından...

2003 yılında Beşiktaş’ımızın yüzüncü yılındaki harika şampiyonluktan bu yana hasretle bekliyoruz şampiyon olsun takımımız diye. “Sergen attı şampiyonluk geldi” vidyolarını çevirip çevirip izledik, o vidyolarla hasret giderdik. Ve sabırlı bekleyişimiz nihayet sonuçlandı. 2009’un şampiyonu olduk. Hem Türkiye Kupası’nı hem ligi aldık…

Bugünkü sevinci bana yaşatan takımıma teşekkür ediyor ve şampiyonluğu getiren golleri paylaşıyorum sizlerle.

C’de Veri Tipleri

Önceki yazılarımda scanf ile klavyenizden bir tamsayı değeri okuyup bunları ekranda printf fonksiyonu ile yazdırmıştık. Dikkat ettiyseniz yaptığımız örneklerde hep %d ile tamsayıları kullandık. Peki programımızda ondalık sayılar, karakterler ya da dizgiler (string) kullanmamız gerektiği zaman ne olacak? İşte o zaman aşağıdaki tablo yardımımıza koşacak.

Kullanım Veri Tipi
%c Karakter
%d Tamsayı
%e Bilimsel gösterim (scientific notation)
%f , %lf Reel sayı
%g %e ve %f den kısa olanını kullanır
%s Dizgi (string)
%u İşaretsiz ondalık
%x Hexadecimal

Bu tablo tek başına bir anlam ifade etmeyeceğinden birkaç örnek program parçası yazıp olayı kavramaya çalışalım.

int a=5;
double b=2.8;
printf("a=%d ve b=%f dir.",a,b);

Programımıza böyle bir kod dizi yazıp çalıştırdığımızda ekranda şunu göreceğiz: “a=5 ve b=2.8 dir.

Sanırım ondalık sayı tanımlama ve fonksiyon içerisinde kullanma anlaşılmıştır. Bir tane de karakterler için örnek kod yazıp bu dersi kısa kesebiliriz.

char karakter=B;
printf("%c",karakter);

Programımıza bu kodları yazıp çalıştırsaydık ekranda sadece B harfini görecektik. Belki ilerde işimize yarar diye bir de ipucu vereyim. Karakter örneğimizi ekrana yazdırırken %c yerine %d kullansak ne olurdu? Şu olurdu: B’nin (büyük B, küçüğü farklıdır.) ascii tablosundaki tamsayı karşılığı ekrana yazdırılırdı ve ekranda 66 sayısını görürdünüz.

Yukarıdaki tabloda en önemli veri tiplerinden biri de dizgiler (yani stringler). Burada iki satırda geçilmeyecek kadar önemli ve üzerinde durulması gereken bir konu. Onun için bu konuyu daha bilgili bir zamana erteliyorum.

Bir sonraki yazımda şu ana kadar bildiğimiz her şeyi içeren bir örnek yapıp sonrasında karşılaştırma komutlarından bahsederiz (if ile başlarız, while, do-while, for diye devam ederiz).

O zamana kadar kendinize iyi bakın. Benden ayrılmayın… ;)

Müzik Müzik Müzik...

Facebook’ta rastladım bu vidyoya ve hayran kaldım. Bu sayfalarda da sizlerle paylaşabilmek için akilli.tv’ye yükledim. Açıklamasında aynen şunları yazmış Facebook’a ekleyen arkadaş:

Düşünün! Bir Deejay dünyanın çeşitleri bölgelerinde sokak çalgıcılarına (müzisyenlerine) bir parçayı aynı tonlarda çaldırıyor ve kaydediyor. Daha sonra tüm bu kayıtları hem görsel hem de işitsel olarak mixliyor (karıştırıyor). Ve bakın ortaya nasıl bir sonuç çıkıyor :) Gerçek bir prodüktörlük ve yaratıcılık örneği nasıl oluyor anlayacaksınız.

Şimdi o yaratıcılık örneğini görelim isterseniz. Sonuna kadar izlemenizi (özellikle dinlemenizi) şiddetle tavsiye ediyorum.

Müziğe ara vereli ne kadar oldu diye düşündüm yukarıda verdiğim vidyoyu izlediğim zaman. Bilgisayar başında geçirdiğim sürelerin en heyecanlıları en eğlencelileri “Acid Music Studio” adlı programı keşfedip bilgisayarımı küçük bir stüdyoya dönüştürdüğüm zamanlardı sanırım. Şimdi bir düşündüm de ne günlerdi. Beat’ler havalarda uçuşurdu. Güzelim şarkılara ayrı bir hava verirdim. Harddiskim yandığında hepsi kül olmasaydı keşke, paylaşmak isterdim sizlerle.

Giden geri gelmiyor ama en iyisi ben kabuklarımı kırıp müzik hayatıma yeniden döneyim. Sınavlardan sonra bir ritim şov sunayım sizlere ;) Bir de sanat müziğimizin güzide parçalarından bir tanesini seçip ritimlerle biraz süsleyeyim bakalım nasıl bir şey olacak. Hasan’ın stüdyosundan “Sanat Müziği – Batı ritimleri” sentezini nasıl bulacaksınız :p Cevap: Tabi ki güzel bulacaksınız :D (mütevazilik aldı başını gidiyor bu aralar)

Yazıma son verirken ufak ufak Winamp’ıma dalayım bakalım beni ne tür müzikler bekliyor. Ben tekrar yazıncaya dek, sağlıcakla kalın efendim, müzikle kalın ;)