PRoGRaMLaMa PRoJe-4 - Erzurum Atatürk Üniversitesi,...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Erzurum Atatürk Üniversitesi, Mühendislik Fakültesi MF 102 : Bilgisayar Programlama – Bahar 2008 (Yrd. Doç. Dr. Deniz DAL) PROGRAMLAMA PROJESİ 4 (Son Teslim Tarihleri : 13/14/15/16 Mayıs 2008) 4. projemizde MASTERMIND adlı oyunun kalan parçalarını da yazıp 3. projemizde yazdığımız kısım ile birleştireceğiz. Oyunun amacı kısaca şöyle özetlenebilir. Bilgisayarın rastgele ürettiği (Oyunun 3. projenizde tamamlamanız gereken bölümü) 1000 ile 9999 arasında ve rakamları birbirinden farklı 4 basamaklı bir tamsayıyı kullanıcı olarak bizler tahmin etmeye çalışacağız. Yapacağımız bu tahminler esnasında, bu proje kapsamında yazmamız istenen program bizlere yardımcı olmaya çalışacak. Programımız bu yardımı bizlere bizim tahminimiz ile tahmin etmeye çalıştığımız rastgele sayıyı karşılaştırarak yapacak. Yaptığımız tahmin ile rastgele sayı içerisinde hem varlığını hem de yerini doğru bildiğimiz basamak değerleri için bizlere - + bir ipucu, varlığını doğru ama basamak değerini tutturamadığımız tahminler için ise ipucu alacağız. Bir örnekle açıklayalım. Farzedelim ki rastgele sayı olarak bilgisayarımız 4501 sayısını üretti ve bizlerde bu sayıyı tahmine yönelik 2104 sayısını girdik. Yapılacak karşılaştırmanın sonunda programımız bize ipucu olarak (+1,-2) vermelidir. (0 sayısının yeri doğru iken, rastgele sayı içinde var olan ama yerini yanlış tahmin ettiğimiz 1 ve 4 var.) Eğer tahminimiz 6739 olsaydı (+0,-0) şeklinde bir yardım alacaktık. Böyle bir tahminde bulunmak aslında sonuca ulaşabilmek açısından bize oldukça faydalı olabilecek bir tahmindir çünkü bu tahmin içindeki bu 4 rakamı otomatik olarak tahmin uzayımızdan elemiş oluruz. Oyunumuz (+4,-0) çıktısına ulaşıncaya kadar sonsuz bir döngü içerisinde devam etmelidir. Oyunumuzun bir başka kuralı ise kullanıcıdan klavye yoluyla alacağımız 4 rakamlı tahmin sayısının rakamlarının birbirinden farklı olmasıdır. Eğer kullanıcı bu kurala uymamış ise ekrana bir uyarı mesajı verilmeli ve kullanıcı rakamları birbirinden farklı bir sayı girinceye kadar sonsuz bir döngü içerisinde kullanıcıdan bilgi girişi sağlanmalıdır. Yazacağınız fonksiyon M dosyasının adını mastermind.m koyunuz ve ana fonksiyonunuzun imzasını aşağıdaki gibi tanımlayınız. (Bu M dosyasının içinde sizlere yardımcı olacak başka fonksiyonlar da tanımlamalı ve 4. projenizi anlamlı parçalara bölüp yönettiğiniz fonksiyonların birleşimi olarak yazmalısınız.) function mastermind( ) %hicbir arguman almayacak ve geriye hicbir deger cevirmeyecek Örnek bir komut penceresi çıktısı aşağıdaki verilmiştir: >>mastermind( ) Lutfen Tahmininizi Giriniz = 1134 Lutfen Rakamlari Birbirinden Farkli 4 Rakamli bir Tahminde Bulununuz = 1368 Alin Size Ipucu => (+1 , -1) Lutfen Tahmininizi Giriniz = 8354 Alin Size Ipucu => (+2 , -0) Lutfen Tahmininizi Giriniz = 8396 Alin Size Ipucu => (+3 , -0) Lutfen Tahmininizi Giriniz = 8632 Alin Size Ipucu => (+2 , -1) Lutfen Tahmininizi Giriniz = 3829 Alin Size Ipucu => (+0 , -4) Lutfen Tahmininizi Giriniz = 8392 Tebrikler. Dogru Tahminde Bulundunuz. DİKKAT EDİLECEK HUSUSLAR 1. Programınıza açıklayıcı bilgiler eklemeyi unutmayınız. Bu hem benim sizin yazdığınız programı anlamama yardım edecek ve hem de siz aradan zaman geçtikten sonra yazdığınız program üzerinde değişiklik yapmak istediğinizde hatırlatma anlamında size yardımcı olacaktır. MATLAB’de ”%” karakteri ile başlayan ve devam eden herşey (satır sonuna kadar) ihmal edilir ve bu sayede programlarımıza açıklayıcı satırlar (comments) ekleyebiliriz. (Örneğin bir değişkenin ya da bir while döngüsünün kullanım amacı açıklayıcı bilgi olarak programınıza eklenebilir.) 2. MATLAB’de program yazma editörünün otomatik olarak algılayıp içeri doğru bıraktığı boşluklara müdahale etmeyiniz. Örneğin MATLAB, for ile başlayıp end ile sona eren bir bloğun içinde yapılması gereken işleri daha içerden başlatır. Bu sayede bir bilgisayar programını gözümüz daha kolay algılar ve beynimiz daha çabuk kavrar. 3. Teslim etmek üzere, yazdığınız M dosyasını ve çalışan programınızın komut penceresinde verdiği çıktıyı (Komut penceresinde isteğiniz bölgeyi fare yardımıyla seçili hale getirip kopyala yapıştır yapabilirsiniz.) yazıcıdan alınız. 4. Teslim edeceğiniz ödevler muhakkak bir kapağa sahip olmalıdır. Bu kapak üzerinde adınız, soyadınız, ögrenci numaranız, bölümünüz, şubeniz, dersimizin adı ve kodu, ayrıca dersin verildiği akademik dönem ve programlama projesinin numarası yazılı olmalıdır. 5. Bütün bu dökümanları zımbalayarak son teslim tarihi olan günkü dersin başında bana teslim ediniz. ( Projelerinizi naylon dosya içerisinde teslim ETMEYİNİZ lütfen.) ...
View Full Document

Ask a homework question - tutors are online