Genel Programlama II

Benzer belgeler
Programlamaya Giriş. Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi.

Genel Programlama I

PROGRAMLAMAYA GİRİŞ DERS 2

C NASIL BİR DİL?.. PROGRAMIN ÇALIŞMASI

C Programlama Dilininin Basit Yapıları

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Genel Programlama I Ders 3

Bölüm 2 - C ile Programlamaya Giriş

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

C PROGRAMLAMA D İ L İ

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya

Algoritma ve Programlama: Karar Yapıları ve Döngüler

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

Temel Giriş/Çıkış Fonksiyonları

B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

int printf (const char *format [, argument,...]);

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf

C++ Operatörler (Operators)

C Programlama printf() Fonksiyonu

C PROGRAMLAMA DİLİNE GİRİŞ

Dr. Fatih AY Tel: fatihay@fatihay.net

BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI

Giris {\} /\ Suhap SAHIN Onur GÖK

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Program Çözümleme. Aşağıdaki örneklerde printf() ve scanf() fonksiyonlarının işlevleri gösterilmektedir. Liste 1.1. Çözümleme:

C Programlama Dilinde Değişkenler

Nesne Yönelimli Programlama

Eln 1001 Bilgisayar Programlama I

Karar yapıları, (if else, switch)

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

HSancak Nesne Tabanlı Programlama I Ders Notları

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

BİL1001 Bilgisayar Bilimlerine Giriş 1

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

Nesne Tabanlı Programlama

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

Fonksiyonlar (Altprogram)

PASCAL PROGRAMLAMA DİLİ YAPISI

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

şeklinde tanımlanmıştır. O halde, dosyaları daha önceki bilgilerimizi kullanarak FILE *Dosya1, *Dosya2;

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

Nesne Tabanlı Programlama

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Programlama Dilleri 1. Ders 4: Diziler

Giriş. ENF102 Jeoloji

BİLGİSAYAR PROGRAMLAMA DERSİ


Biçem Belirteçleri (Format Specifiers)

Dizgiler. C dilinde karakter m şeklinde tek tırnak içerisinde yazılan ifadelerdir. Bu karakterlerin her biri aslında bir tamsayı ile ifade edilir.

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

Hafta 12 Karakter Tutan Diziler

BİLDİRİM, TANIMLAMA, DEĞİŞMEZLER ve İŞLEVLER

Döngü ve Koşul Deyimleri

IF / ELSE IF / ELSE. Bu deyimler, koşullu işlem yapan deyimlerdir ve daima if deyimi ile başlar, else if veya else ile devam eder.

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

C Konsol Giriş Çıkış Fonksiyonları

ALGORİTMALAR. Turbo C Bilgisayarda Problem Çözme Adımları. Bilgisayarda Problem Çözme Adımları.

Hafta 8 C Dilinde Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

Ders 4: Temel Giriş/Çıkış Fonksiyonları

DİZİLER 5/4/2010. ENF-102 Jeoloji Giriş. Tek Boyutlu Diziler. Tek Boyutlu Diziler. Örnek. Örnek

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır

Örnek: İki fonksiyondan oluşan bir program. Fonksiyon Tanımı

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

C PROGRAMLAMA D İ L İ

Eln 1002 Bilgisayar Programlama II

PROGRAMLAMA DİLLERİ I

Algoritma ve Programlamaya Giriş

BÖLÜM 5: TEMEL GİRİŞ/ÇIKIŞ FONKSİYONLARI

Pointer Kavramı. Veri Yapıları

Temel Bilgisayar Programlama

PROGRAMLAMA TEMELLER. C Program Yap s

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Program Akış Kontrol Yapıları

Temel Giriş/Çıkış Fonksiyonları (Devam) Örnek :

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

Algoritma ve Akış Diyagramları

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-2 Değişken Kavramı ve Temel Operatörler

Karar yapıları, (if else,

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

BÖLÜM 1b: C++ PROGRAMLAMANIN YAPISI. C++, hard diskte TC, BIN, INCLUDE, LIB gibi alt dizinlere yüklenir.

Nesne Yönelimli Programlama

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

C PROGRAMLAMA D İ L İ

Sınav tarihi : Süre : 60 dak.

/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

Değişkenler tanımlanırken onlara ne tür veriler atanabileceği de belirtilir. Temel veri türleri oldukça azdır:

BÖLÜM 4: DEĞİŞKENLER, SABİTLER VE OPERATÖRLER

Transkript:

Genel Programlama II 15.02.2011 1

Genel Programlama Tekrar Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi. Önceki bölümde bir problemin çözümü ile ilgili teknikler sunmuştuk. Bir problemi bilgisayar ile çözmek için geliştireceğimiz programın yazımında izleyeceğimiz adımlar: i) Problemin ne olduğunu kavra. Çözüm için gereksinimleri belirle. ii) Problemin girdilerini, çıktılarını ve diğer kısıtlama ve gereksinimleri belirle (bilgilerin giriş ve çıkış biçimlerinin nasıl olacağına kadar). iii) Problemin çözümünü veren algoritmayı yaz. iv) Algoritmayı bir programla dili ile yaz. v) Programın doğru çalışıp çalışmadığını test et. Bu testi değişik veriler (girdiler) için tekrarla. 2

Veri Tipleri Int Tip Integer = Tamsayı Tamsayıları içerir. Bellekte 2 Byte tutar. 5, -19, 25000 gibi Minimum : -231 = -32768 Maksimum : 231-1 = 32767 Gerçel Tipler (Float, Double) Gerçel sayıları içerirler. float : Bellekte 4 Byte yer tutar. 3.4E-38 ile 3.4E+38 aralığında değer alır. Hassasiyet 7-8 basamaktır. double : Bellekte 8 Byte ter tutar. 1.7E-308 ile 1.7E308 aralığında değer alır. Hassasiyet 15-16 basamaktır. 218.1, -5.2, 4.0 Bilimsel gösterim biçimi 2.5*103 = 2.5E3 2.5*10-3 = 2.5E-3 Char Tip Char : Karakter : Alfanumerik karakterleri içerir. '5', '*', 'K 3

Değişken bildirimleri bu veri tiplerine göre yapılır. Örnek: 4

Temel Değer Ataması Değişkenlere bir değer atanabilir, atanmazsa değişkenin değeri 0 veya türüne göre bir hafıza kalıntısı bırakacaktır. Değişkenlere yeni değer atanmadığı sürece aynı kalacaktır. 5

C deki integer data tipleri o C farklı tipteki integer sayıları desteklemektedir. o Maksimum ve minimumlar limits.h dosyasında tanımlanmıştır. 6

Sabitler (CONST) CONST (sabit) : Değeri programın çalışması boyunca değiştirilemez. Kullanım biçimi const tip Belirleyici=değeri; const float PI=3.14; Tip belirtilmez ise tamsayı kabul edilir. Örnek: #include <stdio.h> main() { const float PI=3.14; float r, Alan; scanf("%f",r); alan := PI*r*r; printf(('alan = %f', alan); } Tanımlama kısmı 7

Değişkenler Değeri programın çalışması boyunca değiştirilebilir. Kullanım biçimi: Tip Belirleyici [,Belirleyici] ; int i; float alan; Belirleyiciler (Identifier) Bileşenlere isim verme. (Sabit, değişken, altprogram, etiket, tipler (kullanıcı tanımlı)). Kısıtlamalar. İlk karakteri rakam olamaz. Sadece harfler, rakamlar ve _ (underscore) karakterinin birleşiminden oluşabilir.. C diline ait saklı (reserved) sözcükler kullanılamaz.. En fazla 31 karakter olabilir.. Küçük - büyük harf ayırımı vardır. isimlerin Seçimi. Belirleyicinin kullanım amacına uygun anlamlı isim seçin. 8. Ne fazla kısa ne de fazla uzun olsun. 3-10 karakter uzunluğunda olmasını alışkanlı edinin.

Matematiksel ifadeler Matematiksel ifadeleri günlük hayattaki biçimde bilgisayarda yazamadığımız için belli bir kurallar uymamız gerekir. Kullandığımız matematiksel işlemler ve anlamları şöyledir: +, -, *, / toplama, çıkarma, çarpma, bölme % tamsayı bölme sonucundaki kalanı verir (modulus) 7. / 2 ---> 3.5 (nokta sayının gerçel yorumlanmasını sağlar) 7 / 2 ---> 3 (sayılar int kabul edilip sonuçta int tipine dönüştürülür) 7 % 2 ---> 1 2 % 7 ---> 2 2 / 7 ---> 0 Matematiksel ifadeler hesaplanırken izlenen adımlar: 1. Önce parantez içindeki ifadeler hesaplanır. İçiçe parantezler var ise hesaplamaya en içteki parantezden başlanır. 2. ilk önce *, / ve % işlemleri daha sonra + ve - işlemleri yapılır. 3. Öncelik sırası aynı olan işlemlerde hesaplama soldan sağa doğru yapılır. 5./2*3 --> 7.5 9

C Dilinde Bildirim İşleminin Genel Biçimi C programlama Dili'nde bildirim işlemi aşağıdaki şekilde yapılmaktadır : <tip> <nesne ismi> <;> Burada noktalı virgül karakterine sonlandırıcı karakter diyoruz. Noktalı virgül ayıraç türünden bir işarettir ve C'de bütün ifadeler noktalı virgül ile birbirlerinden ayrılırlar. a = x + 1; b = x + 2; ifadelerinde bulunan noktalı virgüller bunların ayrı birer ifade olduklarını gösterirler. Eğer bir tek noktalı virgül olsaydı derleyici iki ifadeyi tek bir ifade gibi yorumlayacaktı. a = x + 1 b = x + 2; Yukarıdaki ifade tek bir ifade gibi yorumlanır ve derleyici buna bir anlam veremez. 10

Bildirim Örnekleri int x; unsigned long int var; double MFCS; unsigned _result; signed short total; Tip belirten anahtar sözcüklerin yazılmasından sonra aynı tipe ilişkin birden fazla nesnenin bildirimi, isimleri arasına virgül koyularak yapılabilir. Bildirim deyimi yine noktalı virgül ile sonlandırılmalıdır. unsigned char ch1, ch2, ch3, ch4; float FL1, Fl2; unsigned total, subtotal; int _vergi_katsayisi, vergi_matrahi; 11

Bir C Programının Genel Yapısı başlık dosyaları. Kullanılan deyimler ile ilgili main() { sabitler ; sabitlerin tanımlama bölümü değişkenler; değişkenleri tanımlama bölümü deyimler; Program gövdesi } Atama Deyimi (Assignment) Bir değişkene bir değer(sabit, değişken, ifade) vermek. DeğişkenAdı = değer; x = 8 ; y = x + 15 ; y = (8 - x) / (2 - x) ; 12

Örnek 5x 2 +2 fonksiyonunun x=4.8 noktasındaki değerini bulma. main() { float x, y ; x = 4.8; y = 5 * x * x + 2; } Örnek Vize ve final notlarından geçme notu hesaplama main() { float vize, final, ort; vize = 50; final = 60; ort = vize * 0.4 + final * 0.6; } 13

printf işlevi Program içinde istenen değerleri çıktı birimlerine göndermek için kullanılır. Normal kullanımında çıktı birimi olarak ekran kabul edilir. Kullanım biçimi: prinf( kontrol, <parametreler>) <kontrol> ile belirtilen bilgiye göre parametreleri yazar. Kontrol metini iki kısımdan oluşur. o sıradan karakterler: doğrudan yazılırlar. o dönüşüm/biçim belirleyici karakterler: Değerlerin nasıl yazılacağı bildirilir. printf(" sonuç = %d", k); 14

Dönüşüm belirlemek için önce % karakteri ve ardından dönüşümün nasıl olacağını belirten karakter verilir. Bu karakterlerden bazıları: d : decimal (integer) u : unsigned decimal c : char (tek karakter) s : string e : float/double sayıyı bilimsel gösterimde yaz f : float/double sayıyı *-] mmm.nnnnn biçiminde yaz ld : long integer lu : unsigned long integer Le,Lf : long double 15

Örnek Yarıçapı belli dairenin alanını hesaplayan programı yazınız. #include <stdio.h> main() { const float PI=3.14; float r, alan; r = 7; alan = PI*r*r; printf(('alan = %f', alan); } Kütüphane bildirimi Başlık satırı Girdi/çıktı/sabitlerin tanıtılması Değer atama Hesabın yapılması Sonucun yazılması 16

scanf İşlevi Klavyeden veri okumak için kullanılır. Yapı olarak printf işlevi ile hemen hemen aynıdır. Kullanım biçimi: scanf( kontrol, <değişkenler>) Girilen karakterler <kontrol> metininde belirtilen biçimlere göre değişkenlere aktarılır. Değişkenler işaretçi tipinde olmalıdır. Yani parametre olarak değişkenin adresi gönderilmelidir. Ayırıcılar boşluk, tab, enter scanf("%f %f %f ", &a, &b, &c); 17

int a,b,c; float m,n; scanf("%d", &a); aktarılır. scanf("%d %d",&a,&b) b değişkenine aktarılır. scanf("%f %d", &m, &a); değer okur. Klavyeden tamsayı okur. Girilen değer a değişkenine Klavyeden girilen ilk değer a değişkenine, ikinci değer Klavyeden ilki gerçel, ikincisi tamsayı olmak üzere iki 18

Mantıksal ifadeler Sonucu Doğru veya Yanlış olan ifadelerdir. Sonuç sıfır ise yanlış aksi halde doğru kabul edilir. İlişkisel işleçler(operatör) : iki değer arasındaki ilişkiyi test etmek için kullanılır. işaret anlamı > büyük >= büyük - eşit == eşit < küçük <= küçük - eşit!= eşit değil x=8, y=5 için x > y x < y x!=y Doğru Yanlış Doğru 19

Mantıksal işaretler : İki mantıksal ifade arasındaki ilişki üzerindeki ilişkide kullanılır.! DEĞİL (NOT) && VE (AND) VEYA (OR) (X>0) && (X>Y) (X>0) (Y>0) 20

Aritmetik operatörler ve ifadeleri ( + ) : Artı ( - ) : Eksi ( / ) : Bölme ( * ) : Çarpma ( % ) : Modül Modül kalanları bulmaya yarar. Yani diyelim ki 15'in 6'ya olan bölümünden kalanını bulmak istiyorsunuz. O halde 15%6 = 3 demektir. Veya, 7'nin 3'e bölümünden kalanı bulacaksanız, o zamanda 7%3 = 1 elde edilir. 21

Koşullu ifadeler if Bilgisayarda yapılan bütün mantıksal işlemler kaba bir temele dayanır. Şartlar sağlandığı halde yapılacak işlem belirlenir. Ve şartlar sağlandığında, bu işlemler yapılır. Şartların kontrol edilmesini, C (ve daha birçok) programlama dilinde if operatörünü kullanarak yaparız. if operatörünün genel yapısı şu şekildedir. if( koşul ) { komut(lar) } Eğer if'in altında birden çok komut varsa, ayraç işareti (veya küme parantezi) koymamız gerekir. Şayet if'ten sonra, tek komut bulunuyorsa, ayraç koyupkoymamak size kalmıştır. Zorunluluğu yoktur. 22

İf -else Bazı durumlarda, bir koşulun doğruluğuna göre sonuç yazdırmak yetmez. Aksi durumda da ne yapacağımızı belirtmek isteriz. Bunun için if-else yapısını kullanırız. if-else yapısı şu şekildedir: if( koşul ) { komut(lar) } else { komut(lar) } 23

Örnek Girilen sayının tek/çift olduğunu yazan program #include <stdio.h> main() { int i; scanf("%d", &i); if ( i % 2 == 1) printf("tek"); else printf("çift"); } 24

Bağıl (Conditional) Operator (? ) Bağıl Operator, if-else ile tamamen aynı yapıdadır. Hiçbir farkı yoktur. Tek farkı koda bakıldığında anlaşılmasının biraz daha zor oluşudur. Bir de if - else gibi yazıyla ifade edilmez. Onun yerine soru işareti (?) ve iki nokta üst üste ( : ) kullanarak yazarız. Aşağıdaki tabloda if else yapısıyla karşılaştırılmalı olarak, Conditional Operator verilmiştir 25

26

Artırma ve Azaltma işlemleri ++ artırma işlemi için kullanılır. -- azaltma işlemi için kullanılır. Eğer i adında bir değişkenin değerini 1 arttırmak isterseniz, i = i + 1 olarak yazarsınız. Veya 1 azaltmak isterseniz, benzer şekilde i = i - 1 de yazabilirsiniz. Arttırma ve azaltma işlemleri bu olayı daha basit bir forma sokmaktadır. i = i + 1 yazmak yerine i++ veya i = i - 1 yazmak yerine i-- yazabilirsiniz. Arttırma ve azaltma işlemleri temelde postfix ve prefix olmak üzere iki çeşittir. Birinci yöntemde yukarda yazdığımız gibi, arttırma/azaltma sonradan yapılır. İkinci yöntemdeyse arttırma/azaltma ilk başta yapılır. 27

Postfix ve Prefix Örnekleri Yukardaki programı yazar ve çalıştırısanız elde edeceğiniz çıktı şu şekilde görünecektir: i = 11 ve j = 59 Çünkü arttırma ve azaltma işlemleri ekrana bastırmadan önce yapılmış ve i ile j'nin değerleri değiştirilmiştir. 28

Bu sefer program çıktısı şöyle olacaktır: i = 10 ve j = 60 29

#include Önişlemci Komutu #include oldukça tanıdık bir operatördür. Her programımızda, #include önişlemci komutunu kullanırız. Şayet kullanmasak, printf( ) veya scanf( ) gibi fonksiyonları tekrar tekrar yazmamız gerekirdi. #include komutu, programımıza bir başlık dosyasının (header file) dâhil edileceğini belirtir. Bu başlık dosyası, standart giriş çıkış işlemlerini içeren bir kütüphane olabileceği gibi, kendimize ait fonksiyonların bulunduğu bir dosya da olabilir. Eğer sistem kütüphanelerine ait bir başlık dosyasını programınıza dâhil edeceksek, küçüktür ( < ) ve büyüktür ( > ) işaretlerini kullanırız. Örneğin stdio.h sisteme ait bir kütüphane dosyasıdır. Dolayısıyla stdio.h kütüphanesini programımıza eklerken, #include<stdio.h> şeklinde yazarız. Kendi oluşturduğumuz başlık dosyaları içinse, durum biraz daha farklıdır. Çalışma ortamımızla aynı klasörde olan bir başlık dosyasını, programımıza eklemek için #include "benim.h" şeklinde yazarız. 30

Program 31

Örnek Problem Klavyeden girilen bir sayının 3 e bölümünden kalanı bulan programı yazın. 32

33