←
↑
⇑
↓
→
Ласло Краус |
ПЈМП
Интегрални испит
12. 7. 2001.
|
Аутори: Игор Тартаља и Ласло Краус
Задаци: 1.1
1.2
2.3
2.4
2.5
| Напоменe
| Решења: 2.3
2.5
Поставка задатка 1.1 (40 поена)
(⇒ почетак)
Пројектовати на језику C++ класe са следћим описом:
- Тачка у равни се задаје помоћу реалних координата (подразумевано (0,0)), могу да јој се дохвате вредности координата и може да се уписује у неки излазни ток (
<<
). У класи постоји и услужна метода за уписивање низа тачака у неки излазни ток.
- Апстрактна линија у равни има јединствени, аутоматски генерисани идентификациони број, може да joj се израчуна дужина (унарни
+
) и може да се уписује у неки излазни ток (<<, текст садржи идентификациони број линије).
- Дуж је линија која је задата координатама крајњих тачака (подразумевано (-1,-1) и (1,1)). Приликом исписивања, поред идентификационог броја исписују се реч duz и координате крајњих тачака.
- Изломљена линија је линија која се састоји од низа тачака које представљају темена линије. Грешка је ако се приликом стварања изломљене линије наводи празан низ (
NULL
) или низ са мање од три тачке. Те ситуације се пријављују изузетком чији текст поруке указује на врсту проблема. Приликом исписивања, поред идентификационог броја исписује се реч izlomljena и низ координата темена.
- Полигон је затворена изломљена линија која се добија спајањем првог и последњег темена. Приликом исписивања користи се реч poligon.
Саставити на језику C++ потпрограм за учитавање једне линије преко главног улаза и главни програм који преко главног улаза прочита низ разноврсних линија, испише све прочитане податке (укључујући и дужине појединих линија), проналази линију са највећом дужином и испише податке о пронађеној линији. Дужина низа линија задаје се као параметар главног програма.
Поставка задатка 1.2 (10 поена)
(⇒ почетак)
а) Која је намена шаблона (templatе) на језику C++?
б) Шта може бити реализовано у облику шаблона? Навести примере.
в) Како се врши генерисање из шаблона? Навести примере.
Поставка задатка 2.3 (25 поена)
(⇒ решење | почетак)
Пројектовати на језику Java пакет класа који садржи све класе, потпрограм и главни програм из задатка 1.1. Уместо операторских функција правити обичне методе. Уместо операције за исписивање правити метод за конверзију у тип String
. На располагању стоји класа Citaj
у безименом пакету која садржи заједничке методе за читање свих стандардних типова података.
Поставка задатка 2.4 (5 поена)
(⇒ почетак)
a) Навести укратко све разлике између апстрактне класе и интерфејса на језику Јава.
б) Навести укратко све разлике и сличности измећу појма "референца" (reference) на језику Јава и појмова "упућивач" (reference) и "показивач" (pointer) на језику C++.
в) Која је основна карактеристика обраде догађаја у Јави 1.1 за разлику од обраде догађаја у Јави 1.0?
Поставка задатка 2.5 (20 поена)
(⇒ решење | почетак)
Саставити потпрограм на симболичком машинском језику за IBM-PC, који може да се позива из програма писаног на језику C, за постављање бита са задатим редним бројем на задату вредност (0 или 1) унутар датог низа битова који је смештен у низ бајтова потребне дужине тако да сваки бајт, сем можда последњег, садржи по осам битова. Користити велики меморијски модел (далеки позиви и далеки показивачи).
Саставити главни програм на језику C++ који прво прочита дужину низа битова и вредност самог низа као низ од потребног броја једнобајтних хексадецималних целих бројева, затим чита парове редни број бита - нова вредност и позива горњи потпрограм све док за редни број бита не прочита негативну вредност и, на крају, приказује резултујући изглед низа битова у облику низа једнобајтних хексадецималних целих бројева.
- Испит траје 4 сата.
- Задаци су подељени у две групе (1 и 2). Да би се
добила пролазна оцена, потребно је да се добије преко 50%
поена у свакој од група.
- Дозвољена је употреба Прегледа наредби процесора 80x86.
- Рад се предаје искључиво у вежбанци за испите. Није дозвољено
имати поред себе друге листове папира. Водити рачуна о уредности.
Решења задатака навести по горњем редоследу. Препоручује се рад
обичном графитном оловком.
(⇒ почетак)
←
↑
⇑
↓
→
Аутор: Ласло Краус
Е-пошта: kraus@etf.rs
Copyright © 2001, Laslo Kraus
Последња ревизија: 6.10.2001.