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

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

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

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

Начинити потпрограм типа SUBROUTINE на FORTRAN-у који за задати час и минут утврђује: у главном програму учитати задати час и минут па позивањем горњег потпрограма утврдити тражене податке.

Посебне вредности:

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

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

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

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


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


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

#include <stdio.h>

int bitra (float a[], int n, float b) {
  int d = 0, g = n-1, s;
  while (d <= g) {
    if (a[s=(d+g)/2] < b) d = s + 1;
    else if (a[s] > b)    g = s - 1;
    else                  return s;
  }
  return -1;
}

void main () {
  enum (NMAX=100);
  float a[NMAX], b;
  int i, n;
  printf ("n? "); scanf ("%d", &n);
  printf ("A? "); for (i=0; i<n; scanf("%f",&a[i++]));
  while (printf ("b? "), scanf("%f",&b)!=EOF) {
    if ((i = bitra (a, n, b)) != -1)
      printf ("Broj se nalazi u nizu na mestu %d\n", i);
    else
      printf ("Broj se ne nalazi u nizu.\n");
}
( почетак)
         
Аутор: Ласло Краус
Е-пошта: kraus@etf.rs

Copyright © 2000, Laslo Kraus
Последња ревизија: 9.3.2000.