C Programlama Diline Giriş

Slides:



Advertisements
Benzer bir sunumlar
switch - case Yapısı Döngü Yapıları
Advertisements

C Programlama Diline Giriş
DÖNGÜLER.
C Programlama Diline Giriş
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Algoritma.  Algoritma, belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.  Başka bir deyişle; bir sorunu çözebilmek için gerekli olan.
BİLGİSAYAR PROGRAMLAMA Ders 2: Algoritma ve Akış Şemaları
BÖLÜM 4 PROGRAMLAMA DİLLERİ. PROGRAMLAMA DİLLERİNDE KULLANILAN VERİ TİPLERİ Bilgisayarda işlenen veriler iki türdür: Sayısal Alfasayısal.
BİLGİSAYAR PROGRAMLAMA Ders 11: İşaretçi (Pointer) Kullanımı Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
BİLGİSAYAR PROGRAMLAMA MATLAB Yrd.Doç.Dr. Cengiz Tepe.
Örnek 1 Kullanıcının girdiği bir sayının karesini hesaplayan bir program yazınız.
TC Windows Editörü DevC++. KURULUM PROGRAMIN KURULACAĞI YER BURADA BELİRLENİYOR.
PHP Nedir? ● Bir web sayfası oluşturabilmeniz için: ● HTML kullanmalısınız. ● Sayfadaki etkileşimi artırmak için ● JavaScript/VBScript ● Görselliği bütün.
Örnek Sorular Bilgisayar Programlama BIL 107. Soru 1: Ekran çıktısında 66 yazması için boşlukları doldurunuz ______ i = 'A'; printf(____, i__); CEVAP:
Bölüm 5 Döngü Komutları while Komutu while Komutu Diğer Operatörler (Bileşik atama, artırma ve azaltma operatörleri ) Diğer Operatörler (Bileşik atama,
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
1 Bölüm 2 C Dilinin Temelleri Alıştırmalar Bu bölümdeki problemler “C Dersi Çözümlü Problem Kitabı”, N. E. Ça ğ ıltay, C. E. Selbes, G. Tokdemir, ve Ç.
Bölüm 2 C Dilinin Temelleri
BİLGİSAYAR PROGRAMLAMA DERSİ
Excel 2007.
Printf Bu komut ekrana çıktı veren komuttur. Pascalda kullanılan writeln komutuyla aynı anlamdadır.
C Programlama Dili Çağdaş Hakan Aladağ.
Algoritma ve Programlamaya Giriş
BM-103 Programlamaya Giriş Güz 2016 (3. Sunu)
EETE233 Mikrodenetleyiciler ArduIno ile Programlama
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
BİLGİSAYAR PROGRAMLAMA Ders 3: C ile Programlamaya Giriş
Problem Çözme ve Algoritmalar
Yapay Sinir Ağı Modeli (öğretmenli öğrenme) Çok Katmanlı Algılayıcı
C Programlama Yrd.Doç.Dr. Ziynet PAMUK BMM211-H05
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
BİLGİSAYAR PROGRAMLAMA Ders 11: İşaretçi (Pointer) Kullanımı
Algoritma ve Programlamaya Giriş
C PROGRAMLAMADA AKIŞ KONTROLÜ
Algoritma ve Programlamaya Giriş
BİLGİSAYAR PROGRAMLAMA Ders 4: Koşula Göre İşlem Yapma
Bölüm 3 Atama ve Girdi/Çıktı Komutları
PROBLEM ÇÖZME VE ALGORİTMALAR
Bilgisayar Programlama
Bilgisayar Mühendisliğine Giriş
3.hafta METODLAR.
Bölüm 7 İfadeler ve atamalar.
BİLGİSAYAR programlama II
BİLGİSAYAR programlama II
NİŞANTAŞI ÜNİVERSİTESİ
Bölüm 4: Kontrol Yapıları I (Seçim Yapma)
Doğrusal Mantık Yapısı İle Problem Çözme
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
Fortran Proglama Dili’nin Esasları
Bilgisayar Bilimi Koşullu Durumlar.
Bilgisayar II 8 Mart Mart
Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
?: KARŞILAŞTIRMA OPERATÖRÜ
NİŞANTAŞI ÜNİVERSİTESİ
Fonksiyonlar ve Alt Programlar
6. DÖNGÜ (TEKRARLAMA) DEYİMLERİ
Bilgisayar Bilimi Fonksiyon Yazma.
Değerler ve Değişkenler
NİŞANTAŞI ÜNİVERSİTESİ
WHILE DÖNGÜSÜ while (şart) { ifade 1; ifade 2; }
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
BLM-111 PROGRAMLAMA DİLLERİ I Ders-10 Diziler
NİŞANTAŞI ÜNİVERSİTESİ
MTM216 GÖRSEL PROGRAMLAMA
Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

C Programlama Diline Giriş

Tarihçe C Programlama Dili genel amaçlı orta seviyeli ve yapısal bir programlama dilidir. 1972 yılında Dennis Ritchie tarafından Bell Telefon Labaratuvarında Unix işletim sistemi ile kullanılmak için tasarlanmıştır. C, özellikle sistem programlamada sembolik makine dili (Asembler) ile tercih edilmektedir. İşletim sistemleri, derleyiciler ve debug gibi aşağı seviyeli sistem programlarının yazılımında yoğun olarak C programlama dili kullanılır. C taşınabilir (portable) bir dildir. Yani herhangi bir C programı hiçbir değişikliğe uğramadan, veya çok az bir değişimle, başka bir derleyicide ve/veya işletim sisteminde derlenebilir. Örneğin, Windows işletim sistemlerinde yazılan bir C kodu, Linux veya UNIX gibi işletim sistemlerinde de derlenebilir.

C dilinin Avantajları C Programlama Dili'ni popüler kılan önemli nedenler aşağıda listelenmiştir: C, güçlü ve esnek bir dildir. C ile işletim sistemi veya derleyici yazabilir, kelime işlemciler oluşturabilir veya grafik çizebilirsiniz. C, iyi bir yazılım geliştirme ortamına sahiptir. C, özel komut ve veri tipi tanımlamasına izin verir. C, taşınabilir bir dildir. C, gelişimini tamamlamış ve standardı oluşmuş bir dildir. C, yapısal bir dildir. C kodları fonksiyon olarak adlandıralan alt programlardan oluşmuştur. C++, Java, JavaScript, JavaApplet, PHP, C#, ... gibi diller C dilinden esinlenmiştir.

C Derleyicileri En sık kullanılan C derleyicileri TURBO C, DEVC++,MICROSOFT VISUAL C++ dır.

C Program Yapısı #include <stdio.h> main() { /* Önişlemci talimatı. Belirli bir dosyanın içeriğini bilgisayara yüklemesini söyler. */ #include <stdio.h> /* program çalışmaya main fonksiyonu ile başlar */ main() { Komut1; Komut2; Komutn; } /* main fonksiyonunun bitişi */

C Program yapısı main() C programları bir yada daha fazla fonksiyon içerebilirler. Ama bunların içinden mutlaka bir tanesi main olmak zorundadır. Parentezler fonksiyon olduğunu gösterir. Küme parantezi ({ ve }) bir blok olduğunu gösterir. Her fonksiyonun gövde kodları küme parantezleri içinde yazılır.

C kütüphaneleri(header dosyaları) <stdio.h> standart giriş/çıkış işlemlerine izin verir. <string.h> String fonksiyonlarını içerir. <math.h> Matematik fonksiyonlarını içerir. <conio.h>Klavye ve ekran kullanımı için gerekli fonksiyonları barındırır. Örneğin getch() <stdlib.h> min, max gibi iki makronun, exit_failure gibi standart birkaç değerin, bazı ana limitlerin, kalanlı bolüm structure'larının tanımını, ve birkaç standart fonksiyonun prototipini içerir.

Giriş Çıkış Komutları

Printf komutu Ekrana çıkış alma komutudur. Kullanımı: 1: Printf(“Ekrana yazılacak bilgi”); Eğer yazdırma işleminden sonra programın bir işlem yapması isteniyorsa şöyle yazılır: 2: printf(“Deneme\n”);

İşaretler ve anlamları \nİmlec yeni satırın başına geçer. \tTab işareti. \\  Ters bölü işareti. \” Çift tırnak işareti.

Örnek-1 main() { printf( "C diline " ); printf( "hoş geldiniz\n" ); }

Printf formatlı yazdırma Printf komutuyla ekrana değer yazdırmak için aşağıdaki semboller kullanılır. %d=Tamsayı değişkenleri yazdırmada kullanılır. %f=Ondalık sayı değişenleri yazdırmada kullanılır. %c=String değişkenleri karakter karakter yazdırmada kullanılır. %s=String değişkenleri yazdırma kullanılır.

Örnek-2 #include <stdio.h> main() { int sayi=5; printf("Sayı:%d",sayi); }

Örnek-3 #include <stdio.h> main() { float a=5.35; printf("%1.2f",a); }

Örnek-4 #include <stdio.h> main() { char ad[10]="ali"; printf("%s",ad); }

Örnek-5 #include <stdio.h> main() { char ad[10]="ali"; printf("%c",ad[0]); }

Scanf Komutu Klavyeden veri girişi yapmak için kullanılan komuttur. Scanf komutunun kullanımı aşağıdaki gibidir. Scanf(“okuma formatı”, değişken)

Scanf formatlı okuma Scanf komutuyla ekrandan değer okutmak için aşağıdaki semboller kullanılır. %d=Tamsayı değişkenleri okutmada kullanılır. %f=Ondalık sayı değişkenleri okutmada kullanılır. %c=String değişkenleri karakter karakter okutmada kullanılır. %s=String değişkenleri okutmada kullanılır.

Örnek-6 #include <stdio.h> main() { int sayi; scanf("%d",&sayi); printf("girilen sayı : %d\n",sayi); }

Örnek-7 #include <stdio.h> main() { float sayi; scanf("%f",&sayi); printf("girilen sayı : %1.1f\n",sayi); }

Değişken Tanımlamaları

Değişkenler Değişkenler bilgisayar hafızasındaki yerlere karşılık gelen konumları belirtir. Her değişkenin bir ismi, tipi, boyutu ve bir değeri vardır. Bir değişkene yeni bir değer atandığı zaman önceki değer silinir, yeni değer onun yerine yerleşir. Hafızadan değişkenleri okumak ile değerleri değişmez.

Değişkenler Şekilsel gösterim tamsayi1 45 tamsayi1 45 tamsayi2 72 toplam 117

Temel Değişken Tipleri C dilinin değişken tipleri tanımlamak için aşağıdaki komutlar kullanılır. • int (integer) - tamsayı • float (floating point) - ondalıklı sayı • double – çift duyarlıklı ondalıklı sayı • char (character) – karakter türünde veri

Değişken tanımlama kuralları C dili komutları değişken adı olarak verilemez. (Örneğin if, for, case gibi) Değişken isimi birden çok kelimeden oluşacaksa aralarına boşluk verilmez. Örneğin “maksimum sayi” adında bir değişken tanımlamaz ama “maksimum_sayi” yada “MaksimumSayi” gibi değişken tanımlanabilir. Değişken adları sayı ile başlamaz. Örneğin “2sayi” gibi bir değişken adı olmaz. NOT: C dili değişken isimlendirmede küçük harf büyük harf duyarlıdır. O yüzden büyük harfle tanımladığınız değişkeni program içinde aynen kullanınız.

Örnek-8 #include <stdio.h> main(){ } int sayi; printf(" sayı giriniz:"); scanf("%d",&sayi); printf("%d",sayi); }

Değişken tanımlama örnekleri 1: int x; 2: int a,b,c; 3: float OrtalamaNot;

Değişkenlere değer atama 1: int x=5; 2: int a=2,b=5,c=1; 3: float OrtalamaNot=50.5;

Örnek-10 #include <stdio.h> main(){ int pi = (int)3.1415926535; printf(" %d",pi); } Bu örnekte pi değeri int tipine dönüştürülüyor.

Aritmetik Hesaplamalar-Operatörler * çarpma işlemi ve / bölme işlemi için kullanılır. Tamsayı bölümü kalanı iptal ederek sonucu verir. 7 / 5 sonucunu 1 olarak verir. Mod operatörü (%) bölüm işleminde kalanı geri döndürür. 7 % 5 sonucunu 2 olarak verir

Aritmetik Hesaplamalar-Operatörler Operatör önceliği Bazı aritmetik operatörler diğerlerinden önce işleme girerler. Öncelik sırası çarpma, bölme, toplama, çıkarma şeklindedir. Yalnız öncelik sırası değiştirilmek istenirse parantezler kullanılmalıdır. Örnek: a, b ve c değişkenlerinin ortalamasının bulunması (a + b + c ) / 3 şeklindedir.

Aritmetik operatörler Operatörlerin öncelik kuralları:

Değişkenlere değer atama Program içerisinde bir değişkene değer atama örnekleri aşağıda verilmiştir. A=5; B=a/2; a = 11 % 7; miktar *= birimSayisi; (miktar = miktar * birimSayisi;) para /= kisiSayisi; (para = para / kisiSayisi;) saniye += 4; (saniye = saniye + 4;) toplam -= kayip; (toplam = toplam - kayip;) faz %= peryod; (faz = faz % peryod;)

Değişkenlere değer atama-2 ++ ve – operatörleri ile bir değişkenin değeri artırılıp azaltılabilir. x++; (x = x + 1;) y--; (y = y – 1;) Örnek: x = 10; a = x++;  Burada a = 10, x = 11 olacaktır. ‘a’ ‘x’e eşitlenir ve ‘x’in değeri bir arttırılır. Örnek-2 a = ++x;   Burada ise a = 11, x = 11 olacaktır. Burada öncelikle ‘x’ bir arttırılır, değeri 11 olur ve daha sonra bu yeni değer ‘a’ya eşitlenir. NOT: ‘++’ ve ‘--' operatörleri değişkenlerden önce yazıldıklarında ‘prefix’, sonra yazıldıklarında ‘postfix’ isimlerini alırlar.

Örnek-11 #include <stdio.h> #include <conio.h> main() { int a=3,b,c; b = c = a; printf("%d",b); }

Örnek-12 #include <stdio.h> #include <conio.h> main() { int a, b; a = b = 10; printf("a:%d\nb:%d\n\n", a, b); a++; ++b; printf("a:%d\n b:%d\n\n", a, b); printf("a:%d\n b:%d\n\n", a++, ++b); }

Örnek-12 Sonucu a:10 b:10 a:11 b:11 a:11 b:12 a:12 b:12

Mantıksal Operatörler

Mantıksal Bağlaçlar VE(and) Bağlacı: Birden çok şart olduğunda ve her şartın doğru olması durumunda işlemlerin yapılması istenirse ve bağlacı kullanılır. C Dilinde VE bağlacı & işaretiyle gösterilir. Örneğin a,b ve c sayılarının klavyeden girildiği varsayılsın. Bu 3 sayının eşit olma durumu VE bağlacıyla şöyle ifade edilir. (a==b)&&(a==c) yada (a==b)&&(a==c)&&(b==c) şeklinde yazılır.

Mantıksal Bağlaçlar VEYA(or) Bağlacı: Birden çok şart olduğunda ve her şartlardan herhangi birisinin doğru olması durumunda işlemlerin yapılması istenirse veya bağlacı kullanılır. C Dilinde VEYA bağlacı || işaretiyle gösterilir. Örneğin a,b ve c sayılarının klavyeden girildiği varsayılsın. Bu 3 sayıdan yanlızca ikisinin eşit olma durumu VEYA bağlacıyla şöyle ifade edilir. (a==b)||(a==c)||(b==c) şeklinde yazılır.

Kontrol Yapıları

İf Blok Yapısı C dilinde karşılaştırma işlemleri için if blok yapısı kullanılır. En basit kullanımı şu şekildedir. if(koşul) { ... deyimler; (küme) }

İf-else yapısı if(koşul) { ... deyimler;(küme1) ... } else { ... deyimler;(küme2) ...

İf-elseif yapısı if(koşul) { ... deyimler;(küme1) ... } else if (koşul) ... deyimler;(küme2) ... ... deyimler;(küme3) ... } . . . else ... deyimler;(kümeN) ...

Örnek-13 Klavyeden girilen bir sayının çift olup olmadığını bulan program. #include <stdio.h> int main() { int sayi; printf("Bir sayi girin: "); scanf("%d",&sayi); if (sayi % 2 == 0) printf("sayi cifttir.\n"); else printf("sayi tektir.\n"); return 0; }

Örnek-14 Klavyeden girilen 2 sayının birbirine göre büyük küçük yada eşit olma durumlarını yazan programı if-else kullanılmadan yanlızca if yapısı kullanarak yazınız. #include <stdio.h> int x, y; main() { printf("\nBir tamsayı değeri girin, x: "); scanf("%d", &x); printf("\nBir tamsayı değeri girin, y: "); scanf("%d", &y); if (x == y) printf("x, y ye eşit\n"); if (x > y) printf("x, y den büyük\n"); if (x < y) printf("x, y den küçük\n"); }

Soru Klavyeden girilen 3 sayının eşkenar, ikizkenar yada çeşitkenar oluşturup oluşturmadıklarını bulan program. (Matematiksel detay kurallar göz önünde bulundurulmayacaktır.)

switch - case Yapısı

switch - case Yapısı Bu deyim bir değişkenin içeriğine bakarak, programın akışını bir çok seçenekten birine yönlendirir. case (durum) deyiminden sonra değişkenin durumu belirlenir ve takip eden gelen satırlar (deyimler) işleme konur. Bütün durumların aksi söz konu olduğunda gerçekleştirilmesi istenen deyimler default deyiminden sonraki kısımda bildirilir. Genel yazım biçimi: switch(değişken) { case sabit1: ... deyimler; Break; case sabit2: . . . case sabitn: default: ... hata deyimleri veya varsayılan deyimler; . .. }

Örnek-15 Klavyeden basılan a ve b harfini ekrana yazan program #include <stdio.h> main() { char kr; printf("Lutfen bir karakter girin\n"); kr = getchar(); /* tek bir karakterin okunması */ switch (kr) { case 'a': printf("a harfine bastınız\n"); break; case 'b': printf("b harfine bastınız\n"); default: printf("a veya b ye basmadınız\n"); break; } }

Örnek-16 Klavyeden girilen 2 sayıyı yine klavyeden girilen seçime göre toplam, çıkarma, çarpma yapıp sonucu ekrana yazan program. switch( secim ) { case 1: sonuc = x + y; printf("Toplam = %.0f\n",sonuc); break; case 2: sonuc = x-y; printf("Fark = %.0f\n",sonuc); case 3: sonuc = x * y; printf("Carpim = %.0f\n",sonuc); case 4: sonuc = x/y; printf("Oran = %.2f\n",sonuc); default: puts("Yanlis secim !\a"); } #include <stdio.h> #include <stdlib.h> main() { int secim; float x,y, sonuc; printf("Iki sayi girin: "); scanf("%f %f",&x,&y); puts("*** Menu ***"); puts("[1] Toplama"); puts("[2] Çıkarma"); puts("[3] Çarpma"); puts("[4] Bölme"); printf("Seciminiz:"); scanf("%d",&secim); NOT: puts() fonksiyonu sonraki slaytta anlatılmıştır.

puts() Fonksiyonu Ekrana yazdırılacak ifade bir karakter topluluğu ise, printf()'e alternatif olarak puts() fonksiyonu kullanılabilir. Ancak puts(), ekrana bu karakter topluluğu yazdıktan sonra, imleci alt satıra geçirir. Buna göre: printf(“Deneme yazısı.\n");ile puts(“Deneme yazısı."); kullanımları eşdeğerdir. puts() fonksiyonu kontrol karakterleri ile kullanılabilir. puts("Bu birinci satır...\nBu ikinci satır."); Bu birinci satır... Bu ikinci satır.

Döngü Yapıları

Döngüler Döngü (loop) deyimleri, bir kümenin belli bir koşul altında tekrar edilmesi için kullanılır. C programlama dilinde, while, do...while ve for olmak üzere üç tip döngü deyimi vardır. Diğer programlama dillerinde olduğu gibi, bu deyimlerle istenildiği kadar iç- içe döngü yapısı kullanılabilir.

While Döngüsü Tekrarlama deyimidir. Bir küme ya da deyim while kullanılarak bir çok kez yinelenebilir. Yinelenmesi için koşul sınaması döngüye girilmeden yapılır. Koşul olumlu olduğu sürece çevrim yinelenir. Genel yazım biçimi: while(koşul) { ... döngüdeki deyimler; … }

Örnek-17 #include <stdio.h> main() { int x=0; while(x <= 10) printf("%d\n",x++); } Program 0-10 arasındaki sayıları ekrana yazdırmaktır. 4. satırdaki while deyiminden sonra { işareti kullanılmamıştır. Bu durumda, sadece takip eden satır (5. satır) döngünün içine dahil edilir.

Örnek-18: klavyeden 0 sayısı girilene kadar yine klavyeden girilen tüm sayıları toplayıp ekrana sonucu yazan program. #include <stdio.h> #include <conio.h> main() { int sayi,toplam=0; char c; puts("sayı gir"); scanf("%d",&sayi); while(sayi!=0) { toplam=toplam+sayi; } printf("Girilen sayıların toplamı: %d\n",toplam); c=getche();

Örnek-19: 10 tabanlı sistemden 2 li sisteme çevirme #include <stdio.h> #include <conio.h> main() { int i,n; char c; printf("Sayiyi Girin : "); scanf("%d",&n); system("cls");//Ekran temizleme while(n>0) printf("%d",n%2); n/=2; } c=getch();

do ... while Döngüsü Bu deyimin while deyiminden farkı, koşulun döngü sonunda sınanmasıdır. Yani koşul sınanmadan döngüye girilir ve döngü kümesi en az bir kez yürütülür. Koşul olumsuz ise döngüden sonraki satıra geçilir. Genel yazım biçimi: do{ ... döngüdeki deyimler; ... } while(koşul);

Örnek-20: Klavyeden girilen sayının basamak sayısını bulan program #include <stdio.h> //kalvyeden girilen sayının basamak sayısı bulan program main() { long sayi; int basamak=0; char devam; printf("Basamak sayısını bulacak sayıyı girin : "); scanf("%d",&sayi); do { basamak++; sayi=sayi/10; } while (sayi>0); printf("Basamak sayısı=%d\n",basamak); devam=getche();

for Döngüsü Bu deyim, diğer döngü deyimleri gibi bir kümeyi bir çok kez tekrarlamak için kullanılır. Koşul sınaması while da olduğu gibi döngüye girmeden yapılır. Bu döngü deyimin içinde diğerlerinden farklı olarak başlangıç değeri ve döngü sayacına sahip olmasıdır. Genel yazım biçimi: for ( başlangıç ; koşul ; artım ) { ... döngüdeki deyimler; ... }

Örnek-21: Klavyeden girilen sayının faktoriyelini hesaplayan program #include <stdio.h> int main() { long i, n, faktor; char devam; printf("Faktoriyeli hesaplanacak sayı girin : "); scanf("%ld",&n); faktor=1; for(i=1; i<=n; i++){ faktor *= i; /* n! = 1 x 2 x 3 x ... x n */ } printf("%ld! = %ld\n", n, faktor); devam=getche();

Sorular 1. Klavyeden girilen 2 sayının çarpma işlemini toplama yöntemiyle yapan C programını yazınız. 2. Girilen tamsayı içerisinde kaç tane 1 olduğunu ekrana yazan programı yazınız. 3. Çarpım tablosunu ekrana yazan C programını yazınız. 4. Klavyeden girilen 20 adet sayıdan 5 ve 5’in katlarının adedini ekrana yazdıran programı yazınız.