←
↑
⇑
↓
→
Ласло Краус |
Програмски језици (ЕГ)
Испит
14. 11. 1999.
|
Аутори: Зоран Аврамовић (задатак 1) и
Ласло Краус (задатак 2 са решењем)
Задаци: 1
2
| Напомене
| Решења: 2
Поставка задатка 1 (45 поена)
(⇒ почетак)
Фибоначијеви бројеви дефинисани су рекуренцијом:
- F0 = 1
- F1 = 1
- Fn = Fn-1 + Fn-2 (n=2, 3, ...)
Начинити програм на FORTRAN-у за израчунавање и штампање траженог
Фибоначијевог броја n ( n >> 1 ).
(Сугестија: Начинити и користити потпрограм за тачно сабирање природних
бројева).
У главном програму учитати полазни податак па позивањем потпрограма
генерисати тражени Фибоначијев број.
Посебна вредност: n = 1.000
Потребно је штампати учитани податак, добијени резултат, потребне
описне текстове, име и презиме, регистарски број и назив факултета.
Поставка задатка 2 (35 поена)
(⇒ решење | почетак)
Саставити потпрограм на језику C за одређивање бројева елемената
у целобројном низу који при дељењу са целим бројем k дају остатке
0, 1, ..., k-1 (резултат је низ од k вредности).
Саставити главни програм на језику C који прочита низ целих
бројева, прочита број k, позива горњи потпрограм, испише добијени
резултат и понавља претходне кораке све док за дужину низа не прочита
недозвољену вредност.
- Испит траје 3 сата. У току првих 60 минута није дозвољено
напуштање сале.
- Рад се предаје искључиво у вежбанци за испит. Није дозвољено
имати поред себе друге листове папира.
- Коришћење литературе на испиту није дозвољено. Обратити пажњу на
форму рада: читљивост, уредност, коментарисање програма и опис
алгоритма утичу на оцену. Препоручује се рад обичном графитном
оловком.
- За позивање на практични део испита неопходно је добити више од
50% поена на оба задатка.
- Тачно урађени домаћи задатак донoси 5 поена.
- Практични део испита доноси 15 поена. На практичном делу
испита кандидати ће уносити своја решења задатка 1) у
рачунар и после ће вршити потребне исправке да би ти програми
исправно радили. Време одржавања као и распоред кандидата по
групама за практични део испита биће накнадно објављен.
#include <stdio.h>
void ostaci (int a[], int n, int k, int b[]) {
int i;
for (i=0; i<k; b[i++]=0);
for (i=0; i<n; b[a[i++]%k]++);
}
void main () {
enum (NMAX=100, KMAX=20);
int a[NMAX], b[KMAX], i, k, n;
while (1) {
printf ("n? "); scanf ("%d", &n);
if (n<0 || n>NMAX) break;
printf ("A? "); for (i=0; i<n; scanf("%d",&a[i++]));
printf ("k? "); scanf ("%d", &k);
ostaci (a, n, k, b);
printf ("B="); for (i=0; i<k; printf(" %d",b[i++]));
printf ("\n\n");
}
}
(⇒ почетак)
←
↑
⇑
↓
→
Аутор: Ласло Краус
Е-пошта: kraus@etf.rs
Copyright © 2000, Laslo Kraus
Последња ревизија: 23.1.2000.