Title: Funkcije
1Funkcije
- INSTR, LEFT, RIGHT, LEN, MID
- VAL, INT, FIX, CINT, RND, RANDOMIZE
- CHR, ASC, SQR
2QBasic Funkcije sa stringovima
- LEN vraca duljinu stringa
LEN(string)
a"Dobar dan" PRINT LEN(A)
9
- LEFT / RIGHT vraca odredeni broj znakova
stringa pocevši od lijeve / desne strane
LEFT(string, broj) RIGHT(string, broj)
a"Dobar dan" PRINT LEFT(A,5) PRINT
RIGHT(A,3)
Dobar dan
3QBasic Funkcije sa stringovima
- MID vraca dio stringa i vrši zamjenu dijela
string varijable s nekim drugim stringom
MID(string, broj1, broj2) MID(string1, broj1,
broj2)string2
a "Gdje je Split?" PRINT MID(a, 9, 5) b
"Dalmacija, Engleska" PRINT b MID(b, 12)
"Hrvatska" PRINT b
Split Dalmacija, Engleska Dalmacija, Hrvatska
- INSTR vraca poziciju prvog pojavljivanja nekog
podstringa u stringu
INSTR(pocetna_pozicija, string, podstring)
- UCASE - pretvara slova u velika
- LCASE - pretvara slova u mala
4QBasic Funkcije sa stringovima
-
- a "Sveuciliste Split
- PRINT a
- PRINT INSTR(1 , a, "Split")
- PRINT LEFT(a, 11 )
- PRINT RIGHT(a, 6)
- PRINT LEN(a)
- PRINT MID(a, 1 , 11 )
Stringovi se mogu zbrajati. Npr. adobar b
dan cabdobar dan
5Primjer
- Program koji ce ucitati jednu rijec i ispisati je
naopako. - CLS
- INPUT a
- b
- FOR iLEN(a) TO 1 STEP -1
- cMID(a, i, 1)
- bbc
- NEXT i
- PRINT b
6QBasic Funkcije pretvorbi
- CHR(n) prevodi ASCII kod u odgovarajuci znak
- ASC(x) daje ASCII kod prvog znaka stringa
- REM Pretvorba decimalnog broja u ASCII
ekvivalent - CLS
- FOR i 60 TO 130
- PRINT i, CHR(i)
- SLEEP 1
- NEXT i
7QBasic Aritmeticke funkcije
- INT(x) izracunava najvecu cjelobrojnu
vrijednost koja je manja ili jednaka x - FIX(x) daje cjelobrojni dio od x
- CINT(x) zaokruži vrijednost x
- RND daje slucajne brojeve u intervalu lt0,1gt da
bi se izbjeglo ponavljanje brojeva treba
koristiti naredbu RANDOMIZE - TIMER odreduje broj proteklih sekundi od
ukljucivanja racunala
8Primjer
- Ucitati troznamenkasti broj i ispisati mu srednju
znamenku. - INPUT broj
- brojFIX(broj/10)
- PRINT broj MOD 10
9QBasic Matematicke funkcije
- SQR(x) korijen broja
-
- REM Funkcije sin(x) cos(x)
- CLS
- pi 3.4592
- FOR i 0 TO 360 STEP 15
- PRINT i "(st) "
- PRINT "cos -gt " (COS(i (pi / 1 80)))
- PRINT "sin -gt " (SIN(i (pi / 1 80)))
- SLEEP ()
- NEXT i
10Primjer
- Upisati rijec. Ispisati tu rijec na ekran samo
ako joj je duljina prost broj. - CLS
- INPUT a
- brLEN(a)
- f0
- FOR i2 TO br-1
- IF br MOD i0 THEN f1
- NEXT i
- IF f0 THEN PRINT a
11Primjer
- Napisati program koji ce ucitati cijeli broj. Ako
je broj cetveroznamenkast, ispitati da li mu je
suma prve i trece znamenka jednaka 8. - CLS
- INPUT "Unesi broj" broj
- IF broj gt 999 AND broj lt 10000 THEN
- d broj MOD 10
- broj FIX(broj / 10)
- c broj MOD 10
- broj FIX(broj / 10)
- b broj MOD 10
- a FIX(broj / 10)
- IF a c 8 THEN PRINT "suma prve i
trece znamenke je 8" - ELSE
- PRINT "nije cetveroznamenkast!"
- END IF
Test podaci 254, 2768, 87623, 1111, 4849
12Primjer
- Napisati program koji ce ucitati prirodni broj.
Pronaci i ispisati koliko puta se ponovila
znamenka 4 u tom broju. - CLS
- INPUT "x", x
- br 0
- WHILE x ltgt 0
- z x MOD 10
- IF z 4 THEN br br 1
- x FIX(x / 10)
- WEND
- PRINT "Znamenka 4 se pojavljuje " br " puta"
Test podaci 326, 4813, 24144 Ima ih 4
13Algoritmi pretvorba decimalnog broja u dekadski
Dijagram toka za pretvorbu dekadskog broja u
binarni broj. Napravi program.
br cijeli ost
26 26
13 0
6 1
3 0
1 1
0 1
14Algoritmi brojenje znamenki
Dijagram toka za brojenje znamenki unesenog broja
(npr. za uneseno 324 daje 3). Napravi program.
br n cijeli
324 0 324
1 32.4
2 3.24
3 0.324
15Algoritmi pretvorba
Algoritam koji ce pretvarati binarni broj u
dekadski. Napravi program.
br n cijeli dek i
101 0 101
1 10.1
2 1.01
3 0.101
0 2
4122
1 4 1
0 54120 0
16Zadaci
- Upisati recenicu, pa ispisati broj pojavljivanja
svakog samoglasnika, ispisati je naopako i
ispisati njenu duljinu. - A-Z 65-90 a-z 97-122
- Ucitati prirodan broj i ispisati sve njegove
znamenke. (INT, FIX) - Rastaviti prirodan broj na proste faktore. (INT,
FIX) - Ispisati sumu svih dvoznamenkastih prostih
brojeva. - 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. - Napravi program koji traži da uneseš neki string
u varijablu i onda zamijeni znakove u string
varijabli.("QBasic" -gt "cisaBQ")