←
↑
⇑
↓
→
Ласло Краус |
Програмски језици (ЕГ)
Испит
3. 12. 2000.
|
Аутори: Зоран Аврамовић (задатак 1) и
Ласло Краус (задатак 2 са решењем)
Задаци: 1
2
| Напомене
| Решења: 2
Поставка задатка 1 (45 поена)
(⇒ почетак)
Написати потпрограм типа FUNCTION на FORTRAN-у за израчунавање вредности верижног разломка
за задате вредности n, a1, a2, ..., an и x.
У главном програму учитати полазне податке па позивањем потпрограма израчунати вредност верижног разломка.
Посебне вредности:
- ред верижног разломка: n = 5,
- коефицијенти верижног разломка: a1 = 1, a2 = 2, a3 = 3, a4 = 4, a5 = 5 и
- аргумент верижног разломка: x = 10.
Потребно је штампати учитане податке, добијени резултат, потребне описне текстове, име и презиме, регистарски број и назив факултета.
Поставка задатка 2 (35 поена)
(⇒ решење | почетак)
Саставити на језику C потпрограм за одређивање колико елемената низа реалних бројева a0, a1, ..., an-1 спада у поједине од интервала (b0,b1], (b1,b2], ..., (bk-1,bk], при чему је b0 < b1 < ... < bk. Резултат је низ дужине k.
Саставити на језику C главни програм који прочита два низа реалних бројева, позове горњи потпрограм, испише добијени резултат и понавља претходне кораке све док за дужину једног од низова низа не прочита недозвољену вредност.
- Испит траје 3 сата. У току првих 60 минута није дозвољено
напуштање сале.
- Рад се предаје искључиво у вежбанци за испит. Није дозвољено
имати поред себе друге листове папира.
- Коришћење литературе на испиту није дозвољено. Обратити пажњу на
форму рада: читљивост, уредност, коментарисање програма и опис
алгоритма утичу на оцену. Препоручује се рад обичном графитном
оловком.
- За позивање на практични део испита неопходно је добити више од
50% поена на оба задатка.
- Тачно урађени домаћи задатак донoси 5 поена.
- Практични део испита доноси 15 поена. На практичном делу
испита кандидати ће уносити своја решења задатка 1) у
рачунар и после ће вршити потребне исправке да би ти програми
исправно радили. Време одржавања као и распоред кандидата по
групама за практични део испита биће накнадно објављен.
#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.