B03.10 Algoritmalari Uygulamak : Durum 3 (Yuvalı Kontrol Yapıları) Şimdi başka bir problem üzerinde çalışalım.



Benzer belgeler
Şimdi başka bir problem üzerinde çalışalım.

B03.8 Algoritmalari Uygulamak : Durum 1 (Sayici Kontrollü Döngü)

BİLGİSAYAR PROGRAMLAMA

Bölüm 3 Yapısal Programlama

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-4 Döngü Yapıları. Yrd. Doç. Dr. Ümit ATİLA

Hafta 4 Döngü Yapıları

Genel Programlama II

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

Eastern Mediterranean University Faculty of Arts & Sciences -- Department Of Mathematics BİLG213 BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

BİLGİSAYAR PROGRAMLAMA

ALGORİTMA VE PROGRAMLAMA II

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA II

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir.

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar

4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları

Temel Bilgisayar Programlama

BİLGİSAYAR PROGRAMLAMA DERSİ

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

YZM 2105 Nesneye Yönelik Programlama

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA II

Temel Bilgisayar Programlama

C Dersleri Bölüm 3 : Program akışı

void setup() fonksiyonu: Bu fonksiyon program ilk açıldığında bir kere çalışır ve gerekli kalibrasyon, setup komutlarını buraya yazarız.

BİLGİSAYAR PROGRAMLAMA DERSİ

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

ALGORİTMA VE PROGRAMLAMA II

Dr. Musa KILIÇ Öğretim Görevlisi

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Özyineleme (Recursion)

Programlama Giriş. 17 Ekim 2015 Cumartesi Yrd. Doç. Dr. Mustafa YANARTAŞ 1

PROGRAMLAMA TEMELLERİ DERSİ ÖZETİ

Algoritmalar ve Programlama. Algoritma

Algoritma ve Akış Diyagramları

Lambda İfadeleri (Lambda Expressions)

PROGRAMLAMA DİLLERİ I

Burada a değişkeninin türü integer olarak verildi. Peki biz bu ifadeyi tırnak içerisinde yazarsak ne olur?

NESNEYE YÖNELİK PROGRAMLAMA

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

Dr. Fatih AY Tel: fatihay@fatihay.net

1.1. Yazılım Geliştirme Süreci

Temel Bilgisayar Programlama

Internet Programming I. Hafta III. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

Python Programlama Dili

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

E-öğrenme için hazırmı sınız?

Bigisayar Programlama

disp VEYA fprintf KOMUTLARIYLA EKRANA MESAJ YAZDIRMA

ALGORİTMAYA GİRİŞ. Program: Belirli bir işi gerçekleştirmek için gerekli komutlar dizisi olarak tanımlanabilir.

AVRASYA UNIVERSITY. Dersin Verildiği Düzey Ön Lisans (X ) Lisans ( ) Yüksek Lisans( ) Doktora( )

Genel Programlama II

ALGORİTMA VE PROGRAMLAMA I

Uygulamadı ki hedef kitlem meslek seçimi arefesindeki ilköğretim 5. Sınıf öğrencileri olacaktır.

2.50 VERSİYONUMUZDA YER ALACAK, YENİ TEORİK DERS PROGRAMI KILAVUZU

Diziler İndisli Değişkenler

ALGORİTMA VE PROGRAMLAMA I

Nesne Tabanlı Programlama

AKIŞ ŞEMASI AKIŞ ŞEMASI AKIŞ ŞEMASI ŞEKİLLERİ GİRİŞ

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

SQL PROGRAMLAMA. Bir batch, bir arada bulunan bir dizi SQL deyimidir. Batch ayıracı GO deyimidir.

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

Uygulamalar 4 IsMissing Fonksiyonlar ve Alt Programlar Prosedür Parametreleri Public Function f(x,y,optional t, Optional k) End Function 1.

BÖLÜM 3 OPERAT A ÖRLER

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

Gereksiz Kodlar. burada if deyiminin else bölümüne gerek var mı? İfade doğruysa zaten fonksiyon geri dönüyor. Bu aşağıdakiyle tamamen eşdeğerdir:

NB Ekran Seri Port Üzerinden Veri Okuma/Yazma. Genel Bilgi Protokol Oluşturma Veri Okuma Veri Yazma

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

DİZİLER. Bu ünitede yapılan örnekler Visual Studio 2010 programındaki Visual Basic programlama diliyle çözülmüştür.

Yrd. Doç. Dr. Caner ÖZCAN

Bölüm 4 C de Program Kontrolü

İşletme Fakültesi Bil. Kullanımı Ders notları 2

Arkadaşınız Kutsal Ruh

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-10 Diziler. Yrd. Doç. Dr. Ümit ATİLA

BLM 111 ALGORİTMA VE PROGRAMLAMA I

BİL-142 Bilgisayar Programlama II

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

Python Programlama Dili

Hafta 9 C Dilinde Kontrol ve Döngü Yapıları

KONTROL YAPILARI JAVADA UC TURLU KONTROL YAPISI VARDIR BUNLAR İF ELSE İF ELSE İF SWİTCH YAPILARIDIR. IF ELSE YAPISI if (deger) { }else {

Eğitsel Oyun Projesi Raporu. ÖĞRENEREK EĞLENİYORUM Berkay Bekaroğlu

How to ASP Language. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. Hafta V

Dizi elemanları yukarıdaki gibi tek tek tanımlanabileceği gibi matematiksel ifadelerdeki diziler gibi de tanımlanabilir.

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri

Program AkıĢ Kontrol Yapıları

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

İnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler

ÖDEV (Vize Dönemi) CEVAPLAR. 1. Ekrana Merhaba Dünya! yazdıran algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız.

Bir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz.

SÖZLEŞMELİ ASTSUBAY(BAYAN) BAŞVURU İŞLEMLERİ

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

Transkript:

85 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B03) Şimdi başka bir problem üzerinde çalışalım. Algoritmamızı yine sahte kod ve yukarıdan aşağıya adımsal iyileştirmeyle oluşturacağız ve bu algoritmanın C kodunu yazacağız. Daha önceden kontrol yapılarının birbirleri üzerine (bir dizide) eklenebildiğini görmüştük. Şimdi ise C de kontrol yapılarını, yapısal bir biçimde birleştirebilecek diğer yolu çalışacağız. Bu yola, bir kontrol yapısını diğeri içine yuvalamak denir.

86 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B03) Aşağıdaki problemi inceleyiniz: Bir kurs öğrencilerini bir lisans sınavına hazırlamaktadır. Geçen sene, bu kursu tamamlayan öğrencilerden bir kısmı lisans sınavına girmiştir. Kurs yöneticileri, öğrencilerin sınavdaki başarılarını öğrenmek istemektedir ve size sonuçları özetleyen bir program yazmanızı söylemişlerdir. Bu sınava giren 10 öğrencinin isimlerinin yer aldığı bir liste size verilmiştir. Bu listede eğer öğrenci sınavı geçmişse isminin yanında 1, eğer sınavdan kalmışsa isminin yanında 2 yazmaktadır.

87 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B03) Programınızın sınav sonuçlarını aşağıdaki şekilde analiz etmesi gerekmektedir. Sizden; Her sınav sonucunu girmenizi ve program başka bir sınav sonucunu alacağında ekrana Sonucu girin mesajını yazdırmanızı Her tipte sınav sonucunun sayısını bulmanızı Kaç öğrencinin sınavı geçtiğini ve kaçının kaldığını özetleyen bir gösterge hazırlamanızı Eğer 8 den fazla öğrenci sınavı geçtiyse yüksek başarı mesajını yazdırmanızı istemektedirler.

88 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B03) Problemi dikkatlice okuduktan sonra aşağıdaki gözlemleri yaparız: Program 10 test sonucunu işleyecektir. Sayıcı kontrollü döngü kullanılacaktır. Her test sonucu 1 ya da 2 gibi bir sayıdır. Program yeni bir sonuç okuduğunda bu sonucun 1 mi yoksa 2 mi olduğuna karar vermelidir. Algoritmamızda 1 olması durumunu inceleyeceğiz. Eğer sayı 1 değilse 2 olduğunu düşüneceğiz. ( Bu ünitenin sonunda bu kabullenmeye benzer bir dizi alıştırma bulacaksınız ) İki sayıcı kullanılacaktır. Bunlardan birincisi sınavı geçen öğrenci sayısını, ikincisi ise sınavdan kalan öğrenci sayısını saymak için kullanılacaktır. Program tüm sonuçları işledikten sonra, sınavı geçen öğrenci sayısının 8 den fazla olup olmadığına karar vermelidir.

89 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B03) Şimdi yukarıdan aşağıya adımsal iyileştirmeyi kullanalım. En başa aşağıdaki sahte kodu yazalım: Sınav sonuçlarını incele ve yüksek başarı durumunun gerçekleşip gerçekleşmediğini belirle. Bu kodun tüm programın bir özeti olduğunu tekrar vurgulamak istiyoruz. Ancak bu kodu C programına çevrilebilecek kadar detaylandırabilmek için birkaç iyileştirme yapmalıyız. İlk iyileştirmemiz şu şekildedir: Değişkenleri tanımla, 10 notu gir ve kalanlarla geçenleri say, Sınav sonuçlarının özetini yazdır ve yüksek başarı sağlandı mı karar ver.

90 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B03) Bu iyileştirme sonucunda da tüm programın bütünü anlatılmış olsa bile hala iyileştirmeler yapmalıyız. Geçen ve kalanları kaydetmek için sayıcılara, döngü sürecini kontrol etmek için bir başka sayıcıya ve kullanıcının gireceği veriyi tutacağımız bir değişkene ihtiyacımız vardır.bu sebepten, Değişkenleri tanımla sahte kodunu Geçenler değişkenini sıfıra ata. Kalanlar değişkenini sıfıra ata Öğrenci değişkenini bire ata biçiminde iyileştirebiliriz.

91 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B03) Bu iyileştirme sonucunda da tüm programın bütünü anlatılmış olsa bile hala iyileştirmeler yapmalıyız. Geçen ve kalanları kaydetmek için sayıcılara, döngü sürecini kontrol etmek için bir başka sayıcıya ve kullanıcının gireceği veriyi tutacağımız bir değişkene ihtiyacımız vardır.bu sebepten, Değişkenleri tanımla sahte kodunu Geçenler değişkenini sıfıra ata. Kalanlar değişkenini sıfıra ata Öğrenci değişkenini bire ata biçiminde iyileştirebiliriz.

92 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B03) On notu gir ve geçenlerle kalanları say sahte kodu, her sınavın sonucunu başarılı bir şekilde girebileceğimiz bir döngüye ihtiyaç duymaktadır. Burada, 10 adet sınav sonucu olduğunu kesin olarak bildiğimizden sayıcı kontrollü döngü kullanabiliriz. Döngünün içinde (döngünün içine yuvalanmış), bir çiftli seçim yapısı kullanarak, sınav sonucunun geçer bir not ya da kalır bir not olduğuna karar verip uygun sayıcıları arttırırız. Sahte kodun iyileştirilmiş hali: Öğrenci sayıcısı 10 a eşit ya da 10 dan küçükken yeni sınav sonucunu al Eğer ( if ) öğrenci geçmişse Geçenlere bir ekle Aksi takdirde ( else ) Kalanlara bir ekle Boş satırların if/else kontrol yapısını açığa çıkartmak için konulduğuna dikkat ediniz. Böylelikle programın okunurluğu arttırılmıştır. Öğrenci sayıcısına bir ekle

93 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B03) Sınav sonuçlarının özetini yazdır ve yüksek başarı sağlandı mı karar ver sahte kodunu aşağıdaki biçimde iyileştirebiliriz: Geçenlerin sayısını yazdır Kalanların sayısını yazdır Eğer(if) 8 den fazla öğrenci geçmişse Yüksek başarı yazdır.

94 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B03) Gecenler değişkenini sıfıra ata. Kalanlar değişkenini sıfıra ata Öğrenci değişkenini bire ata Sınav sonuçları programı için iyileştirilmiş sahte kodun tamamı: Öğrenci sayıcısı 10 a eşit ya da 10 dan küçükken yeni sınav sonucunu al Eğer öğrenci geçmişse Geçenlere bir ekle Aksi takdirde Kalanlara bir ekle Öğrenci sayicisına bir ekle Gecenlerin sayısını yazdır Kalanların sayısını yazdır Eğer 8 den fazla öğrenci geçmişse Yüksek başarı yazdır

95 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B03) Gecenler değişkenini sıfıra ata. Kalanlar değişkenini sıfıra ata Öğrenci değişkenini bire ata Sınav sonuçları programı için iyileştirilmiş sahte kodun tamamı: Öğrenci sayıcısı 10 a eşit ya da 10 dan küçükken yeni sınav sonucunu al Eğer öğrenci geçmişse Geçenlere bir ekle Aksi takdirde Kalanlara bir ekle Öğrenci sayicisına bir ekle Gecenlerin sayısını yazdır Kalanların sayısını yazdır Eğer 8 den fazla öğrenci geçmişse Yüksek başarı yazdır B03_Uygulama10 Yanda sahte kodu verilen problemle ilgili olarak, önceki uygulama programlarınızı da göz önüne alarak uygun çıktılar veren bir program yazınız.