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

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

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

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

Написати потпрограм типа FUNCTION на FORTRAN-у за израчунавање вредности верижног разломка

за задате вредности n, a1, a2, ..., an и x.

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

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

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

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

Саставити на језику C потпрограм за одређивање колико елемената низа реалних бројева a0, a1, ..., an-1 спада у поједине од интервала (b0,b1], (b1,b2], ..., (bk-1,bk], при чему је b0 < b1 < ... < bk. Резултат је низ дужине k.

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


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


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

#include <stdio.h>

#define MAX 40

void prebroji(float a[], int n, float b[], int k, float c[]) {
  int i, j;
  for (j=0; j<k; c[j++]=0);
  for (i=0; i<n; i++)
    if (b[0] < a[i])
      for (j=0; j<k; j++)
        if (a[i] <= b[j+1]) { c[j]++; break; }
}

void main () {
  int a[MAX], b[MAX], c[MAX] i, n, k;
  while (1) {
    printf ("\nn, k? "); scanf ("%d%d", &n, &k);
  if (n < 0 || n > MAX || k < 0 || k+1 > MAX) break;
    printf ("A? "); for (i=0; i<n;  scanf ("%f", &a[i++]));
    printf ("B? "); for (i=0; i<=k; scanf ("%f", &b[i++]));
    izostavi (a, n, b, k, c);
    printf ("C= "); for (i=0; i<k; printf ("%f ", c[i++]));
    putchar ('\n');
  }
}
( почетак)
         
Аутор: Ласло Краус
Е-пошта: kraus@etf.rs

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