←
↑
⇑
↓
→
Ласло Краус |
Програмски језици (ЕГ)
Испит
10. 11. 2000.
|
Аутори: Зоран Аврамовић (задатак 1) и
Ласло Краус (задатак 2 са решењем)
Задаци: 1
2
| Напомене
| Решења: 2
Поставка задатка 1 (45 поена)
(⇒ ⇒ почетак)
У циљу претходне провере хардверске реализације генератора случајних
бројева начинити потпрограм типа FUNCTION на FORTRAN-у за генерисање
случајних бројева између 0 и 1 према следећој шеми (садржај регистра се
помера за једно место улево уметањем резултантног бита на прву
позицију):
У главном програму, позивањем горњег потпрограма, генерисати и
табелирати n случајних бројева.
Такође, штампати име и презиме, регистарски број и одсек кандидата.
Алгоритам реализовати у општем облику, а посебне податке унети на
почетку главног програма.
Посебни подаци: почетно стање регистра (семе) је дато на слици док је
n = 20.
Поставка задатка 2 (35 поена)
(⇒ ⇒ решење | почетак)
Саставити на језику C потпрограм за уметање у низ целих
бројева (чији су елемети уређени по неопадајућем редоследу) садржај
другог низа целих бројева (чији су елементи уређени по нерастућем
редоследу) тако да елементи првог низа и даље буду уређени по
неопадајућем редоследу.
Саставити на језику C главни програм који прочита два низа
целих бројева, позове горњи потпрограм, испише добијени резултат и
понавља претходне кораке све док за дужину једног од низова низа не
прочита недозвољену вредност.
Напомене
(⇒ ⇒ почетак)
- Испит траје 3 сата. У току првих 60 минута није дозвољено
напуштање сале.
- Рад се предаје искључиво у вежбанци за испит. Није дозвољено
имати поред себе друге листове папира.
- Коришћење литературе на испиту није дозвољено. Обратити пажњу на
форму рада: читљивост, уредност, коментарисање програма и опис
алгоритма утичу на оцену. Препоручује се рад обичном графитном
оловком.
- За позивање на практични део испита неопходно је добити више од
50% поена на оба задатка.
- Тачно урађени домаћи задатак донoси 5 поена.
- Практични део испита доноси 15 поена. На практичном делу
испита кандидати ће уносити своја решења задатка 1) у
рачунар и после ће вршити потребне исправке да би ти програми
исправно радили. Време одржавања као и распоред кандидата по
групама за практични део испита биће накнадно објављен.
#include <stdio.h>
#define MAX 40
void umetni(int a[], int *na, int b[], int nb) {
int ia=*na-1, ib=0, ic=*na+nb-1;
*na = ic + 1;
while (ia>=0 && ib<nb) a[ic--] = a[ia]>b[ib] ? a[ia--] : b[ib++];
while (ib<nb) a[ic--] = b[ic++];
}
void main () {
int a[MAX], b[MAX], i, na, nb;
while (1) {
printf ("\nna, nb? "); scanf ("%d%d", &na, &nb);
if (na < 0 || na > MAX || nb < 0 || nb > MAX) break;
printf ("A? "); for (i=0; i<na; scanf ("%d", &a[i++]));
printf ("B? "); for (i=0; i<nb; scanf ("%d", &b[i++]));
izostavi (a, &na, b, nb);
printf ("A= "); for (i=0; i<na; printf ("%d ", a[i++]));
putchar ('\n');
}
}
(⇒ ⇒ почетак)
←
↑
⇑
↓
→
Аутор: Ласло Краус
Е-пошта: kraus@etf.rs
Copyright © 2000, Laslo Kraus
Последња ревизија: 18.12.2000.