SENDE BİZE KATIL
Would you like to react to this message? Create an account in a few clicks or log in to continue.
SENDE BİZE KATIL


 
AnasayfaLatest imagesAramaKayıt OlGiriş yap

 

 C++ Programlamaya Giriş ve Mantığı Anlamanız.

Aşağa gitmek 
YazarMesaj
Admin
Admin
Admin



Mesaj Sayısı : 234
Kayıt tarihi : 23/03/08

C++ Programlamaya Giriş ve Mantığı Anlamanız. Empty
MesajKonu: C++ Programlamaya Giriş ve Mantığı Anlamanız.   C++ Programlamaya Giriş ve Mantığı Anlamanız. Icon_minitimePtsi Mart 24, 2008 9:10 am

C++ Programlamaya Giriş ve Mantığı Anlamanız.

--------------------------------------------------------------------------------

1.PROGRAMLAMA NEDİR

Programlama bilgisayarın yapacağı işlemleri kontrol etmek için geliştirilmiş bir yöntem olup, bilgisayar kullanımını önemli ölçüde kolaylaştırmıştır. İlk dev bilgisayarlar yapıldığında bunlar çok fazla aç-kapa düğmeleriyle sınırlı olduğundan, basit işlemleri yapabiliyorlardı. (Tabii ki, elektrik hızıyla bağlantılı olarak bu işlemleri çok kısa sürede halledip sonucu veriyorlardı. Dolayısıyla bilgisayarların önemi hız sayesinde daha da belirginleşti.) Bilgisayara bir işlem yaptırmak için bilgisayarın iç yapısını bilmek ve uzun süre çalışmak gerekiyordu. İşte tüm bu olumsuz yanları olumluya dönüştürebilecek bir yol bulundu. O da programlama!

2.PROGRAMLAMA NASIL YAPILIR

Programlama, insan beyniyle oluşturulan mantıksal işlemlerin, bilgisayara aktarılmasında şu yolu izlemektedir:
Sadece insanın anlayacağı kısım----- İnsan zekası--- > Derleyicinin ve programlayanın anlayacağı kısım -----Derleyici--->Sadece bilgisayarın anlayacağı kısım.
Görüldüğü gibi bu işlemler zincirinde programlayıcının yapması gereken sadece, matematiksel olarak istenilen işlemlerin taslağını oluşturmak, daha sonra da bunu derleyicinin anlayabileceği şekle sokmaktır.

3.MATEMATİKSEL TASLAK NEDİR?

Matematiksel taslağı bir örnek vererek açıklığa kavuşturalım.
Mesela, öyle bir program yapalım ki, bizden sırasıyla iki sayı girmemizi istesin ve bunları toplayarak ekrana yazsın. En basit mantıkla bunu bilgisayara nasıl yapmasını söylerdiniz? Şöyle:

CODEProgramı başlat.

Ekrana şunu yaz:
(Kullanıcıdan girilen ilk sayı ve kullanıcıdan girilen ikinci sayının toplamı)

Programı kapat.

Bu örnek basit olduğu için bu yöntemle oluşturulan bir taslak çok da karmaşık görünmedi. Peki şöyle bir program yaptığınızı düşünün. Klavyeden girilen 220 adet kelimeyi ekrana alfabetik sıraya göre dizen bir program. Bunu yukarıdaki yöntemle yazarsanız kafanız karmakarışık bir hal alabilir. Peki bunun kolay yolu nedir? Tabii ki semboller kullanarak taslağı anlaşılır hale getirmek. Yukarıdaki taslak örneğini bir de semboller kullanarak oluşturalım.

CODEProgramı başlat.
Kullanıcıdan bir sayı girmesini iste ve bu sayıya sayı1 de.
Kullanıcıdan bir sayı girmesini iste ve bu sayıya sayı2 de.
Ekrana (sayı1+sayı2) yaz.
Programı kapat.

Sanırım herkes ikinci yolun daha matematiksel göründüğünde hemfikir olmuştur. Bunun adına neden matematiksel taslak dediğimin sebebi de buydu işte!

4.DEĞİŞİK TASLAK HAZIRLAMA YOLLARI

Matematiksel taslağı hazırlarken yüzlerce değişik yol izleyebilirsiniz. Fakat bunlardan en iyisi, kısa olan, anlaşılır olan, ve de hızlı olan yoldur. Bir örnek daha vererek bu konuda bir fikir edinmenizi sağlayayım:
Öyle bir program yapalım ki, 1'den 5'e kadar olan sayıların çarpımlarını bulsun.(5 faktoriyel yani 1*2*3*4*5) Tabi şimdi bunu bulmaya ne gerek var diyenler olabilir. Örnek anlaşılır olsun diye küçük sayı verdim. Daha büyük bir sayıda programın taslak hazırlama yolunun ne kadar önemli olduğunu sanırım anlayacaksınız.

CODEUzun olan yol:
Programı başlat.
sayı1'e 1 değerini ata.
sayı2'ye 2 değerini ata.
sayı3'e 3 değerini ata.
sayı4'e 4 değerini ata.
sayı5'e 5 değerini ata.
Ekrana (sayı1*sayı2*sayı3*sayı4*sayı5) yaz.
Programı kapat.
CODE Kısa olan yol:
Programı başlat.
sayaç'a 1 değerini ata.
faktoriyel'e 1 değerini ata.
sayaç 5 ten büyük olana kadar aşağıdaki işlemi yap.
{faktoriyel değerini, faktoriyel değeri * sayaç yap.
sayaç değerini 1 arttır.
}
Ekrana (faktoriyel) yaz.
Programı kapat.


Görüldüğü gibi uzun yolda 5 tane ayrı sembol kullanmak zorunda kaldık. Oysa ikinci yolda 2 tane sembol yeterli oldu. Sayıyı 5 yerine 2000 olarak alsaydık ve uzun yoldan programı yazsaydık 2000 adet sembol gerekecekti. Oysa kısa yoldan yapılan programda sadece 5 yerine 2000 yazmamız yeterli olacaktır. İşte tekrarlanan işlemler için kullanılan bu yönteme döngü denir. Değişik döngü tipleri vardır. Ama bunu kendi kafanızdan geliştirmenizi öneririm. Çünkü bu taslak hazırlama yolu, tamamen zekayla yapılır. İstediğiniz yöntemi geliştirebilir, istediğiniz yolu izleyebilirsiniz.
Şimdi sırada matematiksel taslağı derleyicinin anlayacağı formata çevirmeyi öğrenmek var!

5.DERLEYİCİYLE HABERLEŞMEK

Matematiksel taslağı hazırladıktan sonra bunu derleyiciye iletmek için bir haberleşme dili kullanmanız gerekmektedir. Buna da Programlama Dili denir. Programlama dilleri çeşitlidir ve her programlama dilinin de bir derleyicisi vardır. Biz başlangıç için Turbo C derleyicisini öneriyoruz. Dos ortamında programlar hazırlayabilen bu derleyici ile C dilinin tüm inceliklerini öğrenmeniz ve kullanmanız mümkün.

6.C DİLİNİN TEMELİ

C dilindeki ana yapıyı inceleyerek başlayalım:

CODE #include <Kullanılacak fonksiyonların bulunduğu dosya adı>
void main( )
{
//Program başladığında yapılacak işlemler
}

Burada #include deyimi programın içereceği bazı fonksiyonların tanımlandığı dosyaları programa dahil etmek için kullanılır. Bu deyimi birden fazla kullanarak daha fazla komut dosyası ekleyebilirsiniz.
main( ) adından da anlaşıldığı gibi, programın ana işlemlerinin yapıldığı bir fonksiyondur.C dilinde fonksiyonlar çok önemlidir ve işlemler listesinin olduğu kısımlardır. Bu ana fonksiyon, program başlatıldığında hemen uygulamaya geçirilecek işlemlerin listesidir.
Her fonksiyon " { " karakteriyle açılır ve " } " karakteriyle kapanır. void ?in ne olduğu fonksiyonlar bölümünde açıklanmıştır.

7.SEMBOLLER (DEĞİŞKENLER)

Bundan sonra sembollere değişkenler diyeceğiz. Çünkü değişkenler bu işlevi daha güzel açıklıyor. Program içinde değeri değişebilen semboller de diyebilirsiniz, fakat uzun olur
C'de değişkenler kullanılmadan önce mutlaka tanımlanmalıdırlar. Bu tanımlama değişkenin tipini belirtmek amacıyla yapılmalıdır.Değişken tipi, değişkenin içerdiği değerin türü demektir.(sayı,harf,kelime)
Başlıca değişken tipleri şunlardır:

CODEint = tamsayı (-32 768 ile +32 767 arasında değer alır)
float = virgüllü sayı (-3.4 E-38 ile +3.4 E+38 arasında değer alır)
char = tamsayı(-128 ile +128 arasında değer alır ve her char tipi değişken sadece bir adet karaktere karşılık gelir.)

Değişkenler fonksiyonların içinde tanımlanırsa, sadece o fonksiyon içinde geçerli olan bir değişken olur (lokal değişken).
Eğer "#include" satırlarından sonra tanımlanırsa tüm programda, yani tüm fonksiyonların içinde geçerli olur.(global değişken).

CODEDeğişken tanımlanmasına örnekler:
int sayi1;
char karakter1;
float sayi2;
int sayi3,sayi4,sayi5;

C'deki en önemli şeylerden biri de noktalı virgüldür. Noktalı virgül, derleyiciye bir komutun sonunu haber verir. Noktalı virgül unutulduğu zaman program çalışmayacaktır.
C'de aynı isimde iki değişken tanımlanamaz ve değişken isimlerinde Türkçe karakter kullanılamaz. Değişken isimleri rakam içerebilir ama rakamla başlayamaz.
C'de çok önemli bir ayrıntı da büyük-küçük harf duyarlılığı olmasıdır. örnek: sayi1 diye tanımlanan bir değişkene Sayi1 diye ulaşamazsınız. Yani Sayi1, sAYI1,sayI1,sayi1,... bunların hepsi farklı değişkenler olabilir.

8.STANDART GİRDİ-ÇIKTI KOMUTLARI

Bu komutlardan en önemli iki tanesini görelim. Bu iki komutun bulunduğu include dosyası <stdio.h> dır. Yani bu komutları kullanabilmek için programın başına

CODE#include <stdio.h> satırını eklemek gerekir.

printf(yazılacaklar);
Printf komutu ekrana bir şeyler yazdırmak için kullanılır. Yazılacaklar tırnak işaretleri içerisinde belirtilir.
örnek:

CODEprintf("Art1k bende bi tavuQ'um =P");

Bu komut ekrana Art1k bende bi tavuQ'um =P yazdırır.
Sembolleri yazdırmak içinse aşağıdaki yol izlenir.
örnek:

CODEint sayi1;
float sayi2;
char karakter1;
printf("%d",sayi1);
//sayi1 bir int tipi değişken olduğu için %d operatörü kullanılır.
printf("%f",sayi2);
//sayi2 bir float tipi değişken olduğu için %f operatörü kullanılır.
printf("%c",karakter1);
//karakter1 bir char tipi değişken olduğu için %c operatörü kullanılır.
//Hepsini bir kerede yazdırmak içinse:
printf("%d %f %c",sayi1,sayi2,karakter1);
///Aralara istenilen karakterler eklenebilir. Örnek:
printf("sayı 1 = %d sayi 2 = %f karakter 1 = %c",sayi1,sayi2,karakter1);
///printf komutu yazmaya en son kaldığı yerden başlar. //Bir alt satıra geçmek için n karakteri kullanılır.
(printf("Merhaba!n Alt satıra böyle geçilir.");

scanf(girilenler);
scanf komutu kullanıcıdan bilgi almak için kullanılır. Alınan bilgiler değişkenlere aktarılır. Tırnak işaretleri içinde hangi tip değişken alınacağı belirtilir ve daha sonra değişken isimleri yazılır.
örnek:

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

Bu komut programı durdurur. Kullanıcının ?Enter? tuşuna basmasını bekler. ?Enter? tuşuna basıldıktan sonra, klavyeden girilen değer sayi1 değişkenine aktarılır. Burada, sayi1?in önündeki & işareti atama operatörüdür.

Diğer tiplerin okunması aşağıdaki gibidir.

örnek:

CODEint sayi1;
float sayi2;
char karakter1;
scanf("%d",&sayi1);
//sayi1 bir int tipi değişken olduğu için %d operatörü kullanılır.
scanf("%f",&sayi2);
//sayi2 bir float tipi değişken olduğu için %f operatörü kullanılır.
scanf("%c",&karakter1);
//karakter1 bir char tipi değişken olduğu için %c operatörü kullanılır.
Hepsini bir kerede yazdırmak içinse:
scanf("%d %f %c",&sayi1,&sayi2,&karakter1);

9. İLK C PROGRAMIMIZ

Şimdi de, ilk baştaki örnek programı c koduna çevirelim. Programımız klavyeden iki sayı girmemizi ve bunların toplamını ekrana yazdırmayı amaçlıyordu.

CODE#include <stdio.h>
main( )
{
int sayi1,sayi2,toplam;
printf(?Lütfen birinci sayıyı giriniz!n?);
scanf(?%d?,&sayi1);
printf(?
Lütfen ikinci sayıyı giriniz!n?);
scanf(?%d?,&sayi2)
toplam=sayi1+sayi2;
//buradaki = işareti atama operatörüdür. İşaretin sağındaki değer soldaki //değişkene aktarılır.
printf(?Girdiğiniz iki sayının toplamı = %d?,toplam);
}
Şimdi programı inceleyelim:
#include<stdio.h> deyimiyle standart girdi-çıktı komutlarının bulunduğu dosyayı kullanacağımızı belirttik.
Sadece main( ) fonksiyonunda kullanılmak üzere üç adet int tipinden değişken tayin ettik.(lokal değişken)
Birinci ve ikinci sayıları girmesi için standart girdi-çıktı komutlarını kullandık.

toplam=sayi1+sayi2; satırıyla toplam değişkenine sayi1 ve sayi2?nin o anki değerlerinin toplamını aktardık. Yani eğer sayi1 için kullanıcı 10, sayi2 için de 20 girseydi toplam = 10 + 20 yani 30 olacaktır.
printf(?Girdiğiniz iki sayının toplamı = %d?,toplam); son olarak toplam değerini ekrana aktardık.
Bu programda akla takılabilecek iki soru:
1- n işaretlerini niye kullandık?

2-// işaretleri neyi belirtir.

n işaretini kullanmasaydık program printf komutuyla yazılan herşeyi yan yana yazacak ve hoş bir görüntü oluşmayacaktı. Arada sırada aşağı satıra geçmek iyidir.

// işaretleri açıklama satırları koymak için kullanılır. Yani derleyici bu işareti gördüğü an, o satırdaki kalan karakterlerin bir komut belirtmediğini anlar. Bu kodun aralarına açıklamalar koymak için kullanılır. Eğer belli bir bölümün işleme konmamasını dilerseniz her satırın başına // işaretini koymaktansa, bölümün en başına /* işareti koyup bölümün sonuna da */ işareti koyarak o bölümü işlem dışı bırakabilirsiniz. Uzun açıklamalar için bu yöntem kullanılır.

Program yazarken unutulmaması gereken en önemli şey noktalı virgüldür. C?de her komutun bitişinde noktalı virgül konulması mecburidir. Burada dikkat edilecek husus ise, komutun komple bitmiş olmasıdır.

10. BAZI GEREKLİ KOMUTLAR

Şimdi de bazı gerekli komutlar hakkında bilgi verebilirim.
clrscr();

Bu komut ekrandaki yazılmış olan bütün karakterleri siler ve imlecin konumunu sol üst köşeye taşır. Yani bu komuttan sonra printf komutuyla yazılacak bir yazı sol üst köşeden başlayacaktır.
getchar();

Bu komutun kullanılabilmesi için include satırlarına yazılması gerekenler

#include <conio.h>

Bu komut bir tuşa basıncaya kadar bekleme sağlayacaktır. Böylece programın son çıktıyı göstermeden kapanmasını engellemiş olursunuz. Eğer hangi tuşa basıldığını öğrenmek istiyorsanız bunu fonksiyonun kendisinden öğrenebilirsiniz. Çünkü bu fonksiyon geri dönüş değeri olan bir fonksiyondur. Geri dönüş değeri olan bir fonksiyon bir değişken gibi değer içerir. Fakat fonksiyona yeni değer aktarması yapılamaz. Örnek:

CODEchar karakter1; karakter1=getchar( )

Bu komutlardan sonra karakter1?in değeri klavyeden basılan tuşun karakter değeridir. Mesela, eğer ?A? tuşuna basılmışsa değeri 65 olur. Çünkü 65?in karakter karşılığı A harfidir.

Eğer burada printf(?%c?,karakter1); komutu kullanılırsa ekrana A harfi yazılır. Fakat printf(?%d?,karakter1); komutu kullanılırsa ekrana A?nın tamsayı değeri olan 65 yazılır.

11.KOŞULLANDIRMA DEYİMLERİ

Programlamadaki ana unsur elbette ki ?eğer? ifadesidir. ?eğer? bütün programların yapıtaşıdır. Çünkü bilgisayar ?eğer?lerle çalışmaktadır. C dilinde karşılaştırma yapmak için if- else deyimleri sıklıkla kullanılır. Kullanımı şöyledir:

CODEif ( değer1 karşılaştırma operatörü değer2 ) Eğer doğruysa şunları yap... else Eğer yanlışsa şunları yap...

Karşılaştırma operatörleri şunlardır:

CODE!= eşit değil mi?
= = eşit mi?
< küçük mü?
> büyük mü?
<= küçük - eşit mi?
>= büyük - eşit mi?
= işareti karşılaştırma operatörü değil, atama operatörüdür.
== işareti karşılaştırma operatörüdür.

Şimdi gerçek bir kod örneği verelim.

CODEint sayi1;
if ( sayi1==10)
printf(?sayi1?in değeri 10?dur?);
else
printf(?sayi1?in değeri 10 değildir.?);

Eğer birden fazla işlem yapılacaksa köşeli parantezler içine alınır.

CODEchar karakter1;
if ( karakter1==?A?)//***
{
printf(?karakter1?in sayısal değeri 65?dir?);
printf(?karakter1?in karakter değeri A harfidir?);
}
else
{
printf(?karakter1?in sayısal değeri 65 değildir?);
printf(?karakter1?in karakter değeri A harfi değildir?);

İstenilirse else kullanılmayabilir. Doğru olmadığı durumda ekstra bir şeye gerek yoksa kullanmamak daha iyidir.

?A? yerine A yazamayız. Çünkü eğer öyle yaparsak derleyici A?yı bir değişkenmiş gibi yorumlayacaktır. Öyle bir değişken yoksa hata verir. Eğer varsa o değişkenin değeri ile karşılaştırma yapar. Demek ki tek tırnak işaretleri, içerisindekini karakter olarak yorumlamak için kullanılır ve yalnızca bir karakter için kullanılır. Çift tırnak işaretleri ise içerisinde birden fazla karakter olanlar için kullanılır. Bu konu string?ler bölümünde tafsilatlı olarak anlatılacaktır.

12.DÖNGÜLER

Daha önce, taslak hazırlama bölümünde, döngünün ne olduğuna kısaca değinmiştik. Döngü, tekrar edilecek işlemlerin oluşturulmasında kullanılan bir yöntemdir. C?de iki çeşit döngü vardır.Bunlar for döngüsü ve do-while döngüsüdür.
for döngüsü:

Bu döngünün kullanımında en azından bir sayaç gerekir. Sayaç genelde tamsayı bir değişken olarak seçilir. Bir örnek verip inceleyelim.

CODEint sayac;
for (sayac=1;sayac<10;sayac++)
yapılacak işlemler;

Bu döngüyü derleyici şu adımlarla yorumlar.

CODE1. sayac değişkenine ilk değer olarak 1 verir.
2. sayac değişkeninin 10?dan küçük olup olmadığını test eder.
2.a. Eğer küçükse yapılacak işlemleri yapar.
2.b. Eğer küçük değilse, yani eşit veya büyükse ?5? numaralı adıma gider.
3. sayac değişkenine bir eklenir. (sayac++ komutu bu değişkeni 1 arttır demektir)
4. Döngünün devam etmesi için ?2? numaralı adıma geri döner.
5. Döngü bitmiştir. Programa döngünün dışından, kaldığı yerden, devam eder.

CODEfor( ilk değer atama; karşılaştırma; değer değiştirme )
Sayfa başına dön Aşağa gitmek
http://paylas.turkforumpro.com
 
C++ Programlamaya Giriş ve Mantığı Anlamanız.
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
SENDE BİZE KATIL :: KATEGORİLERİNİZ :: BİLİŞİM TEKNOLOJİ :: PROGRAMLAMA DİLLERİ :: C+ / C++-
Buraya geçin: