Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
YayınlayanAhmet Yerli Değiştirilmiş 5 yıl önce
1
Örnek Bir C Programı C ilk bakışta ilginç görünebilen bir işaret ve rakamlarla gösterme usulü kullanır. Örnek bir programa bakalım
2
Örnek Bir Program /* C’ de ilk programımız */ #include <stdio.h>
/* ana program başlangıcı */ int main() { printf( “C’ye Hoş Geldiniz!\n”); return 0; } /* program sonu */
3
Program Analizi Satır 1 Þ / * C’ de ilk programımız */
Bu bir açıklamadır( Yorumdur).
4
Açıklamalar /* ile başlayıp */ ile biter.
c++ derleyicileri // karakterlerini de tanır. Doküman halindeki programlara eklenir ve okunabilirliği artırır. Herhangi bir aktivite gerçekleştirilmesine sebep olmaz. C derleyicisi tarafından göz ardı edilir. Programınızı diğer insanların da okuyup anlamasına yardım eder.
5
Komutlarda geri sayım Fazla açıklama yapmak programınızın okunmasını ve/veya bakımını zorlaştırabilir. Açıklamaların aşırı bir formatta olması da buna sebep olabilir. /**************** ** boşluk ** ** boşluk boşluk ** ß aman! ****************/ /* boşluk boşluk boşluk */ ß Bu daha iyi Komutların birden fazla satırda yer alabileceğini UNUTMAYIN. Açıklamaları */ ile sonlandırmayı unutmadığınızdan emin olun.
6
Program Analizi Satır 2 C önişlemcisine direktif
Þ #include <stdio.h> C önişlemcisine direktif Veri ve/veya fonksiyon içeren dosya ekler Program derlenmeden önce işlenir. Daha sonra yapılmasına tercihen derleme safhasında hataların yerleştirilmesine yardım eder.
7
Program Analizi Satır 3 & 4
Þ /* Ana programın başlaması*/ int main() C programları bir veya daha fazla fonksiyon içerir, bunlardan bir tanesi main olmalıdır. C’ deki her program main’ in yürütülmesiyle başlar. Parantezler bir fonksiyonu işaret eder.
8
Program Analizi Satır 3 & 4
int fonksiyona, fonksiyondan ne istenirse istensin hangi tipte veri geri döndüreceğini söyler. (ana blok à işletim sistemi) Her fonksiyonun kendisinden önce gelen bir açıklamayla amacı tanımlamalıdır.
9
Program Analizi Satır 5 Þ {
Bütün fonksiyonların gövdesi sol kırlangıç parantezi { ile başlamalıdır. Her fonksiyonu sonlandırmak için bir sol kırlangıç paranteze karşılık bir sağ süslü parantez } bulunmalıdır. Aradaki herşey blok olarak adlandırılır. Sol kırlangıç parantezi girer girmez sağ kırlangıç parantezi eklemeyi alışkanlık haline getirin.
10
Program Analizi Satır 6 Þ printf( “C’ye Hoş Geldiniz!\n” );
Bu bir deyimdir Bu printf olarak bilinen ve <stdio.h> da tanımlanmış bir fonksiyonu çağırır.
11
Deyim Bir deyim bir komuttur veya bir fonksiyon çağrımıdır.
Bir komut, bir programlama dilindeki yürütülebilir en küçük varlıktır. C’ de her deyim bir noktalı virgül ; ile (a/k/a deyim sonlandırıcı) bitmelidir. Her satıra yalnızca bir deyim koyulmalıdır. (stil)
12
printf Þ printf( “C’ye Hoş Geldiniz!\n” );
Bilgisayarın ekrana yazması için kullanılan komutlarda kelime dizisi tırnak işaretleri arasında belirtilmelidir. Bir string karakterlerden oluşan bir dizidir (a/k/a karakter dizi mesajı veya literal) Peki \n ne işe yarıyor?
13
Escape Characters (Değiştirme Karakterleri)
Ters kesme imi (\) değiştirme karakteri olarak bilinir. printf’ in farklı birşeyler yapacağına işaret eder. printf bir ters kesme imi ile karşı karşıya geldiğinde bir sonraki karaktere bakar ve bunu ters kesme imi ile birleştirerek bir değiştirme dizisi oluşturur.
14
\n Yeni bir satırdır. Ekran üzerindeki imlecin ekran üzerinde bir sonraki satıra gitmesini sağlar. İlave Olarak Klavyedeki enter tuşu gibi davranır.
15
Birden Fazla Satırın Yazdırılması
Bir printf ifadesi yeni satır karakterini kullanarak birden fazla satırı yazdırabilir. e.g. printf(“Welcome\nto\nC!\n”); Fakat bu iyi bir yazılılış değildir! Daha iyi bir yol: printf( “Welcome\n” “to\n” “C!\n” );
16
Uzun Satırların Yazdırılması
İki veya daha fazla printf deyimi kullanılabilir (ilkinin yeni satır karakteri içermemesine dikkat edin) printf( “I'm going to turn the moon into ” ); printf( “what I like to call a death star.\n” ); Bu aşağıdaki gibi bir satır yazacaktır: I'm going to turn the moon into what I like to call a deat"h star. Fakat bu kullanım yaygın ve etkin değildir (But this is unwieldy and inefficient)
17
Uzun Satırların Yazılmasında Daha İyi Bir Yol
Editördeki uzun text satırlarını parçalamak için bu iyi bir yoldur (yalnızca en sonda bir tane yeni satır karakteri olmasına dikkat edin) printf( “I'm going to turn the moon into ” “what I like to call a death star.\n” ); Bu da aşağıdaki gibi bir satır yazacaktır: I'm going to turn the moon into what I like to call a death star. Bunu neden yapıyoruz? Editördeki ve kağıt üzerine yazdırılmış uzun satırların okunabilirliğini sağlamak için
18
Bu Neden Böyle Çalışır? Çünkü C editördeki pek çok “whitespace” karakterini göz ardı eder. (boşluklar, sekmeler, enterlar, vb.) C, ne zaman yeni bir satıra geçileceğini belirtmek için \n karakterini bekler.
19
Other escape sequences Diğer değiştirme dizileri
Yatay sekme \a alarm- bilgisayarın biplemesini sağlar. \\ printf deyiminde bir ters kesme imi yazdırılmasını sağlar. \” Bir printf deyiminde bir çift tırnak ifadesi yazdırır.
20
İyi Programlama Pratikleri
Herhangi bir yazma işlemi yapan bir fonksiyon tarafından basılan son karakter yeni satır olmalıdır. Her bir fonksiyonun kırlangıç parantezler içinde tanımlanan tüm gövdesi bir seviye satır başı (3 boşluk veya tab) yapılmalıdır.
21
Program Analizi Satır 7 Þ return 0; İnt main()’ i hatırlıyor musunuz?
Bu deyim bu fonksiyonun (main) her ne değer alırsa alsın 0 geri döndürmesini sağlar. Bu durumda 0 hata anlamına gelmez ve işletim sistemine geri döndürülür.
22
Program Analizi Satır 7 return yapmasını düşündüğünüz şeyi yapar:
Bir değer geri döndürür. Değer fonksiyona başlarken belirlediğiniz tiple uyumlu olmalıdır. (O bir tamsayıdır.)
23
Program Analizi Satır 8 Þ }
Bu, sol kırlangıç parantez { ile başlayan bloğu bitiren } sağ kırlangıç parantezdir. Bu örnekte program sonunu belirtir. Her bir sol kırlangıç parantez için bir sağ kırlangıç parantez bulunmalıdır. Bir kırlangıç parantezden sonra noktalı virgül koymayın.
24
Değişkenler Değişkenler değiştirilebilir veri değerlerini tutar.
Değişkenler kullanılabilmelerinden önce bir veri tipi ve bir isim ile bildirilmelidir. Bildirimler bir sol kırlangıç parantezden hemen sonra gelirler. (bir kod bloğunun başlangıcı) C’ de bir değişken ismi herhangi bir geçerli tanımlayıcıdır.
25
integer1, integer2 and sum değişkenlerdir.
Bildirim Bir tanımlayıcı (identifier) oluşturulurken, bir tip ile ve (sahne arkasında) bir hafıza yerleşimi ile ilişkilendirilir. int integer1; int integer1, integer2, sum; integer1, integer2 and sum değişkenlerdir.
26
Tanımlayıcılar C’ de geçerli bir tanımlayıcı, harflerden (A..Z, a..z), rakamlardan(0..9) ve alt çizgilerden “_”oluşan ve bir rakam ile başlamayan bir karakter dizisidir. Herhangi bir uzunlukta olabilir ancak yalnızca ilk 31 karakter ANSI C derleyicileri tarafından tanınır. Taşınabilme ve daha az problem için tanımlayıcıları 31 karakter veya daha altında tutun.
27
C Büyük - Küçük Harfe Duyarlıdır
Büyük harf ve küçük harf karakterleri C’ de farklıdır. Ör: küçük harfle a1 ve büyük harfle A1 farklı tanımlayıcılardır.
28
Ayrılmış Kelimeler Örneğin; int, return, scanf, prinf ve if ...
C programlama dili tarafından tanımlanmış ve kullanılan kelimelerdir. Programcılar değişken ismi olarak ayrılmış kelimeleri kullanamaz. Örneğin; int, return, scanf, prinf ve if ...
29
Bildirimlerle İlgili Önemli Nokta
Bildirimi bir sol kırlangıç parantezi takiben hemen ve herhangi yürütülebilir deyimden önce yapmalısınız aksi taktirde bir syntax (yazım) hatası alırsınız. main (){ declaration section … statement section … }
30
Yazım Hataları Derleyici bir deyimi tanıyamadığı zaman gerçekleşir.
Dilin ihlalleridir Derleyici normal olarak programcıya hatanın yerini saptaması ve düzene sokmasına yardım etmek için bir hata mesajı üretir. Derleyici hataları veya derleme-anındaki hatalar olarak da bilinirler.
31
Çalışma - Anı Hataları Göreceğiniz diğer ana hata türüdür
Bir program çalışırken meydana gelir Bu konu hakkında daha sonra ayrıntılı bilgi verilecek Derleyici , bu hataları derleme anında belirleyemez.
32
İyi Programlama Uygulamaları
Programın kendini belgelemesine yardım etmek için anlamlı değişken isimleri seçin. (daha az açıklamaya gerek olacaktır) Değişken ismi olarak kullanılan tanımlayıcının ilk harfi küçük harf olmalıdır. Çok kelimeden oluşan değişken isimleri programın daha kolay okunabilmesine yardım edebilir Kelimenin göze çarpması için karışık büyüklükte harfler kullanın E.g. totalCommissions
33
Macarca (Hungarian) Sembollerle Gösterme Yöntemi
Bir değişken isminin ilk harfi olarak tipin başlangıcını kullanabilme e.g. iTotalCommissions Büyük programlarda yardım eder Bildirime göndermeksizin ne tip bir verinin desteklendiğini görebilme
34
Macarca (Hungarion) Sembollerle Gösterme Yöntemi
Değişkende değer için doğru tip yerleştirdiğinizden emin olmak için çabuk hatırlatıcı Tabii ki, başlangıcın gerçekten doğru tipi temsil eden ifade olduğundan emin olmalısınız
35
Bilgi İstemi Kullanıcıya belirli bir işi almakta yardım eden birşeydir.
36
scanf scanf, bir değerin kullanıcıdan alınması için kullanılan bir fonksiyon Girişi standart girişten alır (genellikle klavye)
37
scanf Örnek Þ scanf( “%d”, &integer1 ); En basit formunda iki tane argüment vardır, formatı kontrol eden string ve adres işleci/değişken ismi
38
Argumentler Format kontrol metni (ör: “%d”)
Kullanıcıdan beklenen verinin tipini işaret eder Burada bir integer beklemektedir (d, tam sayılar için kullanılır) Adres işleci/Değişken İsmi (ör: &tamsayı1) Kullanıcı girişinin saklanacağı değişkenin ismi Scanf için, bir ve işareti “&” (adres işleci olarak bilinir) değişken isminden önce gelmelidir.
39
Scanf ile ilgili notlar
Bir bilgisayar scanf’ i yürüttüğünde kullanıcıdan değişken için bir değer girmesini bekler. Scanf’ i bir kerede birden fazla değer almak için kullanabilirsiniz: scanf (“%d%d”, &integer1, &integer2);
40
printf’ in yeniden incelenmesi
printf de bir format kontrol metni kullanır. Örneğin main () { int i; printf (“Enter a number\n”); scanf (“%d”, &i); printf (“You entered %d\n”, i); } Note: no address operator Dikkat: adres işleci yok
41
İnteraktif Çalışma Printf ve scanf gibi fonksiyonlar, kullanıcı ve bilgisayar arasındaki interaktiviteyi kolaylaştırmak için kullanılır Konuşkan çalışma olarak da bilinir çünkü bu bir diyaloğu andırır.
42
Atama İşleci = Bu “atamak” tır “eşittir” değil
Bu =‘ in sağ tarafındakinin sol tarafındaki bir değişkene atanmasıdır. ör toplam = tamsayı1 + tamsayı2; Bu “toplam, tamsayı1 + tamsayı2 değerini alır” şeklinde okunur tamsayı1 ve tamsayı2 toplanır ve toplam’da depolanır.
43
Atama İşleci ile ilgili notlar
Sonuç değişkeni solda ve hesaplama sağda olmalıdır. Okunabilirlik için, işlecin her iki tarafına birer boşluk yerleştirin.
44
Hafıza Kavramları Değişken isimleri, bilgisayarın birincil hafızasındaki yerlere karşılık gelir. Her değişkenin bir ismi, tipi ve değeri vardır. Bir değer hafızadaki yerine yerleştirildiğinde, o yerdeki bir önceki değer ile yer değiştirir. (silerek içeri okuma olarak bilinir) Bir değişkenin değeri, değer silinmeksizin kullanılabilir. (silmeksizin dışarı okuma olarak bilinir) ör: daha önceki örnekteki tamsayı1 ve tamsayı2
45
C’ de Aritmetik + toplama için - çıkarma için * çarpma için
C aritmetik işleçlerirleri + toplama için - çıkarma için * çarpma için / bölme için, ve % modül için
46
Binary Operators İki işlenen alan işleçler
ör: “+” bir ikili işleçtir ve “a + b” iki işlenen içerir (a ve b) İnteger bölmenin integer bir sonuç verdiğine dikkat edin e.g. 5 / 2 = 2 (not 2 1/2) and 17 / 5 = 3 modüller integer bir bölmeden kalanı verir e.g. 5 % 2 is 1 and 17 % 5 is 2
47
Büyük (Çok Genel) Hata Sıfıra bölme e.g. x = y / 0
Normal olarak bilgisayar sisteminde tanımsızdır ve genel olarak fatal (ölümcül) hata üretir. Genellikle çalışma anında meydana gelir.
48
İşleç Üstünlük Kuralları
C, aritmetik ifadelerine, işleyen kuralları doğrultusunda kesin bir sırada değerlendirir. Parantez içindeki ifadeler ilk olarak değerlendirilir (en yüksek seviyedeki üstünlük) Seviyelendirilmiş veya iç içe konmuş parantezlerde, en içteki çift ilk olarak değerlendirilir
49
İşleç Üstünlük Kuralları Geri Sayımı
Daha sonra çarpma, bölme ve modül işlemleri değerlendirilir. Birden fazla varsa soldan sağa değerlendirilir Toplama ve çıkarma işlemleri en son değerlendirilir
50
Parantezler Arkadaşlarınız mı Geçekten iyi arkadaşlarınız mı
Çünkü onlarla ifadelerin istediğiniz şekilde değerlendirilmesini sağlayabilirsiniz. işleç üstünlükleri ile böyle hataların yapılması önlenebilir (üzerinde daha az düşünülecek bir şey) e.g. y = a * b * b + c * b – d; y = (((a * b) * b) + (c * b)) – d;
51
Karar Verme Eşitlik ve İlişkisel İşleçler
C, bir programın bir değerin bir durumu için karar vermesine izin verir. Böyle bir durum doğru veya yanlış olarak değerlendirilir.
52
Eşitlik İşleçleri = = x = = y x eşittir y demektir
! = x ! = y x eşit değildir y demektir.
53
İlişkisel İşleçler > < >= <=
54
if Yapısı Koşulları test ederken eşitlik ve ilişkisel işleçler kullanan kontrol yapısı if (condition) statement; Eğer koşul doğruysa, deyimi yürüt.
55
if yapısı if (grade > 65) printf(“Congratulations, you passed”); Yukarıdaki deyim, eğer (ve yalnızca eğer) not değeri 65’ den büyükse “Congratulations, you passed” yazar.
56
BÜYÜK, KÖTÜ, HATALAR Eşitlik işleci = = atama işleci = ile karıştırılması Kısmen kötü bir tane Bir if ifadesindeki koşulun hemen sağına bir noktalı virgül ; yerleştirmek if (grade >65); printf (“Congratulations, you passed”); Bu her zaman deyimi yazar.
57
İyi Alışkanlıklar Bir if gövdesindeki ifadelerin içerden başlaması
Okunabilirlik için programda her bir kontrol yapısından önce ve sonra bir boş satır bırakmak Her satırda yalnızca bir deyim
58
Beyaz Boşluk Karakterleri
İfadeler ve komutların birden fazla satıra ayrılabileceği durumlarda genellikle ihmal edilir. Eğer ayırma iki veya daha fazla satır üzerinde olacaksa iyi ayırma noktası seçin.
59
Algoritma Bir problemin çözümü için bir adım adım yaklaşımdır.
Doğru olarak tasarlanmış bir algoritma şu ikisini içerir: yürütülecek etkinlik, ve bu etkinliklerin hangi sırada yürütüleceği
60
Yalnızca etkinlik deyimleri kullanılır
Sözde program Programcılara algoritmalar geliştirmede yardım eden yapay ve gayrı resmi bir dil. Yalnızca etkinlik deyimleri kullanılır Örneğin, bildirimleri veya #include’ları sözde programa koymazsınız Bir sözde programı C’ ye çevirmek kolaydır.
61
Kontrol Yapıları Bir programın akışını kontrol eder
Normal olarak, C’de, deyimler ardışık sırada yürütülür Kontrol yapıları programcının bir deyimi bir sonra yürütülecek deyim olarak belirleyebilmesine izin verir. ör: programcı neyin hangi sırada yürütülebileceğini kontrol edebilir.
62
goto’ dan uzak durun goto deyimleri, programın daha önceden belirlenmiş ve o anda bulunulan deyimden önce veya sonra gelen bir satıra atlamasına izin verir Eski programlar goto’ları yaygın olarak kullanırdı, bu hatalı ve takip etmesi aşırı derecede zor olmasıyla sonuçlanır. goto’yu asla kullanmamalısınız. Gerçekten, bu goto hakkındaki yapacağımız son konuşmadır.
63
Üç Temel Kontrol Yapısı
Bütün programlar yalnızca bu üç tip yapısıyla yazılabilirler. ardışık yapı ör: birinin ardından başka biri seçim yapısı tekrarlı yapı ör: bazı etkinliklerin tekrar edilmesi
64
if yapısı (tekar inceleme)
Eğer bazı koşullar doğruysa bunu yap Örnek: if ( x == y ) { printf(“ x is equal to y!\n“ ) ; } Her programlama dilinin farklı bir if yapısı vardır.
65
Bir başka if örneği if ( grade >= 60 ) { printf( “You passed!\n” ); }
66
Bir değişiklik ile if: if else
Temel olarak: eğer bir durum doğruysa bunu yap aksi halde başka bir şey yap Örnek: if ( grade >= 60 ) printf( “You passed!\n” ); else printf( “You failed!\n” );
67
“Akış Diyagramı” Nedir?
bir programın akışını anlayabilmenize yardım eden görsel bir araçtır Akış diyagramını su boruları olarak düşünebilirsiniz: En tepede suyu dökersiniz Su borular boyunca dökülür ve aşağı doğru çekilir.
68
Akış Diyagramı Temelleri 1
baklava biçimi (karar sembolü) koşulları içerir Dikdörtgenler çalışma deyimlerini temsil eder. Örneğin: printf() akış hattı
69
Akış Diyagramı Temelleri 2
Bağlantı sembolü grade >=60 not >=60 doğru print “passed” yanlış
70
if/else Akış Diyagramı
yanlış doğru grade >=60 Print “You failed” Print “You passed”
71
ve bir sağ kırlangıç parantez } ile biterler.
Bloklar bir sol kırlangıç parantez ile { başlarlar { } ve bir sağ kırlangıç parantez } ile biterler. Değişkenleri bir sol parantezden hemen sonra bildirebilirsiniz (yürütülebilir deyimlerden önce geldiği sürece). Değişkenler yalnızca o kod bloğunda erişilebilir olacaktır.
72
Bloklar, devam Hatırlayın, bir if yalnızca bir deyime bakar. Bunun yerine if’e bağlı olarak birden fazla deyimi almak için kod bloğu kullanmanız gerekir. Örneğin: if ( grade >= 60 ) { printf("You passed!!!\n“ ); printf(“Congratulations!\n“); }
73
Kod bloğu içerisindeki herşey içerden başlamalıdır
İçerlek yazma Kod bloğu içerisindeki herşey içerden başlamalıdır Hızlı bir göz gezdirmede blokları görmenize yardım eder Şu şekilde kod yazmaktan kaçının: if (grade >= 60) { printf ("You passed!!!\n"); printf ("Congratulations!\n"); } Bu geçerli bir C kodudur, fakat bloğun görülmesi kolay değil: kötü stil
74
Örnek /* If/Else Deyimlerine Giriş */ #include <stdio.h> int main () { int grade; /* variable to hold user input */ /* kulanıcı girişini tutacak değişken */ printf ( "Enter your course grade: “ ); scanf ( "%d", &grade ); if ( grade >= 60 ) printf ( "You passed!!! \n“ ); printf ( "Congratulations!\n“ ); } else printf ("You failed!\n"); } /* end main program */ /* ana programı bitir*/ Note the indentation İçerlek yazmaya dikkat edin
75
İlişkisel İşleçler (tekrar inceleme)
farklı != eşittir == Küçük eşit <= Büyük eşit >= Küçüktür < Büyüktür > Anlamı Operator (İşleç)
76
Eşitlik Testi Eşitlik için test, = = operatörünü kullanın
if ( grade == 100 ) { printf ( “Perfect Score!” ) ; } Farklılık testi, ! = operatörünü kullanın if (grade != 100) printf (“You messed something up”);
77
Atamalar yoluyla eşitlik (yeniden inceleme)
Hatırlayın Gets (almak) eşitlik değildir. if ( grade = 100 ) printf( “Perfect Score!” ); Bu durumda, tek bir = karakteri kullanıyoruz. (Gerçekte = = ‘ i kullanmak istiyoruz) Tam olarak ne yazacak? Notun DOĞRU veya YANLIŞ olmasına bağlı
78
C’ de (yaşamdan farklı olarak) doğru çok basittir. Örneğin:
Doğruları Anlamak C’ de (yaşamdan farklı olarak) doğru çok basittir. 0 Yanlıştır. Bunun dışındaki her şey doğrudur. Örneğin: -1 doğrudur 299 doğrudur 0 yanlıştır.
79
Doğruluk Örneği Bu tamamen geçerli bir programdır. Çıktı: x: -100 y: 299 Dikkat: z yazdırılmadı çünkü if şartı sağlanmadı. /* Doğruyu Anlama */ #include <stdio.h> int main() { int x = -100; int y = 299; int z = 0; if ( x ) printf ("x: %d\n", x); if ( y ) printf ("y: %d\n", y); if ( z ) printf ("z: %d\n", z); }
80
Atamalar Yoluyla Eşitlik
Verilen: if (grade = 100) printf (“Perfect Score!”); Bu deyim şunu yapar. Grade’ e (not’ a) 100 değeri atandı. 100 doğru olduğundan (sıfır değil) şart her zaman doğrudur. Öğrenci notu ne olursa olsun her zaman “Perfect Score’” diyecektir.
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.