← Computers & Automation

YÜKSEK HIZLI HESAPLAMA YÖNTEMLERİ

B
Bilinmeyen Yazar
1956 · Computers and Automation

FİNAL SINAVI

John W. Carr, III
Michigan Üniversitesi
Ann Arbor, Michigan

Aşağıda, Ocak 1956’da Math 173, “Yüksek Hızlı Hesaplama Yöntemleri” dersinde verilen final (kapalı kitap) sınavının bir kopyası yer almaktadır. Computers and Automation okurları için ilgi çekici olabilir. Problem 5 dışında büyük ölçüde kendini açıklar; Problem 5, her biri 45 bit bilgi içeren ve eşlik (parite) için 46. bitin bulunduğu 48 bitlik sözcüklerden oluşan 384 bitlik MIDAC cıva gecikme hattı bellek birimlerini tanımlar.


1. (Bir Saat)

Problem 2’de, birkaç alternatif problemden birini programlamanız istenecektir. Bu problemde ise, bu problemlerin birini çözmek için bir bilgisayar tasarlamanız ve bir komut kodu oluşturmanız istenmektedir.

İzlemeniz gereken yol aşağıdaki gibi olmalıdır:

    1. soruda çözeceğiniz bir problemi seçin.
  1. Bilgisayarınız için teknik özellikleri ve komut kodunu belirleyin. Bu özellikler şunları içermelidir:
  2. Sabit nokta
  3. Tek adresli komut kodu
  4. Tatmin edici giriş-çıkış
  5. Adresleri değiştirme yöntemleri
  6. “Problem 2C’yi çöz” gibi tuhaf komut türlerini kabul etmeyeceğim. Ayrıca 2e bölümünde tam bir mantıksal işlem dizisine de izin veremem.

Unutmayın, Problem 2’de yazacağınız programı izleyip anlayabilmem gerekir; bu nedenle lütfen tam teknik özellikler verin. Artık makul bir bilgisayar tasarlayabilecek kadar deneyim kazandınız. Giriş-çıkış aygıtlarınızın ve komutlarda yer alan dahili yazmaçların bir tanımını ekleyin.

(Not: Ayrıntılı donanım tartışmaları istemiyorum.)


2. (30 Dakika)

Problem 1’de tasarlanan bilgisayar ve komut kodunu kullanarak aşağıdaki problemlerden birini çözün:

(a)

Ondalık sistemde bir matris ve bir vektör okuyun. Aşağıdaki matris-vektör çarpımını

[ \sum_{j=1}^{n} a_{ij} x_j ]

n’in keyfi bir değeri için gerçekleştirin ve sonucu ondalık biçimde yazdırın. Döngüsel bir yöntem kullanın. Ölçeklendirmeyi unutmayın.

(b)

256 adet, her biri 20 karakterlik alfasayısal sözcükten oluşan bir dizi okuyun. Bunları 0–9, a–Z biçiminde uygun alfasayısal sıraya göre sıralayın. Sıralanmış sonuçları alfasayısal biçimde yazdırın. Sıralama için gereken süreye bakmaksızın uygun gördüğünüz herhangi bir yöntemi kullanabilirsiniz.

(c)

Toplama, çıkarma, çarpma ve bölme için, kendi seçeceğiniz standart bir alt yordam biçiminde, dört ayrı kayan nokta alt yordamı programlayın.

(d)

Taşma durumunda otomatik olarak makinenin komut sayacını, ilgili aritmetik yazmaçlarının içeriklerini ve yürütülmekte olan komutu “overflow” sözcüğü ile birlikte yazdıran ve duran bir alt yordam için kendi kurallarınızı belirtin ve ardından bunu programlayın. Yeniden başlatıldığında manyetik banttan yeni bir program okuyacak, bir bellek toplamı gerçekleştirecek, toplamı yazdıracak ve duracaktır.

(e)

Aşağıdaki mantıksal fonksiyonu, doğruluk tablosundaki tüm olası kombinasyonlar için değerlendirin:

[ [(A · B) ≡ (C · 0)] ∨ [(A · C) ≡ (B · 0)] ]

(Makinenizin, bellek ile aritmetik birimi ilişkilendiren yalnızca tek bir mantıksal işleme izin verdiğini varsayın.)

(f)

Aşağıdaki polinom denklem için 0 ile 1 arasında bir gerçek kök bulacak bir program yazın:

[ 6x^4 + 3.6x^3 − 1.7x − 0.80 = 0 ]

Sonucu ondalık biçimde yazdırın.

(g)

Manyetik bantta saklanan 20.000 çalışandan oluşan bir liste için sosyal güvenlik hesaplamalarını yapın, yeni hesaplanan değerleri banda ekleyin ve kişinin adı, yıl başından bugüne toplam ücret ve toplam kesintileri içeren bir sosyal güvenlik kaydı yazdırın.

(h)

1000 sayı için ortalama ve standart sapmayı elde eden bir yordam programlayın. Kareköklü hesaplamayı programlamayın; bunun yerine böyle bir alt yordam için eksiksiz teknik özellikleri oluşturun ve bunu program içinde bir blok olarak dahil edin.

Unutmayın, Problem 1 ve 2, yaptıklarınızı ne kadar iyi takip edip anlayabildiğime ve ne kadar sağlam ve yaratıcı bir çalışma ortaya koyduğunuza göre değerlendirilecektir.


3. (20 Dakika)

Aşağıdakiler için bir yöntem türetin:

  • (a) Karma (tamsayı artı kesir) sayıların ondalıktan ikiliye dönüşümü;
  • (b) Karma sayıların ikiliden ondalığa dönüşümü.

Başka bir deyişle, her biri için bir yöntem sunun ve bunun matematiksel gerekçesini verin.


FİNAL SINAVI

(10. sayfadan devam)

4.

(10 Dakika)

3(a) ya da 3(b) için bir akış veya sıra diyagramı çizin.

5.

(30 Dakika)

Aşağıdaki Boole, zamana bağlı denklem sistemi, MIOAC’ın önemli bir unsurunu mantıksal olarak temsil etmektedir.

Makinedeki unsuru tanımlayın ve ne yaptığını İngilizce olarak açıklayın:

Xn = (~384 · Wn) ∨ (Yn · Wn)

X48K+46 = (… ((X48K · X48K+1) ⊕ X48K+2)

= X48K+3) … = X48K+45)

Xn, Wn, Yn ve X48K+46 darbelerinin hangi işlevleri yerine getirdiğini belirtin.

Burada:

K = 0, 1, 2, …, 7

6.

(30 Dakika)

Standart MIOAC geleneksel alt yordam biçiminde, tamburdan bir sözcük bloğunu okuyacak, ilk n−1 sözcük üzerinde olası tüm taşmaları dikkate alarak bir bellek toplamı yapacak ve sonucu, benzer bir önceki alt yordam tarafından n’inci sözcükte saklanan sayı ile karşılaştıracak bir alt yordam yazın.

Uyuşmamaları durumunda, onaltılık "badbadbadba" sözcüğünü yazdırın ve makineyi durdurun.

Uyuşmaları halinde, alt yordamdan olağan biçimde çıkın.

Alt yordam için ilgili teknik özellikleri oluşturun. Kod listesine sahip olmadığınızdan (kapalı kitap), yapabildiğinizin en iyisini yapın.

“present address relative” kullanmayın; bunun yerine kayan adresleme ile kodlayın.