Elektrotehnicki fakultet, Beograd  Ласло Краус Програмски језици (ЕГ)
Испит
8. 10. 1999.

Аутори: Зоран Аврамовић (задатак 1) и Ласло Краус (задатак 2 са решењем)

Задаци: 1 2 | Напомене | Решења: 2

Поставка задатка 1 (45 поена) ( почетак)

Еуклидови бројеви дефинисани су рекуренцијом: Начинити програм на FORTRAN-у за израчунавање и штампање првих k (10 ≤ k ≤ 50) Еуклидових бројева.

(Сугестија: Начинити и користити потпрограм за тачно множење природних бројева).

У главном програму учитати полазни податак па позивањем потпрограма генерисати тражени низ бројева.

Посебна вредност: k = 11.

Потребно је штампати учитани податак, добијене резултате у облику табеле, потребне описне текстове, име и презиме, регистарски број и назив факултета.

Поставка задатка 2 (35 поена) ( решење | почетак)

Саставити потпрограм на језику C за налажење места првог и последњег појављивања датог броја у датом низу целих бројева који је уређен по неопадајућем редоследу вредности бројева. Ако се тражени број не налази у низу, оба резултата треба да имају вредност -1.

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


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


Решење задатка 2 ( поставка | почетак)

#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.