19ceng / ceng104pro

Programlama-1
18 stars 10 forks source link

Programlama-1 Final Soruları #116

Open harunozturk opened 12 years ago

harunozturk commented 12 years ago

1) Dosya G/Ç, Dizgi Argüman olarak sağlanan dosya içerisinde ki kelime sayısını bulan işlevi gerçekleyiniz. Bu işlev, kabukta yer alan $ wc -c file komutunun ilkel bir gerçeklemesi olacaktır.

İpucu: dosyayı açmak için fopen, dosyadan bir satır okumak için readline ve kelimeleri ayırmak için split işlevi kullanılabilir.

def mywc(dosya_adi):

2) Döngü, Liste

Kullanıcıdan sürekli sayı okuyan ve bunu listeye yığan, -1 e rastladığında değer okumayı sonlandıran. Okuduğu değer sayısını ve toplamını ekrana yazarak sonlanan programı yazınız.

def main():

3) Dizgi

a) Argüman olarak aldığı dizgiyi iki yana yaslayan/hizalayan işlevi yazınız. Satır genişliği olarak 70 karakter alabilirsiniz.

İpucu: gerekli miktarda boşluk kullanılacaktır. Kelimeleri ayırmak için split, dizgi uzunluğunu öğrenmek için len işlevi kullanılabilir.

def iki_yana_hizala(str):

b) a şıkkında ki işlevin tam tersi göreve sahip işlevi yazınız. İki yana hizalı olarak dizgide ki fazlalık boşlukları gidererek sola hizalı metni üreten işlevi gerçekleyiniz.

İpucu: kelimeleri birleştirmek için join işlevi kullanılabilir.

def sola_hizala(str):

4) İçiçe döngü, matris

a) Argüman olarak iki boyutlu matris alan (ki matrisin değer aralığı 0-255 arasındadır), ve bu matris içerisinde 128 değerinden küçük olanları 0, diğerlerini 1 yapan eşikleme işlevini yazınız. Bu durumda çıkış matrisi ikil matris olacaktır.

İpucu: içiçe iki döngü kullanmanız beklenmektedir.

def matris_esikle(matris):

b) Bir önceki aşamada gerçekleştirilen eşikleme işlevinden geçen matris, sadece 0 ve 1 değerlerinden oluşacaktır. Bu matris içerisinde ki 1 leri hapsedecek en küçük dikdörtgen koordinatlarını döndüren işlevi gerçekleyiniz.

def minimum_dikdortgen(ikil_matris):

Örnek: Matris = [ [50,  45,  55, 32,  80], [60, 145, 175, 140, 40], [40, 135, 165,  40, 30], [55, 150, 185,  20, 20], [35,  15,  65,  25, 10] ] Eşiklenen Matris = [ [0,    0,   0,   0,  0], [0,    1,   1,   1,  0], [0,    1,   1,   0,  0], [0,    1,   1,   0,  0], [0,    0,   0,   0,  0] ]

Bu durumda minimum dikdörtgen (1,1)-(3,3) olacaktır.

5) Bonus Yukarıda yer alan sorulardan (1-4) herhangi bir tanesini Ruby programlama dilini kullanarak çözünüz. Sınav 100p üzerinden değerlendirilecektir. Toplam puanınız 100'ü geçerse 100'e düşürülecektir.