F3do
Lütfen Üye Olunuz...!!!

Join the forum, it's quick and easy

F3do
Lütfen Üye Olunuz...!!!
F3do
Would you like to react to this message? Create an account in a few clicks or log in to continue.

c ve c++ dersleri

Aşağa gitmek

c ve c++ dersleri Empty c ve c++ dersleri

Mesaj tarafından sezginsen Çarş. Haz. 03, 2009 7:32 pm

Merhaba;
Sanırım, C ve C++ adını bilgisayarla az çok haşır neşir olan herkes en
az bir kez duymuştur. Sizde bu isimleri duyanlardansanız ve nedir, ne
değildir, nasıl kullanılır gibi birçok soruya yanıt arıyorsanız, doğru
yerdesiniz. Çünkü bu yazıyla başlayarak C ve C++ ile programlamaya
gireceğiz. Önce C ile yolumuza koyulup, belli bir olgunluğa ulaştıktan
sonra C++ ile devam edeceğiz.
Okuyucularımızın genelini düşünerek, konuyu en temelden almayı daha
doğru buldum. Yani hedefimiz, programlamayı hiç bilmeyen bir insanın
burada okuduklarıyla belli bir yerlere ulaşması. İleri derece de
olanlarsa sıkılmamak için biraz beklemeli. Lafı fazla uzatmadan
başlayalım.
Bilgisayar ve Programlama nedir?

Bilgisayar çok basit düşündüğümüzde üç ana görevi yerine getiren bir
makinedir. Girilen bilgiyi alır (INPUT), işler (PROCESSING) ve bu
işlenmiş veriden bir sonuç (OUTPUT) çıkarır. Bilgisayar, sadece donanım
olarak çalışmaz. Çünkü yazılım olmadan, donanım ne yapacağını bilemez.
Bilgisayar donanımına ne yapacağını söyleyecek bir komutlar dizisi
gerekir. Yapacağı görevleri, ona anlatan komutlara program diyebiliriz.
Yani donanıma “sen şunu yap, sonra bulduğun sonucu şöyle şuraya ekle”
gibisinden işler yaptırmak programın veya bir başka deyişle yazılımın
işidir. Bir programcı olarak bundan fazlasını bilmek elbette ki
avantajdır. Ama bilgisayarın bütün özelliklerini bilmeniz gerekmez.
Yani yazacağınız bir program için o bilgisayarın özelliklerini
bilmeseniz de olur.
Bilgisayarın anladığı tek dil, Makine Dilidir. Bu 16’lık (Hexadecimal)
sistemden oluşan bir programlama tipidir. Makine dilini anlamak çok
zordur ve bu dili kullanmak için o bilgisayarın donanım özelliklerini
mutlaka bilmeniz gerekir. C de ekrana yazı yazmanızı sağlayan
“printf();” gibi çok basit bir fonksiyon, makine dilinde 1A BB 0D BC D5
FF C2 F7... gibi çok daha karmaşık ve hiçbir anlam ifade etmeyen bir
hâle dönüşür. Makine dili programlama dilleri arasında en alt seviyedir.
Makine dilinden sonra Assembler Dili gelir. Makine dilini kullanmanın
zorluğu ve karmaşası üzerine geliştirilen Assembler, daha basit bir
yapıdadır. Ama yine de C ile mukayese ederseniz çok daha zordur ve
kullandığınız bilgisayarın donanımına dair hâlen bilgiye gereksinim
duyarsınız. Assembler aşağıdaki gibi karmaşık bir yapıdadır.
SEGMENT COM WORD PUBLIC ‘CODE’ASSUME CS : COMDS : COM ORG 100HENTRY:
MOV DVX,OFFSET MSG MOV AH,g . . .Şuan bunu anlamaya çalışıp, hiç
zamanınızı harcamayın. Çünkü öğreneceğimiz dil C, işlerimizi ve
dolayısıyla hayatımızı çok daha kolaylaştırmaktadır. C, orta seviye bir
programlama dilidir. Bunun anlamı, hem yazması kolay, hemde üst seviye
dillere göre daha çok erişim hakkınızın olduğudur. Üst seviye
programlama dilleri ise BASIC, PASCAL, gibi dillerdir. Üst seviye
dillerde, yazması göreceli olarak daha kolay olsa da C ile
yapabileceklerimiz daha çoktur.
Program yazmak için ne gerekir?

Program yazabilmek için hiçbir şeye ihtiyacınız yoktur. Program yazmak
için Windows’un not defterini veya Linux'da Gedit, Kwrite gibi bir
program bile kullanabilirsiniz. Önemli olan yazılan programın
derlenmesidir. Derlemeye “compile” ve derleme işini yapan
derleyiciyeyse “compiler” denir. C için internet üzerinden birçok
Compiler bulabilirsiniz. Ben, program uygulamalarını GCC üzerinden
yapacağım. Aynı şekilde bu derleyiciyi kurmanızı tavsiye ederim. GCC
gelmiş geçmiş en iyi derleyicilerden biri olduğu gibi, özgür bir
yazılımdır! Richard Stallman tarafından açık kaynak koduyla sunulmuştur
ve arzu ettiğiniz takdirde, sonuna kadar değişiklik yapma imkanınız
vardır.
Şayet Windows işletim sisteminiz varsa GCC'yi kurmanız biraz sıkıntılı
olabilir. Basit bir Google araştırmasıyla, Bloodshed Dev-C++ adında bir
program buldum. GCC üzerine kurulmuş bir yapısı varmış. GCC ile
uğraşmak istemeyen Windows kullanıcıları, bu programı deneyebilir.
Algoritma Geliştirmek

C dilini ve komutlarını öğrenmek, programlamaya başlamak için şarttır
ama algoritma oluşturamadığımız sürece bir program oluşturmazsınız.
Algoritma, mantıktır. Yani neyi, nasıl yapacağınızı belirtir. Algoritma
türetmek için geliştirilmiş bir metot yok. Her program için o metodu
sizin bulmanız gerekiyor. Ama hiç merak etmeyin, yazdığınız program
sayısı arttıkça, algoritma kurmanız daha kolaylaşır.
Algoritma, programlamanın bel kemiğidir. C dilinde kullanılan komutlar,
BASIC veya FORTRAN gibi başka dillerde işe yaramaz. Fakat programlama
mantığını bir kere oturttursanız, C komutlarının yerine pekâlâ başka
dillere ait komutları da öğrenebilir ve büyük bir zorluk çekmeden diğer
dillerde de program yazabilirsiniz.
Basit bir örnek üzerinden düşünelim. Bir markete gittiniz, kasada ki
görevliye aldığınız ürünü gösterdiniz, parayı uzattınız, paranın üstünü
aldınız. Günlük hayatta gayet normal olan bu durumu biraz değiştirelim.
Karşınızda insan değil, elektronik bir kasiyer olsun. Ona göre bir
algoritma geliştirirsek,
1-) Ürüne bak;
2-) Ürün Fiyatını bul;
3-) Parayı al;
4-) Alınan paradan ürün fiyatını çıkar;
5-) Kalan parayı ver.


İnsan zekasının otomatik hâle getirdiği eylemleri, ne yazık ki
bilgisayar bilmez ve ona biz öğretmek zorundayız. Öğretirken de hata
yapma hakkımız yoktur, çünkü yanlış öğreti yanlış programlamayla
sonuçlanır.
C Programlama Dili

Temel Giriş/Çıkış İşlemleri (BASIC I/O):

C ile ilgili olarak bu ve önümüzdeki yazılarda birçok komut/fonksiyon
göreceğiz. Ama hep kullanacağımız ve ilk öğrenmemiz gerekenler temel
giriş çıkış fonksiyonlarıdır. C de klavyeden bir değer alabilmek için
scanf(); fonksiyonunu kullanırız. Ekrana herhangi bir şey yazdırmak
içinse printf(); fonksiyonu kullanılır.
Bir örnekle görelim;
#include<stdio.h>int main( void ){ printf("Hello World");}Eğer
bunu derleyicinizde yazıp derlerseniz ve sonrasında çalıştırırsanız
ekrana Hello World yazılacaktır. #include<stdio.h>, standart
giriş çıkış başlık dosyasını, programa dahil et gibi bir anlam taşır.
C'de (ve hemen hemen bütün diğer programlama dillerinde) bir
kütüphaneyi dahil etmek son derece rutin bir iştir. Aksi halde
giriş-çıkış fonksiyonlarını dahi her seferinde bizim baştan
tanımlamamız gerekirdi.
main( ), bir programdaki ana fonksyiondur. Ondan sonra gelen ayraç
standarttır. Bir bloğu temsil eder. İki ayraç işareti arasındaki alan
main fonksiyonuna ait bir bloğu oluşturur. printf ise yazdığımız
metini, ekrana bastırmaya yarayan, standart bir fonksiyonudur. Çift
tırnak işaretleri içersine yazdığınız herşey printf sayesinde ekrana
basılır.
Dikkat ettiyseniz, her satır sonuna noktalı virgül koyduk. Aslında her
satır değil, her komutan sonra noktalı virgül koyduğumuzu söylemek daha
doğru olacak. Çünkü noktalı virgül C dilinde komut ayracı anlamına
gelir.
Şimdi yukarıda yazdığımız basit programı, biraz daha geliştirelim:
#include<stdio.h>int main( void ){ printf("Hello World\n");
printf("Merhaba Dünya"); return 0;}Birkaç yeni satır görüyorsunuz.
Sırayla ne olduklarını açıklayalım. Az evvel yazdığımız "Hello World"
yazısının sonuna "\n" ekledik. "\n" bir alt satıra geç anlamına
geliyor. Eğer "\n" yazmazsak, ekranda "Hello WorldMerhaba Dünya"
şeklinde bir yazı çıkar. "\n" kullanırsak, "Hello World" yazıldıktan
sonra, bir alt satıra geçilir ve ikinci satırda "Merhaba Dünya"
yazdırılır. En altta "return 0;" adında yeni bir komut fark
etmişsinizdir. Bunu eklemezseniz, program yine çalışır; ancak uyarı
verir. Çünkü main fonksiyonu, geriye bir tam sayının dönmesini
beklemektedir. Yazmış olduğumuz return ifadesiyle bu uyarılardan
kurtulabilirsiniz. Detayına girmek için henüz erken, return konusuna
ileride değineceğiz.
Yukarıda ki programın aynısını şöyle de yazabilirdik:
#include<stdio.h>int main( void ){ printf("Hello World");
printf("\nMerhaba Dünya"); return 0;}Bir önce ve şimdi yazdığımız
programların ekran çıktısı aynıdır. Bu örnekle anlatmak istediğim,
printf( ) fonksiyonunda '\n' konulan yerden sonrasının bir alt satıra
düşeceğidir.
#include<stdio.h>int main( void ){ printf("Hello World\nMerhaba
Dünya"); return 0;}Gördüğünüz gibi tek bir printf( ); kullanarak aynı
işlemi yaptırdık.
Varsayalım, ekrana çok uzun bir cümle yazmamız gerekti. Örneğin;
#include<stdio.h>int main( void ){ printf("Benim adım Çağatay
ÇEBİ ve Yazılım Mühendisiyim.\n"); return 0;}Bu yazdığımız program hata
vermemesine karşın, çalışma verimini azaltır. Çünkü yazacaklarınız
editör penceresine sığmazsa, yazılanı okumak daha zahmetli olur.
Önemsiz bir detay gibi gelebilir, ama kod yazma verimini ciddi oranda
düşüreceğinden emin olabilirsiniz.
Bu programı aşağıdaki gibi yazmamız daha uygundur:
#include<stdio.h>int main( void ){ printf("Benim adım " "Çağatay
ÇEBİ" "ve Yazılım Mühendisiyim.\n"); return 0;}Tek bir printf( );
fonksiyonu kullanılmıştır. Ancak alt alta yazarak, metini tek seferde
görülebilir hâle getirdik. Programı derleyip çalıştırırsanız, alt alta
üç satır yazılmaz. Cümle bütün olarak gösterilir ve bir önceki örnekle
tamamen aynıdır. (Satırların alt alta görünmesini isteseydik; daha önce
bahsettiğimiz gibi '\n' koymamız gerekirdi.)
Ekrana, Ali: "Naber, nasılsın?" dedi. şeklinde bir yazı yazdırmamız
gerekiyor diyelim. Bu konuda ufak bir problem yaşayacağız. Çünkü
printf( ); fonksiyonu gördüğü ilk iki çift tırnak üzerinden işlem
yapar. Böyle bir şeyi ekrana yazdırmak için aşağıdaki gibi bir program
yazmamız gerekir:
#include<stdio.h>int main( void ){ printf("Ali: \"Naber,
nasılsın?\" dedi.\n"); return 0;}printf( ); fonksiyonunu kullanmayı
sanırım iyice anladınız. printf( yazıp, sonra çift tırnak açıyor,
yazmak istediklerimizi yazıyor, çift tırnağı sonra da parantezi
kapatıyor, sonuna noktalı virgül ekliyoruz. Alt satıra geçmek içinse,
yazdıklarımızın sonuna '\n' ekliyoruz. Çift tırnaklı bir şey kullanmak
içinse \“ ... \” kullanıyoruz. Hepsi bu!
scanf(); fonksiyonuna gelince, bu başında bahsettiğimiz gibi bizim
giriş (Input) fonksiyonumuzdur. Ancak yazımı burada noktalıyorum. Çünkü
değişkenler işin içine girmekte ve onları anlatmam uzun sürecek.
sezginsen
sezginsen
Fanatik
Fanatik

Erkek
Mesaj Sayısı : 312
Rep : 456
Kayıt tarihi : 31/10/08

Sayfa başına dön Aşağa gitmek

Sayfa başına dön

- Similar topics

 
Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz