Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Bilgisayar Programlamaya Giriş Yrd. Doç.Dr. Nilgün GÜLER BAYAZIT

Benzer bir sunumlar


... konulu sunumlar: "Bilgisayar Programlamaya Giriş Yrd. Doç.Dr. Nilgün GÜLER BAYAZIT"— Sunum transkripti:

1 Bilgisayar Programlamaya Giriş Yrd. Doç.Dr. Nilgün GÜLER BAYAZIT

2 Dersin Amacı Karşılaştıkları problemleri bilgisayar ortamında çözebilme becerisi Algoritma analiz etme becerisi

3 Ders Konuları Programlamaya giriş: C Dili Veri tipleri Ekran Giriş/Çıkış komutları Program kontrol ifadeleri Döngüler Fonksiyonlar Pointer’lar Stringler

4 Kaynaklar Ders Notları C How TO Program, Deitel & Deitel, 4 th edition.

5 Puanlama 1. Vize (%20) 2.Vize (%25) Ödevler (%15) Final (%40)

6 Genel Kavramlar TOC Bilgisayarın Temel Birimleri Bilgi Saklama Bilgisayara İstediğimiz İşleri Nasıl Yaptırırız C Programlama Dili Nedir? C Programının Derlenmesi

7 Bilgisayar Donanım (Hardware) Yazılım (Software)

8 Bilgisayarın Temel Birimleri

9 Bilgisayarda Bilgilerin Kodlanması Bilgisayarda bilgiler, iki farklı durumun belirlenmesi ile kodlanır. Bu iki farklı durum: Bir telden akım geçip geçmemesi, Bir kartın delinip delinmemesi Manyetik şerit üzerinde bir bölgenin N veya S kutup Matematiksel olarak bu iki farklı durum 0(sıfır) ve 1 (bir) ile gösterilir.

10 Bilgi Saklama Bir Bayt Bilgi Saklama Bir bayt alanı içinde 256 (2 8 ) farklı bilginin saklanması mümkündür. Bir Bit Bilgi Saklama

11 Bilgi Saklama (101) 2 = (1 x 2 2 ) + (0 x2 1 ) + (1 x 2 0 ) (101) 2 = (1 x 4) + (0 x 2) + (1 x 1) = (5) 10

12 Bilgi Saklama nulsohstxetxeotenqackbelbsht 1nlvtffcrsosidledcldc2dc3 2dc4naksynetbcanemsubescfsgs 3rsusb!"#$%&‘ 4()*+,-./ :; 7FGHIJKLMNO 8PQRSTUVWXY 9Z[\]^_`abc 10defghijklm 11nopqrstuvw 12xyz{|}~del ASCIIKarakterSeti

13 Problem çözme Problem çözmede, soruna hemen girişmek yerine, dikkatli ve sistematik yaklaşım ilke olmalıdır. Problem iyice anlaşılmalı ve mümkün olduğu kadar küçük parçalara ayrılmalıdır.

14 “Discourse on Methods” Descartes Doğruluğu kesin olarak kanıtlanmadıkça, hiç birşeyi doğru olarak kabul etmeyin; tahmin ve önyargılardan kaçının Karşılaştığınız her güçlüğü mümkün olduğu kadar küçük parçalara bölün Düzenli bir şekilde düşünün; anlaşılması en kolay olan şeylerle başlayıp yavaş yavaş daha zor ve karmaşık olanlara doğru ilerleyiniz Olaya bakışınız çok genel, hazırladığınız ayrıntılı liste ise hiçbir şeyi dışarıda bırakmayacak kadar kusursuz ve eksiksiz olsun

15 Bilgisayara İstediğimiz İşlemleri Nasıl Yaptırırız? Algoritmalar: Belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.

16 Her algoritma aşağıdaki kriterleri sağlamalıdır. 1.Girdi: sıfır veya daha fazla değer dışarıdan verilmelidir. 2. Çıktı: En azından bir değer üretmeli 3. Açıklık: Her işlem(komut) açık olmalı ve farklı anlamlar içermemeli 4. Sonluluk: Her türlü olasılık için algoritma sonlu adımda bitmeli 5. Etkinlik : Her komut kişinin kalem veya kağıt ile yürütebileceği kadar basit olmalı

17 1.Başla 2.Ahizeyi kaldır 3.Sinyali kontrol et, sinyal yoksa arızaya haber ver ve 9. adım’a git 4.Eğer telefon numarası yurt dışında ise iki kere sıfır tuşuna bas ve ülke ve alan kodunu tuşla, 6. adıma git 5.Eğer telefon numarası şehir dışında ise bir kere sıfır tuşuna bas ve alan kodunu tuşla 6.Telefon numarasını tuşla 7.Eğer hat meşgul ise ya da cevap vermiyorsa 9. adıma git 8.Telefon konuşmasını gerçekleştir 9.Telefonu kapat 10.Bitiş Algoritma Örnek: Telefon Etmek Bilgisayara İstediğimiz İşlemleri Nasıl Yaptırırız?

18 Komut Koşul Veri Doküman A Başla/Bitir İşlem (Process): Yapılması istenen işlemle ilgili tanımlamalar Karar (Decision): Bir karara bağlı olarak farklı yolların izlenmesi Veri (Data): Her farklı veri grubu için farklı isim verilmelidir. Doküman: Çıktı olarak gösterilmek istenen veriler ve işlemler Bağlantı: Büyük yazılımlarda bir sonraki sayfadaki işlemlerin hangi noktadan devam edeceğini göstermesi Başla/Bitir: Akış şemasının başlangıç ve bitiş noktaları Akış Şeması

19 Bilgisayara İstediğimiz İşlemleri Nasıl Yaptırırız? Başla Ahizeyi kaldır Sinyal var mı? Hayır Arızaya haber ver Evet Yurt dışı mı? İki kere sıfıra bas ve ülke, alan kodunu tuşla EvetHayır Şehir dışı mı? Bir kere sıfıra bas ve şehir kodunu tuşla Evet Telefon numarasını tuşla Hayır Telefon konuşmasını gerçekleştir Telefonu kapat Meşgul/ cevap yok? Bitir EvetHayır Örnek: Telefon Etmek

20 Yazılım(Software) İşletim Sistemi (MS Windows xx, Unix, IBM –OS, etc) Database Programları (Oracle, Sybase, MS SQL Server, etc.) Office programları (Word, Excel, Powepoint) Programlama dilleri (QBasic, Fotran, Pascal, C, C++,.Net etc.)

21 Programlama Dilleri Tarihçesi (Sembolik kodlar) Assembly (makina kodu) FORTRAN (FORmula TRANslation –1954) (matematiksel işlem ağırlıklı, bilgisayara bağımlılık göstermeyen bilimsel çalışmalarda kullanılmak üzere) COBOL (Common Business-Oriented Language) (Bilgi depolamak ve işlemek) Yüksek seviyeli diller (PL/I, Algol, Pascal, Basic,...)

22 Dillerin Karşılaştırması Düşük seviyeli Diller Hızlıdır Yüksek Seviyeli Diller Kolay anlaşılır Kolay yazılabilir Her bilgisayarda uygulanabilir Çok hızlı programlar yazmak mümkün olmamıştır

23 Programlama Dilleri Türleri Sırasal diller (Q basic) Yapısal Diller (pascal, C) Nesne Yönelimli Diller (C++, Java, EIFELL,.Net)

24 C’nin Kısa Öyküsü 1970 AT&T Bell Lab. Dennis M.Ritchie B dili üzerine kurulu bir yapı Unix işletim sisteminin yazımı için yaratıldı Bell Lab., Akademik çevre, askeri proje 1975 yılından itibaren her yerde...

25 C’nin avantajları C’de yazılan programlar Assembler’a göre daha kısa zamanda yazılabilir, daha anlaşılabilir ve daha hızlıdır C derleyicileri sahip oldukları geniş fonksiyon kütüphaneleri ve zengin işlemci grubu sayesinde esnek bir yapıya sahiptir. İfadelerden tasarruf sağlar:normal matematiksel ifadeler, C’nin zengin operatörleri vasıtasıyla çok daha kısa ve basit bir biçime getirilebilir. Diğer sistemlere adapte edilebilen büyük programlar hızlı bir şekilde kolayca yazılabildiği için özellikle sistem programlamalarında tercih edilir.

26 C Programlama Dili Nedir? Makine diliyle iki sayıyı toplamak: Assembly diliyle iki sayıyı toplamak: LOAD X ADD Y STORE Z C derleyicisi bir çok farklı donanım üzerinde çalışabilir. C ile sistem üzerinde en alt düzeydeki fonksiyonlara erişilebilir C ile yazılmış olan programlar oldukça hızlı çalışabilmektedir.

27 C Programının Derlenmesi 1.Programın yazılması 2.Yazım kuralları kontrolü 3.Ön işlemcinin çalışması ve programın derlenmesi 4.Programın kütüphaneden kullanılan fonksiyonlar ile bağlanması (Birleştirme) 5.Çalışabilen program kodunun elde edilmesi 6.Programın çalıştırılması

28 C Programın fazları: 1.Edit 2.Preprocess 3.Compile 4.Link 5.Load 6.Execute Önişlemci program kodu işler Loader programı memori’ye yükler. CPU her bir Instruction’ı alır ve execute eder Compiler object code yaratır ve hardiskte saklar Linker object code libraries’e linkler Loader Primary Memory Compiler Editor Preprocessor Linker Primary Memory Dis k CPU Dis k Program editör yazılır ve harddiskte saklanır

29 C Programının Derlenmesi

30 C’nin Program Yapısı Preprocessor Direktifleri Global değişken bildirileri Fonksiyon Prototipleri Fonksiyon tanımlamaları main() { İfade_1; İfade_2; İfade_3; İfade_N; } :.:. Programın başlangıcı İfade Bloğu (Programın ana gövdesi) Programın sonu

31 C Dilinin Temelleri Genel Kavramlar Yazım ve Noktalama Kuralları C Kütüphaneleri C Dilindeki Sözcükler Değer Sabitleri Veri Tipleri Değişkenler

32 Genel Kavramlar int main(void) { program_komutları return(0); } Ana Fonksiyon: main( )

33 Genel Kavramlar return( ): Fonksiyonun çağrıldığı yere geri dönmesini sağlar. main( ) fonksiyonu içinde kullanılan return() komutu programın sonlandırılarak işletim sistemine geri dönülmesini sağlar.

34 Genel Kavramlar #include int main (void) {printf("Merhaba Dunya"); return(0); } Örnek Program Çıktı:

35 #include printf(“format_dizgisi”); Genel Kavramlar printf(): çıktı fonksiyonu ekrana çeşitli çıktıların yazılması Bu fonksiyonun programımız tarafından kullanılması için kütüphanesinin program başında tanımlanması gerekir.

36 Örnek Program Ekranda “Bu benim ilk programim.” cümlesini görüntüleyecek programı yazınız. #include int main(void) { printf(“Bu benim ilk programim. “); return(0); } Çıktı: Bu benim ilk programim. Genel Kavramlar

37 Yazım ve Noktalama Kuralları Noktalı Virgül: Her komutun bittiği yer ‘;’ işareti ile belirtilir. Ayraç İşaretleri: C dili bloklardan oluşur. Bloklar ‘{‘ ve ‘}’ ayraç işaretleri içinde belirtilen komutların bir araya gelmesi ile oluşur. Açıklama Satırları: Program içindeki açıklamanın başlangıç ve bitiş noktaları “/*” ve “*/” işaretleri ile belirlenmelidir. #include int main(void) { printf(“Ilk program“); return(0); }

38 Yazım ve Noktalama Kuralları include int main (void) { /*Bu program bilgisayarinizin ekranina Merhaba Dunya kelimelerini yazar.*/ printf(“Merhaba Dunya”); return(0); /*Burasi programin sonudur*/ }

39 Yazım ve Noktalama Kuralları  Bir bloğu oluşturan tüm komutlar ve açıklama satırları ayraç işaretlerine göre daha içeride yazılır.  Böylece blokların birbirinden ayrılması ve yazılan program kodunun daha anlaşılır bir hale gelmesi sağlanır. include int main (void) { /*Bu program ekrana Merhaba kelimesini yazar.*/ printf(“Merhaba”); return(0); /*Burasi programin sonudur*/ }

40 C Kütüphaneleri  Yapılan işin özelliğine göre programa dahil edilir.  Kodu daha önce yazılmış, programcının kullanımına hazır fonksiyonları içerir.  Bu fonksiyonların her defasında tekrar tekrar yazılması engellenmiş olur ve daha standart bir yapıda yaygın olarak kullanımı sağlanır. Standart girdi/çıktı: Matematiksel işlemler: Dizgiler:

41 C Dilindeki Sözcükler Özel amaçlı sözcükler Tanıtıcı isimleri (değişken) Tanıtıcı isimleri (fonksiyon)

42 C Dilindeki Sözcükler Özel Amaçlı Sözcükler

43 Tanıtıcılar: Özel amaçlı sözcüklerin dışında yapılan tanımlamalardır. Tanıtıcı isimleri  içinde harf (a..z, A.. Z), sayı (0..9) veya alt çizgi (underscore ‘_’) bulunabilir.  bir harf ya da alt çizgi ‘_’ işareti ile başlamalıdır.  içinde özel karakterler ( #, $, &, ö, ş “ v.b. ) bulunamaz.  C dilindeki özel amaçlı sözcüklerden biri olamaz.  büyük-küçük harfler farklı (case-sensitive) algılanır. Örnek: ogrenci_yasi _06_yili_ucreti ucret Short C Dilindeki Sözcükler

44 Değer Sabitleri Tamsayılar: 0-9 rakamlarından oluşan, ondalık değerleri olmayan sayılardır. Örnek: 3 5 Reel Sayılar: tam ve ondalık kısımları olan sabitlerdir. Örnek: Karakterler: tek tırnak işareti arasında bulunur. Örnek: ‘A’ ‘k’ Dizgiler: Çift tırnak işareti “ ” ile tanımlanırlar ve birden fazla karakterin bir araya gelmesinden oluşurlar. Örnek: “Merhaba” “2” “aa12aa”

45 Veri Tipleri

46 Değişkenler  Program içinde kullanılan temel nesnelerdir.  Farklı tipteki verilerin (int, double, char) bellekte tutulması için kullanılır.  Bu isimler ile bellek hücrelerine veri aktarabilir ve bu hücrelerde saklanan veriler program içinde kullanılabilir. toplam Bellek görüntüsü Örnek: char cinsiyet; double maas; int x,y;

47 Başka bir basit program: İki tamsayının toplanması #include main() { int sayi1, sayi2, topla; printf("İlk tamsayıyı giriniz\n"); scanf("%d",&sayi1); printf("İkinci tamsayıyı giriniz\n"); scanf("%d",&sayi2); topla=sayi1+sayi2; printf("Toplam = %d\n",topla); return 0; }

48 Değişken Kavramı Bilginin bellekte belli bir adresten başlıyarak belli bir uzunluğu işgal etmesi, bilginin varlığını gösterir ve bu bilginin isimlendirilmesine değişken denir

49 Değişken tanımlama veri_tipi ; örneğin: int x; char ch, ch1; float y;

50 printf ÇIKIŞ Fonksiyonu Printf (Format Stringi, Değer Listesi); Çıkış Format Stringi: “ ” Açıklama kısımları Çıkış formatının belirtildiği kısımlar: % Escape düzeninin verildiği kısımlar: \

51 Çıkış format karakterleri Nümerik Değerler içinKarakterler için Tip karakterleriÇıkış biçimiTip karakterleriÇıkış biçimi dİşaretli tamsayıcTek karakter iİşaretli tamsayısstring uİşaretsiz tamsayı% karakteri fGerçel sayı eÜssel gerçel sayı ldLong tamsayı lfDouble gerçel sayı

52 ESCAPE Düzeni Karakterleri \nKursoru bir alt satırın başına getirir (yeni satır-new line) \rKursoru satırın başına getirir (carriage return) \bKursoru bir kolon geri çeker \aZil sesi verir \tYatay tab \vPrinter için yeni satır başı \fPrinter için yeni sayfa başı \0NULL karakteri \\Sadece \ karakteri \”Sadece “ karakteri

53 scanf Giriş Fonksiyonu Scanf (Format Stringi, Adres stringi) scanf (“%d”, &a); scanf(“%d %d”, &x,&y); scanf(“%s %s”, ad, soyad);

54 Giriş Format Karakterleri Tip karakterleriÇıkış biçimi dİşaretli tamsayı DLong işaretli tamsayı uİşaretsiz tamsayı ULong işaretsiz tamsayı eÜssel gerçel sayı fGerçel sayı lfDouble gerçel sayı cKarakter sString

55 Operatörler Operatörler belli bir amaca yönelik olarak bir bilgiyi daha değişik bir forma sokan veya iki bilgiden yeni bir bilgi edinilmesini sağlayan sembolik araçlardır. Atama Operatörü (=) Aritmatik operatörler (*, /, +,-,%,++,--) Karşılaştırma operatörlerin (>, =,<=,==,!=) Mantık Operatörleri (&&, ||,!) Adres operatörü (&) Boyut operatörü (sizeof) Üçlü koşul operatörü (?:) Ve diğer operatörler

56 Atama Operatörü Bir değeri bellekteki bir değişkene atamak için eşit (=) karakteri kullanılır. Bu sembol sağındaki değeri solundaki değişkene atar. int x; int y=8; /*ilk değer ataması*/ main() {x=10; y=x; t=5; /*yanlış: t değişkeni tanımlanmadı */ }

57 Aritmatik işlem operatörleri C’de tamsayılar ve gerçel sayıların işlenmesi için gerekli tüm operatörler mevcuttur. İkili Operatörler Toplama operatörü (+) Çıkartma operatörü (-) Çarpma operatörü (*) Bölme operatörü (/) Mod operatörü (%) Tekli (Unary) Operatörler Arttırma operatörü (++) Eksiltme operatörü (--) Birleşik Atama operatörleri Basit haliKısatılmış hali x=x+yx+=y x=x-yx-=y x=x*yx*=y x=x/yx/=y x=x%yx%=y

58 Karşılaştırma operatörleri Karşılaştırma sonucunun doğru veya yanlış olmasına dayanan bir sonuç üretir. Yanlış ise  0 (sıfır) Doğru ise  1 (Bir) Örnek a=2, b=10 ve c=5 a>b0 (Yanlış) a>=21(Doğru) b!=c1(Doğru) 10==b1(Doğru) c<=40(Yanlış) ‘a’ > ‘b’0(yanlış)

59 Mantıksal Operatörler AND operatörü (&&) OR operatörü (||) Not operatörü (!)

60 sizeof Boyut Operatörü Verilen bir tipin veya değerin hafızada işgal ettiği bölgenin bayt olarak sayısını verir. Kullanımı: sizeof(tip) cevap sizeof(char)1 sizeof(int)2 sizeof(float)4 sizeof(double)8 int x; sizeof(x)2

61 Üçlü Koşul(Ternary) Operatörü(?:) Üçlü koşul operatörü(?:), bir ifadenin doğru veya yanlış olmasına göre farklı ifadelerin yerine getirilmesini sağlar. ifade1 ?ifade2 : ifade3 Örnek: z=max(x,y) z=(x>y) ? x : y;

62 Operatörlerde işlem önceliği ve işlem yönü

63 Soru1: 5x 2 +2 fonksiyonun x=4.8 noktasındaki değerini hesaplayınız. #include main() {float x, y; x=4.8; y=5*x*x+2; printf(“y=%f”,y); }

64 Soru 2: Yarıçapı 7 olan olan bir dairenin alanını ve çevresini hesaplayınız #include main() {float PI=3.14; float cevre, alan; int r=7; cevre=2*PI*r; printf(“cevre=%f\n”,cevre); alan=PI*r*r; printf(“alan=%f\n”,alan); }

65 Soru 3: Vize ve Final notlarından geçme notunu hesaplayınız #include main() {float vize, final, ortalama; vize=60; final=70; ortalama=vize*0.60+final*0.40; printf(“ogrenci %f ile gecti\n”,ortalama); }


"Bilgisayar Programlamaya Giriş Yrd. Doç.Dr. Nilgün GÜLER BAYAZIT" indir ppt

Benzer bir sunumlar


Google Reklamları