programiranje 1 zadaci i riješenja

46
-------------------------------------------------------------------------------------------------------- ---------------- 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

Upload: mario

Post on 26-May-2017

279 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Programiranje 1 zadaci i riješenja

------------------------------------------------------------------------------------------------------------------------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: Programiranje 1 zadaci i riješenja

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: Programiranje 1 zadaci i riješenja

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

*** 06 - Napravi program koji će upotrebom jedne varijable naredbe GOTO

Page 4: Programiranje 1 zadaci i riješenja

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 PRINT a; " = "; b

Page 5: Programiranje 1 zadaci i riješenja

END 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: Programiranje 1 zadaci i riješenja

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 i

Page 7: Programiranje 1 zadaci i riješenja

NEXT i

*** 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

Page 8: Programiranje 1 zadaci i riješenja

e = e + 1 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.

INPUT "Unesi broj: "; ap = 0

Page 9: Programiranje 1 zadaci i riješenja

FOR 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

PRINT

Page 10: Programiranje 1 zadaci i riješenja

p = INT(s / n)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: "; FOR j = 1 TO a(i)

Page 11: Programiranje 1 zadaci i riješenja

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

PRINTPRINT "Najduza rijec je: "; max$; ", duljine: "; length; " na mjestu: "; poz

Page 12: Programiranje 1 zadaci i riješenja

PRINT

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: Programiranje 1 zadaci i riješenja

*** 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: Programiranje 1 zadaci i riješenja

*** 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: Programiranje 1 zadaci i riješenja

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)

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

Page 16: Programiranje 1 zadaci i riješenja

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) INPUT #1, s$ br = 0 FOR i = 1 TO LEN(s$)

Page 17: Programiranje 1 zadaci i riješenja

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

*** 40 - Napravi program koji će tražiti da uneseš neku rečenicu te će ju ispisati

na ekran tako da svaki znak koji nije slovo abecede zamijeni crticom.*** OVAJ ZADATAK BUDE NA ISPITU *** ( 01 )

Page 18: Programiranje 1 zadaci i riješenja

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 to

riječ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 broj$ = "sesnaest" CASE 7 broj$ = "sedamnaest" CASE 8 broj$ = "osamnaest" CASE 9

Page 19: Programiranje 1 zadaci i riješenja

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" CASE 8 jedinica$ = "osam" CASE 9 jedinica$ = "devet"END SELECT

PRINT desetica$; " "; jedinica$

Page 20: Programiranje 1 zadaci i riješenja

*** 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

*** 43 - Treba upisati neku rečenicu proizvoljne duljine, a računalo treba ispisati

jednu 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

Page 21: Programiranje 1 zadaci i riješenja

PRINT ELSE PRINT b$; END IFNEXT i

*** 44 - Ispisati na ekran samo one četveroznamenkaste brojeve kojima je umnožak

prve 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

*** 45 - Napravi program koji će tražiti da uneseš dimenziju n niza te će u niz unijeti n

slučajnih brojeva između 1 i 100. Računalo treba ispisati aritmetičku sredinu

niza te broj najbliži toj aritmetičkoj sredini.*** OVAJ ZADATAK BUDE NA ISPITU *** ( 06 )

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

RANDOMIZE TIMER

Page 22: Programiranje 1 zadaci i riješenja

FOR 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

*** 46 - Unijeti dimenziju n niza, a računalo treba u niz upisati n slučajnih brojeva između

1 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)

Page 23: Programiranje 1 zadaci i riješenja

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 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 = "; a

Page 24: Programiranje 1 zadaci i riješenja

IF 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

*** 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

Page 25: Programiranje 1 zadaci i riješenja

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

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

Page 26: Programiranje 1 zadaci i riješenja

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) 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

Page 27: Programiranje 1 zadaci i riješenja

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 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 cijelih

brojeva u taj niz. Računalo treba ispisati sumu svih dvoznamenkastih pozitivnih

brojeva iz niza te aritmetičku sredinu. Računalo također treba ispisati sve proste

pozitivne brojeve iz tog niza. *** OVAJ ZADATAK BUDE NA ISPITU *** ( 11 )

Page 28: Programiranje 1 zadaci i riješenja

+ *** TEST - zadatak kojeg sam smislio za usmeni dio ispita. --> Napravi program koji treba

uraditi 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

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

Page 29: Programiranje 1 zadaci i riješenja

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 unos2. 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

Page 30: Programiranje 1 zadaci i riješenja

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"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"; n

Page 31: Programiranje 1 zadaci i riješenja

PRINT #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 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

Page 32: Programiranje 1 zadaci i riješenja

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 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 najmanji

Page 33: Programiranje 1 zadaci i riješenja

međ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

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.

Page 34: Programiranje 1 zadaci i riješenja

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

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)

Page 35: Programiranje 1 zadaci i riješenja

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) 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)

Page 36: Programiranje 1 zadaci i riješenja

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 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

Page 37: Programiranje 1 zadaci i riješenja

- 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." 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."

Page 38: Programiranje 1 zadaci i riješenja

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 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

Page 39: Programiranje 1 zadaci i riješenja

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$ = ""

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$

Page 40: Programiranje 1 zadaci i riješenja

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) 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

Page 41: Programiranje 1 zadaci i riješenja

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 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

Page 42: Programiranje 1 zadaci i riješenja

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 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

Page 43: Programiranje 1 zadaci i riješenja

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 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

Page 44: Programiranje 1 zadaci i riješenja

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 #1DIM 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)

Page 45: Programiranje 1 zadaci i riješenja

CASE 10 PRINT " A"; CASE 11 PRINT " B"; CASE 12 PRINT " C"; 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 i

Page 46: Programiranje 1 zadaci i riješenja

PRINT

CLOSE #1

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