←
↑
⇑
↓
→
Ласло Краус |
Програмски језици (ЕГ)
Испит
9. 12. 2001.
|
Почев од јануарског испитног рока школске године 2001/02 сви студенти, без обзира када су
слушали предавања, испит треба да полажу према новим правилима.
Аутори: Зоран Аврамовић (задатак 1) и
Ласло Краус (задатак 2 са решењем)
Задаци: 1
2
| Напомене
| Решења: 2
Поставка задатка 1 (45 поена)
(⇒ почетак)
Начинити програм на FORTRAN-у за налажење количника два задата полинома P(x) и Q(x), степена m и n, респективно.
Посебни подаци:
- m=4, n=3,
- P(x) = x4 + 2x3 + x2 + 3x + 1 и
- Q(x) = 3x3 + 2x2 + x + 1 .
Потребно је штампати учитане податке, добијени резултат, потребне описне текстове, име и презиме, регистарски број и назив факултета.
Поставка задатка 2 (35 поена)
(⇒ решење | почетак)
Саставити на језику C потпрограм за формирање разлике два скупа реалних бројева. Разлика два скупа садржи све елементе првог скупа који се не налазе у другом скупу.
Саставити на језику C главни програм који чита прочита два скупа, нађе њихову разлику, испише добијени резултат и понавља претходне кораке све док за број елемената једног скупа не прочитра недозвољену вредност.
- Испит траје 3 сата. У току првих 60 минута није дозвољено
напуштање сале.
- Рад се предаје искључиво у вежбанци за испит. Није дозвољено
имати поред себе друге листове папира.
- Коришћење литературе на испиту није дозвољено. Обратити пажњу на
форму рада: читљивост, уредност, коментарисање програма и опис
алгоритма утичу на оцену. Препоручује се рад обичном графитном
оловком.
- За позивање на практични део испита неопходно је добити више од
50% поена на оба задатка.
- Тачно урађени домаћи задатак донoси 5 поена.
- Практични део испита доноси 15 поена. На практичном делу
испита кандидати ће уносити своја решења задатка 1) у
рачунар и после ће вршити потребне исправке да би ти програми
исправно радили. Време одржавања као и распоред кандидата по
групама за практични део испита биће накнадно објављен.
#include <stdio.h>
#define N 50
void razlika (float s1[], int n1, float s2[], int n2,
float s3, int *n3) {
int i, j, k=0;
for (i=0; i<n1; i++) {
for (j=0; j<n2 && s2[j]!=s1[i]; j++);
if (j == n2) s3[k++] = s1[i];
}
*n3 = k;
}
void main () {
float s1[N], s2[N], s3[N]; int n1, n2, n3, i;
while (1) {
printf ("n1, n2? "); scanf ("%d%d", &n1, &n2);
if (n1<0 || n1>N || n2<0 || n2>N) break;
printf ("s1? "); for (i=0; i<n1; scanf("%f", &s1[i++]));
printf ("s2? "); for (i=0; i<n2; scanf("%f", &s2[i++]));
razlika (s1, n1, s2, n2, s3, &n3);
printf ("s3= "); for (i=0; i<n3; printf("%.2f ", s3[i++]));
}
}
(⇒ почетак)
←
↑
⇑
↓
→
Аутор: Ласло Краус
Е-пошта: kraus@etf.rs
Copyright © 2002, Laslo Kraus
Последња ревизија: 18.2.2002.