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