Transcript a$, i, 1

Funkcije
INSTR, LEFT$, RIGHT$, LEN, MID$
VAL, INT, FIX, CINT, RND, RANDOMIZE
CHR$, ASC, SQR
Programiranje 1
PMF Split
1
QBasic
Funkcije sa stringovima
•LEN vraća duljinu stringa
LEN(string$)
a$="Dobar dan"
PRINT LEN(A$)
9
•LEFT$ / RIGHT$ vraća određeni broj znakova stringa
počevši od lijeve / desne strane
LEFT$(string$, broj)
RIGHT$(string$, broj)
a$="Dobar dan"
PRINT LEFT$(A$,5)
PRINT RIGHT$(A$,3)
Programiranje 1
Dobar
dan
PMF Split
2
QBasic
Funkcije sa stringovima
•MID$ vraća 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 vraća poziciju prvog pojavljivanja nekog
podstringa u stringu
INSTR(pocetna_pozicija, string$, podstring$)
•UCASE$ - pretvara slova u velika
•LCASE$ - pretvara slova u mala
Programiranje 1
PMF Split
3
QBasic
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.
a$=“dobar” b$=“ dan”
c$=a$+b$=“dobar dan”
Programiranje 1
PMF Split
4
Primjer
•
Program koji će učitati jednu riječ i ispisati je naopako.
CLS
INPUT a$
b$=“”
FOR i=LEN(a$) TO 1 STEP -1
c$=MID$(a$, i, 1)
b$=b$+c$
NEXT i
PRINT b$
Programiranje 1
PMF Split
5
QBasic
Funkcije pretvorbi
• CHR$(n) – prevodi ASCII kod u odgovarajući
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
Programiranje 1
PMF Split
6
QBasic
Aritmetičke funkcije
• INT(x) – izračunava najveću cjelobrojnu vrijednost
koja je manja ili jednaka x
• FIX(x) – daje cjelobrojni dio od x
• CINT(x) – zaokruži vrijednost x
• RND – daje slučajne brojeve u intervalu <0,1>; da
bi se izbjeglo ponavljanje brojeva treba koristiti
naredbu RANDOMIZE
• TIMER – određuje broj proteklih sekundi od
uključivanja računala
Programiranje 1
PMF Split
7
Primjer
Učitati troznamenkasti broj i ispisati mu srednju
znamenku.
INPUT broj
broj=FIX(broj/10)
PRINT broj MOD 10
Programiranje 1
PMF Split
8
QBasic
Matematičke 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 -> "; (COS(i * (pi / 1 80)));
PRINT "sin -> "; (SIN(i * (pi / 1 80)))
SLEEP ()
NEXT i
Programiranje 1
PMF Split
9
Primjer
•
Upisati riječ. Ispisati tu riječ na ekran samo ako joj je duljina prost broj.
CLS
INPUT a$
br=LEN(a$)
f=0
FOR i=2 TO br-1
IF br MOD i=0 THEN f=1
NEXT i
IF f=0 THEN PRINT a$
Programiranje 1
PMF Split
10
Primjer
•
Napisati program koji će učitati cijeli broj. Ako je broj četveroznamenkast, ispitati da li mu
je suma prve i treće znamenka jednaka 8.
CLS
INPUT "Unesi broj"; broj
IF broj > 999 AND broj < 10000 THEN
d = broj MOD 10
broj = FIX(broj / 10)
Test podaci:
c = broj MOD 10
254, 2768, 87623, 1111, 4849
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
Programiranje 1
PMF Split
11
Primjer
•
Napisati program koji će učitati prirodni broj. Pronaći i ispisati koliko puta se
ponovila znamenka 4 u tom broju.
CLS
INPUT "x=", x
br = 0
WHILE x <> 0
Test podaci:
z = x MOD 10
326, 4813, 24144
IF z = 4 THEN br = br + 1
Ima ih 4
x = FIX(x / 10)
WEND
PRINT "Znamenka 4 se pojavljuje "; br; " puta"
Programiranje 1
PMF Split
12
Algoritmi
pretvorba decimalnog broja u dekadski
Dijagram toka za pretvorbu dekadskog
broja u binarni broj.
početak
br
Napravi program.
cijeli = br
br cijeli ost
26 26
13
6
3
1
0
ost = cijeli MOD 2
cijeli = cijeli \ 2
0
ost
1
0
1
cijeli=0
kraj
1
Programiranje 1
NE
PMF Split
13
Algoritmi
brojenje znamenki
Dijagram toka za brojenje znamenki unesenog
broja (npr. za uneseno 324 daje 3).
Napravi program.
početak
br
n=0
cijeli = br
br
n cijeli
cijeli = cijeli / 10
324 0
1
2
3
324
32.4
3.24
0.324
n=n+1
cijeli < 1
n
kraj
Programiranje 1
PMF Split
14
NE
Algoritmi
pretvorba
Algoritam koji će pretvarati binarni broj u dekadski. Napravi program.
početak
dek=0
br
i=n-1, 0
n=0
dek = dek + br\10i * 2i
cijeli = br
cijeli = cijeli / 10
br = br - br\10
br
n cijeli
101
0 101
dek
i
0
2
1 10.1
2 1.01
i
3 0.101
4=1*22
NE
dek
n=n+1
1
4
1
0
5=4+1*20 0
kraj
cijeli < 1
Programiranje 1
PMF Split
15
Zadaci
1.
2.
3.
4.
5.
6.
Upisati rečenicu, pa ispisati broj pojavljivanja svakog samoglasnika,
ispisati je naopako i ispisati njenu duljinu.
A-Z 65-90
a-z 97-122
Učitati 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" -> "cisaBQ")
Programiranje 1
PMF Split
16