Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Bilgisayar Programlamaya Giriş

Benzer bir sunumlar


... konulu sunumlar: "Bilgisayar Programlamaya Giriş"— 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, 4th edition.

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

6 Genel Kavramlar Bilgi Saklama
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 ASCII Karakter Seti Bilgi Saklama 1 2 3 4 5 6 7 8 9 nul soh stx etx
1 2 3 4 5 6 7 8 9 nul soh stx etx eot enq ack bel bs ht nl vt ff cr so si dle dcl dc2 dc3 dc4 nak syn etb can em sub esc fs gs rs us b ! " # $ % & ( ) * + , - . / : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a c 10 d e f g h i j k l m 11 n o p q r s t u v w 12 x y z { | } ~ del 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 Akış Şeması Bilgisayara İstediğimiz İşlemleri Nasıl Yaptırırız? Komut
İşlem (Process): Yapılması istenen işlemle ilgili tanımlamalar Koşul Karar (Decision): Bir karara bağlı olarak farklı yolların izlenmesi Veri 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ı A Başla/Bitir

19 Telefon konuşmasını gerçekleştir
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 Şehir Bir kere sıfıra bas ve şehir kodunu tuşla Telefon numarasını tuşla Telefon konuşmasını gerçekleştir Telefonu kapat Meşgul/ cevap yok? 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,...) Coboldan sonra üretilen sembolik kodlar (ki bunlar programlama dilleri olarak anılmıştır) bu iki dili birleştirmeyi veya daha ileriye götürmeyi amaçlamaktadır.

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 Hızın önemli olduğu yerlerde düşük seviyeli diller hep tercih edilmiştir)

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 Makine diliyle iki sayıyı toplamak: 01000011100011010000111000...
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 Yazım kuralları kontrolü
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 C Programın fazları: Edit Preprocess Compile Link Load Execute
Program editör yazılır ve harddiskte saklanır Ö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 . Disk CPU

29 C Programının Derlenmesi

30 C’nin Program Yapısı Programın başlangıcı İfade Bloğu :
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 int main(void) { program_komutları return(0); } 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 #include <stdio.h> int main (void) { printf("Merhaba Dunya");
Genel Kavramlar Örnek Program #include <stdio.h> int main (void) { printf("Merhaba Dunya"); return(0); } Çıktı: Çıktı:

35 printf(“format_dizgisi”);
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 #include <stdio.h> int main(void) {
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 include <stdio.h> int main (void) {
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 Yapılan işin özelliğine göre programa dahil edilir.
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: 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 <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: \

51 Çıkış format karakterleri
Nümerik Değerler için Karakterler için Tip karakterleri Çıkış biçimi d İşaretli tamsayı c Tek karakter i s string u İşaretsiz tamsayı % % karakteri f Gerçel sayı e Üssel gerçel sayı ld Long tamsayı lf Double gerçel sayı

52 ESCAPE Düzeni Karakterleri
Kursoru bir alt satırın başına getirir (yeni satır-new line) \r Kursoru satırın başına getirir (carriage return) \b Kursoru bir kolon geri çeker \a Zil sesi verir \t Yatay tab \v Printer için yeni satır başı \f Printer için yeni sayfa başı \0 NULL 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ı D Long işaretli tamsayı u İşaretsiz tamsayı U Long işaretsiz tamsayı e Üssel gerçel sayı f Gerçel sayı lf Double gerçel sayı c Karakter s String

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ü int x; int y=8; /*ilk değer ataması*/ main() {x=10;
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 hali Kısatılmış hali x=x+y x+=y x=x-y x-=y x=x*y x*=y x=x/y x/=y x=x%y x%=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>b 0 (Yanlış) a>=2 1(Doğru) b!=c 1(Doğru) 10==b 1(Doğru) c<=4 0(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: 5x2+2 fonksiyonun x=4.8 noktasındaki değerini hesaplayınız.
#include <stdio.h> 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 <stdio.h> 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 <stdio.h> 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ş" indir ppt

Benzer bir sunumlar


Google Reklamları