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



Benzer belgeler
B03.10 Algoritmalari Uygulamak : Durum 3 (Yuvalı Kontrol Yapıları) Ş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

Genel Programlama II

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA II

Temel Bilgisayar Programlama

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

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

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

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

Özyineleme (Recursion)

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

PROGRAMLAMA TEMELLERİ DERSİ ÖZETİ

YZM 2105 Nesneye Yönelik Programlama

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

ALGORİTMA VE PROGRAMLAMA II

Hafta 4 Döngü Yapıları

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

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

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

Diziler İndisli Değişkenler

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.

NESNEYE YÖNELİK PROGRAMLAMA

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

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

Algoritmalar ve Programlama. Algoritma

Algoritma ve Akış Diyagramları

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

PROGRAMLAMA DİLLERİ I

Temel Bilgisayar Programlama

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

BİLGİSAYAR PROGRAMLAMA DERSİ

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

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

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

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

Temel Bilgisayar Programlama

BÖLÜM 3 OPERAT A ÖRLER

ALGORİTMA VE PROGRAMLAMA II

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

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

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

Görsel Programlama - I Uygulamalı Ödevi

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

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

Python Programlama Dili

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

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

BLM 111 ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I

Genel Programlama II


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

Dr. Fatih AY Tel: fatihay@fatihay.net

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

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

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

BİLGİSAYAR PROGRAMLAMA

EĞİTİM ÖĞRETİM MÜNEVVER ÖZTÜRK ORTAOKULU II. DÖNEM BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ DERS NOTLARI

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

Lambda İfadeleri (Lambda Expressions)

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

ALGORİTMA VE PROGRAMLAMA I

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

Python Programlama Dili

İÇ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

Nesne Tabanlı Programlama

Dr. Musa KILIÇ Öğretim Görevlisi

Ders Notlarının Creative Commons lisansı Feza BUZLUCA ya aittir. Lisans:

Nesne Tabanlı Programlama

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

How to ASP Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. 29 Eki. 1 Kas. 2013

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

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

BEYKENT ÜNİVERSİTESİ - DERS İZLENCESİ - Sürüm 2. Öğretim planındaki AKTS

NESNE TABANLI PROGRAMLAMA Final Sınavı Cevapları

App İnventor-Pide Sipariş Uygulaması

ALGORİTMA VE PROGRAMLAMA II

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

Bigisayar Programlama

ALGORİTMA DERSLERİ. Algoritma Nedir? Belirli bir problemi çözmek ve belli bir sonuca ulaşmak için çizilen yola algoritma denir.

Sistemin kullanılabilmesi için eğitime katılacak personelin önceden kayıt olması gerekmektedir.

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

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:

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Genel Kullanılış 1: [değişken ismi] = [değişken ismi] [işlem] [sayı veya string ifade veya değişken]

ATATÜRK ÜNİVERSİTESİ BİLGISAYAR MÜHENDİSLİĞİ BÖLÜMÜ BM 104- NESNEYE YÖNELİK PROGRAMLAMA DERSİ BAHAR DÖNEMİ ÖDEV-3

ALGORİTMA VE PROGRAMLAMA I

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

İnternet Programcılığı Dersi 2.Dönem Ders Notu

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

BİLGİSAYAR PROGRAMLAMA DERSİ

Docmage.exe dosyasını çalıştırılır ve karşımıza Şekil-1 deki ekran gelecektir.

Transkript:

86 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.

87 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.

88 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.

89 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.

90 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.

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) 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.

93 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

94 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.

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

96 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.