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

Slides:



Advertisements
Benzer bir sunumlar
Bilgisayar Bilimlerine Giriş-2
Advertisements

STRİNG FONKSİYONLARI.
Bölüm 12 ÜST DÜZEY KONULAR Dinamik Bellek Ayırma Önişlemci
Değişken , Veri Türleri ve Operatörler
C PROGRAMLAMA DİLİNE GİRİŞ
Bölüm 2 C Dilinin Temelleri
Değişken Tanımlamaları
C Programlama Diline Giriş
C PROGRAMLAMA DİLİNE GİRİŞ
Değişken Bildirimleri
Atama ve Girdi/Çıktı Komutları
OOP4 LAB.
Elektrik-Elektronik Mühendisliği Bölümü DİZİLER C Programlama Dili Yaz Stajı Cengiz TEPE SAMSUN 2007.
Operatörler.
Bölüm 2 C Dilinin Temelleri Genel Kavramlar
Nesneye Dayalı Programlama
Fonksiyonlar.
C Programlama Dili ve Gömülü Sistemler için MikroC
Bilgisayar Programlama
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
C ile Programlamaya Giriş
DEĞİŞKENLER, VERİ TÜRLERİ VE OPERATÖRLER
Temel Veri Türleri ve Operatörler
FONKSİYONLAR.
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
Bilgisayar Programlama
Bölüm 1: C Programlama Diline Giriş
Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
Temel Giriş/Çıkış Fonksiyonları
C Programlama Diline Giriş
VERİ TİPLERİ VE DEĞİŞKENLER
Bölüm 6 Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
STRING‘LER Karakter Kütüphanesi Fonksiyonları
Değerler ve Değişkenler
C PROGRAMLAMA DİLİ YRD.DOÇ.DR. BUKET DOĞAN 1.
Bölüm 2 C Diline Genel Bir Bakış. 1/29 /* Örnek1- toplama.c Klavyeden girilen iki tamsayının toplamını bulup ekrana yazar. Erkan Yasan */ #include.
Bugünkü konular Programlama dilleri ve Syntax Generic C Program yapısı
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
2. HAFTA 2. Hafta.
Algoritmalar ve Programlama I Ders 5: Operatörler
Bölüm 3 Atama ve Girdi/Çıktı Komutları Bölüm 3 Atama ve Girdi/Çıktı Komutları Atama Komutu Operatörler İsim Sabitleri Veri Tipi Dönüşümü Çıktı Fonksiyonu.
4. Hafta1 4. HAFTA. 4. Hafta2 Fonksiyonlar  Büyük problemler, küçük parçalara bölünerek kolay çözülür  Yazılımlar benzer modüller içerirler  Hata ayıklama.
Fonksiyonlar.
Adım Adım Algoritma.
SAYISAL ANALİZ Doç.Dr. Cüneyt BAYILMIŞ.
VERİ ve BELLEK & DEĞİŞKENLERİN SAKLANMASI Asst.Prof.Dr.Misket YEKTAY Gizem AYIK.
Bölüm 2 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.
Programlamaya Giriş-I Bölüm-1. Algoritma Algoritma günlük yaşamımızda yaptığımız işler sırasında sıklıkla kullandığımız bir yöntemdir. Algoritma, bir.
PROGRAMLAMAYA GİRİŞ.
Bölüm 3 Atama ve Girdi/Çıktı Komutları
Fonksiyonlar ve Diziler
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
C Programlama Dili Bilgisayar Mühendisliği.
C Programlama Diline Giriş
Bölüm 2 C Dilinin Temelleri
ACTIONSCRIPT TEMELLER İ SAVAŞ TUNÇER
Bölüm 1: C Programlama Diline Giriş
2.2. Özel Semboller ve Pascal Sözcükleri
PROGRAM KONTROL KOMUTLARI 1. if koşulu 2. if else koşulu
ARDUİNO Arduino Eğitimleri Bölüm 3 Programlama Dili Temelleri
BLM-111 PROGRAMLAMA DİLLERİ I Ders-2 Değişken Kavramı ve Temel Operatörler Yrd. Doç. Dr. Ümit ATİLA
Bilgisayar Bilimi Problem Çözme Süreci-2.
2.2. Özel Semboller ve Pascal Sözcükleri
Akis diyagramı Örnekleri
Bölüm 3 Atama ve Girdi/Çıktı Komutları
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Bölüm 2 C Dilinin Temelleri
C ile Programlamaya Giriş
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

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

C Dilinin Tarihçesi 1972‘ de Dennis Ritchie tarafından AT&T Bell Laboratuarlarında B dilinden geliştirildi. C dili konusundaki ilk kitap 1978‘ de Dennis Ritchie ve Brain Kernighan tarafından yazıldı. Bu tarihten sonra bir çok C uygulaması geliştirildi. Belli bir standarda göre hareket etmediklerinden uygulamalar arasında farklılıklar ortaya çıktı. 1983 de ANSI (American National Standard Institute) C standardı oluşturuldu.

C Dilinin Özellikleri C dili donanımdan bağımsız (machine independent) ve taşınabilirdir (portable). Taşınabilirlik, aynı programın farklı donanımlarda ve farklı işletim sistemlerinde işletilebilirliğini ifade eder. Bir dilin verimliliği (productivity), hızlı fakat fazla yer kaplamayan yazılımlar geliştirmeye olanak sağlaması ile ölçülür. C Programlama dili verimli, basit, fakat güçlü yapısından ve bu dilde geliştirilen uygulamaların taşınabilir olmasından dolayı yaygın olarak kullanılmaktadır.

C Programlarının Temel Yapısı Bir C programı iki temel bölümden oluşur; Önişlemci Direktifleri (Preprocessor Directives) . Ana Fonksiyon (main function)

Önişlemci Direktifleri Önişlemci direktifleri # işareti ile başlar ve program derlenmeden önce C önişlemcisi tarafından işletilir. Her bir önişlemci direktifinin farklı bir görevi vardır. #include ve #define en çok kullanılan direktiflerdir. #include direktifi program içerisinde kullanılan fonksiyonlar için gerekli kodları programa dahil etmek için kullanılır.

Önişlemci Direktifleri Örneğin tasarladığımız programda ekrana çıktı yazdırmak istiyoruz. Bunun için C dilinin standart bir fonksiyonu olan printf fonksiyonunu kullanmamız gerekir. Printf(“Örnek Çıktı”); Ancak printf fonksiyonunun çalışabilmesi için <stdio.h> isimli dosyaya ihtiyacımız olacaktır. Bu dosyayı programa dahil etmek için program kodunun en tepesine #include <stdio.h> komut satırı yazılır. C dilinde .h uzantılı dosyalara başlık dosyası (Header File) adı verilir. stdio.h başlık dosyası standart giriş çıkış işlemleri için gerekli kodları içerir.

Main Fonksiyonu Hemen hemen bütün C programları birden fazla fonksiyondan oluşur. main() bütün C programlarında bulunması gereken programın ana fonksiyonu yani gövdesidir. İlk çalıştırılacak olan fonksiyondur. Programda çalıştırılacak ifadeler (kod satırları) { - } küme parantezleri içinde yazılırlar. Her parantez çiftinin oluşturduğu yapılara kod blokları denir. Bir kod bloğu içerisinde program içerisinde kullanılacak değişkenler ve gerçekleştirilecek işlemleri yerine getirecek komutlar bulunur.

Basit Bir C Programı Ana fonksiyon Açıklama satırları (comment) Blok başlangıcı ve bitişi Önişlemci direktifi Başlık (header) dosyası Ekrana “Merhaba Dünya” yazan bir program

C dilinin genel yazım kuralları C dili birden fazla satırdan oluşan açıklama satırlarına izin verir. Bu açıklama satırları programın ne iş yaptığı hakkında bilgi verir. Açıklama satırları /* ile başlayıp */ ile sona erer. Derleyici bu satırları çalışma anında dikkate almaz. C de her bir işletilebilir ifade (komut satırı) ; ile sonlandırılır. Bütün anahtar kelimeler ve komutlar küçük harfle yazılır (#define hariç). C dili büyük-küçük harf duyarlıdır. (“ TOPLAM”, “toplam” ve “tOpLaM” kelimelerinin hepsi C derleyicisi tarafından ayrı ayrı algılanır.)

İşleçler (Operator) İşleç (operatör), matematiksel, mantıksal ve atama işlemlerini gerçekleştirmek için kullanılan simgelerdir. Bu işleçler ile işleme giren değerlere işlenen (operand) adı verilir. Örneğin a=b+c işleminde a, b, c değişken = ve + ise operatördür Operatörler birden fazla operand alabilirler. Tek operand alanlara unary operatörler denilir. C dilinde kullanılan operatörler üç grupta incelenir. Matematiksel, Mantıksal ve Atama operatörleri.

Matematiksel operatörler Matematikteki ifade C dilindeki ifade işlem x * çarpma Mod % modüler bölme / bölme +1 ++ 1 artırma (unary increment) -1 -- 1 eksiltme (unary decrement) + Toplama - çıkarma Unary operatörlerin ifadenin sağında yada solunda olması ile anlam değişik olur. A++ (postincrement) Önce A‟yı kullan sonra içindeki değeri 1 artır. ++A (preincrement) Önce A‟yı 1 artır sonra bu artırılmış değeri kullan. A-- (postdecrement) Önce A‟yı kullan sonra içindeki değeri 1 azalt. --A (predecrement) Önce A‟yı 1 eksilt sonra bu eksiltilmiş değeri kullan.

Matematiksel operatörler Unary operatörlerin ifadenin sağında yada solunda olması durumunda oluşan anlam farklılığına bir örnek; a=4 , b=5 olsun. İşlem İşlemlerin gerçekleştirilme sırası Değişkenlerin son değerleri c=a++ *b c=a*b a=a+1 c=4*5=20 a=4+1=5 a=5 b=5 c=20 c=++a –b a=a+1 c=a-b a=4+1=5 c=5-5=0 c=0 c=--a + b-- a=a+1 c=a+b b=b-1 a=4-1=3 c=3+5=8 b=5-1=4 a=3 b=4 c=8

Mantıksal operatörler Matematikteki ifade C dilindeki ifade işlem > Büyük < Küçük ≤ <= Küçük veya eşit ≥ >= Büyük veya eşit = == Eşit (karşılaştırma) ≠ != Eşit değil ^ && Ve (And) V || Veya (Or) „ ! Değil (not-invert)

Mantıksal operatörler Ve (&&) A B işlem sonuç Hayır A && B Evet Veya (||) A B işlem sonuç Hayır A || B Evet

Atama operatörleri Operatör İşlem = Atama += Toplayarak atama -= Eksilterek atama *= Çarparak atama /= Bölerek atama %= Mod alarak atama

Bitwise operatörleri Bir sayının yada karakterin bitleri üzerinde direkt olarak işlem yapmak için kullanılırlar. Dosya sıkıştırma algoritmaları veya şifreleme algoritmalarında çok sık kullanılırlar. Operatör İşlem & Bitwise Ve (AND) | Bitwise Veya (OR) ^ Ya da (XOR) ~ Bire tümleme << Sola Öteleme >> Sağa öteleme

Bitwise operatörleri Char kr=3; 0000 0001 3 kr<<4 0011 0000 48

Değişken tanımlamaları (Definition) ve Veri türleri (Data Type) Programda kullanılacak bütün değişkenlerin kullanılmadan önce C derleyicisine bildirilmesi gerekir. Değişkenleri derleyiciye bildirme işine değişken tanımlama (variable definition) denir. Değişken tanımlamak, değişken için bir isim seçmek ve içerisinde ne tür bir veri saklanacağını söylemekle yapılır. Her değişkenin ismi, veri türü ve değeri vardır. Değişken ismi değişken saklayacak bellek hücresine verilecek isim. Veri türü saklanan bilginin türü (ondalık sayı, tam sayı..). Değeri ise değişken içinde saklanan bilginin kendisidir.

Değişken tanımlamaları (Definition) ve Veri türleri (Data Type) BELLEK ... a=b+c ... a 000A 000A = 00FE+00FF 000B ... b c 3 2 00FE 00FF a=5 ...

Değişken isimlendirme Programda kullanılacak değişken isimleri programcı tarafından tanımlanır. Değişkenlere isim verirken aşağıdaki kurallara uyulmalıdır. C dilinin kendine özgü anahtar sözcükleri, komut veya fonksiyon adları değişken ismi olarak kullanılamaz. Değişken isimleri içerisinde, a-z ve A-Z arası İngilizce harfleri, 0-9 arası rakamlar ve özel karakter olarak sadece alt çizgi (_) karakteri kullanılabilir. Özel karakterler (+,-,! vs.) ve Türkçe karakterler kullanılmaz.  Maaş, öğrenci, sınıf -> bunlar değişken adı olarak kullanılamaz. Değişken ismi rakam ile başlayamaz.  1. vize (yanlış) vize1 (doğru)

C dilinin bazı Anahtar Sözcükleri

Veri türleri char, int , float ve double. Veri türü, değişken içerisinde tutulan değerin tipini belirler (tamsayı, ondalık sayı, karakter, vs.). C dilinde dört temel veri tipi (türü) vardır. char, int , float ve double. char: bir harf, bir rakam veya özel bir simgeyi saklamak için kullanılan veri tipidir. char tipindeki her bir değer tek tırnak arasına yazılmalıdır ('A', 'z‘, '2', '*'). char tipinde tanımlanan bir değişkenin tuttuğu değer karakterin ASCII tablosundaki sayısal karşılığıdır. int: -32768 ile +32768 arasındaki tam sayı değerlerini saklamak için kullanılır. Bir sayının işaretsiz olması için unsigned ifadesi başına eklenir. float: ondalıklı olarak verilen sayıları ifade edebilmek için kullanılır. double: ondalıklı olarak verilen çok küçük ve çok büyü sayıları ifade edebilmek için kullanılır. float türünden iki kat daha fazla duyarlılığa sahiptir.

Veri tipleri, kapladığı alanlar (size) ve değer aralıkları (range)

C dili tip boyutları

Değişken tanımlama yerleri, şekilleri ve ilk değer atama Standart C de üç farklı yerde değişken tanımlanabilir. fonksiyonların üstünde (genel - global), blokların { } içerisinde (yerel - local) ilk sırada ve fonksiyonlarda parametre olarak. İlk değer ataması yapılmayan değişkenlerin değerleri (eğer main fonksiyonunun üstünde tanımlanmışsa) sayısal olanlar 0 diğerleri boş (NULL) olarak belirlenir, eğer main içinde tanımlanmışsa bellekte rastgele değerler olarak belirlenir. İlk değer atama

Değişkenlerin Yerel (local) Bildirimi Kullanıldıkları fonksiyon içerisinde tanımlanan değişkenler yerel değişkenlerdir. Yalnızca tanımlandıkları fonksiyon içerisinde kullanılabilirler. Farklı fonksiyonlar içerisinde aynı isime sahip değişkenler bulunabilir. Bir fonksiyonun çalışması sonlandığı zaman o fonksiyon içerisinde tanımlanan yerel değişkenler kullanılmazlar. #include <stdio.h> int main(){ int c=10, b=4; //yerel değişken tanımlamaları printf(‘’ %d ve %d yerel değişkenler olarak tanımlandı‘’, c, b); }

Değişkenlerin Genel (Global) Bildirimi Tüm fonksiyonları dışında bildirilen değişkenlerdir. Tüm fonksiyonlar ortak olarak kullanabilirler. Bir programda aynı anda aynı isime sahip birden fazla global değişken bulunamaz. #include <stdio.h> int c=10, b=4; //global değişken tanımlamaları int main(){ printf(‘’ %d ve %d global değişkenler olarak tanımlandı‘’, c, b); }

Dışsal (extern) Bildirim Büyük boyutlu programlar genellikle farklı dosyalara parçalanır ve bu parçalar ayrı ayrı yazılarak bir araya getirilir. Bu işlem derlemede kolaylık sağlar. Parçalanmış olan dosyalar bir defa derlenirler ve eğer yazımlarında hata yoksa her seferinde tekrar derlenmezler başarılı oluşturulmuş dosyalar diğer uygulamalarda kullanılabilirler. Bazen bir genel değişkenin birden fazla dosyada ortak kullanılması gerekebilir. Bu durumda değişken bir dosyada tanımlanır ve diğer dosyalarda dışsal(extern) olarak bildirilir.

Dışsal (extern) Bildirim deger.c hesap.c #include <stdio.h> int istemci_sayisi = 25; int ekrana_yaz() { printf(‘’%d’’, istemci_sayisi); return 1; } #include <stdio.h> extern int istemci_sayisi; int main() { int ag=0, band_genisligi = 1; //Mbps ag = istemci_sayisi * band_genisligi; return 0; }

Statik (static) Değişken Bildirimi İçerisinde lokal değişken tanımlanan fonksiyonu her çağrıldığında, önceki değer silinir. Ancak, bir fonksiyon içinde statik lokal bir değişken tanımladığında , fonksiyonu her çağrıldığında önceki değerini korur. Bunu yapabilmek için yerel değişkenin static tanımlanması gereklidir.

volatile Tanımlı Değişken Bildirimi C derleyicileri bir programı derlerken istenilirse bellek kullanımı ve hız açısından optimizasyon yapabilirler. Ama bazı değişkenlerin optimizasyon işlemine sokulması istenmeyen beklenmedik hatalara neden olabilir. Bazı değişkenler üzerinde optimizasyon yapılmasını engellemek için “volatile” ifadesi değişken bildiriminde kullanılır. Örneğin volatile int a; //a değişkenindeki optimizasyonu engeller.

Sabit (const) Bildirimi Bazen uygulamada tanımlanan değişkenin değerinin uygulama içinde değiştirilmemesi istenir, bu gibi durumlarda sabit değişken tanımı yapılır. Örn: const float pi=3.142857; const char dolar=“$”; #include "stdio.h" main( ){ const int d1=1; d1++; printf("%d",d1); } Yandaki program derlenemez çünkü d1 değeri sabit olarak atanmıştır ve program içerisinde arttırılmaya çalışılmaktadır

int toplam=0x1e; //onaltılık (0x) int toplam=036; //sekizlik (0) Tam Sayı Tabanı Bir tamsayıyı uygulamada tanımlarken ondalık, sekizlik ve onaltılık tabanda yazabiliriz. Örn : int toplam=30; int toplam=0x1e; //onaltılık (0x) int toplam=036; //sekizlik (0)

Gerçel Sayılar Gerçel sayılar kayan noktalı(floating point) gösterimle bellekte saklanırlar. Duyarlılık: virgülden sonraki kesir kısmı Tek duyarlı : float Çift duyarlı: double Uzun çift duyarlı: long double Bir gerçel sayı belirtilmediği sürece çift duyarlı kabul edilir. Sayının sonuna F yada f eklenerek tek duyarlı, L yada l eklenerek uzun çift duyarlı olduğu belirtilir.

Programlama Dilleri-ders02/ Gerçel Sayılar Program yazılırken gerçel sayı iki şekilde yazılabilir, iki gösterimde aynıdır. float f=1234.5; float f=0.12345E+4; E harfinden sonraki sayı 10 nun kuvveti olarak değerlendirilir ve önündeki sayı ile çarpılır. 24.33E-5 = 0.0002433 1.0E-10 = 0.0000000001 Programlama Dilleri-ders02/

C’de Tip Dönüşümü (veri tipi) ifade Kodu ifadenin tipinin parantez içine alınmış olan tipe dönüştürüleceğini gösterir. Gerçekte, parantez içine alınmış olan tip, ifadenin değerini amaçlanan tipe dönüştüren özel bir işleçtir.

Genel giriş-çıkış fonksiyonları Geliştirilen bir programda kullanıcıdan bilgi (veri) almak ve kullanıcıya bilgi göstermek en temel kullanıcı etkileşim işlemleridir. C dilinde bütün giriş-çıkış operasyonları giriş ve çıkış fonksiyonları (input-output functions) ile gerçekleştirilir. C de kullanılan standart giriş-çıkış fonksiyonları, printf() ve scanf() dir. Bu fonksiyonlar C standart giriş çıkış kütüphanesinde stdio.h bulunurlar. Giriş-çıkış fonksiyonlarını program içerisinde kullanabilmek için stdio.h başlık dosyasının programa dahil edilmesi gerekir. #include <stdio.h>

printf() fonksiyonu printf(çıktı metin formatı, değişken listesi) Değişkenlerin değerlerini, hesaplanan sonuçları yada mesajları ekranda göstermek için kullanılır. printf() fonksiyonu, fonksiyon ismi ve parantezler içindeki parametreler olmak üzere iki kısımdan oluşur. printf() fonksiyonu, parametre olarak görüntülenecek bilginin hangi biçimde görüntüleneceğini bildiren çıktı metin formatını ve bu formatın içinde yazdırılacak olan değişkenler listesini alır. Genel kullanım formatı aşağıdaki gibidir. printf(çıktı metin formatı, değişken listesi)  printf(“Hesaplanan Yaşınız: %d dir \n”, yas); printf(çıktı metin formatı)  printf(“Merhaba Dünya”);

printf() fonksiyonu printf çıktı formatındaki % karakterinin dışındaki tüm karakterleri ekrana yazar. % karakterini gördüğünde bunun sağındaki karakteri yazdırılacak değişkenin format karakteri olarak ele alır. printf çıktı formatındaki \ karakterine escape karakteri denir. Bu karakterden sonra gelen karakter ise escape serisini ifade eder. Örneğin \n ifadesi, çıktı ekranında yeni bir satıra geçilmesi gerektiğini ifade eder. Escape serileri Anlamı \n Yeni satıra geç. \t Bir sonraki sekme durağına (tab stop) geç. \a İkaz (alert). Beep sesi \\ Ters bölü (black slash) işaretini yazdırmak. \” Tırnak işaretini yazdırmak içi.

printf() fonksiyonu

scanf() fonksiyonu Değişkenlerin içerisine klavyeden değer atamak için kullanılır. Fonksiyon ismi ve parametrelerden oluşur. Parametre olarak, girilecek değerin hangi formatta olacağını bildiren girdi formatını ve bu formata göre girilecek değişkenler listesini alır. scanf fonksiyonunda dışarıdan değer girilecek bütün değişkenlerin başına & işareti konur. Bu işaret bellek operatörüdür, değişkenlerin tutulduğu bellek hücresinin adresini okur.

Format karakterleri Format Karakterleri Anlamı d Tamsayılar için (onluk sistemde) i Tamsayılar için (onluk, sekizlik ve onaltılık sistemde) lx Uzun tamsayıları onaltılık (hex) sistemde ld Uzun tamsayılar için (onluk sistemde) o Tamsayılar için (sekizlik sistemde) x Tamsayılar için (onaltılık (hex) sistemde) X Tamsayılar için (onaltılık (hex) sistemde büyük harfle) u İşaretsiz tamsayılar için c Char tipinde değişkenler (karakterler) için s Metin (string) f Float değişkenler için E , e Double ve float türlerini üstel gösterimde yazmak için lf Double değişkenler için

printf basit bir uygulama

scanf basit örnek

Uygulamalar Klavyeden girilen üç gerçel sayının ilk ikisinin toplamını üçüncüsüne bölen ve sonucu ekrana yazan programı C dilinde yazınız. Klavyeden girilen tam sayının fibonacci serisini ekrana yazan programı C dilinde yazınız. Klavyeden girilen 10 tam sayı değeri içerisinde en küçük değeri bulup ekrana yazdıran programı C ile yazınız.