Odev-5

advertisement
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.
Download