You are on page 1of 2

ELEKTROTEHNIKI FAKULTET BANJA LUKA OSNOVI PROGRAMIRANJA (K3 22.06.2010.

- A)

ELEKTROTEHNIKI FAKULTET BANJA LUKA OSNOVI PROGRAMIRANJA (K3 22.06.2010. - B)

Napisati program u programskom jeziku C koji sa standardnog ulaza uitava dva velika prirodna broja, a zatim izraunava i ispisuje njihov zbir. Uputstvo: 1. Veliki broj treba predstaviti strukturom BROJ koju ine: niz cifara i podatak o ukupnom broju cifara u broju. Broj moe da ima do 50 cifara. 2. Uitavanje velikog broja treba vriti u funkciji iji je prototip: void read(BROJ*); Pretpostaviti da e unos sa tastature biti korektan, tj. da uitani string nee sadravati znakove koji nisu cifre. 3. Sabiranje dva velika broja treba vriti u funkciji iji je prototip: void zbir(BROJ, BROJ, BROJ*); 4. Ispis velikog broja vriti funkcijom iji je prototip: void ispis(BROJ); Prilikom ispisa broja treba ignorisati vodee nule.

U datoteci ISPIT.DAT upisani su podaci o rezultatima nekog ispita. U svakom redu datoteke upisan je podatak u obliku "IME PREZIME BODOVI", pri emu su bodovii izraeni na skali 0-100, npr. Marko Markovic 78 Janko Jankovic 92 Pero Perovic 33 ... Napisati program koji iz datoteke ISPIT.DAT ita podatke i izraunava raspodjelu ocjena na ispitu, a rezultat upisuje u datoteku ANALIZA.TXT, tako to u svaki red upie ocjenu, njihov broj i procenat, npr. Izvanredan (>90): 2x ( 4.00%) Odlican (81-90): 5x (10.00%) Vrlo dobar (71-80): 11x (22.00%) Dobar (61-70): 12x (24.00%) Dovoljan (51-60): 6x (12.00%) Nedovoljan (<51): 14x (28.00%)

U datoteci PODACI.DAT upisani su podaci o maksimalnim dnevnim temperaturama koje su izmjerene u nekoj meteorolokoj stanici u toku jedne godine. U svakom redu datoteke upisan je podatak u obliku "DD.MM TEMP", gdje su: DD - dan, MM - mjesec, a TEMP - izmjerena temperatura, npr. 01.01 -22 02.01 -18 05.01 -6 ... Napisati program koji iz datoteke PODACI.DAT ita podatke i izraunava prosjenu temperaturu za svaki mjesec, a rezultat upisuje u datoteku OBRADA.TXT, tako to u svaki red upie naziv mjeseca i izraunatu temperaturu (na 1 decimalu), npr. JANUAR: -12.5 FEBRUAR: -8.7 MART: 11.4 ...

Napisati program u programskom jeziku C koji sa standardnog ulaza uitava jedan veliki prirodan broj, a zatim ga dekrementuje (umanjuje za 1) i ispisuje rezultat. Uputstvo: 1. Veliki broj treba predstaviti strukturom VeBroj koju ine: niz cifara i podatak o ukupnom broju cifara u broju. Broj moe da ima do 100 cifara. 2. Uitavanje velikog broja treba vriti u funkciji iji je prototip: void citaj(VeBroj*); Pretpostaviti da e unos sa tastature biti korektan, tj. da uitani string nee sadravati znakove koji nisu cifre. 3. Dekrementovanje treba vriti u funkciji iji je prototip: void dekrement(VeBroj*); 4. Ispis velikog broja vriti funkcijom iji je prototip: void ispis(VeBroj); Prilikom ispisa broja treba ignorisati vodee nule.

Odrediti rezultat izvravanja sljedeeg programa (u priloenoj tablici upisati znak po znak kao na standardnom izlazu).

Odrediti rezultat izvravanja sljedeeg programa (u priloenoj tablici upisati znak po znak kao na standardnom izlazu).

#include <stdio.h> #define SUB(T,x,y) {T x=y++; {T x=y++;}} int x; static int y; void f(int n) { if (n) { SUB(int,x,y) f(n-1); } } main() { extern int x,y; int i=0; for ( ; ++i<3; ) { f(i); printf("%d ",y); } return (0); }

#include<stdio.h> main() { int i, j, c, g[4]={0}; for (i=0; i<2; i++) { for (j=0; g[j]; j++) g[j]=0; g[j]=1; for (j=2; j>=0; j--) { c = g[j]&&!g[j+1]||!g[j]&&g[j+1]; printf("%d", c); } printf("\n"); } }

0 0

0 1

1 1

Napomena: Raspodjela bodova po zadacima Napomena: Raspodjela bodova po zadacima 1. 25 2. 15 3. 10 50 1. 15 2. 25 3. 10 50

ELEKTROTEHNIKI FAKULTET BANJA LUKA OSNOVI PROGRAMIRANJA (K3 22.06.2010 - C)

ELEKTROTEHNIKI FAKULTET BANJA LUKA OSNOVI PROGRAMIRANJA (K3 22.06.2010 - D)

Odrediti rezultat izvravanja sljedeeg programa (u priloenoj tablici upisati znak po znak kao na standardnom izlazu).

Odrediti rezultat izvravanja sljedeeg programa (u priloenoj tablici upisati znak po znak kao na standardnom izlazu).

#include <stdio.h> int i=4, ok, nok; int test(int x) { int a, s=0; while (x) { a=x%10; s+=a*a; x/=10; }; if ((s==1)||(s==4)||(s==i)) return(s); return (test(s)); } int main() { for( ; i>=0; i--) test(i) ? ok++ : nok++; printf("%d %d", ok, nok); return (0); }

#include <stdio.h> long i=1, s, n=4, ok, nok; void test(long x) { int a; s=0; while (x) { a=x%10; s+=a*a; x/=10; }; if ((s==1)||(s==4)||(s==i)) return; test(s); } int main() { for(; i<n; ok+=s==1,nok+=s!=1,i++) test(i); printf("%d %d", ok, nok); return (0); }

U datoteci KRUGOVI.DAT upisani su podaci o razliitim krugovima. U svakom redu datoteke upisan je podatak o jednom krugu (nije poznat ukupan broj krugova u datoteci) u obliku

Napisati program u programskom jeziku C koji sa standardnog ulaza uitava niz velikih prirodnih brojeva, a zatim ispisuje najvei broj u tom nizu. Uputstvo: 1. Veliki broj treba predstaviti strukturom BROJ koju ine: niz cifara i podatak o ukupnom broju cifara u broju. Broj moe da ima do 50 cifara. 2. Uitavanje velikog broja treba vriti u funkciji iji je prototip: void read(BROJ*); Pretpostaviti da e unos sa tastature biti korektan, tj. da uitani string nee sadravati znakove koji nisu cifre. 3. Poreenje dva velika broja treba vriti u funkciji iji je prototip: int poredjenje(BROJ, BROJ); Funkcija vraa -1 ako je prvi broj manji od drugog, 0 ako su brojevi jednaki, a 1 ako je drugi broj vei. 4. Ispis velikog broja vriti funkcijom iji je prototip: void ispis(BROJ); Prilikom ispisa broja treba ignorisati vodee nule.

(x,y,r)

gdje su: x i y koordinate centra kruga, a r poluprenik kruga, npr. (2.50,2.50,1.00) (1,2,5.00) (8,1.00,5) Napisati program koji iz datoteke KRUGOVI.DAT ita podatke i odreuje koliko krugova ne sadri centar koordinatnog sistema te koji su to krugovi, a rezultat upisuje u datoteku REZULTAT.TXT, npr. Trazeni broj krugova: 2 ( 2.50, 2.50, 1.00) ( 8.00, 1.00, 5.00)

Napisati program u programskom jeziku C koji sa standardnog ulaza uitava jedan veliki prirodan broj, a zatim ispisuje prvi vei prirodan broj. Uputstvo: 1. Veliki broj treba predstaviti strukturom VeBr koju ine: niz cifara i podatak o ukupnom broju cifara u broju. Broj moe da ima do 30 cifara. 2. Uitavanje velikog broja treba vriti u funkciji iji je prototip: void citaj(VeBr*); Pretpostaviti da e unos sa tastature biti korektan, tj. da uitani string nee sadravati znakove koji nisu cifre. 3. Izraunavanje prvog veeg broja treba vriti u funkciji iji je prototip: VeBr prviVeci(VeBr); 4. Ispis velikog broja vriti funkcijom iji je prototip: void ispis(VeBr); Prilikom ispisa broja treba ignorisati vodee nule. Napomena: Raspodjela bodova po zadacima 1. 10 2. 15 3. 25 50

U datoteci TROUGAO.DAT upisani su podaci o razliitim trouglovima. U svakom redu datoteke upisan je podatak o jednom trouglu (nije poznat ukupan broj trouglova u datoteci) u obliku

(x1,y1) (x2,y2) (x3,y3)


gdje su: (x1,y1), (x2,y2) i (x3,y3) cjelobrojne koordinate vrhova trougla, npr. (0,0) (4,0) (4,3) (1,0) (1,1) (2,4) (8,1) (0,1) (8,2) Napisati program koji iz datoteke TROUGAO.DAT ita podatke i pronalazi trougao sa najveom povrinom te trougao sa najveim obimom, a rezultat upisuje u datoteku MJERA.TXT, npr. (0,0) (4,0) (4,3) povrsina: 6.00 (8,1) (0,1) (8,2) obim: 8.06 U sluaju da ima vie trouglova koji ispunjavaju zadatii kriterijum, dovoljno je ispisati podatke o jednom trouglu. Napomena: Raspodjela bodova po zadacima 1. 10 2. 25 3. 15 50