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

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

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

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

Начинити потпрограм типа SUBROUTINE на FORTRAN-у за израчунавање кубног корена реалне променљиве x применом итеративне формуле:

Вредност почетне апроксимације одредити по формули:

У алгоритму треба предвидети да се итеративни поступак заврши:

Начинити главни програм у коме треба учитати ε и m па позивањем горњег потпрограма израчунати вредност кубног корена за x = 0,5 (0,5) 10,0.

Штампати аргуменaт x, број итерација, постигнуту тачност и вредност кубног корена.

Такође штампати име и презиме, регистарски број, одсек кандидата, датум испита и потребне описне текстове.

Посебни подаци: ε = 10−5, m = 100.

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

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

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


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


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

#include <stdio.h>

#define MAX 20

void izostavi(double a[], int *n) {
  int i, j; double min=a[0], max=a[0], d, g;
  for (i=1; i<*n; i++)
    if      (a[i] < min) min = a[i];
    else if (a[i] > max) max = a[i];
  d = (2*min + max) / 3;
  g = (min + 2*max) / 3;
  for (i=j=0; i<n; i++)
    if (a[i]>=d && a[i]<=g) a[j++] = a[i];
  *n = j;
}

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

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