1 / 65

Bilgisayar Programlamaya Giriş

Bilgisayar Programlamaya Giriş. Yrd. Doç.Dr. Nilgün GÜLER BAYAZIT e-mail:guler@yildiz.edu.tr. Dersin Amacı. Karşılaştıkları problemleri bilgisayar ortamında çözebilme becerisi Algoritma analiz etme becerisi. Ders Konuları. Programlamaya giriş: C Dili Veri tipleri

noleta
Download Presentation

Bilgisayar Programlamaya Giriş

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bilgisayar Programlamaya Giriş Yrd. Doç.Dr. Nilgün GÜLER BAYAZIT e-mail:guler@yildiz.edu.tr

  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, 4th edition.

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

  6. Genel Kavramlar 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 TOC

  7. Bilgisayar 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 Bit Bilgi Saklama Bir Bayt Bilgi Saklama Bir bayt alanı içinde 256 (28) farklı bilginin saklanması mümkündür.

  11. Bilgi Saklama (101)2 = (1 x 22) + (0 x21) + (1 x 20) (101)2 = (1 x 4) + (0 x 2) + (1 x 1) = (5)10

  12. Bilgi Saklama ASCII Karakter Seti

  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. Bilgisayara İstediğimiz İşlemleri Nasıl Yaptırırız? Algoritma Örnek: Telefon Etmek • Başla • Ahizeyi kaldır • Sinyali kontrol et, sinyal yoksa arızaya haber ver ve 9. adım’a git • 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 • Eğer telefon numarası şehir dışında ise bir kere sıfır tuşuna bas ve alan kodunu tuşla • Telefon numarasını tuşla • Eğer hat meşgul ise ya da cevap vermiyorsa 9. adıma git • Telefon konuşmasını gerçekleştir • Telefonu kapat • Bitiş

  18. Bilgisayara İstediğimiz İşlemleri Nasıl Yaptırırız? Komut Koşul Veri A Akış Şeması İş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 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ı Başla/Bitir

  19. Bilgisayara İstediğimiz İşlemleri Nasıl Yaptırırız? Başla Ahizeyikaldır Arızayahaber ver Sinyal var mı? Hayır Evet Bir kere sıfıra bas ve şehir kodunu tuşla İki kere sıfıra bas ve ülke , alan kodunu tuşla Evet Şehir dışı mı? Hayır Yurt dışı mı? Evet Hayır Telefon numarasını tuşla Telefon konuşmasını gerçekleştir Telefonu kapat Hayır Meşgul/ cevap yok? Evet Bitir Ö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: 01000011100011010000111000... • 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 • Programın yazılması • Yazım kuralları kontrolü • Ön işlemcinin çalışması ve programın derlenmesi • Programın kütüphaneden kullanılan fonksiyonlar ile bağlanması (Birleştirme) • Çalışabilen program kodunun elde edilmesi • Programın çalıştırılması

  28. Önişlemci program kodu işler Compilerobject code yaratır ve hardiskte saklar Compiler Linker object code libraries’e linkler Primary Memory Loader Loader programı memori’ye yükler. Primary Memory CPU her bir Instruction’ı alır ve execute eder CPU Preprocessor Linker Editor Disk Disk Disk Disk Disk . . . . . . . . . . . . • C Programın fazları: • Edit • Preprocess • Compile • Link • Load • Execute 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 Ana Fonksiyon: main( ) int main(void) { program_komutları return(0); }

  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 Örnek Program #include <stdio.h> int main (void) { printf("Merhaba Dunya"); return(0); } Çıktı: Çıktı:

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

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

  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 <stdio.h> • int main(void) • { • printf(“Ilk program“); • return(0); • }

  38. Yazım ve Noktalama Kuralları • include <stdio.h> • 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 <stdio.h> • 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ı: <stdio.h> Matematiksel işlemler: <math.h> Dizgiler: <string.h>

  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. C Dilindeki Sözcükler 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

  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:5.7 4.2 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 <stdio.h> 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 <değişken_adı>; ö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: \

More Related