56
--------------------------------------------------------------- --------------------------------------------------------- 1. Upišite niz od n prirodnih brojeva. Ispišite proste brojeve iz tog niza i poziciju na kojoj se nalaze u tom nizu. Ispišite umnožak tih prostih brojeva CLS PRINT "Unesi dimenziju niza: "; INPUT n DIM niz(n) FOR i = 1 TO n STEP 1 PRINT "Unesi broj: "; INPUT niz(i) NEXT i PRINT "Niz brojeva je: "; FOR i = 1 TO n PRINT niz(i); " "; NEXT i PRINT PRINT "Prosti brojevi su: "; PRINT u = 1 FOR i = 1 TO n p = 0 FOR j = 2 TO niz(i) - 1 IF niz(i) MOD j = 0 THEN p = p + 1 NEXT j IF p = 0 THEN PRINT niz(i); "na poziciji: "; i; PRINT u = u * niz(i) END IF NEXT i PRINT PRINT "Umnozak prostih brojeva je: "; u

Programiranje1 Zadaci i Rjesenja

Embed Size (px)

DESCRIPTION

programiranje

Citation preview

Page 1: Programiranje1 Zadaci i Rjesenja

------------------------------------------------------------------------------------------------------------------------1. Upišite niz od n prirodnih brojeva. Ispišite proste brojeve iz tog niza i poziciju na kojoj se

nalaze u tom nizu. Ispišite umnožak tih prostih brojeva

CLSPRINT "Unesi dimenziju niza: ";INPUT nDIM niz(n)FOR i = 1 TO n STEP 1 PRINT "Unesi broj: "; INPUT niz(i)NEXT i

PRINT "Niz brojeva je: ";FOR i = 1 TO n PRINT niz(i); " ";NEXT i

PRINTPRINT "Prosti brojevi su: ";PRINT

u = 1FOR i = 1 TO n p = 0 FOR j = 2 TO niz(i) - 1 IF niz(i) MOD j = 0 THEN p = p + 1 NEXT j IF p = 0 THEN PRINT niz(i); "na poziciji: "; i; PRINT u = u * niz(i) END IFNEXT i

PRINTPRINT "Umnozak prostih brojeva je: "; u

Page 2: Programiranje1 Zadaci i Rjesenja

2. Upišite četveroznamenkasti broj (kao cjelobrojnu varijablu,a ne string). Ispišite taj broj naopako te ga ispišite i u sljedećem obliku: abcd=a*1000+b*100+c*10+d

CLS10 INPUT "Unesi cetveroznamenkasti broj: "; brojIF broj < 1000 OR broj > 9999 THEN PRINT "Broj nije cetveroznamenkast! Ponovite unos!" GOTO 10END IF

d = broj MOD 10broj = INT(broj / 10)c = broj MOD 10broj = INT(broj / 10)b = broj MOD 10a = INT(broj / 10)

PRINT "Broj u obliku abcd:"PRINT a * 1000 + b * 100 + c * 10 + dPRINT "Broj naopako:"PRINT d * 1000 + c * 100 + b * 10 + a

3. Napiši program koji će za uneseni string prebrojat broj pojavljivanja samoglasnika. ulaz: Dobar dan dobri ljudi; izlaz: 7

CLSINPUT "Unesi recenicu: "; a$

br = 0FOR i = 1 TO LEN(a$) b$ = UCASE$(MID$(a$, i, 1)) IF b$ = "A" OR b$ = "E" OR b$ = "I" OR b$ = "O" OR b$ = "U" THEN br = br + 1NEXT i

PRINT "Ima "; br; " samoglasnika."

4. Upisati u datoteku proizvoljan broj riječi. Ispisati iz datoteke na zaslon samo one riječi koje su palindromi (čitaju se jednako s obje strane, npr. ratar).

CLSINPUT "Unesi naziv datoteke"; n$

OPEN n$ FOR OUTPUT AS #120 INPUT "Unesi zapis: "; a$PRINT #1, a$INPUT "Zelite li nastaviti?(da/ne)"; odg$IF UCASE$(odg$) = "DA" THEN GOTO 20CLOSE #1

Page 3: Programiranje1 Zadaci i Rjesenja

PRINT "Palindromi iz datoteke su: ";

OPEN n$ FOR INPUT AS #1DO WHILE NOT (EOF(1)) INPUT #1, a$ b$ = "" FOR i = LEN(a$) TO 1 STEP -1 c$ = MID$(a$, i, 1) b$ = b$ + c$ NEXT i IF a$ = b$ THEN PRINT a$LOOPCLOSE #1

------------------------------------------------------------------------------------------------------------------------

*** 01 - Napraviti program koji će ispisati vašu ime, prezime i adresu.

INPUT "Unesite ime: "; ime$INPUT "Unesite prezime: "; prezime$INPUT "Unesite adresu: "; adresa$

PRINT "Vi ste "; ime$; " "; prezime$; " i vasa adresa je "; adresa$

*** 02 - Učitati dva cijela broja i ispisati rezultate operacija +, -, *, /

INPUT "Unesi 1. broj: "; aINPUT "Unesi 2. broj: "; b

PRINT "Zbroj je: "; a + bPRINT "Razlika je: "; a - bPRINT "Umnozak je: "; a * bPRINT "Kolicnik je: "; a / b

*** 03 - Napraviti program koji će izračunati opseg i površinu kvadrata za unesenu stranicu.

INPUT "Unesi stranicu kvadrata: "; a

PRINT "Opseg kvadrata je: "; 4 * aPRINT "Povrsina kvadrata je: "; a * a

Page 4: Programiranje1 Zadaci i Rjesenja

*** 06 - Napravi program koji će upotrebom jedne varijable naredbe GOTO i naredbe IF THEN ispisati sve brojeve od 1 do 100.

x = 010 x = x + 1PRINT xIF x < 100 THEN GOTO 10

*** 07 - Napravi dijagram toka i program koji će uspoređivati dva unesena broja i ovisno o usporedbi ispisati sljedeće:

- prvi broj je manji od drugog broja- prvi broj je jednak drugom broju- prvi broj je veći od drugog broja

INPUT "Unesi 1. broj: "; aINPUT "Unesi 2. broj: "; bIF a < b THEN PRINT "Prvi broj je manji od drugog broja."IF a = b THEN PRINT "Prvi i drugi broj su jednaki."IF a > b THEN PRINT "Prvi broj je veci od drugog broja."

*** 08 - Napravi dijagram toka i program koji će za uneseni radijus kruga izračunati i ispisati opseg i površinu kruga uz uvjete:

- radijus = 0 ---> ispis: kružnica je točka- radijus < 0 ---> ispis: kružnica je nemoguća

pi = 3.14INPUT "Unesi radijus kruga: "; rIF r = 0 THEN PRINT "Kruznica je tocka."IF r < 0 THEN PRINT "Kruznica je nemoguca."IF r > 0 THEN PRINT "Opseg kruga je: "; 2 * r * pi PRINT "Povrsina kruga je: "; r * r * piEND IF

*** 09 - Napravi program koji će uspoređivati dva unesena broja i ovisno o usporedbi ispisati:

- prvi broj < drugi broj- prvi broj = drugi broj- prvi broj > drugi broj (koristiti SELECT)

INPUT "Unesi 1. broj: "; aINPUT "Unesi 2. broj: "; bSELECT CASE a CASE IS < b PRINT a; " < "; b CASE IS > b PRINT a; " > "; b CASE IS = b

Page 5: Programiranje1 Zadaci i Rjesenja

PRINT a; " = "; bEND SELECT

*** 10 - Napravi program za igru pogađanja gdje će računalo odrediti neki broj između 0 i 100, recimo 83, a zatim korisnik pokušava pogoditi zamišljeni broj i računalo mu odgovara npr. kao što je prikazano dolje:

KORISNIK RAČUNALO 50 Broj je veći 90 Broj je manji 80 Broj je veći 83 POGODAK - Broj pokušaja = 4

RANDOMIZE TIMERx = INT(1 + RND * 100)br = 0

10 INPUT "Pogodite zadani broj izmedu 1 i 100"; abr = br + 1IF a < x THEN PRINT "Broj je veci" GOTO 10END IFIF a > x THEN PRINT "Broj je manji" GOTO 10END IFIF a = x THEN PRINT "Pogodak! Broj pokusaja: "; brEND IF

*** 11 - Učitati realan broj. Ako je broj nenegativan, ispisati njegov drugi korijen. Ako je negativan, ispisati njegov kvadrat.

INPUT "Unesi broj: "; akorjen = SQR(a)kvadrat = a ^ 2IF a > 0 THEN PRINT korjenIF a < 0 THEN PRINT kvadrat

*** 12 - Učitati dva realna broja. Učitati +, -, * ili / i izvršiti željenu operaciju.

INPUT "Unesi 1. broj: "; aINPUT "Unesi 2. broj: "; bINPUT "Unesi zeljenu operaciju (+,-,*,/): "; op$IF op$ = "+" THEN PRINT a + bIF op$ = "-" THEN PRINT a - b

Page 6: Programiranje1 Zadaci i Rjesenja

IF op$ = "*" THEN PRINT a * bIF op$ = "/" THEN PRINT a / b

*** 13 - Učitati tri broja, pa ispisati najmanji.

INPUT "Unesi 1. broj: "; aINPUT "Unesi 2. broj: "; bINPUT "Unesi 3. broj: "; c

IF a < b AND a < c THEN PRINT "Najmanji broj je "; a;IF b < a AND b < c THEN PRINT "Najmanji broj je "; b;IF c < b AND c < a THEN PRINT "Najmanji broj je "; c;

*** 14 - Napravi program koji će ispisivati sve parne brojeve od 1 do 100. (DO-LOOP ili WHILE-WEND)

a = 0WHILE a < 100 a = a + 2 PRINT aWEND

*** 15 - Napravi program koji će ispisivati sve neparne brojeve od 100 do 1. (DO-LOOP ili WHILE-WEND)

a = 99WHILE a > 1 a = a - 2 PRINT aWEND

*** 16 - Napravi program koji će izračunati sumu niza brojeva od 1 do 20. (DO-LOOP ili WHILE-WEND)

a = 1s = 0WHILE a <= 20 s = s + a a = a + 1WEND

PRINT "Suma brojeva od 1 do 20 je: "; s

*** 17 - Napravi program koji će ispisivati sve parne brojeve od 1 do 100.(FOR-NEXT)

FOR i = 2 TO 100 STEP 2 PRINT iNEXT i

Page 7: Programiranje1 Zadaci i Rjesenja

*** 18 - Napravi program koji će ispisivati sve neparne brojeve od 100 do 1.(FOR-NEXT)

FOR i = 99 TO 1 STEP -2 PRINT iNEXT i

*** 19 - Napravi program koji će izračunati sumu niza brojeva od 1 do 20.(FOR-NEXT)

s = 0FOR i = 1 TO 20 STEP 1 PRINT i s = s + iNEXT i

PRINT "Suma brojeva od 1 do 20 je: "; s

*** 20 - Upisati rečenicu, pa ispisati broj pojavljivanja svakog samoglasnika, ispisati je naopako i ispisati njenu duljinu.

A-Z 65-90 a-z 97-122

CLSINPUT "Unesi neku recenicu: "; a$PRINTx = LEN(a$)a = 0e = 0i = 0o = 0u = 0PRINT "Duljina recenice: "; x; " !!!"FOR i = x TO 1 STEP -1 y$ = MID$(a$, i, 1) b$ = b$ + y$NEXT iFOR j = x TO 1 STEP -1 y$ = MID$(a$, j, 1) q = ASC(y$) SELECT CASE q CASE IS = 97 a = a + 1 CASE IS = 65 a = a + 1 CASE IS = 101 e = e + 1

Page 8: Programiranje1 Zadaci i Rjesenja

CASE IS = 69 e = e + 1 CASE IS = 105 i = i + 1 CASE IS = 73 i = i + 1 CASE IS = 111 o = o + 1 CASE IS = 79 o = o + 1 CASE IS = 117 u = u + 1 CASE IS = 85 u = u + 1 END SELECTNEXT jPRINT "Recenica - naopako: "; b$PRINT "Broj ponavljanja samoglasnika - a: "; aPRINT "Broj ponavljanja samoglasnika - e: "; ePRINT "Broj ponavljanja samoglasnika - i: "; iPRINT "Broj ponavljanja samoglasnika - o: "; oPRINT "Broj ponavljanja samoglasnika - u: "; uEND

*** 21 - Učitati prirodan broj i ispisati sve njegove znamenke. (INT, FIX)INPUT "Unesi neki prirodni broj: "; a

WHILE a > 0 b = a MOD 10 a = INT(a / 10) PRINT bWEND

*** 22 - Rastaviti prirodan broj na proste faktore. (INT, FIX)

INPUT "Unesi broj: "; ap = aFOR i = 2 TO p DO WHILE a MOD i = 0 a = INT(a / i) PRINT i LOOPNEXT i

*** 23 - Napravi program koji će za uneseni prirodni broj ispisivati da lije taj broj prost ili nije.

Page 9: Programiranje1 Zadaci i Rjesenja

INPUT "Unesi broj: "; ap = 0FOR i = 2 TO a - 1 IF a MOD i = 0 THEN p = p + 1NEXT i

IF p = 0 THEN PRINT "Broj je prost"IF p > 0 THEN PRINT "Broj nije prost"

*** 24 - Napravi program koji traži da uneseš ime i prezime u jednu string varijablu i onda ispiši svako slovo iz string varijable jedno ispod drugog.

INPUT "Unesi ime i prezime"; ime$

FOR i = 1 TO LEN(ime$) PRINT MID$(ime$, i, 1)NEXT i

*** 25 - Napravi program koji traži da uneseš neki string u varijablu i onda zamijeni znakove u string varijabli. ("QBasic" -> "cisaBQ")

INPUT "Unesi string: "; a$

FOR i = LEN(a$) TO 1 STEP -1 PRINT MID$(a$, i, 1); "";NEXT i

*** 26 - Upišite imena n učenika i ocjena koje su dobili na ispitu, izračunajte prosječnu ocjenu i ispišite ju te ispišite one učenike koji su dobili ocjenu veću od prosječne. Ispišite niz učenika sortiran prema prosječnoj ocjeni.

INPUT "Unesi broj ucenika: "; nDIM ucenici$(n)DIM ocjene(n)

FOR i = 1 TO n INPUT "Unesi ime ucenika: "; ucenici$(i) INPUT "Unesi njegovu ocjenu: "; ocjene(i)NEXT i

s = 0FOR i = 1 TO n s = s + ocjene(i)NEXT i

PRINTp = INT(s / n)

Page 10: Programiranje1 Zadaci i Rjesenja

PRINT "Prosjecna ocjena je: "; pPRINT

PRINT "Ucenici koji imaju ocjenu vecu od prosjecne su:"PRINT

FOR i = 1 TO n IF ocjene(i) > p THEN PRINT ucenici$(i); " - ocjena: "; ocjene(i)NEXT i

FOR i = 1 TO n - 1 FOR j = i + 1 TO n IF ocjene(i) < ocjene(j) THEN t = ocjene(j) ocjene(j) = ocjene(i) ocjene(i) = t

p$ = ucenici$(j) ucenici$(j) = ucenici$(i) ucenici$(i) = p$ END IF NEXT jNEXT i

PRINTPRINT "Ucenici sortirani po prosjeku: "

FOR i = 1 TO n PRINT ucenici$(i), ocjene(i)NEXT i

*** 27 - Upišite niz od n prirodnih brojeva. Ispišite za svaki broj iz tog niza njegove djelitelje. Ispišite poziciju najvećeg člana niza i taj član.

INPUT "Unesi duljinu niza: "; nDIM a(n)

FOR i = 1 TO n INPUT "Unesi broj: "; a(i)NEXT i

FOR i = 1 TO n PRINT PRINT a(i) PRINT "Njegovi djeljitelji su: ";

Page 11: Programiranje1 Zadaci i Rjesenja

FOR j = 1 TO a(i) IF a(i) MOD j = 0 THEN PRINT j; " "; NEXT jNEXT i

max = a(1)poz = 1FOR i = 2 TO n IF max < a(i) THEN max = a(i) poz = i END IFNEXT i

PRINTPRINT "Najveci broj je "; max; " na poziciji "; poz

*** 28 - Upišite niz riječi. Sortirajte taj niz po duljini riječi. Ispišite poziciju u polaznom nizu na kojoj se nalazila riječ maksimalne duljine, tu riječ i njenu duljinu.

INPUT "Unesi dimenziju niza: "; nDIM rijeci$(n)FOR i = 1 TO n INPUT "Unesi rijec: "; rijeci$(i)NEXT i

FOR i = 1 TO n PRINT rijeci$(i); " ";NEXT i

PRINT

max$ = rijeci$(1)poz = 1length = LEN(rijeci$(1))

FOR i = 2 TO n IF LEN(rijeci$(i)) > LEN(max$) THEN max$ = rijeci$(i) poz = i length = LEN(rijeci$(i)) END IFNEXT i

PRINT

Page 12: Programiranje1 Zadaci i Rjesenja

PRINT "Najduza rijec je: "; max$; ", duljine: "; length; " na mjestu: "; pozPRINT

FOR i = 1 TO n - 1 FOR j = i + 1 TO n IF LEN(rijeci$(i)) < LEN(rijeci$(j)) THEN t$ = rijeci$(i) rijeci$(i) = rijeci$(j) rijeci$(j) = t$ END IF NEXT jNEXT i

FOR i = 1 TO n PRINT rijeci$(i); " ";NEXT i

*** 29 - Napravi program koji će stvoriti niz od 10 elemenata i u niz upisati prvih 10 parnih brojeva.CLSDIM niz(10)x = 2FOR i = 1 TO 10 niz(i) = x x = x + 2NEXT i

FOR i = 1 TO 10 PRINT niz(i); " ";NEXT i

*** 30 - Napravi program koji traži da uneseš dimenziju niza i onda napuni niz slučajnim brojevima od 1 do 10.

CLSINPUT "Unesi dimenziju niza: "; nDIM niz(n)

FOR i = 1 TO n RANDOMIZE TIMER niz(i) = INT(1 + RND * 10)NEXT i

FOR i = 1 TO n PRINT niz(i); " ";NEXT i

Page 13: Programiranje1 Zadaci i Rjesenja

*** 31 - Napravi program koji će pomoću potprograma (s tri parametra) za uneseni početni član niza, zadnji član niza i razmak između dva susjedna elementa niza ispisati sve elemente aritmetičkog niza.Na primjer za parametre 3,10,2 ispisati 3 5 7 9.

CLSGOSUB unos

FOR i = 1 TO b STEP c PRINT i; " ";NEXT i

END

unos:INPUT "Unesi prvi clan: "; aINPUT "Unesi zadnji clan: "; bINPUT "Unesi razmak: "; cRETURN

*** 32 - Napravi program koji će u datoteku c:\temp\student.dat zapisati sljedeće podatke o studentu: ime, prezime, datum rođenja.

INPUT "Unesi naziv datoteke: "; dat$

OPEN dat$ FOR OUTPUT AS #1INPUT "Unesi ime: "; ime$INPUT "Unesi prezime: "; prezime$INPUT "Unesi datum rodenja: "; datum$PRINT #1, ime$, prezime$, datum$CLOSE

*** 33 - Napravi program koji će iz datoteke iz 32. zadatka pročitati podatke o studentu i ispisati ih na ekran.

PRINT "STUDENT: "OPEN dat$ FOR INPUT AS #1PRINT "Ime: "; ime$PRINT "Prezime: "; prezime$PRINT "Datum rodenja: "; datum$CLOSE

Page 14: Programiranje1 Zadaci i Rjesenja

*** 34 - Napravi program kojim ćeš u datoteku niz.txt upisati 10 brojeva i na kraju pročitati iz datoteke brojeve te ih ispisati na ekran sortirane po veličini.

OPEN "niz.dat" FOR OUTPUT AS #1FOR i = 1 TO 10 INPUT "Unesi broj"; a PRINT #1, aNEXT iCLOSE #1

OPEN "niz.dat" FOR INPUT AS #1DIM niz(10)i = 0WHILE NOT EOF(1) i = i + 1 INPUT #1, a niz(i) = aWEND

FOR i = 1 TO 9 FOR j = i + 1 TO 10 IF niz(i) > niz(j) THEN t = niz(i) niz(i) = niz(j) niz(j) = t END IF NEXT jNEXT i

FOR i = 1 TO 10 PRINT niz(i)NEXT iCLOSE #1

*** 35 - Napravi program koji će u datoteku niz2.dat zapisati uneseni broj n i zatim upisati n slučajno generiranih brojeva između 1 i 100.

OPEN "niz2.dat" FOR OUTPUT AS #1INPUT "unesi broj: "; nPRINT #1, nCLOSE #1

OPEN "niz2.dat" FOR INPUT AS #1INPUT #1, n

a = 0RANDOMIZE TIMER

Page 15: Programiranje1 Zadaci i Rjesenja

FOR i = 1 TO n a = INT(1 + RND * 100) PRINT aNEXT i

CLOSE #1

*** 36 - Doradi program 34 tako da napraviš funkciju koja će vratiti maksimalni element niza i funkciju koja će vratiti minimalni element niza.

OPEN "niz.dat" FOR OUTPUT AS #1a = 0RANDOMIZE TIMERFOR i = 1 TO 10 a = INT(1 + RND * 100) PRINT #1, aNEXT iCLOSE #1

OPEN "niz.dat" FOR INPUT AS #1DIM niz(10)i = 0WHILE NOT EOF(1) i = i + 1 INPUT #1, a niz(i) = aWEND

FOR i = 1 TO 9 FOR j = i + 1 TO 10 IF niz(i) > niz(j) THEN t = niz(i) niz(i) = niz(j) niz(j) = t END IF NEXT jNEXT i

PRINT "sortirani niz"FOR i = 1 TO 10 PRINT niz(i); " ";NEXT i

PRINT

min = niz(1)

Page 16: Programiranje1 Zadaci i Rjesenja

FOR i = 2 TO 10 IF niz(i) < min THEN min = niz(i)NEXT i

PRINT "najmanji element niza je: "; min

max = niz(1)

FOR j = 2 TO 10 IF niz(j) > max THEN max = niz(j)NEXT j

PRINT "najveci element niza je: "; max

CLOSE #1

*** 37 - Upisati u datoteku proizvoljan broj riječi. Ispisati iz datoteke samo one riječi kojima je duljina veća od 3.

OPEN "37.txt" FOR OUTPUT AS #1INPUT "unesi broj rijeci: "; nFOR i = 1 TO n INPUT "Unesi rijec: "; a$ PRINT #1, a$NEXT iCLOSE #1

OPEN "37.txt" FOR INPUT AS #1WHILE NOT EOF(1) INPUT #1, a$ IF LEN(a$) > 3 THEN PRINT a$WENDCLOSE #1

*** 38 - Upisati u datoteku proizvoljan broj imena studenata. Ispisati iz datoteke imena tih studenata i broj pojavljivanja slova ''a'' u njihovom imenu.

OPEN "38.txt" FOR OUTPUT AS #1INPUT "Unesi broj studenata: "; nFOR i = 1 TO n INPUT "Unesi ime: "; s$ PRINT #1, s$NEXT iCLOSE #1

OPEN "38.txt" FOR INPUT AS #1WHILE NOT EOF(1)

Page 17: Programiranje1 Zadaci i Rjesenja

INPUT #1, s$ br = 0 FOR i = 1 TO LEN(s$) a$ = UCASE$(MID$(s$, i, 1)) IF a$ = "A" THEN br = br + 1 NEXT i PRINT s$ PRINT "Broj ponavljanja slova a: "; brWENDCLOSE #1

*** 39 - Upisati u datoteku proizvoljan broj riječi. Ispisati iz datoteke na zaslon naopako samo one riječi kojima je duljina prost broj.

OPEN "39.txt" FOR OUTPUT AS #110 INPUT "Unesi rijec: "; a$PRINT #1, a$INPUT "Zelite li nastaviti? (da/ne)"; odg$IF UCASE$(odg$) = "DA" THEN GOTO 10CLOSE #1

OPEN "39.txt" FOR INPUT AS #1WHILE NOT EOF(1) INPUT #1, a$ d = LEN(a$) p = 0 FOR i = 2 TO SQR(d) IF d MOD i = 0 THEN p = p + 1 NEXT i b$ = "" IF p = 0 THEN FOR j = d TO 1 STEP -1 b$ = b$ + MID$(a$, j, 1) NEXT j PRINT b$ END IFWEND

CLOSE #1

Page 18: Programiranje1 Zadaci i Rjesenja

*** 40 - Napravi program koji će tražiti da uneseš neku rečenicu te će ju ispisatina ekran tako da svaki znak koji nije slovo abecede zamijeni crticom.

*** OVAJ ZADATAK BUDE NA ISPITU *** ( 01 )

INPUT "Unesi recenicu"; a$FOR i = 1 TO LEN(a$) b$ = MID$(a$, i, 1) IF UCASE$(b$) = "A" OR UCASE$(b$) = "E" OR UCASE$(b$) = "I" OR UCASE$(b$) = "O" OR UCASE$(b$) = "U" THEN PRINT b$ ELSE PRINT "-" END IFNEXT i

*** 41 - Napravi program koji će ispisivati sve dvoznamenkaste brojeve i toriječima. Npr.

dvadesetdvadeset jedandvadeset dva...... ...... .... ...

*** OVAJ ZADATAK BUDE NA ISPITU *** ( 02 )

INPUT "Unesi broj"; a

jedinica = a MOD 10desetica = INT(a / 10)

jedinica$ = ""desetica$ = ""broj$ = ""

IF desetica = 1 THEN SELECT CASE jedinica CASE 1 broj$ = "jedanaest" CASE 2 broj$ = "dvanaest" CASE 3 broj$ = "trinaest" CASE 4 broj$ = "cetrnaest" CASE 5 broj$ = "petnaest" CASE 6

Page 19: Programiranje1 Zadaci i Rjesenja

broj$ = "sesnaest" CASE 7 broj$ = "sedamnaest" CASE 8 broj$ = "osamnaest" CASE 9 broj$ = "devetnaest" END SELECT PRINT broj$ ENDEND IF

SELECT CASE desetica CASE 2 desetica$ = "dvadeset" CASE 3 desetica$ = "trideset" CASE 4 desetica$ = "cetrdeset" CASE 5 desetica$ = "pedeset" CASE 6 desetica$ = "sezdeset" CASE 7 desetica$ = "sedamdeset" CASE 8 desetica$ = "osamndeset" CASE 9 desetica$ = "devedeset"END SELECT

SELECT CASE jedinica CASE 1 jedinica$ = "jedan" CASE 2 jedinica$ = "dva" CASE 3 jedinica$ = "tri" CASE 4 jedinica$ = "cetiri" CASE 5 jedinica$ = "pet" CASE 6 jedinica$ = "sest" CASE 7 jedinica$ = "sedam"

Page 20: Programiranje1 Zadaci i Rjesenja

CASE 8 jedinica$ = "osam" CASE 9 jedinica$ = "devet"END SELECT

PRINT desetica$; " "; jedinica$

*** 42 - Upisati u datoteku nekoliko riječi i tražiti neko slovo da se unese te na ekran ispisati samo one riječi kojima je broj ponavljanja unesenog slova prost broj.

*** OVAJ ZADATAK BUDE NA ISPITU *** ( 03 )

INPUT "Unesi ime datoteke:"; ime$

OPEN ime$ FOR OUTPUT AS #110 INPUT "Unesi rijec"; rijec$PRINT #1, rijec$INPUT "Zelite li nastaviti?(da/ne)"; odg$IF UCASE$(odg$) = "DA" THEN GOTO 10

CLOSE #1

OPEN ime$ FOR INPUT AS #1INPUT "Unesi slovo"; slovo$WHILE NOT EOF(1) INPUT #1, rijec$ br = 0 FOR i = 1 TO LEN(rijec$) ponav$ = MID$(rijec$, i, 1) IF UCASE$(ponav$) = UCASE$(slovo$) THEN br = br + 1 NEXT i p = 0 FOR j = 2 TO SQR(br) IF br MOD j = 0 THEN p = p + 1 NEXT j IF p = 0 THEN PRINT rijec$ END IFWENDCLOSE #1

Page 21: Programiranje1 Zadaci i Rjesenja

*** 43 - Treba upisati neku rečenicu proizvoljne duljine, a računalo treba ispisatijednu riječ ispod druge.

*** OVAJ ZADATAK BUDE NA ISPITU *** ( 04 )

INPUT "unesi recenicu"; a$

FOR i = 1 TO LEN(a$) b$ = MID$(a$, i, 1) IF b$ = " " THEN PRINT ELSE PRINT b$; END IFNEXT i

*** 44 - Ispisati na ekran samo one četveroznamenkaste brojeve kojima je umnožakprve dvije jednak umnošku druge dvije znamenke.

*** OVAJ ZADATAK BUDE NA ISPITU *** ( 05 )

INPUT "Koliko brojeva: "; nDIM br(n)

FOR i = 1 TO n 10 INPUT "Unesi cetveroznamenkasti broj"; br(i) IF br(i) > 9999 OR br(i) < 1000 THEN PRINT "Greska!"; GOTO 10 END IFNEXT i

PRINT

FOR i = 1 TO n x = br(i) d = x MOD 10 x = INT(x / 10) c = x MOD 10 x = INT(x / 10) b = x MOD 10 x = INT(x / 10) a = x

z = a * b v = c * d

IF z = v THEN PRINT br(i)NEXT i

Page 22: Programiranje1 Zadaci i Rjesenja

*** 45 - Napravi program koji će tražiti da uneseš dimenziju n niza te će u niz unijeti nslučajnih brojeva između 1 i 100. Računalo treba ispisati aritmetičku sredinuniza te broj najbliži toj aritmetičkoj sredini.

*** OVAJ ZADATAK BUDE NA ISPITU *** ( 06 )

INPUT "Unesi dimenziju niza: "; nDIM br(n)

RANDOMIZE TIMERFOR i = 1 TO n br(i) = INT(1 + RND * 100)NEXT i

FOR i = 1 TO n PRINT br(i); " "NEXT i

z = 0FOR i = 1 TO n z = z + br(i)NEXT i

a = z / nPRINT "aritmeticka sredina:"; a

min = br(1)IF min > a THEN minx = min - aIF min < a THEN minx = a - minFOR i = 2 TO n IF br(i) > a THEN x = br(i) - a IF br(i) < a THEN x = a - br(i) IF x < minx THEN min = br(i) minx = x END IFNEXT i

PRINT "Najblizi broj je "; min; " udaljen za "; minx

Page 23: Programiranje1 Zadaci i Rjesenja

*** 46 - Unijeti dimenziju n niza, a računalo treba u niz upisati n slučajnih brojeva između1 i 10 te na ekran ispisati taj niz te broj ponavljanja članova niza. Npr.

niz: 4 , 5 , 4 , 10 , 5 , 13 , 4 , 2 , 6 , 2 , 3 , 2 , 8 , 45 - broj ponavljanja = 24 - broj ponavljanja = 42 - broj ponavljanja = 3

*** OVAJ ZADATAK BUDE NA ISPITU *** ( 07 )

INPUT "Unesi dimenziju niza: "; nDIM br(n)

RANDOMIZE TIMERFOR i = 1 TO n br(i) = INT(1 + RND * 10)NEXT i

FOR i = 1 TO n PRINT br(i); " ";NEXT i

a = 0b = 0c = 0d = 0e = 0f = 0g = 0h = 0j = 0k = 0

FOR i = 1 TO n SELECT CASE br(i) CASE 1 a = a + 1 CASE 2 b = b + 1 CASE 3 c = c + 1 CASE 4 d = d + 1 CASE 5 e = e + 1 CASE 6 f = f + 1 CASE 7 g = g + 1

Page 24: Programiranje1 Zadaci i Rjesenja

CASE 8 h = h + 1 CASE 9 j = j + 1 CASE 10 k = k + 1 END SELECTNEXT i

PRINTPRINT

IF a > 0 THEN PRINT "1 - broj ponavljanja = "; aIF b > 0 THEN PRINT "2 - broj ponavljanja = "; bIF c > 0 THEN PRINT "3 - broj ponavljanja = "; cIF d > 0 THEN PRINT "4 - broj ponavljanja = "; dIF e > 0 THEN PRINT "5 - broj ponavljanja = "; eIF f > 0 THEN PRINT "6 - broj ponavljanja = "; fIF g > 0 THEN PRINT "7 - broj ponavljanja = "; gIF h > 0 THEN PRINT "8 - broj ponavljanja = "; hIF j > 0 THEN PRINT "9 - broj ponavljanja = "; jIF k > 0 THEN PRINT "10 - broj ponavljanja = "; k

*** 48 - Treba unijeti neki broj, a računalo treba ispisati da li je taj broj prost ili ne.Nakon svakog unosa slijedi odluka za nastavak (DA ili NE).

*** OVAJ ZADATAK BUDE NA ISPITU *** ( 09 )

10 INPUT "Unesi broj: "; n

p = 0FOR i = 2 TO SQR(n) IF n MOD i = 0 THEN p = p + 1NEXT i

IF p = 0 THEN PRINT "Broj je prost"ELSE PRINT "Broj nije prost"END IF

INPUT "Zelite li nastaviti?(da/ne)"; odg$IF UCASE$(odg$) = "DA" THEN GOTO 10

Page 25: Programiranje1 Zadaci i Rjesenja

*** 49 - Upišite niz od n prirodnih brojeva. Ispišite proste brojeve iz tog niza i poziciju na kojoj se nalaze u tom nizu. Ispišite umnožak tih prostih brojeva.

INPUT "unesi dimenziju niza: "; nDIM br(n)

FOR i = 1 TO n INPUT "Unesi broj: "; br(i)NEXT i

FOR i = 1 TO n PRINT br(i); " ";NEXT i

PRINTPRINT "Prosti brojevi iz niza: "

u = 1FOR i = 1 TO n p = 0 FOR j = 2 TO SQR(br(i)) IF br(i) MOD j = 0 THEN p = p + 1 NEXT j IF p = 0 THEN PRINT br(i); " "; " na poziciji: "; i u = u * br(i) END IFNEXT i

PRINT "Umnozak prostih brojeva je "; u

*** 50 - Doradi program 49 tako da nađeš najmanji i najveći element niza.

INPUT "unesi dimenziju niza: "; nDIM br(n)

FOR i = 1 TO n INPUT "Unesi broj: "; br(i)NEXT i

min = br(1)max = br(1)FOR i = 2 TO n IF br(i) < min THEN min = br(i) IF br(i) > max THEN max = br(i)NEXT i

Page 26: Programiranje1 Zadaci i Rjesenja

FOR i = 1 TO n PRINT br(i); " ";NEXT i

PRINT

PRINT "Najmanji broj je: "; min; " , a najveci "; maxPRINTPRINT "Prosti brojevi iz niza: "

u = 1FOR i = 1 TO n p = 0 FOR j = 2 TO SQR(br(i)) IF br(i) MOD j = 0 THEN p = p + 1 NEXT j IF p = 0 THEN PRINT br(i); " "; " na poziciji: "; i u = u * br(i) END IFNEXT i

PRINT "Umnozak prostih brojeva je "; u

*** 51 - Doradi program 49 tako da nađeš sumu i produkt svih članova niza.

INPUT "unesi dimenziju niza: "; nDIM br(n)

FOR i = 1 TO n INPUT "Unesi broj: "; br(i)NEXT i

min = br(1)max = br(1)FOR i = 2 TO n IF br(i) < min THEN min = br(i) IF br(i) > max THEN max = br(i)NEXT i

s = 0k = 0

FOR i = 1 TO n PRINT br(i); " "; s = s + br(i)

Page 27: Programiranje1 Zadaci i Rjesenja

k = k / br(i)NEXT i

PRINT

PRINT "Najmanji broj je: "; min; " , a najveci "; maxPRINT "Suma brojeva je: "; s; " , a kolicnik "; kPRINTPRINT "Prosti brojevi iz niza: "

u = 1FOR i = 1 TO n p = 0 FOR j = 2 TO SQR(br(i)) IF br(i) MOD j = 0 THEN p = p + 1 NEXT j IF p = 0 THEN PRINT br(i); " "; " na poziciji: "; i u = u * br(i) END IFNEXT i

PRINT "Umnozak prostih brojeva je "; u

*** 52 - Napravi program koji će ispisati sumu svih dvoznamenkastih prostih brojeva.

s = 0FOR i = 10 TO 99 p = 0 FOR j = 2 TO SQR(i) IF i MOD j = 0 THEN p = p + 1 NEXT j IF p = 0 THEN s = s + iNEXT i

PRINT "Suma svih dvoznamenkastih prostih brojeva je: "; s

*** 53 - Napravi program koji će tražiti da uneseš neku rečenicu, a on će ju ispisati na ekran obrnutim redosljedom riječi. Npr.unos: Dobar dan studentima Hrvatskeispis: Hrvatske studentima dan Dobar

*** OVAJ ZADATAK BUDE NA ISPITU *** ( 10 )

INPUT "Unesi recenicu: "; rec$

br = 0FOR i = LEN(rec$) TO 1 STEP -1

Page 28: Programiranje1 Zadaci i Rjesenja

br = br + 1 a$ = MID$(rec$, i, 1) IF a$ = " " THEN PRINT MID$(rec$, i, br); br = 0 END IF IF i = 1 THEN PRINT " "; MID$(rec$, i, br)NEXT i

*** 54 - Napravi program koji će tražiti da uneseš dimenziju niza te da uneseš n cijelihbrojeva u taj niz. Računalo treba ispisati sumu svih dvoznamenkastih pozitivnihbrojeva iz niza te aritmetičku sredinu. Računalo također treba ispisati sve prostepozitivne brojeve iz tog niza.

*** OVAJ ZADATAK BUDE NA ISPITU *** ( 11 )

+ *** TEST - zadatak kojeg sam smislio za usmeni dio ispita. --> Napravi program koji trebauraditi sljedeće radnje:- Zatražiti unos imena i upisati ga u datoteku.- Nakon unosa zatražiti unos D/N za nastavak.- Ako je nastavak D onda upisuj dalje inaće zatvori datoteku.- Zatražiti unos nekog slova koje će biti kriterij za izvođenje drugog dijela zadatka.- Otvoriti datoteku i ispisati na zaslon samo one rijeći kojima je broj ponavljanja prethodno unesenog broja prost broj, ispisati te riječi naopako te ispisati njihovu duljinu prvo brojkom, a zatim slovima !!!

----------------------------------- << Ukupno riješeno [ 55 ] zadatka >> ----------------------------------

1.korisnik unosi u datoteku recenice(duljina rec mora biti manja od 20-provjeriti unos).korisnik nakon svakog broja odlucuje zeli li nastaviti unos.unijeti jedan znak2.ispisati za svaku recenicu iz datoteke koliko se puta u njoj pojavljuje koji samoglasnik.

1 .korisnik unosi prirodan broj n<10 koji predstavlja duljinu niza, nakon cega se generira niz od n prirodnih brojeva gdje su svi elementi niza slucajno odabrani brojevi manji ili jednaki 1002. napraviti novi niz ciji su elementi dobiveni kao suma dva clana niza cija je suma indeksa prost broj.

10 INPUT "Unesi broj manji od 10: "; nIF n >= 10 THEN PRINT "Greska!"; GOTO 10END IF

Page 29: Programiranje1 Zadaci i Rjesenja

DIM a(n)RANDOMIZE TIMERFOR i = 1 TO n a(i) = INT(1 + RND * 100)NEXT i

FOR i = 1 TO n PRINT a(i); " ";NEXT i

PRINT

DIM b(100)

si = 0k = 0s = 0FOR i = 1 TO n - 1 FOR l = i + 1 TO n si = i + l p = 0 FOR j = 2 TO SQR(si) IF si MOD j = 0 THEN p = p + 1 NEXT j IF p = 0 THEN k = k + 1 s = a(i) + a(l) b(k) = s END IF NEXT lNEXT i

PRINT

FOR i = 1 TO k PRINT b(i); " ";NEXT i

1. korisnik unosi prirodan broj n(4<n<11) nakon cega se generira niz od n*2 prirodnih brojeva, gdje su svi elementi niza slucajno odabrani troznamenkasti brojevi.2. ispisati sve proste elemente niza te koliko ih ima

1. korisnik unosi u datoteku prirodne brojeve(obavezna provjera uvjeta) korisnik nakon unosa svakog broja odlucuje zeli li nastaviti unos

Page 30: Programiranje1 Zadaci i Rjesenja

2. ispisati za svaki broj iz datoteke koliko se puta pojavila koja znamenka

1. niz mora biti velicine od 5 do 24.ispisi u niz troznamenkaste slucajne brojeve te provjeri koji su brojevi prosti, zatim ispisi sve one proste brojeve koji su razliciti od drugih brojeva

10 INPUT "Unesi dimenziju niza (5-24): "; nIF n < 5 OR n > 24 THEN PRINT "Greska!"; GOTO 10END IF

DIM a(n)RANDOMIZE TIMERFOR i = 1 TO n a(i) = INT(100 + RND * 999)NEXT i

FOR i = 1 TO n PRINT a(i); " ";NEXT i

PRINT

DIM prosti(100)k = 0FOR i = 1 TO n x = a(i) p = 0 FOR j = 2 TO SQR(x) IF x MOD j = 0 THEN p = p + 1 NEXT j IF p = 0 THEN k = k + 1 prosti(k) = x END IFNEXT i

PRINT "Prosti:"

FOR i = 1 TO k PRINT prosti(i); " ";NEXT i

PRINT

PRINT "Samo jednom"

Page 31: Programiranje1 Zadaci i Rjesenja

FOR i = 1 TO k p = 0 FOR j = k TO i + 1 STEP -1 IF prosti(i) = prosti(j) THEN p = p + 1 NEXT j IF p = 0 THEN PRINT prosti(i); " ";NEXT i

2 .napisi program koji ce napraviti datoteku a u nju ce korisnik upisati proizvoljno brojeve u dekadskom obliku nakon cega ih treba pretvoriti u heksadekadski(nema naredbe hex$) te ispisati iz datoteke

OPEN "2.txt" FOR OUTPUT AS #110 INPUT "Unesi broj"; nPRINT #1, nINPUT "Zelite li nastaviti?(da/ne)"; odg$IF UCASE$(odg$) = "DA" THEN GOTO 10CLOSE #1

OPEN "2.txt" FOR INPUT AS #1WHILE NOT EOF(1) DIM hex(100) INPUT #1, n x = 1 ost = 1 i = 0 WHILE x > 0 ost = 0 x = INT(n / 16) ost = n MOD 16 i = i + 1 hex(i) = ost n = x WEND PRINT FOR j = i TO 1 STEP -1 IF hex(j) < 10 THEN PRINT hex(j); ELSE SELECT CASE hex(j) CASE 10 PRINT "A"; " "; CASE 11 PRINT "B"; " "; CASE 12

Page 32: Programiranje1 Zadaci i Rjesenja

PRINT "C"; " "; CASE 13 PRINT "D"; " "; CASE 14 PRINT "E"; " "; CASE 15 PRINT "F"; " "; END SELECT END IF NEXT j PRINTWENDCLOSE #1

2. napisi program koji ce napraviti datoteku u kojoj cemo unijeti dekadske brojeve(prirodne,postaviti uvjet za prirodni broj),te ih pretvoriti u binarne,te zbrojiti koliko taj broj ima nula a koliko jedinica.

OPEN "bin.txt" FOR OUTPUT AS #110 INPUT "Unesi prirodni broj: "; nIF n < 0 GOTO 10PRINT #1, nINPUT "Zelite li nastaviti?(da/ne)"; odg$IF UCASE$(odg$) = "DA" THEN GOTO 10CLOSE #1

OPEN "bin.txt" FOR INPUT AS #1WHILE NOT EOF(1) DIM bin(100) ost = 0 INPUT #1, n i = 0 x = 1 WHILE x > 0 x = INT(n / 2) ost = n MOD 2 i = i + 1 bin(i) = ost n = x WEND

FOR j = i TO 1 STEP -1 PRINT bin(j); NEXT j

nule = 0

Page 33: Programiranje1 Zadaci i Rjesenja

jedinice = 0 FOR j = i TO 1 STEP -1 IF bin(j) = 0 THEN nule = nule + 1 IF bin(j) = 1 THEN jedinice = jedinice + 1 NEXT j PRINT PRINT "Broj ima "; nule; " nule, i "; jedinice; " jedinice" PRINT PRINT

WENDCLOSE #1

------------------------------------------------------------------------------------------------------------------------

I. Grupa zadataka

I.1. Napisati program koji će upisati n brojeva. Naći najmanji i najmanjimeđu i ispisati ga.I.2. Napisati program koji upisuje brojeve dok se ne upiše 0, a zatimispisati najveći upisani broj.I.3. Napisati program koji upisuje n brojeva. Naći prosjek svih brojeva.I.4. Napisati program koji upisuje n brojeva. Naći umnožak svih brojeva.I.5. Napisati program koji upisuje brojeve dok se ne upiše 0. Naći sumusvih brojeva.I.6. Napisati program koji ispisuje sumu svih brojeva djeljivih sa 5 većihod 8, a manjih od 346.I.7. Napisati program koji će učitavati jedan za drugim n brojeva. Naći iispisati aritmetičku sredinuučitanih brojeva uzimajući u obzir samo one brojeve koji su veći ilijednaki 2 i manji ili jednaki 5.I.8. Napisati program koji provjerava da li je upisani broj prost.I.9. Napisati program koji će za upisani broj ispisati sve njegovedjelitelje.

II. Grupa zadataka

II.1.Napisati program koji će upisati n negativnih brojeva. Ispisatinajveći broj i redni broj pod kojim je unešen.

INPUT "Unesi dimenziju: "; nDIM a(n)RANDOMIZE TIMERFOR i = 1 TO n a(i) = INT(-1 + RND * -100)NEXT i

Page 34: Programiranje1 Zadaci i Rjesenja

FOR i = 1 TO n PRINT a(i); " ";NEXT i

max = a(1)

FOR i = 2 TO n IF max < a(i) THEN max = a(i) br = i END IFNEXT i

PRINT

PRINT "Najveci je "; max; " unesen pod brojem "; br

II.2.Napisati program koji upisuje prirodne brojeve dok se ne upiše 0, a zatim ispisati najveći broj i rednibroj pod kojim je unešen.II.3.Napisati program koji upisuje n neparnih brojeva. Naći prosjek svih brojeva.II.4.Napisati program koji upisuje n brojeva djeljivih sa 7. Naći prosjek upisanih parnih brojeva.

INPUT "Unesi dim niza: "; nDIM a(n)

FOR i = 1 TO n 10 INPUT "Unesi broj djeljiv sa 7: "; a(i) IF a(i) MOD 7 <> 0 THEN PRINT "Greska!"; GOTO 10 END IFNEXT i

s = 0br = 0FOR i = 1 TO n IF a(i) MOD 2 = 0 THEN s = s + a(i) br = br + 1 END IFNEXT i

p = s / brPRINT "Prosjek parnih brojeva je "; p

Page 35: Programiranje1 Zadaci i Rjesenja

II.5.Napisati program koji upisuje negativne brojeve dok se ne upiše 0. Naći aritmetičku sredinu brojeva.II.6.Napisati program koji ispisuje prosjek svih brojeva djeljivih sa x većih od y, a manjih od z. Korisnik unosi brojeve x,y i z. Voditi računa o ispravnom unosu tih brojeva.II.7.Napisati program koji će učitavati jedan za drugim n brojeva. Naći i ispisati aritmetičku sredinu učitanih brojeva uzimajući u obzir samo one brojeve koji su veći ili jednaki x i manji ili jednaki y. Korisnik unosi brojeve x,y i n. Voditi računa o ispravnom unosu tih brojeva.II.8.Napisati program koji unosi n brojeva. Ispisati proste brojeve i redni broj pod kojim su uneseni. Ispisatiumnožak tih prostih brojeva.II.9.Napisati program koji unosi n brojeva. Ispisati za svaki broj iz tog niza njegove djelitelje.

INPUT "Unesi dim niza: "; n

DIM a(n)

FOR i = 1 TO n INPUT "Unesi broj: "; a(i)NEXT i

FOR i = 1 TO n PRINT a(i) PRINT "Djelitelji: "; FOR j = 1 TO a(i) IF a(i) MOD j = 0 THEN PRINT j; " "; NEXT j PRINT PRINTNEXT i

III. Grupa zadataka

III.1. Napisati program koji unosi n brojeva. Ispisati za svaki broj iztog niza njegove proste djelitelje.

INPUT "Unesi dim niza: "; nDIM a(n)

FOR i = 1 TO n INPUT "Unesi broj: "; a(i)NEXT i

FOR i = 1 TO n PRINT a(i) PRINT "Prosti djelitelji: "; FOR j = 1 TO a(i)

Page 36: Programiranje1 Zadaci i Rjesenja

IF a(i) MOD j = 0 THEN p = 0 FOR k = 2 TO SQR(j) IF j MOD k = 0 THEN p = p + 1 NEXT k IF p = 0 THEN PRINT j; END IF NEXT j PRINT PRINTNEXT i

III.2. Napisati program koji upisuje imena n učenika i bodove koje sudobili na ispitu, izračunati prosjek bodova i ispisati ga. Ispisati ime učenike koji je dobio najmanje bodova i ime učenika koji je dobio najviše bodova.

INPUT "Unesi broj ucenika: "; n

DIM imena$(n)DIM ocjene(n)

FOR i = 1 TO n INPUT "Unesi ime ucenika: "; imena$(i) INPUT "Unesi ocjenu ucenika:"; ocjene(i)NEXT i

s = 0br = 0FOR i = 1 TO n s = s + ocjene(i) br = br + 1NEXT i

projek = s / brPRINT "Prosjek ocjena je: "; prosjek

min = ocjene(1)minuc$ = imena$(1)max = ocjene(1)maxuc$ = imena$(1)FOR i = 2 TO n IF ocjene(i) < min THEN min = ocjene(i) minuc$ = imena$(i) END IF

Page 37: Programiranje1 Zadaci i Rjesenja

IF ocjene(i) > max THEN max = ocjene(i) maxuc$ = imena$(i) END IFNEXT i

PRINT "Ucenik sa najmanje bodova je: "; minuc$; " - bodova= "; minPRINT "Ucenik sa najvise bodova je: "; maxuc$; " - bodova= "; max

III.3. Napisati program koji upisuje n riječi. Izračunati prosječnuduljinu riječi i ispisati ju. Ispisati najdulju i najkraću riječ i njihove duljine.III.4. Napisati program koji će generirati n slučajnih troznamenkastih brojeva. Broj n je prirodan broj manji od 50, a unosi ga korisnik. Ispisati te brojeve i njihov prosjek.

------------------------------------------------------------------------------------------------------------------------

Grupa A

1. Napisati program koji od korisnika traži: - upis imena - upis sata (1-24) - upis broja dana (1-7) Ako je upisan sat ili dan izvan navedenih vrijednosti, ponoviti cijeli upis. Ako je upisan sat od 1-11 i npr. dan 1, ispisuje poruku: Dobro jutro Marko! Danas je ponedjeljak.

Ako je upisan sat od 12-17 i npr. dan 7, ispisuje poruku: Dobar dan Marko! Danas je nedjelja.

Ako je upisan sat od 18-24 i npr. dan 2, ispisuje poruku: Dobra vecer Marko! Danas je utorak

INPUT "Unesi ime: "; ime$INPUT "Unesi sat: "; satINPUT "Unesi broj dana: "; dan

IF sat > 1 AND sat < 11 THEN PRINT "Dobro jutro"; ime$; "!"; SELECT CASE dan CASE 1 PRINT "Danas je ponedjeljak." CASE 2 PRINT "Danas je utorak."

Page 38: Programiranje1 Zadaci i Rjesenja

CASE 3 PRINT "Danas je srijeda." CASE 4 PRINT "Danas je cetvrtak." CASE 5 PRINT "Danas je petak." CASE 6 PRINT "Danas je subota." CASE 7 PRINT "Danas je nedjelja." END SELECTEND IF

IF sat > 12 AND sat < 17 THEN PRINT "Dobar dan "; ime$; "!"; SELECT CASE dan CASE 1 PRINT "Danas je ponedjeljak." CASE 2 PRINT "Danas je utorak." CASE 3 PRINT "Danas je srijeda." CASE 4 PRINT "Danas je cetvrtak." CASE 5 PRINT "Danas je petak." CASE 6 PRINT "Danas je subota." CASE 7 PRINT "Danas je nedjelja." END SELECTEND IF

IF sat > 18 AND sat < 24 THEN PRINT "Dobra vecer "; ime$; "! "; SELECT CASE dan CASE 1 PRINT "Danas je ponedjeljak." CASE 2 PRINT "Danas je utorak." CASE 3 PRINT "Danas je srijeda." CASE 4 PRINT "Danas je cetvrtak." CASE 5 PRINT "Danas je petak." CASE 6

Page 39: Programiranje1 Zadaci i Rjesenja

PRINT "Danas je subota." CASE 7 PRINT "Danas je nedjelja." END SELECTEND IF

Grupa B

1. Napiši program za pogađanje boja. Program bira slučajan broj od 1-5, a to je kod boje. (Uputa: Za generiranje sljučajnog broja od 1-100, formula je x = INT(RND * 100) + 1)

Kodovi boja: 1 = bijela 2 = crna 3 = crvena 4 = plava 5 = zelena Korisnik unosi kod, tj. pogađa koji je to broj. Ako unese pogrešan kod koji nije u intervalu 1-5, ispisuje se poruka o tome i ponavlja se unos.

Ako korisnik pogodi točan kod (npr. 3), ispisuje se poruka: Bravo! I moja boja je crvena

Ako korisnik ne pogodi i unese npr. 2, ispisuje se poruka: Zao mi je! Moja boja nije crna

n = 0RANDOMIZE TIMERn = INT(1 + RND * 5)PRINT "Pogodi boju!"PRINTPRINT " Kodovi boja:"PRINT " 1 = bijela"PRINT " 2 = crna"PRINT " 3 = crvena"PRINT " 4 = plava"PRINT " 5 = zelena"

10 INPUT "Unesi kod boje: "; kodIF kod < 1 OR kod > 5 THEN PRINT "Pogresan unos! Boja je na intervalu 1-5" GOTO 10END IF

boja$ = ""

Page 40: Programiranje1 Zadaci i Rjesenja

SELECT CASE kod CASE 1 boja$ = "bijela" CASE 2 boja$ = "crna" CASE 3 boja$ = "crvena" CASE 4 boja$ = "plava" CASE 5 boja$ = "zelena"END SELECT

WHILE kod <> n PRINT "Zao mi je! Moja boja nije "; boja$ GOTO 10WENDPRINT "Bravo! I moja boja je "; boja$

REM u datoteku unositi stringove dok se ne unese prazan stringREM za svaki podstring duljine 2 ili vise u kojem se pojavljivaREM isti znak ispisati koliko puta se pojavila i taj znak i takoREM za sve znakove u stringuREM .npr za AAABCCE ispisati 3AB2CE

OPEN "dat.txt" FOR OUTPUT AS #1a$ = " "WHILE NOT a$ = "" INPUT "Unesi string: "; a$ PRINT #1, a$WENDCLOSE #1

OPEN "dat.txt" FOR INPUT AS #1WHILE NOT EOF(1) INPUT #1, a$ b$ = "" FOR i = 1 TO LEN(a$) br = 1 WHILE MID$(a$, i, 1) = MID$(a$, i + br, 1) br = br + 1 WEND IF br > 1 THEN b$ = b$ + STR$(br) + MID$(a$, i, 1) ELSE b$ = b$ + MID$(a$, i, 1)

Page 41: Programiranje1 Zadaci i Rjesenja

END IF i = i + br - 1 NEXT i PRINT b$WENDCLOSE #1

REM Napiši program koji u datoteku unosi brojeve (pita korisnika zeli li nastaviti) i zatim REM ispisuje koliko kojih znamenki ima u broju

INPUT "Unesi ime datoteke: "; ime$OPEN ime$ FOR OUTPUT AS #1INPUT "Unesi broj: "; brojPRINT #1, brojCLOSE #1

OPEN ime$ FOR INPUT AS #1

a = 0b = 0c = 0d = 0e = 0f = 0g = 0h = 0j = 0k = 0

WHILE NOT EOF(1) INPUT #1, broj br = 0 x = broj WHILE x > 0 y = x MOD 10 x = INT(x / 10) SELECT CASE y CASE 1 a = a + 1 CASE 2 b = b + 1 CASE 3 c = c + 1 CASE 4 d = d + 1 CASE 5 e = e + 1 CASE 6

Page 42: Programiranje1 Zadaci i Rjesenja

f = f + 1 CASE 7 g = g + 1 CASE 8 h = h + 1 CASE 9 j = j + 1 CASE 0 k = k + 1 END SELECT WEND PRINT broj PRINT 1; "="; a; " "; 2; "="; b; " "; 3; "="; c; " "; 4; "="; d; " "; 5; "="; e; " "; 6; "="; f; " "; 7; "="; g; " "; 8; "="; h; " "; 9; "="; j; " "; 0; "="; kWENDCLOSE #1

4.zadatak-korisnik unosi prirodan broj n nakon čega unosi niz od n različith prirodnih brojeva (obavezna provjera uvjeta).-ispisati sve savršene brojeve iz niza. broj je savršen ako je jednak sumi svih svojih djelitelja, isključujući njega samoga. npr. 6=1+2+3.za svaki savršeni broj ispisati njegove djelitelje osim njega samoga.

10 INPUT "Unesi n: "; nIF n < 0 THEN PRINT "Broj mora biti prirodan!" GOTO 10END IF

DIM a(n)

FOR i = 1 TO n INPUT "Unesi broj: "; a(i)NEXT i

FOR i = 1 TO n PRINT a(i); " ";NEXT i

PRINTPRINT "SAVRSENI BROJEVI: "

FOR i = 1 TO n s = 0 FOR j = 1 TO n - 1 IF a(i) MOD j = 0 THEN s = s + j

Page 43: Programiranje1 Zadaci i Rjesenja

NEXT j IF a(i) = s THEN PRINT a(i); " - djeljitelji: "; FOR k = 1 TO n - 1 IF a(i) MOD k = 0 THEN PRINT k; NEXT k PRINT END IFNEXT i

5.zadatak-korisnik unosi prirodan broj n nakon čega unosi niz od n različith prirodnih brojeva (obavezna provjera uvjeta).-ispisati broj koji nastaje spajanjem znamenke koja se pojavljuje najviše u tim brojevima i znamenke koja se pojavljuje najmanje-za svaka dva susjedna člana niza ispisati uniju znamenki(ako postoji)

10 INPUT "Unesi n: "; nIF n < 0 THEN PRINT "Nije prirodan" GOTO 10END IF

DIM a(n)

FOR i = 1 TO n 20 INPUT "Unesi broj: "; a(i) IF a(i) < 0 THEN PRINT "Nije prirodan" GOTO 20 END IFNEXT i

FOR i = 1 TO n PRINT a(i); " ";NEXT i

c = 0i = 0FOR j = 1 TO n x = a(j) b = 0 DIM z(100) WHILE x > 0 b = b + 1 i = i + 1 z(i) = x MOD 10

Page 44: Programiranje1 Zadaci i Rjesenja

x = INT(x / 10) WEND c = c + bNEXT j

q = 0FOR j = 2 TO c IF z(1) = z(j) THEN q = q + 1NEXT jmax = z(1)w = qmin = z(1)

FOR i = 2 TO c - 1 b = 0 FOR j = i + 1 TO c IF z(i) = z(j) THEN b = b + 1 NEXT j IF b > q THEN max = z(i) q = b END IF IF b < w THEN min = z(i) w = b END IFNEXT iPRINTPRINT "Najvise puta se pojavljuje "; max; ",a najmanje "; min

broj = max * 10 + min

PRINT "Broj nastao spajanjem tih znamenaka je "; broj

REM Unijeti u datoteku proizvoljni broj brojeva (pita korisnika zeli li nastaviti unos)REM Iscitati iz datoteke i sortirati brojeveREM ispisati njihov binarni i heksadecimalni ekvivalentREM provjeriti je li broj prost. ako jest ispisat ga naopako

OPEN "dat.txt" FOR OUTPUT AS #110 INPUT "Unesi broj: "; aPRINT #1, aINPUT "Zelite li nastaviti unos?(da/ne) "; odg$IF UCASE$(odg$) = "DA" THEN GOTO 10CLOSE #1

OPEN "dat.txt" FOR INPUT AS #1

Page 45: Programiranje1 Zadaci i Rjesenja

DIM niz(100)nja = 0WHILE NOT EOF(1) INPUT #1, a nja = nja + 1 niz(nja) = a

DIM bi(100) x = a i = 0 PRINT x PRINT "BIN:"; WHILE x > 0 y = x MOD 2 x = INT(x / 2) i = i + 1 bi(i) = y WEND

FOR j = i TO 1 STEP -1 PRINT bi(j); NEXT j PRINT

DIM he(100) x = a y = 0 i = 0 PRINT "HEX:"; WHILE x > 0 y = x MOD 16 x = INT(x / 16) i = i + 1 he(i) = y WEND

FOR j = i TO 1 STEP -1 IF he(j) < 10 THEN PRINT he(j); ELSE SELECT CASE he(j) CASE 10 PRINT " A"; CASE 11 PRINT " B"; CASE 12 PRINT " C";

Page 46: Programiranje1 Zadaci i Rjesenja

CASE 13 PRINT " D"; CASE 14 PRINT " E"; CASE 15 PRINT " F"; END SELECT END IF NEXT j PRINT

p = 0 FOR i = 2 TO SQR(a) IF a MOD i = 0 THEN p = p + 1 NEXT i IF p = 0 THEN PRINT "Broj je prost" PRINT "Broj naopako je:"; x = a WHILE x > 0 y = x MOD 10 x = INT(x / 10) PRINT y; WEND PRINT END IF PRINTWEND

PRINT "Sortirani niz: "FOR i = 1 TO nja - 1 FOR j = i + 1 TO nja IF niz(i) > niz(j) THEN t = niz(i) niz(i) = niz(j) niz(j) = t END IF NEXT jNEXT i

FOR i = 1 TO nja PRINT niz(i); " ";NEXT iPRINT

CLOSE #1

Page 47: Programiranje1 Zadaci i Rjesenja

REM korisnik upisuje rečenice i iz svake rečenice izdvoji slova,znakove,i brojeve REM ispisuje posebno slova, znakove i brojeve i koliko ih ima ako se ponavljaju ispisuje ih samo jednom