Upload
amela-kazazic
View
120
Download
14
Embed Size (px)
DESCRIPTION
ih
Citation preview
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 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
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
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
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
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
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
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.
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"
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
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.
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
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
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.
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
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
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.
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