C/C++ Temelleri - Bilgisayar Programlama Ders Notları

vancoondehni

Moderatör
12 Nis 2020
186
328
22
-
Bu notlar bilgisayar programlama dersinde C/C++ eğitimi almaktayken hocanın notlarından ve internetten özetlediğim bilgilerdir. Belki faydalanan olur diye bırakmak istedim. (Sadece not paylaşıyorum, uzman değilim)

iedbopc.png


C programlama dili kalıplaşmış ifadelerle başlar.
Bu kalıplaşmış ifadeler:
int main(), void main(void), main() ifadeleridir.

#include ifadesi dahil edilecek kütüphaneyi belirtmek için kullanılır. Kullanım şekli:
#include
<stdio.h> veya #include"stdio.h" şeklindedir.

#define: Başlık yani #include dosyalarından sonra tanımlanan ve program içinde değiştirilemeyen bir sabit atamak için kullanılır.
Kullanım şekli:
#define sabit_ismi sabitin alacağı değer ya da ifade
örnek: #define PI 3.14

cv48p7d.png


C programlama dilinde değişkenler:
1*lI7vVw2ory4BFtCzN8iFwg.png

char(Karakter): -128 ile +127 arasında değerler alabilir.
int(Tam sayı): -32768 ile +32767 arasında değerler alabilir.
short: kısa tam sayı anlamına gelir
long: uzun tam sayı anlamına gelir
unsigned char: işaretsiz karakter anlamına gelir
unsigned: işaretsiz tam sayı anlamına gelir
unsigned short: işaretsiz kısa tam sayı anlamına gelir.
unsigned long: işaretsiz uzun tam sayı anlamına gelir
float(Reel sayı): +-3,4E-38 ile +- 3,4E+38 arasında değerler alabilir.
double(çift reel sayı): +-1.7E-308 ile +-1.7E+308 arasında değerler alabilir.
long double: uzun çift reel sayı anlamına gelir.

cv48p7d.png

\n — yeni satır (bir alt satıra iner)

\r — aynı satır başı

\t — tab karakteri kadar boşluk

\v — dikey tab karakteri kadar boşluk

\b — imleci geri götürür fakat değeri silmez

\a — alarm

\’ — tek tırnak

\” — çift tırnak

\? — soru işareti

\\ — ters bölü

Açıklama Satırı : /* açıklama */ veya // açıklama şeklindedir.

cv48p7d.png

En çok kullanılan komutlar:

cout: cout komutu ile tırnak işaretleri arasında yazılanları ekrana bastırır.
Kullanım şekli: cout<<” “;
Örnek: cout<<”merhaba”;
cin: cin komutu ile klavyeden girilen değerler ismi geçen değişkene atanır.
Kullanım şekli: cin>>x;
Örnek: cout>x;
printf(): #include kütüphanesinin altında bulunan bir fonksiyondur.

Ekrana yazdırma işlemi için kullanılır.

Kullanım şekli: printf(“format dizisi”,değer ya da değişken listesi);
Örnek: printf(“%d Ahmet’in yaşıdır.”,16) , printf(“sonuç = %d”,k);
scanf(): Klavyeden veri okumak için kullanılır.
Kullanım şekli: scanf(“format_dizisi”, değer ya da değişken listesi); — scanf(“%d”,&x);
Örnek: scanf(“%f %d”,&m,&a);
cv48p7d.png

C programlama dilinde Türkçe karakter desteği

#include <locale.h>

setlocale(LC_ALL,”turkish”);

cv48p7d.png

C/C++'da Mantıksal Operatörler, Özel Kullanımlar


1*mYP4ULNEuVjnEhV8ZdNgvg.png

1*9wLzHuH-UjpgIUGNi4YvTg.png

cv48p7d.png


if Koşulu

Kullanım şekli: if(şart)ifade;

if(şart){

ifade1;

ifade2;….}

Örnek:if(x>y) printf(“x büyüktür y”);
İf(x>y){
Printf(“x büyüktür ”);
Printf(“y küçüktür”);}

if-else Koşulu

Kullanım şekli: if(şart) ifade1;

else ifade 2;

if(şart){

ifade2;

ifade3;}

else{

ifade4;ifade5;}

Örnek: if(x>y)
printf(“x büyüktür”)
else
printf(“y büyüktür veya eşittir”)

if — else if Koşulu

Kullanım şekli: if(şart1)

İfade 1;

Else if(şart2) İfade 2;

Else if(şart3)

İfade 3;…..

Else

İfade 4;

Örnek: if(x>y) printf(“x>y”);
Else if (x=y) printf(“x=y”);
Else printf(“x<y”);
cv48p7d.png

?: KARŞILAŞTIRMA OPERATÖRÜ: C dilinde if-else karşılaştırma deyiminin yaptığı işi sınırlı olarak yapan bir operatördür. Eğer girilen koşul doğru ise deyim1 değil ise deyim 2 işlem görür.
Kullanım Şekli : (koşul deyimi)? Deyim1: deyim2;
(ilk olarak koşul deyimi sınanır doğru ise deyim1 çalışır yanlış ise deyim2 çalışır)
Örnek: z=(x>y) ? x:y;
cv48p7d.png

Switch Deyimi: Seçicinin aldığı değere eşit seçeneğin olup olmadığına bakar. Var ise o noktadan sonraki deyimler yürütülür. switch deyiminin sonuna gelindiğinde veya break deyimi ile karşılaşıldığında yürütme işlemi durur ve programın akışı switch deyimini izleyen deyim ile devam eder.
Kullanım şekli: switch() {
case seçenek1 : Deyim;
case seçenek2 : Deyim;
. . .
default : Deyim;}
cv48p7d.png

goto deyimi ve etiketler: goto deyimi etiket ile gösterilen yere programın akışının gitmesini sağlar.
Kullanım şekli:
goto etiket;
….
Etiket:
Veya
Etiket:
……
Goto etiket;
1*njnFcac2TcOAMFJ6aP_fAg.png

cv48p7d.png

DÖNGÜLER

For Döngüsü

Başlangıç değeri; koşul içinde tanımladığımız değişkene ilk değerin atanmasını sağlar.

Koşul: Döngünün devam edip etmeyeceğine karar verir. şart doğru ise devam eder. Yanlış ise döngüden çıkılır.

Artım: Koşul değişkenin her bir döngüde arttırılıp azaltılacağı belirtir.
Kullanım şekli:
for (başlangıç değeri; şart; artım)
ifade;
for (başlangıç değeri; şart; artım) {
ifadeler; }
1*WITE6zUVAoeVVmX5oiON7g.png

Örnek: (iç içe döngüler)


1*gBH8qjJ-tZd61SMbgvE9PA.png

While Döngüsü

Program while döngüsünün bulunduğu satıra geldiği zaman önce ifadenin sonucunun doğru olup olmadığı kontrol edilir. Eğer ifade yanlış ise döngüye girilmeden devam edilir. Fakat işlem doğru ise döngüye girer ve işlem doğru olduğu sürece devam eder.
Kullanım şekli:
while (şart)
{ ifade 1;
ifade 2; }

Örnek: 1’den 100’e kadar olan sayıların toplamını bulan program
1*Z4v1nAwksLj-8ldadwho2Q.png

Do-While Döngüsü

Do-while döngüsünde karşılaştırma işlemi, döngünün sonunda gerçekleşir. Bunun sonucu olarak döngünün içine en az bir defa girilmiş olur.
Kullanım şekli:
do
cümle
while(kosul);
veya
do{
cümle
cümle
…..}
while(kosul);
1*j-2EIrmPuaaGAxhknM_5ig.png

cv48p7d.png

FONKSİYONLAR

Her fonksiyon ard arda tanımlanır. İç içe fonksiyon tanımlanmaz.
Doğru kullanım:
Main(){ }
Fonk(){ }
Hiçbir fonksiyon 1 kereden fazla tanımlanamaz. En azından aynı ada sahip olamaz. (aynı isimde fonksiyonlar yaratamazsın hepsinin ismi farklı olmalı fakat farklı adlardaki fonksiyonların içerikleri aynı olabilir)

Fonksiyonların geri dönüş değerleri(Return value): Bir fonksiyonun çalışması bittikten sonra onu çağıran fonksiyona gönderdiği değere geri dönüş değeri denir.

Gösterim:
int x;
X=fonk();
Fonksiyonların geri dönüş değerleri aritmetik işlemlere sokulabilirler.
Return anahtar sözcüğü: iki işlevi vardır.

1-Fonksiyonun çalışmasını bitirir. Bu durumda akış onu çalıştıran fonksiyonda devam eder.

2-Geri dönüş değeri oluşturur.


Kullanım biçimi: return[ifade]

return anahtar sözcüğü kullanılmışsa fonksiyon ana bloğu bittiğinde sonlanır. Fonksiyonda return ile belirli bir değer verilmemişse rastgele bir geri dönüş değeri verilecektir.

Bir fonksiyonun geri dönüş değerine sahip olması kullanılmasını gerektirmez. Fonksiyon başında void yazılırsa fonksiyonunun geri dönüş değerinin olmadığı anlatılır.

Voidfonk(){} (Böyle fonkslarda return fonksiyonu sonlandırmak için kullanılır)

Matematiksel Fonksiyonlar(math.h) : Matematiksel fonksiyonlarda değişken olarak genelde double kullanılır.
#include<math.h>
1*nv_wIRQ8H0vJRODYp9KOxg.png


Standart Fonksiyonlar(stdlib.h): C++ ile birlikte gelir. İçerisindeki fonksiyonlar:
  1. Sonlu string bilgiyi sayısal değer dönüştürme
  2. String bilginin sonunu belirleyerek sayısal değere dönüştürme
  3. Program sonlandırma
  4. Hafıza yönetimi
  5. Rasgele sayılar
  6. Tam sayılarla ilgili fonksiyonlar
1*f3ZcnXGibo9mp7G2QOEGVw.png

Sonlu string bilgiyi sayısal değer dönüştürme:

Bu fonksiyonların hepsinin yapısı birbirine benzediği için anlaşılması bir hayli kolay. Hepsi yapı olarak birbirine benziyor.

DonusVeriTipi atox (*char) ;

Yukardaki yapıda X bizim ne tür veri istediğimizi gösteriyor; örnegin fload ise burası f olacak.o durumda DönüşVeriTipi de fload olacaktır.

1*lLQWh02uGzetUym6d8NI2Q.png


1*QVFYWhFg3rPJjlQK8qP64w.png

1*dnV06_Kp-uLI8aIAsrvIlA.png


Rastgele sayı üretme- rand()

1*FY3tkhbx4hGO7p-RJpppgw.png

TAM SAYI İLE İLGİLİ FONKSİYONLAR:

Abs: Bir sayının mutlak değerini hesaplar.
Div: Birinci parametreyi ikinciye böler, bölümü ve kalanı div_t yapı türünde döndürür.
abs ve div komutlarında büyük sayılar kullanılacaksa : Ldiv,Labs şeklinde kullanılır.

KARAKTER FONKSİYONLARI(ctype.h): C dilinde karakterler(char) üzerinde işlem yapmaya imkan sağlar. Amacı bir karakterin tipini algılama veya değiştirmektir.

Kütüphane karakterler üzerinde işlem sağladığı için diziler(stringler) üzerinde yapılan işlemler açısından avantaj sağlar.

#include<ctype.h>

Eklemenin ardından çağırılabilecek fonksiyonlar:

1*c2R9TzPivY0oW3Q5YUGovw.png


1*2DxaNcBINyogAfzqvzh02w.png

cv48p7d.png

DİZİLER

Değişkenler aynı anda tek bir değer tutabilen temel değişkenler ve birden fazla değer saklayabilen bileşik değişkenler olmak üzere ikiye ayrılır.

Temel değişkenler bellekte tek bir hücreyi tanımlayıp, içlerinde tek bir değeri tutabilirler.

Diziler ise art arda sıralanmış bellek hücreleridir. Diziler bu bağlamda bileşik değişkenlerdir ve bellekte aynı anda birden fazla değerin saklanması mümkün kılarlar.
1*360rOW3nhTjs4kn8TBlTAg.png

1*LeoBc8NLgRutdZJwYHOB3g.png


1*G2NmJmy3mHvXAWnpjKss4A.png

1*8u7aDua91Xzg-0mkvnX_Lw.png


cv48p7d.png

STRİNG(DİZGİLER)

1*aboG-kEIIqcGgRwR9NQzWg.png

Karakter dizisine değer yükleme : üç yolla yapılır:
1*2t-l20xsIy9rl3EoUQCdOQ.png


1*nHSI3xAzBOLmwWwMFOU_-A.png

1*4ph2LAEJMDdoq2hAwYtFYg.png

1*IeqWOLMw74POWZsQo5Klfg.png

1*TRX54h6efXAR_i_xtngiUw.png

1*gHmzPbgeOxQ35uDMyLJyQA.png

1*oxuerSOFvzqlEcCRLCMpUQ.png

1*r5HC-_-QkXv53ByryI-utw.png



1*lroOvCQFIJr-BZdYNKRzQg.png

1*DulQZp1QbhSc276OzozNQw.png

1*aCk5gMdYrAxWTn2kxavfjg.png

1*MS1IRKerkLDAkz5OA-TGig.png

1*SHRU-X9b2eAh50ZWQu_rwg.png

1*P9QFUeeEV50Bx3-WgJeerw.png

1*Uxl1XF3_WvAo92xNGoJzIg.png

1*E95M4EBq8oUK36YYVuowzw.png

cv48p7d.png


Dosya İşlemleri

1*5ZHBjp29CQEcOCRgYG9KxA.png

1*nmwsryV4jWNCMxujBaPcfw.png

1*qnF3HhQEpmGHU5_ld4C_yQ.png

1*qrLM6Bas6n8tQCfFbnO1FA.png


1*vq-yYUsRTAun6nxJn5ydAw.png

1*vq-yYUsRTAun6nxJn5ydAw.png

1*uQBNWJoI-h5zbzda5O6TJg.png

1*cl7KgxFhTFTrJe_CM3ggBA.png

1*9H61aEb_WSSeRXie6C30zg.png

1*mI5eM2MR_BG9fMZr_0ZEHA.png

1*8Vy_M0Mz-nHbkrG67G09ZQ.png
 

JohnWick51

Uzman üye
20 Mar 2022
1,867
770
28
Bu notlar bilgisayar programlama dersinde C/C++ eğitimi almaktayken hocanın notlarından ve internetten özetlediğim bilgilerdir. Belki faydalanan olur diye bırakmak istedim. (Sadece not paylaşıyorum, uzman değilim)

iedbopc.png


C programlama dili kalıplaşmış ifadelerle başlar.
Bu kalıplaşmış ifadeler:
int main(), void main(void), main() ifadeleridir.

#include ifadesi dahil edilecek kütüphaneyi belirtmek için kullanılır. Kullanım şekli:
#include
<stdio.h> veya #include"stdio.h" şeklindedir.

#define: Başlık yani #include dosyalarından sonra tanımlanan ve program içinde değiştirilemeyen bir sabit atamak için kullanılır.
Kullanım şekli:
#define sabit_ismi sabitin alacağı değer ya da ifade
örnek: #define PI 3.14

cv48p7d.png


C programlama dilinde değişkenler:
1*lI7vVw2ory4BFtCzN8iFwg.png

char(Karakter): -128 ile +127 arasında değerler alabilir.
int(Tam sayı): -32768 ile +32767 arasında değerler alabilir.
short: kısa tam sayı anlamına gelir
long: uzun tam sayı anlamına gelir
unsigned char: işaretsiz karakter anlamına gelir
unsigned: işaretsiz tam sayı anlamına gelir
unsigned short: işaretsiz kısa tam sayı anlamına gelir.
unsigned long: işaretsiz uzun tam sayı anlamına gelir
float(Reel sayı): +-3,4E-38 ile +- 3,4E+38 arasında değerler alabilir.
double(çift reel sayı): +-1.7E-308 ile +-1.7E+308 arasında değerler alabilir.
long double: uzun çift reel sayı anlamına gelir.

cv48p7d.png

\n — yeni satır (bir alt satıra iner)

\r — aynı satır başı

\t — tab karakteri kadar boşluk

\v — dikey tab karakteri kadar boşluk

\b — imleci geri götürür fakat değeri silmez

\a — alarm

\’ — tek tırnak

\” — çift tırnak

\? — soru işareti

\\ — ters bölü

Açıklama Satırı : /* açıklama */ veya // açıklama şeklindedir.

cv48p7d.png

En çok kullanılan komutlar:

cout: cout komutu ile tırnak işaretleri arasında yazılanları ekrana bastırır.


cin: cin komutu ile klavyeden girilen değerler ismi geçen değişkene atanır.


printf(): #include kütüphanesinin altında bulunan bir fonksiyondur.

Ekrana yazdırma işlemi için kullanılır.



scanf(): Klavyeden veri okumak için kullanılır.


cv48p7d.png

C programlama dilinde Türkçe karakter desteği

#include <locale.h>

setlocale(LC_ALL,”turkish”);

cv48p7d.png

C/C++'da Mantıksal Operatörler, Özel Kullanımlar


1*mYP4ULNEuVjnEhV8ZdNgvg.png

1*9wLzHuH-UjpgIUGNi4YvTg.png

cv48p7d.png


if Koşulu

Kullanım şekli: if(şart)ifade;

if(şart){

ifade1;

ifade2;….}


if-else Koşulu

Kullanım şekli: if(şart) ifade1;

else ifade 2;

if(şart){

ifade2;

ifade3;}

else{

ifade4;ifade5;}


if — else if Koşulu

Kullanım şekli: if(şart1)

İfade 1;

Else if(şart2) İfade 2;

Else if(şart3)

İfade 3;…..

Else

İfade 4;


cv48p7d.png

?: KARŞILAŞTIRMA OPERATÖRÜ: C dilinde if-else karşılaştırma deyiminin yaptığı işi sınırlı olarak yapan bir operatördür. Eğer girilen koşul doğru ise deyim1 değil ise deyim 2 işlem görür.


cv48p7d.png

Switch Deyimi: Seçicinin aldığı değere eşit seçeneğin olup olmadığına bakar. Var ise o noktadan sonraki deyimler yürütülür. switch deyiminin sonuna gelindiğinde veya break deyimi ile karşılaşıldığında yürütme işlemi durur ve programın akışı switch deyimini izleyen deyim ile devam eder.


cv48p7d.png

goto deyimi ve etiketler: goto deyimi etiket ile gösterilen yere programın akışının gitmesini sağlar.


1*njnFcac2TcOAMFJ6aP_fAg.png

cv48p7d.png

DÖNGÜLER

For Döngüsü

Başlangıç değeri; koşul içinde tanımladığımız değişkene ilk değerin atanmasını sağlar.

Koşul: Döngünün devam edip etmeyeceğine karar verir. şart doğru ise devam eder. Yanlış ise döngüden çıkılır.

Artım: Koşul değişkenin her bir döngüde arttırılıp azaltılacağı belirtir.


1*WITE6zUVAoeVVmX5oiON7g.png

Örnek: (iç içe döngüler)


1*gBH8qjJ-tZd61SMbgvE9PA.png

While Döngüsü

Program while döngüsünün bulunduğu satıra geldiği zaman önce ifadenin sonucunun doğru olup olmadığı kontrol edilir. Eğer ifade yanlış ise döngüye girilmeden devam edilir. Fakat işlem doğru ise döngüye girer ve işlem doğru olduğu sürece devam eder.



Örnek: 1’den 100’e kadar olan sayıların toplamını bulan program
1*Z4v1nAwksLj-8ldadwho2Q.png

Do-While Döngüsü

Do-while döngüsünde karşılaştırma işlemi, döngünün sonunda gerçekleşir. Bunun sonucu olarak döngünün içine en az bir defa girilmiş olur.


1*j-2EIrmPuaaGAxhknM_5ig.png

cv48p7d.png

FONKSİYONLAR

Her fonksiyon ard arda tanımlanır. İç içe fonksiyon tanımlanmaz.


Hiçbir fonksiyon 1 kereden fazla tanımlanamaz. En azından aynı ada sahip olamaz. (aynı isimde fonksiyonlar yaratamazsın hepsinin ismi farklı olmalı fakat farklı adlardaki fonksiyonların içerikleri aynı olabilir)

Fonksiyonların geri dönüş değerleri(Return value): Bir fonksiyonun çalışması bittikten sonra onu çağıran fonksiyona gönderdiği değere geri dönüş değeri denir.


Fonksiyonların geri dönüş değerleri aritmetik işlemlere sokulabilirler.
Return anahtar sözcüğü: iki işlevi vardır.

1-Fonksiyonun çalışmasını bitirir. Bu durumda akış onu çalıştıran fonksiyonda devam eder.

2-Geri dönüş değeri oluşturur.


Kullanım biçimi: return[ifade]

return anahtar sözcüğü kullanılmışsa fonksiyon ana bloğu bittiğinde sonlanır. Fonksiyonda return ile belirli bir değer verilmemişse rastgele bir geri dönüş değeri verilecektir.

Bir fonksiyonun geri dönüş değerine sahip olması kullanılmasını gerektirmez. Fonksiyon başında void yazılırsa fonksiyonunun geri dönüş değerinin olmadığı anlatılır.




Matematiksel Fonksiyonlar(math.h) : Matematiksel fonksiyonlarda değişken olarak genelde double kullanılır.


1*nv_wIRQ8H0vJRODYp9KOxg.png


Standart Fonksiyonlar(stdlib.h): C++ ile birlikte gelir. İçerisindeki fonksiyonlar:
  1. Sonlu string bilgiyi sayısal değer dönüştürme
  2. String bilginin sonunu belirleyerek sayısal değere dönüştürme
  3. Program sonlandırma
  4. Hafıza yönetimi
  5. Rasgele sayılar
  6. Tam sayılarla ilgili fonksiyonlar
1*f3ZcnXGibo9mp7G2QOEGVw.png

Sonlu string bilgiyi sayısal değer dönüştürme:

Bu fonksiyonların hepsinin yapısı birbirine benzediği için anlaşılması bir hayli kolay. Hepsi yapı olarak birbirine benziyor.

DonusVeriTipi atox (*char) ;

Yukardaki yapıda X bizim ne tür veri istediğimizi gösteriyor; örnegin fload ise burası f olacak.o durumda DönüşVeriTipi de fload olacaktır.

1*lLQWh02uGzetUym6d8NI2Q.png


1*QVFYWhFg3rPJjlQK8qP64w.png

1*dnV06_Kp-uLI8aIAsrvIlA.png


Rastgele sayı üretme- rand()

1*FY3tkhbx4hGO7p-RJpppgw.png

TAM SAYI İLE İLGİLİ FONKSİYONLAR:

Abs: Bir sayının mutlak değerini hesaplar.
Div: Birinci parametreyi ikinciye böler, bölümü ve kalanı div_t yapı türünde döndürür.
abs ve div komutlarında büyük sayılar kullanılacaksa : Ldiv,Labs şeklinde kullanılır.

KARAKTER FONKSİYONLARI(ctype.h): C dilinde karakterler(char) üzerinde işlem yapmaya imkan sağlar. Amacı bir karakterin tipini algılama veya değiştirmektir.

Kütüphane karakterler üzerinde işlem sağladığı için diziler(stringler) üzerinde yapılan işlemler açısından avantaj sağlar.


Eklemenin ardından çağırılabilecek fonksiyonlar:

1*c2R9TzPivY0oW3Q5YUGovw.png


1*2DxaNcBINyogAfzqvzh02w.png

cv48p7d.png

DİZİLER

Değişkenler aynı anda tek bir değer tutabilen temel değişkenler ve birden fazla değer saklayabilen bileşik değişkenler olmak üzere ikiye ayrılır.

Temel değişkenler bellekte tek bir hücreyi tanımlayıp, içlerinde tek bir değeri tutabilirler.

Diziler ise art arda sıralanmış bellek hücreleridir. Diziler bu bağlamda bileşik değişkenlerdir ve bellekte aynı anda birden fazla değerin saklanması mümkün kılarlar.
1*360rOW3nhTjs4kn8TBlTAg.png

1*LeoBc8NLgRutdZJwYHOB3g.png


1*G2NmJmy3mHvXAWnpjKss4A.png

1*8u7aDua91Xzg-0mkvnX_Lw.png


cv48p7d.png

STRİNG(DİZGİLER)

1*aboG-kEIIqcGgRwR9NQzWg.png

Karakter dizisine değer yükleme : üç yolla yapılır:
1*2t-l20xsIy9rl3EoUQCdOQ.png


1*nHSI3xAzBOLmwWwMFOU_-A.png

1*4ph2LAEJMDdoq2hAwYtFYg.png

1*IeqWOLMw74POWZsQo5Klfg.png

1*TRX54h6efXAR_i_xtngiUw.png

1*gHmzPbgeOxQ35uDMyLJyQA.png

1*oxuerSOFvzqlEcCRLCMpUQ.png

1*r5HC-_-QkXv53ByryI-utw.png



1*lroOvCQFIJr-BZdYNKRzQg.png

1*DulQZp1QbhSc276OzozNQw.png

1*aCk5gMdYrAxWTn2kxavfjg.png

1*MS1IRKerkLDAkz5OA-TGig.png

1*SHRU-X9b2eAh50ZWQu_rwg.png

1*P9QFUeeEV50Bx3-WgJeerw.png

1*Uxl1XF3_WvAo92xNGoJzIg.png

1*E95M4EBq8oUK36YYVuowzw.png

cv48p7d.png


Dosya İşlemleri

1*5ZHBjp29CQEcOCRgYG9KxA.png

1*nmwsryV4jWNCMxujBaPcfw.png

1*qnF3HhQEpmGHU5_ld4C_yQ.png

1*qrLM6Bas6n8tQCfFbnO1FA.png


1*vq-yYUsRTAun6nxJn5ydAw.png

1*vq-yYUsRTAun6nxJn5ydAw.png

1*uQBNWJoI-h5zbzda5O6TJg.png

1*cl7KgxFhTFTrJe_CM3ggBA.png

1*9H61aEb_WSSeRXie6C30zg.png

1*mI5eM2MR_BG9fMZr_0ZEHA.png

1*8Vy_M0Mz-nHbkrG67G09ZQ.png
Ellerine saglik
 

Blwe

Uzman üye
17 Şub 2021
1,585
1,645
Green/Moderasyon
Bu notlar bilgisayar programlama dersinde C/C++ eğitimi almaktayken hocanın notlarından ve internetten özetlediğim bilgilerdir. Belki faydalanan olur diye bırakmak istedim. (Sadece not paylaşıyorum, uzman değilim)

iedbopc.png


C programlama dili kalıplaşmış ifadelerle başlar.
Bu kalıplaşmış ifadeler:
int main(), void main(void), main() ifadeleridir.

#include ifadesi dahil edilecek kütüphaneyi belirtmek için kullanılır. Kullanım şekli:
#include
<stdio.h> veya #include"stdio.h" şeklindedir.

#define: Başlık yani #include dosyalarından sonra tanımlanan ve program içinde değiştirilemeyen bir sabit atamak için kullanılır.
Kullanım şekli:
#define sabit_ismi sabitin alacağı değer ya da ifade
örnek: #define PI 3.14

cv48p7d.png


C programlama dilinde değişkenler:
1*lI7vVw2ory4BFtCzN8iFwg.png

char(Karakter): -128 ile +127 arasında değerler alabilir.
int(Tam sayı): -32768 ile +32767 arasında değerler alabilir.
short: kısa tam sayı anlamına gelir
long: uzun tam sayı anlamına gelir
unsigned char: işaretsiz karakter anlamına gelir
unsigned: işaretsiz tam sayı anlamına gelir
unsigned short: işaretsiz kısa tam sayı anlamına gelir.
unsigned long: işaretsiz uzun tam sayı anlamına gelir
float(Reel sayı): +-3,4E-38 ile +- 3,4E+38 arasında değerler alabilir.
double(çift reel sayı): +-1.7E-308 ile +-1.7E+308 arasında değerler alabilir.
long double: uzun çift reel sayı anlamına gelir.

cv48p7d.png

\n — yeni satır (bir alt satıra iner)

\r — aynı satır başı

\t — tab karakteri kadar boşluk

\v — dikey tab karakteri kadar boşluk

\b — imleci geri götürür fakat değeri silmez

\a — alarm

\’ — tek tırnak

\” — çift tırnak

\? — soru işareti

\\ — ters bölü

Açıklama Satırı : /* açıklama */ veya // açıklama şeklindedir.

cv48p7d.png

En çok kullanılan komutlar:

cout: cout komutu ile tırnak işaretleri arasında yazılanları ekrana bastırır.


cin: cin komutu ile klavyeden girilen değerler ismi geçen değişkene atanır.


printf(): #include kütüphanesinin altında bulunan bir fonksiyondur.

Ekrana yazdırma işlemi için kullanılır.



scanf(): Klavyeden veri okumak için kullanılır.


cv48p7d.png

C programlama dilinde Türkçe karakter desteği

#include <locale.h>

setlocale(LC_ALL,”turkish”);

cv48p7d.png

C/C++'da Mantıksal Operatörler, Özel Kullanımlar


1*mYP4ULNEuVjnEhV8ZdNgvg.png

1*9wLzHuH-UjpgIUGNi4YvTg.png

cv48p7d.png


if Koşulu

Kullanım şekli: if(şart)ifade;

if(şart){

ifade1;

ifade2;….}


if-else Koşulu

Kullanım şekli: if(şart) ifade1;

else ifade 2;

if(şart){

ifade2;

ifade3;}

else{

ifade4;ifade5;}


if — else if Koşulu

Kullanım şekli: if(şart1)

İfade 1;

Else if(şart2) İfade 2;

Else if(şart3)

İfade 3;…..

Else

İfade 4;


cv48p7d.png

?: KARŞILAŞTIRMA OPERATÖRÜ: C dilinde if-else karşılaştırma deyiminin yaptığı işi sınırlı olarak yapan bir operatördür. Eğer girilen koşul doğru ise deyim1 değil ise deyim 2 işlem görür.


cv48p7d.png

Switch Deyimi: Seçicinin aldığı değere eşit seçeneğin olup olmadığına bakar. Var ise o noktadan sonraki deyimler yürütülür. switch deyiminin sonuna gelindiğinde veya break deyimi ile karşılaşıldığında yürütme işlemi durur ve programın akışı switch deyimini izleyen deyim ile devam eder.


cv48p7d.png

goto deyimi ve etiketler: goto deyimi etiket ile gösterilen yere programın akışının gitmesini sağlar.


1*njnFcac2TcOAMFJ6aP_fAg.png

cv48p7d.png

DÖNGÜLER

For Döngüsü

Başlangıç değeri; koşul içinde tanımladığımız değişkene ilk değerin atanmasını sağlar.

Koşul: Döngünün devam edip etmeyeceğine karar verir. şart doğru ise devam eder. Yanlış ise döngüden çıkılır.

Artım: Koşul değişkenin her bir döngüde arttırılıp azaltılacağı belirtir.


1*WITE6zUVAoeVVmX5oiON7g.png

Örnek: (iç içe döngüler)


1*gBH8qjJ-tZd61SMbgvE9PA.png

While Döngüsü

Program while döngüsünün bulunduğu satıra geldiği zaman önce ifadenin sonucunun doğru olup olmadığı kontrol edilir. Eğer ifade yanlış ise döngüye girilmeden devam edilir. Fakat işlem doğru ise döngüye girer ve işlem doğru olduğu sürece devam eder.



Örnek: 1’den 100’e kadar olan sayıların toplamını bulan program
1*Z4v1nAwksLj-8ldadwho2Q.png

Do-While Döngüsü

Do-while döngüsünde karşılaştırma işlemi, döngünün sonunda gerçekleşir. Bunun sonucu olarak döngünün içine en az bir defa girilmiş olur.


1*j-2EIrmPuaaGAxhknM_5ig.png

cv48p7d.png

FONKSİYONLAR

Her fonksiyon ard arda tanımlanır. İç içe fonksiyon tanımlanmaz.


Hiçbir fonksiyon 1 kereden fazla tanımlanamaz. En azından aynı ada sahip olamaz. (aynı isimde fonksiyonlar yaratamazsın hepsinin ismi farklı olmalı fakat farklı adlardaki fonksiyonların içerikleri aynı olabilir)

Fonksiyonların geri dönüş değerleri(Return value): Bir fonksiyonun çalışması bittikten sonra onu çağıran fonksiyona gönderdiği değere geri dönüş değeri denir.


Fonksiyonların geri dönüş değerleri aritmetik işlemlere sokulabilirler.
Return anahtar sözcüğü: iki işlevi vardır.

1-Fonksiyonun çalışmasını bitirir. Bu durumda akış onu çalıştıran fonksiyonda devam eder.

2-Geri dönüş değeri oluşturur.


Kullanım biçimi: return[ifade]

return anahtar sözcüğü kullanılmışsa fonksiyon ana bloğu bittiğinde sonlanır. Fonksiyonda return ile belirli bir değer verilmemişse rastgele bir geri dönüş değeri verilecektir.

Bir fonksiyonun geri dönüş değerine sahip olması kullanılmasını gerektirmez. Fonksiyon başında void yazılırsa fonksiyonunun geri dönüş değerinin olmadığı anlatılır.




Matematiksel Fonksiyonlar(math.h) : Matematiksel fonksiyonlarda değişken olarak genelde double kullanılır.


1*nv_wIRQ8H0vJRODYp9KOxg.png


Standart Fonksiyonlar(stdlib.h): C++ ile birlikte gelir. İçerisindeki fonksiyonlar:
  1. Sonlu string bilgiyi sayısal değer dönüştürme
  2. String bilginin sonunu belirleyerek sayısal değere dönüştürme
  3. Program sonlandırma
  4. Hafıza yönetimi
  5. Rasgele sayılar
  6. Tam sayılarla ilgili fonksiyonlar
1*f3ZcnXGibo9mp7G2QOEGVw.png

Sonlu string bilgiyi sayısal değer dönüştürme:

Bu fonksiyonların hepsinin yapısı birbirine benzediği için anlaşılması bir hayli kolay. Hepsi yapı olarak birbirine benziyor.

DonusVeriTipi atox (*char) ;

Yukardaki yapıda X bizim ne tür veri istediğimizi gösteriyor; örnegin fload ise burası f olacak.o durumda DönüşVeriTipi de fload olacaktır.

1*lLQWh02uGzetUym6d8NI2Q.png


1*QVFYWhFg3rPJjlQK8qP64w.png

1*dnV06_Kp-uLI8aIAsrvIlA.png


Rastgele sayı üretme- rand()

1*FY3tkhbx4hGO7p-RJpppgw.png

TAM SAYI İLE İLGİLİ FONKSİYONLAR:

Abs: Bir sayının mutlak değerini hesaplar.
Div: Birinci parametreyi ikinciye böler, bölümü ve kalanı div_t yapı türünde döndürür.
abs ve div komutlarında büyük sayılar kullanılacaksa : Ldiv,Labs şeklinde kullanılır.

KARAKTER FONKSİYONLARI(ctype.h): C dilinde karakterler(char) üzerinde işlem yapmaya imkan sağlar. Amacı bir karakterin tipini algılama veya değiştirmektir.

Kütüphane karakterler üzerinde işlem sağladığı için diziler(stringler) üzerinde yapılan işlemler açısından avantaj sağlar.


Eklemenin ardından çağırılabilecek fonksiyonlar:

1*c2R9TzPivY0oW3Q5YUGovw.png


1*2DxaNcBINyogAfzqvzh02w.png

cv48p7d.png

DİZİLER

Değişkenler aynı anda tek bir değer tutabilen temel değişkenler ve birden fazla değer saklayabilen bileşik değişkenler olmak üzere ikiye ayrılır.

Temel değişkenler bellekte tek bir hücreyi tanımlayıp, içlerinde tek bir değeri tutabilirler.

Diziler ise art arda sıralanmış bellek hücreleridir. Diziler bu bağlamda bileşik değişkenlerdir ve bellekte aynı anda birden fazla değerin saklanması mümkün kılarlar.
1*360rOW3nhTjs4kn8TBlTAg.png

1*LeoBc8NLgRutdZJwYHOB3g.png


1*G2NmJmy3mHvXAWnpjKss4A.png

1*8u7aDua91Xzg-0mkvnX_Lw.png


cv48p7d.png

STRİNG(DİZGİLER)

1*aboG-kEIIqcGgRwR9NQzWg.png

Karakter dizisine değer yükleme : üç yolla yapılır:
1*2t-l20xsIy9rl3EoUQCdOQ.png


1*nHSI3xAzBOLmwWwMFOU_-A.png

1*4ph2LAEJMDdoq2hAwYtFYg.png

1*IeqWOLMw74POWZsQo5Klfg.png

1*TRX54h6efXAR_i_xtngiUw.png

1*gHmzPbgeOxQ35uDMyLJyQA.png

1*oxuerSOFvzqlEcCRLCMpUQ.png

1*r5HC-_-QkXv53ByryI-utw.png



1*lroOvCQFIJr-BZdYNKRzQg.png

1*DulQZp1QbhSc276OzozNQw.png

1*aCk5gMdYrAxWTn2kxavfjg.png

1*MS1IRKerkLDAkz5OA-TGig.png

1*SHRU-X9b2eAh50ZWQu_rwg.png

1*P9QFUeeEV50Bx3-WgJeerw.png

1*Uxl1XF3_WvAo92xNGoJzIg.png

1*E95M4EBq8oUK36YYVuowzw.png

cv48p7d.png


Dosya İşlemleri

1*5ZHBjp29CQEcOCRgYG9KxA.png

1*nmwsryV4jWNCMxujBaPcfw.png

1*qnF3HhQEpmGHU5_ld4C_yQ.png

1*qrLM6Bas6n8tQCfFbnO1FA.png


1*vq-yYUsRTAun6nxJn5ydAw.png

1*vq-yYUsRTAun6nxJn5ydAw.png

1*uQBNWJoI-h5zbzda5O6TJg.png

1*cl7KgxFhTFTrJe_CM3ggBA.png

1*9H61aEb_WSSeRXie6C30zg.png

1*mI5eM2MR_BG9fMZr_0ZEHA.png

1*8Vy_M0Mz-nHbkrG67G09ZQ.png
Ellerinize sağlık hocam..
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.