18
Zadaci za učenike osnovnih škola 1 Minimalni broj Sa standardnog ulaza (tasture) učitati tri cijela broja. Na standardni izlaz (ekran) ispisati najmanji broj. Primjer 1: 5 3 9 Najmanji broj je 3 Primjer 2: 4 8 4 Najmanji broj je 4 Rješenje: Pascal ver1 Pascal ver 2 Program Zadatak1; var min, b1, b2, b3: Integer; Begin Write('Unesi tri cijela broja: '); Readln(b1, b2, b3); min:=b1; if b2<min then min:=b2; if b3<min then min:=b3; Writeln('Najmanji broj je: ', min); end. Program Zadatak1; var b1, b2, b3: Integer; Begin Write('Unesi tri cijela broja: '); Readln(b1, b2, b3); if (b1<=b2) and (b1<=b3) then writeln('Najmanji broj je : ', b1); if (b2<b1) and (b2<=b3) then writeln('Najmanji broj je : ', b2); if (b3<b1) and (b3<b2) then writeln('Najmanji broj je : ', b3); end.

Zadaci za osnovne skole 2010. i 2011.pdf

Embed Size (px)

DESCRIPTION

ih

Citation preview

Page 1: Zadaci za osnovne skole 2010. i 2011.pdf

Zadaci za učenike osnovnih škola

1

Minimalni broj

Sa standardnog ulaza (tasture) učitati tri cijela broja. Na standardni izlaz (ekran)

ispisati najmanji broj.

Primjer 1:

5

3

9

Najmanji broj je 3

Primjer 2:

4

8

4

Najmanji broj je 4

Rješenje:

Pascal – ver1

Pascal – ver 2

Program Zadatak1; var min, b1, b2, b3: Integer; Begin Write('Unesi tri cijela broja: '); Readln(b1, b2, b3); min:=b1; if b2<min then min:=b2; if b3<min then min:=b3; Writeln('Najmanji broj je: ', min); end.

Program Zadatak1; var b1, b2, b3: Integer; Begin Write('Unesi tri cijela broja: '); Readln(b1, b2, b3); if (b1<=b2) and (b1<=b3) then writeln('Najmanji broj je : ', b1); if (b2<b1) and (b2<=b3) then writeln('Najmanji broj je : ', b2); if (b3<b1) and (b3<b2) then writeln('Najmanji broj je : ', b3); end.

Page 2: Zadaci za osnovne skole 2010. i 2011.pdf

Zadaci za učenike osnovnih škola

2

QBasic

CLS INPUT "Unesi tri cijela broja: ", A, B, C MIN = A IF B < MIN THEN MIN = B IF C < MIN THEN MIN = C PRINT "Najmanji broj je: "; MIN

Page 3: Zadaci za osnovne skole 2010. i 2011.pdf

Zadaci za učenike osnovnih škola

3

Suma dva manja broja

Sa standardnog ulaza učitati tri cijela broja. Na standardni izlaz odštampati sumu 2

manja broja od unesenih tri.

Primjer 1:

5

3

9

Suma dva manja je 8

Primjer 2:

4

3

4

Suma dva manja je 7

Primjer 3:

2

2

2

Suma dva manja je 4

Rješenja:

Pascal

QBasic

program Zadatak1; var a, b, c, max: integer; begin Write('Unesi tri cijela broja: '); Readln(a, b, c); max:=a; if b>max then max:=b; if c>max then max:=c; Writeln('Suma dva manja je: ', a+b+c-max); end.

CLS INPUT "Unesi tri cijela broja: ", A, B, C MAX = A IF B > MAX THEN MAX = B IF C > MAX THEN MAX = C PRINT "Suma dva manja je: "; A+B+C-MAX

Page 4: Zadaci za osnovne skole 2010. i 2011.pdf

Zadaci za učenike osnovnih škola

4

Kupovina

Sara i Sanin su dobili glavnu nagradu na dječijem kvizu. Nagrada im je isplaćena u

novčanicama od po 50KM. Sara i Sanin znaju brojati ali još nisu naučili računske

operacije sabiranja, oduzimanja, množenja i dijeljenja. Vaš zadatak je da napišete

program koji će im pomoći pri kupovini. Na standardni ulaz se unosi cijena artikla

(sve cijene su zaokružene na KM tako da ne sadrže konvertibilne feninge) kojeg

Sara i Sanin žele kupiti. Program treba da na standardni izlaz ispiše koliko

novčanica trebaju Sara i Sanin dati i koliki iznos kusura u KM-ovima će dobiti.

Primjer:

Unesi cijenu artikla: 376

Potrebno novcanica: 8

Kusur: 24

Rješenja: Pascal

Basic

program Zadatak2; var cijena, brojNovcanica, kusur: integer; begin Write('Unesi cijenu artikla: '); Readln(cijena); brojNovcanica:=(cijena div 50) ; if cijena mod 50 <> 0 then brojNovcanica:=brojNovcanica+1; kusur:=brojNovcanica*50 - cijena; Writeln('Potrebno novcanica: ', brojNovcanica); Writeln('Kusur: ', kusur); end.

CLS INPUT "Unesi cijenu artikla: ", Cijena BRN = FIX(Cijena / 50) IF Cijena MOD 50 <> 0 THEN BRN = BRN + 1 END IF Kusur = BRN * 50 - Cijena PRINT "Potrebno novcanica: "; BRN PRINT "Kusur: "; Kusur

Page 5: Zadaci za osnovne skole 2010. i 2011.pdf

Zadaci za učenike osnovnih škola

5

Prestupna godina

Prestupna godina je ona godina koja ima 366 dana, za razliku od ostalih godina

koje imaju po 365 dana. Razlog tome je usklađivanje kalendarske godine s

astronomskom godinom, da ne bi s vremenom Nova Godina pala u ljeto, a grožđe

dozrijevalo u decembru ili januaru. Tako mjesec februar, koji inače ima 28 dana, u

prestupnoj godini ima 29 dana.

Prestupne godine su sve one djeljive s 4, ako nisu djeljive sa 100, kojima se dodaju

one koju su djeljive sa 400. Znači, nisu sve godine koje su djeljive s 4 prestupne.

Izuzetak su one koje su djeljive sa 100 a nisu sa 400.

Dakle godine 1800., 1900. i 2100. nisu prestupne, dok 1600., 2000. i 2400. jesu

(sve ovo se odnosi na gregorijanski kalendar).

Sa standardnog ulaza učitati godinu a na standardni izlaz odštampati da li je godina

prestupna ili nije:

Primjer1:

Unesi godinu: 2008

Prestupna

Primjer2:

Unesi godinu: 2011

Nije prestupna

Primjer3:

Unesi godinu: 2100

Nije prestupna

Primjer4:

Unesi godinu: 2000

Prestupna

Page 6: Zadaci za osnovne skole 2010. i 2011.pdf

Zadaci za učenike osnovnih škola

6

Rješenja: Pascal

QBasic

program Zadatak3; var godina: integer; begin Write('Unesi godinu: '); Readln(godina); if godina mod 4 = 0 then begin if (godina mod 100 = 0) and (godina mod 400 <> 0) then Writeln('Nije prestupna') else Writeln('Prestupna'); end else Writeln('Nije prestupna'); end.

CLS INPUT "Unesi godinu: ", godina IF godina MOD 4 = 0 THEN IF godina MOD 100 = 0 AND godina MOD 400 <> 0 THEN PRINT "Nije prestupna" ELSE PRINT "Prestupna" END IF ELSE PRINT "Nije prestupna" END IF

Page 7: Zadaci za osnovne skole 2010. i 2011.pdf

Zadaci za učenike osnovnih škola

7

Parni Sa standardnog ulaza učitati skup cijelih brojeva, kraj unosa 0. U datoteku Parni.dat, na

direktoriju c:\OT2010\ odštampati pozitivne parne brojeve.

Primjer:

Unesi skup brojeva (0 kraj unosa):

1

2

4

-6

7

9

11

0

Lista parnih brojeva:

2

4

Rješenja:

Pascal

Basic

Trougao

Program Zadatak2; var i: Integer; f: Text; Begin Write('Unesi skup brojeva (0 za kraj): '); Readln(i); Assign(f, 'Parni.dat'); Rewrite(f); while (i<>0) do Begin if (i mod 2 = 0) and (i>0) Then Writeln(f, i); Readln(i); end; Close(f); end.

CLS PRINT "Unesi skup brojeva (0 za kraj): " INPUT I OPEN "Parni.dat" FOR OUTPUT AS #1 DO WHILE I <> 0 IF I MOD 2 = 0 AND I > 0 THEN PRINT #1, I END IF INPUT I LOOP CLOSE #1

Page 8: Zadaci za osnovne skole 2010. i 2011.pdf

Zadaci za učenike osnovnih škola

8

Sa standardnog ulaza učitati dimenzije trouglova, kraj unosa jedna od unijetih

dimenzija 0. Nakon svakog unosa na standardni izlaz odštampati date dimenzije i

ispisati

- ako je dati trougao jednakostanični u formatu :

“Trougao XXX – YYY - ZZZ je jednakostranični”

- ako je dati trougao jednakokraki:

“Trougao XXX – YYY - ZZZ je jednakokraki”

- inače

“Trougao XXX – YYY - ZZZ nije jednakokraki”

- unijeta vrijednost 0:

“Kraj rada”

XXX – prva dimenzija trougla (tri mjesta za ispis)

YYY – druga dimenzija trougla (tri mjesta za ispis)

ZZZ – treća dimenzija trougla (tri mjesta za ispis)

(Jednakokraki trougao je onaj trougao kod koga su dvije stranice (kraka) jednake a

jednakostranični trougao je onaj trougao kod koga su sve stranice jednake. Nije

potrebno provjeravati da li unesene vrijednosti predstavljaju validne stranice nekog

trougla.)

Primjer:

Unesi dimenzije trougla: 15, 13, 140

Trougao 15 - 13 - 140 nije jednakokraki

Unesi dimenzije trougla: 150, 105, 105

Trougao 150 - 105- 105 je jednakokraki

Unesi dimenzije trougla: 10, 10, 10

Trougao 10 - 10 - 10 je jednakostranični

Unesi dimenzije trougla: 15, 0, 140

Kraj rada

Napomena: Ako se koristi Pascal onda se izostavlja zarez kao separator između

dimenzija trougla.

Page 9: Zadaci za osnovne skole 2010. i 2011.pdf

Zadaci za učenike osnovnih škola

9

Rješenje: Pascal

QBasic

Program Zadatak3; var a,b,c: Integer; Begin Write('Unesi dimenzije trougla: '); Readln(a, b, c); while (a*b*c<>0) do Begin If (a=b) and (b=c) and (a=c) Then

Writeln('Trougao ',a:3,' - ',b:3,' - ',c:3,' je jednakostranicni') else

If (a=b) or (b=c) or (a=c) Then Writeln('Trougao ',a:3,' - ',b:3,' - ',c:3,' je jednakokraki')

else Writeln('Trougao ',a:3,' - ',b:3,' - ',c:3,' nije jednakokraki'); Write('Unesi dimenzije trougla: '); Readln(a, b, c); end; Writeln('Kraj rada'); end.

CLS INPUT "Unesi dimenzije trougla: ", A, B, C DO WHILE A * B * C <> 0 PRINT USING "Trougao ### - ### - ###"; A; B; C; IF A = B AND B = C AND A = C THEN PRINT " je jednakostranicni" ELSEIF A = B OR B = C OR A = C THEN PRINT " je jednakokraki" ELSE PRINT " nije jednakokraki" END IF INPUT "Unesi dimenzije trougla: ", A, B, C LOOP PRINT "Kraj rada"

Page 10: Zadaci za osnovne skole 2010. i 2011.pdf

Zadaci za učenike osnovnih škola

10

Naopako

Sa standardnog ulaza učitati rečenicu. Na standardni izlaz i u datoteku

Naopako.dat, na direktoriju c:\OT2010\ odštampati rečenicu naopačke.

Primjer:

Unesi rečenicu:Opcinsko takmicenje iz informatike

Naopačke: ekitamrofni zi ejnecimkat oksnicpO

Pascal

QBasic

var s: String; i: Integer; f: Text; begin Assign(f, 'Naopako.dat'); Rewrite(f); Write('Unesi recenicu: '); Readln(s); Write('Naopacke: '); Write(f, 'Naopacke: '); for i:=Length(s) downto 1 do begin Write(s[i]); Write(f, s[i]); end; Writeln; Close(f); end.

CLS OPEN "Naopako.dat" FOR OUTPUT AS #1 LINE INPUT "Unesi recenicu: ", A$ PRINT "Naopacke: "; PRINT #1, "Naopacke: "; FOR I = LEN(A$) TO 1 STEP -1 PRINT MID$(A$, I, 1); PRINT #1, MID$(A$, I, 1); NEXT I CLOSE #1

Page 11: Zadaci za osnovne skole 2010. i 2011.pdf

Zadaci za učenike osnovnih škola

11

Samoglasnici

Sa standardnog ulaza učitati rečenicu. Na standardni izlaz i u datoteku

Samoglas.dat, na direktoriju C:\OT2011\ ispisati ukupan broj samoglasnika u

rečenici. Kod brojanja samoglasnika potrebno je uzeti u obzir i mala i velika slova

ne praveći razliku između njih.

Primjer:

Unesi recenicu:Opcinsko takmicenje iz Informatike.

Broj samoglasnika: 13

Zadatak 4: Pascal

program Zadatak4; var s: string; i, brSamog: integer; f: Text; begin Write('Unesi recenicu: '); Readln(s); brSamog:=0; Assign(f, 'c:\ot2011\samoglas.dat'); Rewrite(f); for i:=1 to Length(s) do if UpCase(s[i]) in ['A', 'E', 'I', 'O', 'U'] then inc(brSamog); Writeln('Broj samoglasnika: ', brSamog); Writeln(f, 'Broj samoglasnika: ', brSamog); Close(f); end.

Page 12: Zadaci za osnovne skole 2010. i 2011.pdf

Zadaci za učenike osnovnih škola

12

QBasic

CLS OPEN "Samoglas.dat" FOR OUTPUT AS #1 LINE INPUT "Unesi recenicu: ", A$ A$ = UCASE$(A$) brSamog = 0 FOR I = 1 TO LEN(A$) S$ = MID$(A$, I, 1) IF S$ = "A" OR S$ = "E" OR S$ = "I" OR S$ = "O" OR S$ = "U" THEN brSamog = brSamog + 1 END IF NEXT I PRINT "Broj samoglasnika: "; brSamog PRINT #1, "Broj samoglasnika: "; brSamog CLOSE #1

Page 13: Zadaci za osnovne skole 2010. i 2011.pdf

Zadaci za učenike osnovnih škola

13

Rječnik

Iz datoteke Ulaz.dat, na direktoriju c:\OT2010\ pročitati tekst. Sa standardnog

ulaza učitati riječi:

- riječ koja je mijenja

- riječ sa kojom se mijenja.

Na standardni izlaz odštampati učitani tekst vršeći zamjenu riječi koja se mijenja sa

riječju kojom se mijenja. Riječ predstavlja skup malih i velikih slova engleskog

alfabeta, svi ostali znakovi (razmak, tačka, cifre itd) predstavljaju znakove

interpukcije (razdvajuju riječi).

Primjer:

U datoteci Ulaz.dat se nalazi slijedeći tekst:

Ovo je, tekst.m. za probu.

-Ima cak dvije linije teksta, pa da provjerimo kako radi

Unesi riječ koja se mijenja: tekst

Unesi riječ kojom se mijenja: test

Na standardni izlaz treba ispisati:

Ovo je, test.m. za probu.

-Ima cak dvije linije teksta, pa da provjerimo kako radi

Page 14: Zadaci za osnovne skole 2010. i 2011.pdf

Zadaci za učenike osnovnih škola

14

Rješenje:

Pascal

Program Zadatak5; var i: Integer; f: Text; s,r1,r2,s1: String; Begin Write('Unesi rijec koja se mijenja: '); Readln(r1); Write('Unesi rijec sa kojom se mijenja: '); Readln(r2); Assign(f,'ulaz.dat'); Reset(f); s1:=''; while not eof(f) do Begin Readln(f,s); for i:=1 to length(s) DO If ((s[i]>='a') and (s[i]<='z')) OR ((s[i]>='A') and (s[i]<='Z')) then s1:=s1+s[i] else begin if s1=r1 then write(r2) else write(s1); s1:=''; write(s[i]); end; if s1=r1 then write(r2) else write(s1); s1:=''; writeln; end; writeln; Close(f); end.

Page 15: Zadaci za osnovne skole 2010. i 2011.pdf

Zadaci za učenike osnovnih škola

15

Qbasic

CLS INPUT "Unesi rijec koja se mijenja: "; R1$ INPUT "Unesi rijec s kojom se mijenja: "; R2$ OPEN "Ulaz.dat" FOR INPUT AS #1 S1$ = "" DO WHILE NOT (EOF(1)) LINE INPUT #1, S$ PRINT S$ FOR I = 1 TO LEN(S$) SLOVO$ = MID$(S$, I, 1) IF UCASE$(SLOVO$) >= "A" AND UCASE$(SLOVO$) <= "Z" THEN S1$ = S1$ + SLOVO$ ELSE IF S1$ = R1$ THEN PRINT R2$; ELSE PRINT S1$; END IF S1$ = "" PRINT SLOVO$; END IF NEXT I IF S1$ = R1$ THEN PRINT R2$; ELSE PRINT S1$; END IF S1$ = "" PRINT LOOP CLOSE #1

Page 16: Zadaci za osnovne skole 2010. i 2011.pdf

Zadaci za učenike osnovnih škola

16

Slova

Iz datoteke Ulaz.dat, na direktoriju C:\OT2011\ pročitati tekst. Na standardni

izlaz i u datoteku Najvise.dat na direktoriju C:\OT2011\ ispisati kojeg slova ima

najviše u datom tekstu. U obzir uzimati samo mala i velika slova engleskog

alfabeta ne praveći razliku između malih i velikih slova. Ako više slova dijeli ulogu

maksimuma onda treba ispisati sva slova. Npr. ako se najviše pojavljuju slova 'A' i

'I' i to jednak broj puta onda treba ispisati i slovo 'A' i slovo 'I'.

Primjer:

U datoteci Ulaz.dat se nalazi slijedeći tekst:

Ovo je tekst za probu.

Ima cak dvije linije teksta, pa da provjerimo kako radiii.

Na standardni izlaz treba ispisati:

Najvise se pojavljuju slova:

A

I

Page 17: Zadaci za osnovne skole 2010. i 2011.pdf

Zadaci za učenike osnovnih škola

17

Rješenja:

Pascal

program Zadatak5; var ch: char; ul, izl: Text; s: string; i, max: integer; slova: array ['A'..'Z'] of integer; {koliko kojeg slova ima u tekstu} begin Assign(ul, 'c:\ot2011\ulaz.dat'); Assign(izl, 'c:\ot2011\najvise.dat'); Reset(ul); Rewrite(izl); for ch:='A' to 'Z' do slova[ch]:=0; while not eof(ul) do begin Readln(ul, s); for i:=1 to Length(s) do if UpCase(s[i]) in ['A'..'Z'] then inc(slova[UpCase(s[i])]); end; max:=slova['A']; for ch:='B' to 'Z' do if slova[ch]>max then max:=slova[ch]; {trazim maksimum} Writeln('Najvise se pojavljuju slova: '); Writeln(izl, 'Najvise se pojavljuju slova: '); for ch:='A' to 'Z' do if slova[ch]=max then {ispisujem sva slova koja se najvise pojavljuju} begin Writeln(ch); Writeln(izl, ch); end; Close(izl); Close(ul); end.

Page 18: Zadaci za osnovne skole 2010. i 2011.pdf

Zadaci za učenike osnovnih škola

18

QBasic

CLS DIM Slova(ASC("A") TO ASC("Z")) AS INTEGER OPEN "Ulaz.dat" FOR INPUT AS #1 OPEN "Najvise.dat" FOR OUTPUT AS #2 FOR I = ASC("A") TO ASC("Z") Slova(I) = 0 NEXT I DO WHILE NOT (EOF(1)) LINE INPUT #1, S$ FOR I = 1 TO LEN(S$) slovo$ = UCASE$(MID$(S$, I, 1)) IF ASC("A") <= ASC(slovo$) AND ASC(slovo$) <= ASC("Z") THEN Slova(ASC(slovo$)) = Slova(ASC(slovo$)) + 1 END IF NEXT I LOOP MAXS = Slova(ASC("A")) FOR I = ASC("B") TO ASC("Z") IF Slova(I) > MAXS THEN MAXS = Slova(I) NEXT I PRINT "Najvise se pojavljuju slova: " PRINT #2, "Najvise se pojavljuju slova: " FOR I = ASC("A") TO ASC("Z") IF Slova(I) = MAXS THEN PRINT CHR$(I) PRINT #2, CHR$(I) END IF NEXT I CLOSE #1 CLOSE #2