27
PROGRAMIRANJE I. *** 01 - Napraviti program koji će ispisati vašu ime, prezime i adresu. INPUT "Unesi svoje ime: ... "; a$ INPUT "Unesi svoje prezime: ... "; b$ INPUT "Unesi svoju adresu: ... "; c$ PRINT "------------------ Osobni podaci: ------------------" PRINT PRINT "IME: "; a$ PRINT "PREZIME: "; b$ PRINT "ADRESA: "; c$ PRINT "-----------------------------------------------------" *** 02 - Učitati dva cijela broja i ispisati rezultate operacija +, -, *, /. INPUT "Unesi prvi broj: ... "; a INPUT "Unesi drugi broj: ... "; b PRINT "--------------------- Rezultat: ---------------------" PRINT PRINT "ZBROJ: "; a + b PRINT "RAZLIKA: "; a - b PRINT "UMNOŽAK: "; a * b PRINT "KOLIČNIK: "; a / b PRINT "-----------------------------------------------------" *** 03 - Napraviti program koji će izračunati opseg i površinu kvadrata za unesenu stranicu. INPUT "Unesi stranicu a kvadrata: ... "; a PRINT "Opseg iznosi: "; 4 * a PRINT "Površina iznosi: "; a * a *** 04 - Napravi program koji će tražiti da uneseš ime, prezime i dob i na kraju će ispisati poruku: Dobar dan Pero Perić imaš 19 godina. INPUT "Kako se zoveš: ... "; a$ INPUT "Kako se prezivaš: ... "; b$ INPUT "Koliko imaš godina: ... "; c PRINT "Dobar dan "; a$; " "; b$; " imaç "; c; " godina." 1

PROGRAMIRANJE qbasic

Embed Size (px)

DESCRIPTION

Zadaci iz qbasica

Citation preview

Page 1: PROGRAMIRANJE qbasic

PROGRAMIRANJE I.

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

INPUT "Unesi svoje ime: ... "; a$INPUT "Unesi svoje prezime: ... "; b$INPUT "Unesi svoju adresu: ... "; c$PRINT "------------------ Osobni podaci: ------------------"PRINTPRINT "IME: "; a$PRINT "PREZIME: "; b$PRINT "ADRESA: "; c$PRINT "-----------------------------------------------------"

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

INPUT "Unesi prvi broj: ... "; aINPUT "Unesi drugi broj: ... "; bPRINT "--------------------- Rezultat: ---------------------"PRINTPRINT "ZBROJ: "; a + bPRINT "RAZLIKA: "; a - bPRINT "UMNOŽAK: "; a * bPRINT "KOLIČNIK: "; a / bPRINT "-----------------------------------------------------"

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

INPUT "Unesi stranicu a kvadrata: ... "; aPRINT "Opseg iznosi: "; 4 * aPRINT "Površina iznosi: "; a * a

*** 04 - Napravi program koji će tražiti da uneseš ime, prezime i dob i na kraju će ispisati poruku: Dobar dan Pero Perić imaš 19 godina.

INPUT "Kako se zoveš: ... "; a$INPUT "Kako se prezivaš: ... "; b$INPUT "Koliko imaš godina: ... "; cPRINT "Dobar dan "; a$; " "; b$; " imaç "; c; " godina."

*** 05 - Napravi program koji će tražiti da uneseš radijus kruga. Ako je radijus kruga manji od nula onda ponovi unos, u suprotnom izračunaj opseg kruga i ispiši ga. (koristiti GOTO).

10 INPUT "Unesi radijus kruga: ... "; aPRINTIF a <= 0 THEN

PRINT "Radijus ne može biti nula ili manji od nule !!!" PRINT "Molim ponovite unos ..."GOTO 10

ELSE PRINT "Opseg kruga iznosi "; 2 * a * 3.14

1

Page 2: PROGRAMIRANJE qbasic

END IF*** 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 + 1IF x <= 100 THEN PRINT x, GOTO 10END IF

*** 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 prvi broj: "; aINPUT "Unesi drugi broj: "; bPRINTIF a < b THEN PRINT "Prvi je broj manji od drugog broja." ELSE IF a = b THEN PRINT "Prvi je broj jednak drugom broju."END IFIF a > b THEN PRINT "Prvi je broj veći od drugog broja."END IF

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

INPUT "Unesi radijus kruga: ... "; aPRINTIF a < 0 THEN PRINT "Kružnica je nemoguća !!!" ELSE IF a = 0 THEN PRINT "Kružnica je točka !!!"END IFIF a > 0 THEN PRINT "Opseg kruga iznosi: "; 2 * a * 3.14 PRINT "Površina kruga iznosi: "; a ^ 2 * 3.14END 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 prvi broj: "; aINPUT "Unesi drugi broj: "; bPRINTSELECT CASE a CASE IS = b

2

Page 3: PROGRAMIRANJE qbasic

PRINT "Prvi broj = Drugi broj" CASE IS > b PRINT "Prvi broj > Drugi broj" CASE IS < b PRINT "Prvi broj < Drugi broj"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.

br = 1RANDOMIZE TIMERn = INT(RND * 100) + 1PRINT " IGRA POGAŃANJA "PRINT10 INPUT "Unesi broj: "; aPRINTSELECT CASE a CASE IS = n PRINT "BRAVO - Pogodio si !!! , Broj pokušaja = "; br CASE IS < n PRINT "Broj je veći, probaj ponovo." br = br + 1 GOTO 10 CASE IS > n PRINT "Broj je manji, probaj ponovo." br = br + 1 GOTO 10END SELECT

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

10 INPUT "Unesi broj: "; aPRINTSELECT CASE a CASE IS = 0 PRINT "Nedopušteno unošenje nule ... " GOTO 10 CASE IS < 0 PRINT "Kvadrat unesenog broja je: "; a ^ 2 CASE IS > 0 PRINT "Drugi korijen unesenog broja je: "; SQR(a)END SELECT

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

INPUT "Unesi prvi broj: "; aINPUT "Unesi drugi broj: "; b20 INPUT "Koju operaciju želiš izvršiti [ +,-,/,*] ???"; x$

3

Page 4: PROGRAMIRANJE qbasic

IF x$ = "+" OR x$ = "-" OR x$ = "*" OR x$ = "/" THEN GOTO 10 ELSE PRINT "Morate unijeti jedan od operatora !!!" PRINT "Probaj ponovo... !!!" GOTO 20END IF10 SELECT CASE x$ CASE IS = "+" PRINT "Zbroj unesena dva broja iznosi:"; a + b CASE IS = "-" PRINT "Razlika unesena dva broja iznosi:"; a - b CASE IS = "*" PRINT "Umnožak unesena dva broja iznosi:"; a * b CASE IS = "/" PRINT "Količnik unesena dva broja iznosi:"; a / bEND SELECT

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

INPUT "Unesi prvi broj: "; aINPUT "Unesi drugi broj: "; bINPUT "Unesi treći broj: "; cPRINTSELECT CASE a CASE IS = b x = a CASE IS < b x = a CASE IS > b x = bEND SELECTSELECT CASE x CASE IS = c PRINT "Najmanji od unesena tri broja je: "; c CASE IS < c PRINT "Najmanji od unesena tri broja je: "; x CASE IS > c PRINT "Najmanji od unesena tri broja je: "; cEND SELECT

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

x = 2WHILE x <= 100 PRINT x, x = x + 2WEND

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

x = 99WHILE x >= 1 PRINT x, x = x - 2WEND

4

Page 5: PROGRAMIRANJE qbasic

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

s = 0x = 1WHILE x <= 20 s = s + x x = x + 1WENDPRINT "Suma niza brojeva od 1 do 20 iznosi: "; 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,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 i,NEXT i

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

s = 0FOR i = 1 TO 20 s = s + iNEXT iPRINT "Suma niza brojeva od 1 do 20 iznosi: "; 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.

INPUT "Unesi neku rečenicu: "; a$PRINTx = LEN(a$)a = 0e = 0i = 0o = 0u = 0PRINT "Duljina rečenice: "; 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

5

Page 6: PROGRAMIRANJE qbasic

a = a + 1 CASE IS = 101 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 "Rečenica - 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: "; u

*** 21 - Učitati prirodan broj i ispisati sve njegove znamenke. (INT, FIX).

INPUT "Unesi neki prirodni broj: "; aPRINTbr = 0x = aDO WHILE a >= 1 br = br + 1 a = a / 10LOOPPRINT "-----ZNAMENKE-----"PRINTFOR i = 1 TO br b = x MOD 10 PRINT " "; b x = INT(x / 10)NEXT iPRINTPRINT "------------------"

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

INPUT "Unesi neki prirodni broj: "; xy = xPRINT "Broj "; x; " rastavljen na proste faktore izgleda ovako: "FOR i = 2 TO y DO WHILE x MOD i = 0 x = x / i PRINT i LOOPNEXT i

6

Page 7: PROGRAMIRANJE qbasic

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

10 INPUT "Unesi broj: "; xPRINTFOR i = 2 TO x - 1 IF x MOD i = 0 THEN s = s + 1 END IFNEXT iIF s = 0 THEN PRINT "Broj ["; x; "] je prost !"ELSE PRINT "Broj ["; x; "] nije prost !"END IF

*** 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 svoje ime i prezime: "; a$b = LEN(a$)FOR i = 1 TO b c$ = MID$(a$, i, 1) PRINT c$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 neki string: "; a$b = LEN(a$)d$ = ""FOR i = b TO 1 STEP -1 c$ = MID$(a$, i, 1) d$ = d$ + c$NEXT iPRINT "--> "; d$

*** 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 "Koliko ima učenika: "; nDIM a(n)suma = 0prosjek = 0FOR i = 1 TO n PRINT "Unesi ime "; i; ". učenika: "; INPUT a$(i) PRINT "Unesi ocjenu "; i; ". učenika: "; INPUT b(i) suma = suma + b(i)NEXT iprosjek = suma / nPRINT "Prosjek: "; prosjek

7

Page 8: PROGRAMIRANJE qbasic

PRINT "Učenici koji su dobili ocjenu veću od prosjeka: "PRINTFOR i = 1 TO n IF b(i) > prosjek THEN PRINT a$(i) END IFNEXT iPRINT "Učenici sortirani prema prosječnoj ocjeni:"FOR i = 1 TO n - 1 FOR j = i + 1 TO n IF b(j) < b(i) THEN p = b(j) p$ = a$(j) b(j) = b(i) a$(j) = a$(i) b(i) = p a$(i) = p$ END IF NEXT jNEXT iFOR i = 1 TO n PRINT b(i), a$(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 "Koliko brojeva želiš: "; nPRINTDIM x(n)max = x(1)FOR i = 1 TO n PRINT "Unesi "; i; ". član niza: "; INPUT x(i) FOR j = 1 TO n IF x(i) > max THEN max = x(i) poz = i END IF NEXT jNEXT iPRINT "Maximum niza je: "; max; " - Njegova pozicija je:"; pozPRINTFOR i = 1 TO n y = x(i) PRINT "Djeljitelji broja "; x(i); " su: " FOR j = 2 TO y DO WHILE x(i) MOD j = 0 x(i) = x(i) / j PRINT j LOOP NEXT jNEXT i

*** 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 "Koliko riječi želiš unijeti: "; nPRINT

8

Page 9: PROGRAMIRANJE qbasic

DIM a(n)max = b(1)FOR i = 1 TO n PRINT "Unesi "; i; ". riječ: "; INPUT a$(i) b(i) = LEN(a$(i)) IF b(i) > max THEN max = b(i) poz = i rijec$ = a$(i) END IFNEXT iFOR i = 1 TO n - 1 FOR j = i + 1 TO n IF b(j) < b(i) THEN p = b(j) p$ = a$(j) b(j) = b(i) a$(j) = a$(i) b(i) = p a$(i) = p$ END IF NEXT jNEXT iFOR i = 1 TO n PRINT "Riječ: "; a$(i), "Duljina:"; b(i)NEXT iPRINT "--> Riječ max duljine je: "; riječ$; " - Njena duljina je: "; max; " Pozicija: "; poz

*** 29 - Napravi program koji će stvoriti niz od 10 elemenata i u niz upisati prvih 10 parnih brojeva.

DIM a(10)x = 2FOR i = 1 TO 10 a(i) = x x = x + 2NEXTFOR i = 1 TO 10 PRINT a(i),NEXT i

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

INPUT "Unesi dimenziju niza: "; nDIM a(n)FOR i = 1 TO n a(i) = INT(RND * 10) + 1NEXTFOR i = 1 TO n PRINT a(i),NEXT i

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

9

Page 10: PROGRAMIRANJE qbasic

GOSUB unosPRINT "Rezultat:"GOSUB krajEND

unos: INPUT "Unesi prvi član niza: "; a INPUT "Unesi zadnji član niza: "; b INPUT "Unesi razmak među članovima: "; cRETURN

kraj: FOR i = a TO b STEP c PRINT i, NEXTRETURN

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

OPEN "temp.dat" FOR OUTPUT AS #1 INPUT "Unesi ime: "; a$ PRINT #1, a$ INPUT "Unesi prezime: "; b$ PRINT #1, b$ INPUT "Unesi datum rođenja: "; c$ PRINT #1, c$CLOSE #1

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

OPEN "temp.dat" FOR INPUT AS #1 INPUT #1, a$ INPUT #1, b$ INPUT #1, c$CLOSE #1PRINT a$PRINT b$PRINT c$

*** 34 - Napravi program kojim ćeš u datoteku niz.dat 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 PRINT "Unesi "; i; ". broj: "; INPUT a(i) PRINT #1, a(i)NEXT iCLOSE #1OPEN "niz.dat" FOR INPUT AS #1FOR i = 1 TO 10 INPUT #1, a(i)NEXT iCLOSE #1FOR i = 1 TO 10 - 1

10

Page 11: PROGRAMIRANJE qbasic

FOR j = i + 1 TO 10 IF a(j) < a(i) THEN p = a(j) a(j) = a(i) a(i) = p END IF NEXT jNEXT iFOR i = 1 TO 10 PRINT a(i)NEXT i

*** 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 #1 INPUT "Unesi n: "; n PRINT #1, n FOR i = 1 TO n x(i) = INT(RND * 100) + 1 PRINT #1, x(i) NEXT iCLOSE #1OPEN "niz2.dat" FOR INPUT AS #1 FOR i = 2 TO n INPUT #1, x(i) NEXT iCLOSE #1 FOR i = 1 TO n PRINT x(i), NEXT i

*** 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 #1FOR i = 1 TO 10 PRINT "Unesi "; i; ". broj: "; INPUT a(i) PRINT #1, a(i)NEXT iCLOSE #1OPEN "niz.dat" FOR INPUT AS #1FOR i = 1 TO 10 INPUT #1, a(i)NEXT iCLOSE #1FOR i = 1 TO 10 - 1 FOR j = i + 1 TO 10 IF a(j) < a(i) THEN p = a(j) a(j) = a(i) a(i) = p END IF NEXT jNEXT iFOR i = 1 TO 10 PRINT a(i)NEXT i

11

Page 12: PROGRAMIRANJE qbasic

max = a(1)min = a(1)FOR i = 1 TO 10 IF a(i) > max THEN max = a(i) END IF IF a(i) < min THEN min = a(i) END IFNEXT iPRINT "Max niza je: "; maxPRINT "Min niza je: "; min

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

INPUT "Koliko riječi želiš unijeti: "; nOPEN "duljina3.dat" FOR OUTPUT AS #1 FOR i = 1 TO n PRINT "Unesi "; i; ". riječ: "; INPUT a$(i) PRINT #1, a$(i) NEXT iCLOSE #1OPEN "duljina3.dat" FOR INPUT AS #1 FOR i = 1 TO n INPUT #1, a$(i) NEXT iCLOSE #1PRINT "Riječi kojima je duljina veća od 3:"FOR i = 1 TO n x = LEN(a$(i)) IF x > 3 THEN PRINT a$(i)NEXT i

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

INPUT "Koliko imena želiš unijeti: "; nOPEN "a.dat" FOR OUTPUT AS #1 FOR i = 1 TO n PRINT "Unesi "; i; ". ime: "; INPUT a$(i) PRINT #1, a$(i) NEXT iCLOSE #1OPEN "a.dat" FOR INPUT AS #1 FOR i = 1 TO n INPUT #1, a$(i) NEXT iCLOSE #1FOR i = 1 TO n br = 0 x = LEN(a$(i)) FOR j = 1 TO x y$ = MID$(a$(i), j, 1) IF UCASE$(y$) = "A" THEN br = br + 1 END IF

12

Page 13: PROGRAMIRANJE qbasic

NEXT j PRINT a$(i), "Broj pojavljivanja slova A: "; brNEXT i

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

INPUT "Koliko riječi želiš unijeti: "; nOPEN "naopako.dat" FOR OUTPUT AS #1 FOR i = 1 TO n PRINT "Unesi "; i; ". riječ: "; INPUT a$(i) PRINT #1, a$(i) NEXT iCLOSE #1OPEN "naopako.dat" FOR INPUT AS #1 FOR i = 1 TO n INPUT #1, a$(i) NEXT iCLOSE #1FOR i = 1 TO n x = LEN(a$(i)) s = 0 x$ = "" y$ = "" FOR j = 2 TO x - 1 IF x MOD j = 0 THEN s = s + 1 END IF NEXT j IF s = 0 THEN FOR k = x TO 1 STEP -1 y$ = MID$(a$(i), k, 1) x$ = x$ + y$ NEXT k PRINT x$ END IFNEXT i

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

INPUT "Unesi neku rečenicu: "; a$PRINTx = LEN(a$)FOR i = 1 TO x y$ = MID$(a$, i, 1) x$ = UCASE$(y$) IF x$ = "A" OR x$ = "B" OR x$ = "D" OR x$ = "C" OR x$ = "E" OR x$ = "F" OR x$ = "G" OR x$ = "H" OR x$ = "I" OR x$ = "J" OR x$ = "K" OR x$ = "L" OR x$ = "M" OR x$ = "N" OR x$ = "O" OR x$ = "P" OR x$ = "R" OR x$ = "S" OR x$ = "T" OR x$ = "U" OR x$ = "V" OR x$ = "Z" OR x$ = " " THEN PRINT y$; ELSE PRINT "-"; END IFNEXT i

13

Page 14: PROGRAMIRANJE qbasic

*** 41 - Napravi program koji će ispisivati sve dvoznamenkaste brojeve i to riječima. Npr.dvadesetdvadeset jedandvadeset dva...... ...... .... ... .

aa$ = "Dvadeset "bb$ = "Trideset "cc$ = "Četrdeset "dd$ = "Pedeset "ee$ = "Šezdeset "ff$ = "Sedamdeset "gg$ = "Osamdeset "hh$ = "Devedeset "a$ = "jedan"b$ = "dva"c$ = "tri"d$ = "četri"e$ = "pet"f$ = "šest"g$ = "sedam"h$ = "osam"i$ = "devet"FOR i = 10 TO 99

SELECT CASE iCASE IS = 10

PRINT "Deset"SLEEP 1GOTO 10

CASE IS = 11PRINT "Jedanaest"SLEEP 1GOTO 10

CASE IS = 12PRINT "Dvanaest"SLEEP 1GOTO 10

CASE IS = 13PRINT "Trinaest"SLEEP 1

GOTO 10CASE IS = 14

PRINT "Četrnaest"SLEEP 1GOTO 10

CASE IS = 15PRINT "Petnaest"SLEEP 1 GOTO 10

CASE IS = 16PRINT "Šesnaest"SLEEP 1GOTO 10

CASE IS = 17PRINT "Sedamnaest"SLEEP 1

GOTO 10CASE IS = 18

14

Page 15: PROGRAMIRANJE qbasic

PRINT "Osamnaest"SLEEP 1GOTO 10

CASE IS = 19PRINT "Devetnaest"SLEEP 1GOTO 10

CASE IS = 20PRINT aa$SLEEP 1GOTO 10

CASE IS = 30PRINT bb$SLEEP 1GOTO 10

CASE IS = 40PRINT cc$SLEEP 1GOTO 10

CASE IS = 50PRINT dd$SLEEP 1GOTO 10

CASE IS = 60PRINT ee$SLEEP 1GOTO 10

CASE IS = 70PRINT ff$SLEEP 1GOTO 10

CASE IS = 80PRINT gg$SLEEP 1GOTO 10

CASE IS = 90PRINT hh$SLEEP 1GOTO 10

END SELECTx = INT(i / 10)y = i MOD 10SELECT CASE x

CASE IS = 2PRINT aa$;

CASE IS = 3PRINT bb$;

CASE IS = 4PRINT cc$;

CASE IS = 5PRINT dd$;

CASE IS = 6PRINT ee$;

CASE IS = 7PRINT ff$;

CASE IS = 8PRINT gg$;

CASE IS = 9PRINT hh$;

END SELECTSELECT CASE y

CASE IS = 1

15

Page 16: PROGRAMIRANJE qbasic

PRINT a$SLEEP 1

CASE IS = 2PRINT b$SLEEP 1

CASE IS = 3PRINT c$SLEEP 1

CASE IS = 4PRINT d$SLEEP 1

CASE IS = 5PRINT e$SLEEP 1

CASE IS = 6PRINT f$SLEEP 1

CASE IS = 7PRINT g$SLEEP 1

CASE IS = 8PRINT h$SLEEP 1

CASE IS = 9PRINT i$SLEEP 1

END SELECT10 NEXT i

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

INPUT "Koliko riječi želiš unijeti: "; nOPEN "ispit.dat" FOR OUTPUT AS #1 FOR i = 1 TO n PRINT "Unesi "; i; ". riječ: "; INPUT a$(i) PRINT #1, a$(i) NEXT iCLOSE #1INPUT "Koje slovo želiš kao uvjet: "; x$OPEN "ispit.dat" FOR INPUT AS #1 FOR i = 1 TO n INPUT #1, a$(i) NEXT iCLOSE #1FOR i = 1 TO n y = LEN(a$(i)) y$ = "" br = 0 s = 0 FOR j = 1 TO y y$ = MID$(a$(i), j, 1) IF UCASE$(y$) = UCASE$(x$) THEN br = br + 1 END IF NEXT j IF br = 0 THEN GOTO 10 FOR k = 2 TO br - 1 IF br MOD k = 0 THEN

16

Page 17: PROGRAMIRANJE qbasic

s = s + 1 END IF NEXT k IF s = 0 THEN PRINT a$(i) END IF10 NEXT i

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

INPUT "Unesi neku rečenicu: "; a$PRINTx = LEN(a$)poz = 1FOR i = 1 TO x y$ = MID$(a$, i, 1) br = br + 1 IF y$ = " " THEN PRINT MID$(a$, poz, br) poz = i br = 0 END IF IF i = x THEN PRINT MID$(a$, poz, br + 1) END IFNEXT i

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

FOR i = 1000 TO 9999 x$ = STR$(i) a$ = MID$(x$, 2, 1) b$ = MID$(x$, 3, 1) c$ = MID$(x$, 4, 1) d$ = MID$(x$, 5, 1) a = VAL(a$) b = VAL(b$) c = VAL(c$) d = VAL(d$) IF (a * b) = (c * d) THEN PRINT i, SLEEP 1 END IFNEXT 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.

INPUT "Unesi dimenziju niza: "; nPRINTDIM a(n)suma = 0FOR i = 1 TO n a(i) = INT(RND * 100) + 1

17

Page 18: PROGRAMIRANJE qbasic

suma = suma + a(i) PRINT a(i),NEXT iarsred = INT(suma / n)PRINT "Aritmetička sredina niza je: "; arsredmax = 1min = 100FOR i = 1 TO n SELECT CASE a(i) CASE IS > arsred IF a(i) <= min THEN min = a(i) END IF CASE IS < arsred IF a(i) >= max THEN max = a(i) END IF END SELECTNEXT ix = arsred - maxy = min - arsredIF x > y THEN PRINT "Najbliži aritmetičkoj sredini je: "; minELSE PRINT "Najbliži aritmetičkoj sredini je: "; maxEND IF

*** 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 , 4 5 - broj ponavljanja = 2 4 - broj ponavljanja = 4 2 - broj ponavljanja = 3

INPUT "Unesi dimenziju n niza: "; nPRINTDIM a(n)a = 0b = 0c = 0d = 0e = 0f = 0g = 0h = 0j = 0k = 0FOR i = 1 TO n a(i) = INT(RND * 10) + 1 PRINT a(i), SELECT CASE a(i) CASE IS = 1 a = a + 1 CASE IS = 2 b = b + 1 CASE IS = 3 c = c + 1 CASE IS = 4 d = d + 1 CASE IS = 5

18

Page 19: PROGRAMIRANJE qbasic

e = e + 1 CASE IS = 6 f = f + 1 CASE IS = 7 g = g + 1 CASE IS = 8 h = h + 1 CASE IS = 9 j = j + 1 CASE IS = 10 k = k + 1 END SELECTNEXT iPRINT "Broj ponavljanja broja 1 = "; aPRINT "Broj ponavljanja broja 2 = "; bPRINT "Broj ponavljanja broja 3 = "; cPRINT "Broj ponavljanja broja 4 = "; dPRINT "Broj ponavljanja broja 5 = "; ePRINT "Broj ponavljanja broja 6 = "; fPRINT "Broj ponavljanja broja 7 = "; gPRINT "Broj ponavljanja broja 8 = "; hPRINT "Broj ponavljanja broja 9 = "; jPRINT "Broj ponavljanja broja 10 = "; k

*** 47 - U datoteku treba unijeti proizvoljan broj imena, a računalo treba zatražiti koje slovo želimo ka uvjet i na ekran ispisati imena a uneseno slovo zamijeniti zvjezdicom. INPUT "Koliko imena želiš unijeti: "; nPRINTOPEN "imena.dat" FOR OUTPUT AS #1 FOR i = 1 TO n PRINT "Unesi "; i; ". ime: "; INPUT a$(i) PRINT #1, a$(i) NEXT iCLOSE #1PRINTINPUT "Koje slovo želiš kao uvjet: "; x$OPEN "imena.dat" FOR INPUT AS #1 FOR i = 1 TO n INPUT #1, a$(i) NEXT iCLOSE #1FOR i = 1 TO n a = LEN(a$(i)) FOR j = 1 TO a b$ = MID$(a$(i), j, 1) IF UCASE$(b$) = UCASE$(x$) THEN PRINT "*"; ELSE PRINT b$; END IF NEXT jNEXT i

*** 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). 10 INPUT "Unesi broj: "; x

19

Page 20: PROGRAMIRANJE qbasic

s = 0FOR i = 2 TO x - 1 IF x MOD i = 0 THEN s = s + 1 END IFNEXT iIF s = 0 THEN PRINT "Broj je PROST !"ELSE PRINT "Broj NIJE prost."END IF30 INPUT "Nastavak D/N: "; y$PRINTSELECT CASE UCASE$(y$) CASE IS = "D" GOTO 10 CASE IS = "N" GOTO 20END SELECTIF UCASE$(y$) <> "D" AND UCASE$(y$) <> "N" THEN PRINT "MORATE unijeti D ili N !!!" GOTO 30END IF20 PRINT

*** 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: "; nPRINTDIM a(n)umnozak = 1FOR i = 1 TO n PRINT "Unesi "; i; ". broj: "; INPUT a(i)NEXT iPRINTFOR i = 1 TO n s = 0 x = a(i) FOR j = 2 TO x - 1 IF x MOD j = 0 THEN s = s + 1 END IF NEXT j IF s = 0 THEN PRINT x; " je PROST!", "Pozicija: "; i umnožak = umnožak * x END IFNEXT iPRINT "Umnožak prostih brojeva iz niza iznosi: "; umnožak

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

INPUT "Unesi dimenziju niza: "; nDIM a(n)FOR i = 1 TO n PRINT "Unesi "; i; ". broj: "; INPUT a(i)

20

Page 21: PROGRAMIRANJE qbasic

NEXT imax = a(1)min = a(1)FOR i = 1 TO n IF a(i) > max THEN max = a(i) END IF IF a(i) < min THEN min = a(i) END IFNEXT iPRINT "Max niza je: "; maxPRINT "Min niza je: "; min

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

INPUT "Unesi dimenziju niza: "; nPRINTDIM a(n)umnožak = 1suma = 0FOR i = 1 TO n PRINT "Unesi "; i; ". broj: "; INPUT a(i) suma = suma + a(i) umnožak = umnožak * a(i)NEXT iPRINT "Umnožak svih članova niza iznosi: "; umnožakPRINT "Suma svih članova niza iznosi: "; suma

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

suma = 0FOR i = 10 TO 99s = 0 FOR j = 2 TO i - 1 IF i MOD j = 0 THEN s = s + 1 END IF NEXT j IF s = 0 THEN suma = suma + i END IFNEXT iPRINT "Suma svih dvoznamenkastih prostih brojeva iznosi: "; suma; " !!!"

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

INPUT "Unesi neku rečenicu: "; a$x = LEN(a$)br = 0FOR i = x TO 1 STEP -1 y$ = MID$(a$, i, 1) br = br + 1

21

Page 22: PROGRAMIRANJE qbasic

IF y$ = " " THEN PRINT MID$(a$, i, br); br = 0 END IFIF i = 1 THEN PRINT " "; MID$(a$, 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.INPUT "Unesi dimenziju n niza: "; nDIM a(n)suma = 0br = 0FOR i = 1 TO n PRINT "Unesi "; i; ". broj: "; INPUT a(i) IF a(i) > 0 THEN x$ = STR$(a(i)) x = LEN(x$) IF x = 3 THEN suma = suma + a(i) br = br + 1 END IF END IFNEXT iPRINT "Suma dvoz.poz. brojeva iznosi: "; sumaPRINT "Aritmetička sredina dvoz.poz. brojeva iznosi: "; suma / brPRINT "Prosti brojevi su:"FOR i = 1 TO n s = 0 IF a(i) > 0 THEN FOR j = 2 TO a(i) - 1 IF a(i) MOD j = 0 THEN s = s + 1 END IF NEXT j IF s = 0 THEN PRINT " "; a(i), END IF END IFNEXT i

22