Dersin Adı Ödev - 5 Verilme Tarihi Teslim Tarihi : Algoritma ve Programlama - I : Gökyüzündeki Takımyıldızlar : 30.12.2008 Salı : 07.01.2009 Çarşamba, Saat 23:59 (kaynak kod) Bir gökyüzü manzarasındaki takımyıldızlarının bulunmasını sağlayacak bir program geliştirilmesi istenmektedir. Gökyüzü manzarası, boşluk (‘ ’) ve yıldız (‘*’) karakterlerinden oluşacak ve 25x80 boyutlarında bir karakter dizisinde tutulacaktır. Dizinin elemanları, “gokyuzu.txt” isimli bir metin dosyasından okutulacaktır. Örnek bir “gokyuzu.txt” dosyası ekte verilmiştir. Ayrıca, bulunacak takımyıldızı şablonları da “takimyildizlari.txt” isimli bir metin dosyasından okutulacak ve 15x15 boyutlarında bir karakter dizisinde tutulacaktır. Takımyıldızı şablonları, boşluk (‘ ’), yıldız (‘*’) ve artı (‘+’) karakterlerinden oluşmaktadır ve artı karakteri takımyıldızının en parlak yıldızını belirtmektedir. “takimyildizlari.txt” isimli dosyanın ilk satırında, dosyada yer alan takımyıldızı sayısı bulunmaktadır. İlk satırdan sonra, 1 satır takımyıldızı kodu (tamsayı) ve 15 satır takımyıldızı şablonu olmak üzere takımyıldızları bulunmaktadır. Örnek bir “takimyildizlari.txt” dosyası ekte verilmiştir. Bir takımyıldızı şablonu, diziye alındıktan sonra gökyüzü dizisinde aratılacaktır. Bunun için şablonda yıldız ve artı karakterleri ile gösterilen yıldızlar, gökyüzü dizisinde yıldız karakterleri ile gösterilen yıldızlarla eşleştirilecektir. Şablondaki tüm yıldızlar, gökyüzü dizisinin bir bölümündeki yıldızlarla eşleştirilirse; takımyıldızı kodu ve bu takımyıldızındaki en parlak yıldızın satır ve sütun koordinatları yazdırılmalıdır (sol-üst köşenin koordinatı 1,1 şeklindedir). Not: Eşleştirme sırasında dikkatli olunmalı, sadece şablondaki yıldızlar ile gökyüzü dizisindeki yıldızlar eşleştirilmelidir. Şablonda yer almayan ancak gökyüzü dizisindeki takımyıldızının yakınlarında başka yıldızlar olabilir, bu eşleştirmeyi bozmaz (aşağıdaki örnek çalıştırmada verilen 5 kodlu takımyıldızına bakınız). ÖRNEK ÇALIŞTIRMA (görülebilir olması için boşluk yerine tire yazılmıştır): “gokyuzu.txt” dosyası: ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------*------------------------------------------------------------*----------------------*-------------------------------------------------------------------*-------------------------------------*---------------------------------------------------*-------------------------------------------------------------------------*------------------------------------------------------------------------------------------------------------------------------------------------------------*------------------------------------------------------------------------------------------------------------------------------------------------------------*------------------------------------------------------------*--------------------------------------------*----------------------------------------------------*------------------------------------*-----------------------------------------------------------------------------------------------------------------------------------------------------*--------------------------------------------------------------------------------*--------------------------------------------------------------------------------*----------------------------------------------------------------------------------------------------------------------------------------------------------------*-------------------------------------------*---------------------------------------------------------------------------------------------------------*-----------------------------------*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- “takimyildizlari.txt” dosyası: 2 12 -----------------------------+------------------------*-------------------*---------------*---------------*------------------------------*-------------------*----------------------------------------------------5 ------------------------------------------------+------------------*---------------------------*--------*--------------------------*--------------------------*----------------------------*----------------------- Bu örnek için programın çıktısı şu şekilde olmalıdır: Kod Koordinatlar --- -----------12 (12,39) 5 (3,14) DİKKAT EDİLMESİ GEREKEN NOKTALAR: Ödevin Teslim Edilmesi: 1. Ödevin sadece kaynak kod dosyası (.c uzantılı), dosya adı öğrenci numarasının son 5 rakamı olacak şekilde (örneğin 04219.c), elektronik posta ile [email protected] adresine dosya eki (attachment) olarak gönderilmelidir. 2. Her öğrenci, ogrenci.ege.edu.tr posta sunucusunda var olan kendisine ait elektronik posta hesabını kullanarak ödevini göndermelidir. 3. Mesajın konusu BIM107-ODEV5 olmalıdır. 4. Son teslim tarihi geçmediği sürece ödevin tekrar gönderilmesinde bir sakınca yoktur, en son gönderilen ödev değerlendirilecektir. 5. Ödev tesliminde en fazla 2 günlük gecikmeler kabul edilecek, ancak son teslim tarihinden sonraki her gün için ödev notunda %20 kesinti yapılacaktır. Ödevin Değerlendirilmesi: 1. Ödevin değerlendirmesinde; programın doğru ve eksiksiz çalışmasının yanında etkinlik, yapısal ve modüler programlama ilkelerine uygunluk ta dikkate alınacaktır. Buna göre puanlama şu şekildedir: – Girintili yazım stili, anlamlı değişken isimleri kullanma, açıklamalar: 15 puan – Etkinlik (gereksiz işlemlerden kaçınma): 20 puan – Fonksiyon kullanımı: 15 puan – Doğru çalışma: 50 puan 2. Kopya çekildiği tespit edildiğinde, çeken ve çektiren kişiler ödevden sıfır alacaktır.