• Sonuç bulunamadı

BİLGİSAYAR PROGRAMLAMA

N/A
N/A
Protected

Academic year: 2022

Share "BİLGİSAYAR PROGRAMLAMA"

Copied!
6
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

TAŞIT TEKNOLOJİLERİ KULÜBÜ

BİLGİSAYAR PROGRAMLAMA

C++ TEMEL ANLATIM

1

WWW.TASİTTEKNOLOJİLERİ.COM

Bu materyal ,bilgisayar programlama dersine çalışmakta sorun yaşayan arkadaşlarımız için Karabük

Üniversitesi Taşıt Teknolojileri Kulübü tarafından hazırlanmıştır.

(2)

Taşıt Teknolojileri Kulübü | www.tasitteknolojileri.com Programlama Dilleri Hakkında Bilgiler

Bilgisayar ilk çıktığında, program yazmak oldukça zor bir iĢti.

Çünkü iĢlemci, sadece 1 ve 0 dan anlıyordu. bu durumda da programcılar, sadece 0 ve 1 kullanarak program yazıyorlardı.

Sonra ortaya Assembly diye bir dil çıkardılar. Bu dil, direk olarak makineye iĢlem yaptıran 1 ve 0 dilinin kelimeleĢmiĢ versiyonuydu. Bu dil(Asembly) bugün hala “en düşük seviye dil” olarak kabul görmektedir. Burada bir noktaya değineyim. Bir dilin düĢük seviye olması, o dilin iĢlemciye yakın olduğunu anlatır. Yani kodlar direk olarak, aracısız, iĢlemciye gönderilir. Bu da programa hız kazandırır.

Ve 1972 yılında C dili çıktı. Bu dil sonradan geliĢtirilerek C++

dili ortaya çıktı. Bell Laboratuvarlarından Bjarne Stroustrup tarafından 1979 yılından itibaren geliĢtirilmeye baĢlanmıĢ Hem C hem de C++, orta seviye dillerdir.

Yani direk olarak Ram ve ĠĢlemciye eriĢebilirler, aynı zamanda da iĢletim sistemine… Programlama dilleri geliĢtikçe konuĢma diline yakınlaĢtırılmaya çalıĢılmıĢtır.Bu sayede daha kolay programlama amaçlanmıĢtır.Delphi gibi diğer diller ise iĢlemlerini iĢletim sistemine(Windows gibi) söyler, iĢletim sistemleri de yapar. ĠĢte bu tür dillere ise Yüksek Seviye Diller denir. Yüksek seviye dillerde program yapmak kolay olmasına rağmen, aracı olduğu için hızları yavaĢtır ve çok kaynak tüketirler.

Programlama ile ilgilenen herkesin yazması

gereken,bizlerinde derslerde yazdığı ilk program geleneksek olarak ekrana Merhaba Dünya yazısı yazan programdır.

#include<iostream>

using namespace std;

int main() {

cout<<"Merhaba Dünya!";

return 0;

} ,

#include Nedir ?

Her C++ programının baĢında görürsünüz bu kodu. Peki nedir bu #include ? #include komutu, (Türkçesi içeriye almak), bir takım kod tanımlarının olduğu dosyaları,

programınıza dahil eder. Ne demek bu? Mesela örneğimizdeki “cout” komutu, “iostream” dosyası içerisindedir. Yani biz “cout” komutunu kullanabilmek için önce onun tanımlamasının yani ne iĢ yapacağının anlatıldığı dosyayı programımıza dahil ediyoruz.

Biz bu eklediğimiz dosyalara “kütüphane” diyeceğiz. Bazı önemli kütüphaneler ve iĢlemleri:

iostream : In Out Stream (GiriĢ, çıkıĢ akıĢı) Uygulamamızın klavyeden, dosyadan vs. girdi; ekrana ya da bir dosyaya çıktı vermesini sağlar. Yalnızca C++ da kullanılabilir.

stdio.h : Standart In Out (Standart GiriĢ ÇıkıĢ) iostream „ın C versiyonudur. C++ tarafından da desteklenir, ancak tavsiye edilmez.

cmath / math.h : Matematiksel iĢlemleri

barındırır.(Karekök, üs, logaritma vs.) clocale / locale.h : Dil dosyalarını barındırır. Eğer eklenmezse türkçe karakterler görünmez/bozuk görünür.

stdlib.h : Standart Library (Standart Kütüphane) Ġçerisinde giriĢ/çıkıĢ hariç bir çok gerekli iĢlem barındırır. C++ için olanı ise cstdlib dir. ancak stdlib de C++ da kullanılabilir. Her programa eklenmesi tavsiye edilir.

windows.h : Windows a ait iĢlemleri barındırır. DirectX uygulamalarımızın hepsinde ekleyeceğiz. C ve C++ da kullanılabilir.

Using namespace std nedir ?;

Bu kodun anlamı çok basit. std namespace „ini kullan diyor.

namespace „lere daha sonra değineceğim ama kısaca kodların tanımlandığı bloklar diyebilirim. Aslında “cout” kodu, std alanı içinde tanımlıdır. Ve kullanılırken, std::cout denilmesi gerekir. Ancak bu kod sayesinde std:: ön ekine gerek kalmaz.( Kodların kullanımı: namespace::kod;

Ģeklindedir. (Her kod, (;)(noktalı virgül) ile bitmelidir.

VC++, kodun bittiğini ; işareti sayesinde algılar)

int main() { … } (Blok) Nedir ?

ĠĢte burası, asıl kodları yazacağımız kısım. main() bloğunun baĢlaması ile program baĢlar, bitmesiyle ise biter. BaĢındaki int „in anlamına daha sonra “DeğiĢkenler” baĢlığında değineceğim. Ama illa öğrenmek istiyorsanız integer(tamsayı) „in kısaltmasıdır.

cout<<"Merhaba Dünya!;

Cout ( Character Out ) kodu Nedir ?

Konsola karakter yazar.cout<<"ifade"; Ģeklindeki kod, ekrana "ifade" 'yi yazdırır.(Tırnaklar HARĠÇ) Bu kadar

(3)

Taşıt Teknolojileri Kulübü | www.tasitteknolojileri.com cin<< Nedir?

Aslında bu kod, ekrana yazı yazmayla ilgili değil, klavyeden girdi almayla ilgili. cin ( Character In ), adından da anlayabileceğiniz gibi, klavyeden harf alır. Bu koda da sonradan.

return 0; Nedir?

Return kodu, fonksiyonun geri döndürdüğü değeri bildirir. 0 ise “program baĢarıyla kapandı” anlamına gelir. 7

Yorum Satırları Nedir ?

Bir de yorum satırları var. Bu satırlar, derleyici tarafından dikkate alınmaz. Amacı, düzenli kod oluĢturmaktır.

2 Tür yorum satırı vardır.

1-) //……

2-) /*………*/

1.ÇeĢitin örneği olarak ;

#include <iostream>//iostream dosyasını programa ekliyoruz

using namespace std; //std:: ön ekinin kullanılma zorunluluğunu kaldırdık

int main() //Burada ana program baĢlıyor

{ cout<<"Merhaba Dünya!"; // ekrana merhaba dünya yazdırdık

return 0; // program bitti!

Altı çizili yerleri program okumadı.

1.ÇeĢitin örneği olarak ;

#include<iostream> /*iostream dosyasını programa ekliyoruz*/

using namespace std; /*std:: ön ekinin kullanılma zorunluluğunu kaldırdık*/

int main() /*Burada ana program baĢlıyor*/

{ cout<<"Merhaba Dünya!"; /* ekrana merhaba dünya yazdırdık*/

return 0; /*program bitti! */

Altı çizili yerleri yine program okumadı.

Değişkenler Nedir?

DeğiĢkenler, bilgisayarın hafızasında tutulan bilgilerdir aslında. Birçok türü vardır. DeğiĢkenler, içerisinde veri tutarlar. ġu örneğe bir bakalım:

#include <iostream>

using namespace std;

int main()

{ int degisken = 5; // Değer vermesek de olurdu. Ama önceden değer vermek daha iyi.

/*eğer değeri önceden vermeseydik:

int degisken;

degisken = 5;

de diyebilirdik*/

cout<<"DeğiĢkenin değeri: "<<degisken; // degisken ekrana yazılırken tırnak kullanılmaz !

return 0;

}

C++‟da değiĢkenler programın blokunun içinde her yerde tanımlanır.Ama bulması kolaylık olsun diyerek programın baĢında tanımlanır.

Endl nedir ?

Bir diğer önemli bilgi de "endl". Aslında bu da ingilizceden geliyor End Line, yani satır sonu. Bu kod ile bir satır aĢağıya iniyoruz siyah ekranımızda.

Değişken türleri Nelerdir?

DeğiĢkenler türlere ayrılır. Her türün kendine özel bir adı ve alabileceği değerleri vardır. Örneğimizde “int” kullandık ama daha bir çok tür var. Bazı önemli değiĢken türleri:

short : -32768 ile 32767 arasında değer alan tam sayılar.

Ram da 2 byte yer tutarlar.

int : -2147483648 ile 2147483648 arasında değer alan tam sayılar. Ram da 4 byte yer tutarlar.

unsigned : Tek baĢına değiĢken türü değildir. Diğer türler ile beraber kullanılır.(unsigned int, unsigned short, unsigned float … ) Sıfırdan büyük değerler alabilir. Bu yüzden limiti iki kat artar. Negatif değerler yerine daha çok pozitif değer tutmak için kullanılır.

float : Virgüllü sayılar Ram da 4 byte yer tutarlar

double : Büyük virgüllü sayılar Ram da 8 byte yer tutarlar

char : karakter(a,b,c,d,e gibi.) Tek karakter tutar. (abc olmaz.) Atama yapmak için karakteri tek tırnak içne alın.(char x = „a‟) Ram da 1 byte yer tutarlar.

bool : Doğru ya da YanlıĢ anlamına gelen “true” ya da

“false” değerlerinden birini tutarlar. Ram da 1 byte yer tutarlar.

Bu noktada bilmemiz gereken boyut büyüklükleri ; Örneğin ; double>float>int>short … gibi.

SABİTLER

Bu değiĢkenler program boyunca değiĢtirilmeyen sabit kalan değiĢkenlerdir.Örneğin bir program yazacağız.Dairenin alanını vs bulmamız gerekiyor.Bu programı yazarken PĠ sayısını sabit olarak kullanmamız gerekir.Bunun gibi iĢte.

(4)

Taşıt Teknolojileri Kulübü | www.tasitteknolojileri.com Sabitler Const deyimi ile belirtilirler.Örneğin en çok

kullanılanlardan biri olan pi sayısı;

Const double PI = 3.14159;

ġeklinde programa eklenilir.

OPERATÖRLER

Programlama dillerinde, iĢlevi olan iĢaretlere operatör denir.

= (atama operatörü) : Soldaki değeri, sağdaki değere eĢitler; yani sağdakinin değerini sola “atar”.

int x;

int y;

int z;

x=7; // x in değeri 7 oldu y=10; // y nin değeri 10 oldu.

int z = x; // z nin değeri 7 oldu.

int x = y; // x in değeri 10 oldu.

Aritmetik Operatörler:

Aritmetik operatörleri hepimiz biliyoruz aslında,matematikteki toplama ,çıkarma vs. gibi işlemlerinC++ daki adı diyebiliriz.

Şimdi tek tek bu aritmetik operatörler ne işe yarar öğrenelim.

Çarpma,toplama ve çıkarma matematikteki görevleri neyse C++da da aynı görevdedirler.

Bölme(/)

** Bölme operatörü bize bölümü verir.

** Örneğin 7/4-->1 dir, 17/5-->3 dür.

** Gördüğünüz gibi küsürat sonuca dahil değildir.

** C++da bölme sadece "/" işareti ile gösterilir.

Modül(%)

** Modül operatörü kalanı bulmada yardımcıdır.

** Örneğin 15%5 --> 0'dır, 14%3-->2'dir.

İşlem Önceliği

C++’da anlaşılması zor konulardan bir tanesidir.Ancak belli kuralları bilinirse çok basit şekilde yapılır.

C++ soldan sağa doğru işlem yapar ancak c++’da bu kural yeterli değildir.

Örnek olarak;

9+7*3 = 30 dur. Önce çarpmayı aldık.Dikkat ederseniz.

Parantez olayı da önemli C++’da.

örnek vermek gerekirse yukarıdaki işlemi ;

(9+7)*3

işleminin sonucu 48’dir.Önce parantez içini alıyoruz.Sonra çarpmayı yapıyoruz.

PARANTEZ BĠRĠNCĠ ÖNCELĠK

+ - (TOPLAMA ÇIKARMA ĠġLEMLERĠ) SAĞDAN SOLA

* / ve % (ÇARPMA BÖLME VE MOD) SOLDAN SAĞA

ÖRNEK;

20/5*3-4+1

işleminin sonucu 20/5= 4 yapılır,ardından,4*3=12 yapılır, 12- 4 =8 +1 ‘den cevap 9 bulunur.

Matematikte olduğu gibi C++da da işlem önceliği kuralı vardır.

Her zaman ilk işlem basamağı ( "()" )parantezdir.

İkinci işlem *,/ ve %' e aittir. Eğer bir işlemde birden çok bu operatörlerden varsa işlem soldan sağa doğru hesaplanır.

+,- en son işlem basamağıdır.

+,-,*,/ ( işlem operatörleri ) : Bildiğiniz iĢlemleri yapıp sola atarlar.

int x = 5;

int y = 8;

int z = 10;

z = x + y; // z nin değeri 13 oldu x = x*y; // x in değeri 40 oldu y = z / z; //y nin değeri 1 oldu z = (x-z)*(y+1); // z nin değeri 54 oldu

Gördüğünüz gibi iĢlem operatörleri de basit. Bir de kısa iĢlem operatörleri var.

+= : sayıya değer ekler -= : sayıdan değer çıkartır

*= : sayının katını alır /= : sayıyı o değere böler ++ : Sayıyı bir artıtır - – : Sayıyı 1 azaltır

#include <iostream>

using namespace std;

int main() {

int a=0,b=0,c=0,d=0;

cout<<"---"<<endl;

cout<<"Bir Sayı Giriniz: ";

cin>>a;

cout<<"Bir Sayi Daha Giriniz: ";

cin>>b;

cout<<"Bir Sayi Daha Giriniz: ";

cin>>c;

cout<<"Bir Sayi Daha Giriniz: ";

cin>>d;

cout<<” Girilen Sayılar: "<<a<<" "<<b<<" "<<c<<"

"<<d;

return 0;

}

(5)

Taşıt Teknolojileri Kulübü | www.tasitteknolojileri.com Biraz daha basit dillerle size anlatmaya çalışalım.

int a=0,b=0,c=0,d=0;

Bu satırda, a,b,c,d adında int türünde 4 değiĢken tanımladık ve değerlerini 0 yaptık… Farkettiyseniz, atama yaparken a=0 Ģeklinde yaptık. Yani atama operatörünü kullandık

cin>>a

Bu kodun ardından, klavyede yazdığınız yazı/sayı, siz enter a bastığınız zaman, a değiĢkenine atanır. Ancak yazdığınız yazı ile değiĢkenin türü örtüĢmelidir. Mesela char tek bir karakter tutar. Siz birden çok karakter yazarsanız olmaz. Aynı Ģekilde, eğer siz virgüllü sayı yazarsanız da olmaz. Çünkü biz a yı bir int olarak tanımladık.

Umarım Ģimdi değiĢkenin ne iĢe yaradığını anlamıĢsınızdır.

Adı üstünde “değiĢken”, sabit değil. su sayede gelen veriler ya da değiĢmesi gereken Ģeyler kolayca halledilebiliyor.

KOŞULLAR VE DÖNGÜLER

C++ ile program yazarken en çok kullanacağınız Ģeyler bunlar. KoĢul, adı üstünde, belirli bir Ģart sağlanırsa Ģunu yap, sağlanmazsa Ģunu yap Ģeklindeki ifadeler. Yapay zekanın en küçük birimi. Ġngilizce biliyorsanız, EĞER kelimesinin ingilizcesinin IF olduğunu bilirsiniz. Tabii burada type0, type1 falan yok. Örneğimiz gelsin:

Örnek Programımız.Ġnceleyin.

#include <iostream>

using namespace std;

int main() { int a,b,sonuc;

cout<<"0 ile 10 arasında bir sayı girin: ";

cin>>a;

if( a > 0 && a <=10 ) {

cout<<endl;

cout<<"Tebrikler !";

}else {

cout<<endl;

cout<<"Turkce biliyorsun dimi? 0 ile 10 arası dedim.";

} cin>>a return 0;

}

Koddan da anlamıĢ olacağınız üzere, if içerisindeki Ģey doğruysa if kısmı, yanlıĢsa else kısmı çalıĢtırılıyor. Dikkat!

else içinde de if kullanılabilir. “else if” Ģeklinde.

Eşitlik ve eşitsizlikler:

== : EĢitse… Soldaki ifade ile sağdaki ifade eĢitse, doğru(true), değilse yanlıĢ(false) döndürür.

!= : EĢit değilse… Soldaki ifade ile sağdaki ifade eĢit değilse, doğru(true), değilse yanlıĢ(false) döndürür.

> : Büyükse

>= : Büyük EĢitse

< : Küçükse

<= : Küçük eĢitse

! : Değilse. bunu biraz açayım. if( !(5>6) ) ile if( 5<=6 ) aynıdır.

Birden fazla koşul:

&& : VE.

|| : VEYA

Karar Verme: Equality and Relational Operators (EĢitlik Operatörleri ve ĠliĢkisel Operatörler):

C++'ın basit bölümlerinden birisi olan "if" kalıbını öğreneceğiz.

** Ġf kalıbı progamda karar verme aşamasında devreye girer.

Örneğin ,Eğer(if) durum doğruysa(true),if kalıbı içindeki program çalıştırılır.Eğer durum yanlışsa (false),if içindeki program çalıştırlmaz.

Ġf kalıbında hem eşitlik operatörleri hem de ilişkisel operatörler kullanılır. İlişkisel operatörlerin hepsi aynı işlem önceliğine sahiptirler ve soldan sağa doğru işlem yapılır hep.Eşitlik operatörlerinde de aynı işlemler yapılır

;ancak iliĢkisel operatörler daha yüksek iĢlem önceliğine sahiptirler.

(6)

Taşıt Teknolojileri Kulübü | www.tasitteknolojileri.com

Şunu Unutmayın Bilgisayar için 0 = False, 1 = True’dur!

Veri Tipi Adı Ait olduğu veri tipi kategorisi Bellekte Kapladığı Alan

short Tam Sayı Veri Tipleri 2 Byte (16 bit)

int Tam Sayı Veri Tipleri 4 Byte

long Tam Sayı Veri Tipleri 4 Byte (Int’den daha büyük!)

Float Kayan Noktalı Veri Tipleri 4 Byte

Double Kayan Noktalı Veri Tipleri 8 Byte

Long Double Kayan Noktalı Veri Tipleri 8 veya 12 Byte

1.Materyal Sonu.

Referanslar

Benzer Belgeler

Gerçek cihaz ya da emülatörde uygulama çalıştırma ionic [run/emulate] [ android/ios]..

Oyun ve drama yöntemi ile programlama öğretimi; programlama öğretimi için örnek bir oyun geliştirme; programlama öğretimi için örnek bir drama uygulaması geliştirme;

Program, belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi olarak tanımlanabilir.. C Programlama Dili genel amaçlı, orta

Böyle bir dosya yazmak için; File menüsünden New - Script sekmesi tıklanır ve ekrana yeni bir m-dosyası gelir.. Bu dosyaya Matlab komutları yazılır ve File

Örnek: RB0 girişine bağlı buton ile harici kesme; Başlangıçta ON durumunda olan RB7 ye bağlı LED, RB0 dan kaynaklanan kesme olayında LED OFF konumuna alınmakta yeni bir kesme

1 : ADRESH kaydedicisinin MSB kısmındaki 6 biti 0 kabul edilir ve A/D çevirme sonucunda elde edilen veri ADRESH’ın 2 bitlik LSB kısmına ve ADRESL’ye yazılır. 0 :

Track 1: Dastgah Homayoun, Raz-o-niyaz, Radiff of Mirza Abdollah, Played by Hossein Alizadeh.. Track 2: Dastgah Homayoun,Leili-o-majnoun, Radiff of Mirza Abdollah,

Yap›lan çal›flmalar›n ›fl›¤›nda, fetal a¤›rl›k ve plasental a¤›rl›k ortalamalar›na ve yenido¤an›n di¤er fiziksel ölçümlerine göre, gelecekte yüksek