340 likes | 642 Views
ALGORİTMA & PROGRAMLAMA. Doç. Dr. Yalçın ÇEBİ Arş. Gör. Özlem AKTAŞ yalcin@cs.deu.edu.tr ozlem@cs.deu.edu.tr. Algoritma Nedir?. Problemin çözümüne ulaştıran genel yöntemlerdir. Verilen bir problemi çözmek için tasarlanan talimatlar bütünüdür.
E N D
ALGORİTMA & PROGRAMLAMA Doç. Dr. Yalçın ÇEBİ Arş. Gör. Özlem AKTAŞ yalcin@cs.deu.edu.tr ozlem@cs.deu.edu.tr
Algoritma Nedir? Problemin çözümüne ulaştıran genel yöntemlerdir. Verilen bir problemi çözmek için tasarlanan talimatlar bütünüdür. Bir sorunun çözümü için sunulan mantıksal ve sembolik anlatımdır.
Algoritmanın Özellikleri • Input / Girdi • Output / Çıktı • Anlaşılır • Verimli • Sonuca ulaşmalı
Programlama Dilleri Yüksek Seviyeli Diller Makina Dilleri Sembolik Diller Mov AX, Num1 Mov BX, Num2 Add AX, BX Mov Total, AX 10101010111011111010010111011111100111111.... Total = Num1 + Num2 • Fortran (FORmula TRANslator, 1957) • Cobol (Common Business Oriented Language, 1959) • Basic (Beginners All purpose Symbolic Instructional Code, 1964) • Pascal, 1968 • C, 1972
Programlama Dili Elemanları • Anahtar Sözcükler • Değişkenler • Operatörler • Sabitler • Noktalama işaretleri
Değişken • Değişkenler; bellekte belli bir yer işgal eden ve içerisinde bir değeri tutan bellek alanlarıdır. • Değişken Özellikleri • İsim • Tür • Değer
Değişken İsimleri • İlk karakter mutlaka harf olmak zorundadır. • İlk karakterden sonra karakter, alt cizgi yada sayı olabilir. • Değişken isimlerinde Türkçe harfler bulunmamalıdır. • Özel karakterler kullanılmamalıdır.
Değişken İsimleri • Ayrılmış isimler kullanılmamalıdır.
AÇIKLAMA SATIRLARI • Kodlarla ilgili açıklamalar yazmak için açıklamanın başına // veya açıklamanın başına /* sonuna da */ yazmak gereklidir.
DIŞ ORTAMA DEĞER AKTARMA • Program içinde elde edilen sonuçların dış ortama aktarılması için printf komutu kullanılır. • printf • cprintf • fprintf • sprintf
DIŞARIDAN VERİ ALMA • Klavyeden veri almak için scanf komutu kullanılır. • scanf • cscanf • fscanf • sscanf
C Program Yapısı #include <stdio.h> #include <conio.h> // Ekrana "Merhaba" yazdıran program void main(){ clrscr(); printf("Merhaba"); getch(); }
#include <stdio.h> #include <conio.h> // Ekrandan iki sayı alıp toplamını ekrana yazan program void main() { clrscr(); int sayi1; int sayi2; int toplam; printf("1. sayiyi giriniz: "); scanf("%d",&sayi1); printf("2. sayiyi giriniz: "); scanf("%d",&sayi2); toplam=sayi1+sayi2; printf("Toplam=%d",toplam); getch(); }
Önişlemci Komutları • #include • # define #include “filename.h” #include <filename.h> #define isim yerini_tutacak_veri #define Pi 3.1415
Önişlemci Komutları - Örnek • Yarıçap bilgisini kullanıcıdan alarak dairenin alanını bulup ekrana yazan programı yazınız.
Operatörler • Aritmetiksel Operatörler • () Parantez • ^ Üs • * Çarpma • / Bölme • + Toplam • - Çıkarma • = Atama
Operatörler • İlişkisel Operatörler • < Küçüktür • > Büyüktür • == Eşit • != Eşit Değil • <= Küçük Eşit • >= Büyük Eşit • Mantıksal Operatörler • && And • || Or • ! Not
Akış Şeması (Flow-Chart) Sembolleri • Terminator :Programın başlangıç ve bitiş noktaları • Data Input or Output :Girdi ve çıktı gösterimi • Processing :İşlem, değişken ataması gibi • Decision :Karar ve karşılaştırma işlemleri, sonucun doğru yada yanlış olmasına göre program akışı değişir • Flow : Programın akış yönü
Koşul 1 Evet İşlem A Koşul 1 Hayır Evet İşlem B İşlem A IF-Else Kontrol Yapısı • Koşul1 sağlanıyorsa işlem A gerçekleşir. IF (koşul1) { İşlem A; } • Koşul1 sağlanıyorsa İşlem A, sağlanmıyorsa İşlem B gerçekleşir. IF(koşul1) { İşlem A; }else{ İşlem B; }
IF-Else Kontrol Yapısı • Koşul1 sağlanıyorsa işlem A, koşul1 sağlanmıyorsa ve koşul2 sağlanıyorsa İşlem B, koşul1 ve koşul2 sağlanmıyorsa işlem C gerçekleşir . IF(koşul1) { İşlem A; } ELSE IF (koşul2){ İşlem B; } ELSE{ İşlem C; } Koşul 1 Koşul 2 Hayır Hayır Evet Evet İşlem A İşlem B İşlem C
IF-Else Kontrol Yapısı • Üçlü kontrol yapısı : Koşul doğru ise İşlem1 işlem görür, yanlış ise İşlem2 işlem görür. (Koşul )? İşlem1 : İşlem2; Örnek: X= 10 Y=5 ise Z = (X > Y) ? 20 : 15; Z = 20 olur Z = (X > Y) ? X : Y; Z = 10 olur
GOTO • GOTO komutu program içerisindeki ifadelerin çalışma sırasını değiştirir. Koşul sağlandığı takdirde program bir sonraki ifadeyi değil GOTO etiketinin olduğu satırı işler. goto ETIKET; .... ... ETIKET: ... • Programın sonuna etiket konulması istenirse mutlaka ; karakteri de etikete eklenmelidir. ETIKET: ;
Örnekler • 1- En ve boy bilgileri verilen bir tarlanın alanının bulunması • 2- Girilen üç sayının ortalamasının bulunması • 3- Girilen üç sayının kareler ortalamasını ekrana yazdırma • 4- Girilen iki sayının toplamını, farkını, çarpımını ve bölümünü ekrana yazdıran programı yazınız. • 5- Girilen sayıların ortalamasının bulunması • 6- Sınav notu girilen bir öğrencinin sınavı geçip geçmediğini bulma • 7- Satın alınan ürünlerin toplam fiyat tutarının ve %18 kdv dahil genel toplam tutarının bulunması • 8- Girilen bir sayının çift mi tek mi olduğunu yazma • 9- Girilen iki sayının büyük olanını ekrana yazma / İki sayıyı karşılaştırma • 10 – Girilen ortalama 100-85 ise “PEKİYİ”, • 84-70 ise “İYİ”, • 69-50 ise “ORTA”, • 50’den küçük ise "KALDI” yazan program
Örnekler 11- 3 tane sayının toplamını GOTO deyimi kullanarak bulan program 12- N tane sayının ortalamasını bulan program 13- Kullanıcıdan sıfır girinceye kadar sayı okuyup, sıfır girince girilen sayıların toplamını ekrana yazan program 14- Kullanıcıdan sıfır girinceye kadar alınan sayıların içerisinde 5 ile bölünebilen sayıların toplamını bulma
Switch - CaseStatement • Birden fazla karşılaştırma gereksiniminde kullanılır. • Switch(değişken ) { case sabit1 : işlemler ; break; case sabit2: işlemler ; break; default: işlemler ; }
Switch - Case Örnek • Switch (Score){ • case 90 : Grade = "A" ; break; case 80 : Grade = "B" ; break; case 70 : Grade = "C" ; break; case 60 : Grade = "D“; default: Grade = "F" } • IF (Score == 90) { Grade = "A" ;} ELSE IF (Score == 80) { Grade = "B“; } ELSE IF (Score == 70) { Grade = "C“;} ELSE IF (Score == 60) { Grade = "D“; } ELSE { Grade= "F“ ; }