Elektrotehnicki fakultet, Beograd  Ласло Краус ПЈМП
Интегрални испит
14. 11. 1999.

Аутори: Владан Девеџић и Ласло Краус

Задаци: 1.1 1.2 1.3 1.4 2.5 2.6 | Напоменe

Поставка задатка 1.1 (15 поена) ( почетак)

а) Написати потпрограме за униформни кодер и декодер за поруке састављене искључиво од видљивих ASCII знакова (кодови од 32 до 126) за неки 16-битни рачунар. Предвидети могућност да се параметри кодера и декодера задају приликом позивања тих потпрограма.

б) Написати главни програм који ће учитавати низове максималне дужине од 60 знакова, кодирати их кодером који даје секвенцу максималне дужине, исписивати на екрану кодиране низове, декодирати и исписивати резултате декодирања, све док корисник на неки начин не означи да нема више података.

Поставка задатка 1.2 (10 поена) ( почетак)

Саставити алгоритме за паковање и за обрнути процес распакивања података p1 ∈ {1, 2, ..., 300}, p2 ∈ {0, 1, 2, 3, 4}, p3 ∈ {7, 8, 9, 10}, и p4 ∈ {10, 20, ... 1500} за случај 10-битних меморијских ћелија.

Поставка задатка 1.3 (15 поена) ( почетак)

Саставити програм који помоћу графичког система GKS врши цртање изломљене линије са слике која се састоји од 2n праволинијских сегмената од којих прве две имају дужину d, а последње две дужину nd. Потребне податке читати преко главног улаза. Слика треба, без изобличења, што више да попуни расположиви простор за цртање (претпоставити да је добијена фигура централно симетрчна).

Поставка задатка 1.4 (10 поена) ( почетак)

Стабло се представља помоћу листе чији је први елемент садржај корена стабла, а остали елементи су подстабла испод корена. Саставити правила на Prolog-у којима се у задатом стаблу одређује број листова (чворова без подстабала). На пример, за стабло са слике следећа релација треба да важи: listovi([3, [9, [1], [5]], [6], [5, [4], [2], [3]]], 6).

Поставка задатка 2.5 (30 поена) ( почетак)

Пројектовати на језику C++ класу за рад са скуповима целих бројева чије вредности се налазе у опсегу од 0 до 1023. Класа треба, помоћу што мањег броја потпрограма, да је оспособљена за иницијализацију скупова (као празан скуп, једним целим бројем, другим скупом), доделу вредности једног скупа другом (=), налажење уније два скупа (+), читање (>>) и исписивање (<<) скупа, уметање целог броја у скуп (+), испитивање да ли се неки број налази у скупу (%), одређивање броја елемената скупа (унарни +) и уништавање скупа када више није потребан.

Саставити на језику C++ главни програм који прочита један низ целих бројева преко главног улаза и одреди број различитих елемената тог низа.

Поставка задатка 2.6 (20 поена) ( почетак)

Саставити на симболичком машинском језику за IBM-PC потпрограм, који може да се позива из програма писаног на језику C, за образовање наредног случајног броја чији битови се од претходног броја добијају помоћу формула: b0(n) = b15(n-1) ⊕ b7(n-1) ⊕ b3(n-1), bi(n) = bi-1(n-1) (i=1, 2, ..., 15), где је ⊕ сабирање по модулу 2 (искључиво или). Користити велики меморијски модел (далеки позиви и далеки показивачи).

Саставити на језику C++ главни програм који исписује низ од задатог броја случајних бројева почев од неког почетног броја. Потребне податке читати преко главног улаза.


Напоменe ( почетак)

( почетак)
         
Аутор: Ласло Краус
Е-пошта: kraus@etf.rs

Copyright © 2001, Laslo Kraus
Последња ревизија: 15.7.2001.