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

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

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

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

Ако је полазна вредност фактора снаге cosφ1 који желимо да поправимо на вредност φ2 за то нам је потребан кондензатор чија је трофазна реактивна снага Q1=tgφ1-tgφ2, за 1 kW активне снаге.

Начинити програм на FORTRAN-у којим се, на основу горње формуле, за полазни cosφ1 од 0,20(0,05)0,50 i od 0,50(0,02)0,98 табелирају вредности потребне реактивне снаге кондензатора у kVAr за 1 kW активне снаге за жељени cosjφ2 у распону 0,60(0,05)1,00 заокругљивањем резултата на три значајне децималне цифре.

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

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

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


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


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

#include <stdio.h>

void unija (float a[], int na, float b[], int nb, float c[], int *nc) {
  int i, j, k;
  for (j=k=0; j<nb; c[k++]=b[j++]);
  for (i=0; i<na; i++) {
    for (j=0; j<nb; i++) if (b[j] == a[i]) break;
    if (j == nb) c[k++] = a[i];
  }
  *nc = k;
}

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

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