You are on page 1of 2

Basic Pascal c++ Znaenje

Uvod
REM komentar ' komentar { komentar } (* komentar *) // komentar /* komentar */ komentar (moe biti u jednom redu ili izmeu zagrada)
CLS program imePrograma; #include <iostream> poetak programa
using namespace std;
od poetka do kraja kako piu naredbe begin int main() glavni (izvrni) dio programa
naredbe {
end. naredbe
}
u Basic-u ako elimo vie naredbi ispisati u jednom redu koristimo : dvotaku (npr. naredba1: naredba2: naredba3)
PRINT varijabla; write(varijabla); cout<<varijabla; ispis varijable sa poloajem kursora iza nje
PRINT "tekst" writeln('tekst'); cout<<"tekst"<<endl; ispis teksta sa poloajem kursora u novom redu
; , , << znakovi koji nam omoguavaju da u naredbi pisanja
povezujemo kombinacije razliitih varijabli i drugaijeg teksta
+ - * + - * + - * sabiranje, oduzimanje i mnoenje
u Pascal-u treba obratiti panju kod ispisa realnog broja. Naime ako ne stavimo format ispisa (koji ima oblik da se iza ispisujueg /* u c++ treba voditi rauna da bar jedan od dva djeljena broja bude realan broj. U protivnom, kao rezultat djeljenja dva cijela
realnog broja stavi :brojC :brojD), ispisuje se broj u eksponencijalnoj notaciji. Dakle rezultat treba ispisati u obliku: broja, emo dobiti cijeli broj (bie izvreno cjelobrojno djeljenje). Dva cijela broja je mogue podjeliti da kao rezultat dobijemo
rezultat:brojC:brojD gdje brojC predstavlja broj cijelih a brojD broj decimalnih mijesta. Ako se brojC prekorai on se zanemaruje realan broj i tu je potrebno samo iza jednog broja staviti taku tj.: brojA. / brojB */
brojA / brojB brojA / brojB rezultat:brojC:brojD brojA / brojB brojA. / brojB djeljenje dva broja
Promjenjive
program ... ; generalni izgled itavog programa u Pascal-u (kojim bi se
uses ... ; redom deklaracije trebale primjenjivati)
label ... ;
const ... ;
type ... ;
var ... ;
procedure ... ;
sam Basic ne zahtijeva da se promjenjive prethodno najave ali function ... ;
pri pisanju duih programa to dovodi do velikih opasnosti od begin
moguih greki. Ako elimo da deklariemo varijable, to je naredbe u c++ jedino je ogranienje da se promjenjiva mora deklarisati
potrbno uraditi prije neko to je upotrijebimo u uprogramu end. prije nego se upotrijebi
DIM imeVarijable AS tip var imeVarijable: tip; tip imeVarijable; deklaracija varijable
DIM imeV1 AS tip, imeV2 AS tip var imeV1, imeV2: tip; tip imeV1, imeV2; deklaracija dvije varijable
DIM imeV1 AS tip1, imeV2 AS tip2, imeV3 AS tip3 var imeV1: tip1; tip1 imeV1; deklaracija tri varijable koje mogu biti razliitog tipa
imeV2, imeV3: tip2; tip2 imeV2, imeV3;
INTEGER SINGLE STRING integer real string int float tipovi varijabli
LONG DOUBLE longint double char long double char
{ za koritenje tipa double u Pascal-u se na samom poetku programa (prije naredbe program) mora dodati: {$N+} }
INPUT varijabla INPUT "tekst"; varijabla read(varijabla); readln(varijabla); cin>>varijabla; naredba itanja (u jednom ili dva oblika)
, , >> znakovi koji nam omoguavaju da u naredbi itanja
povezujemo vie varijabli
imeVarijable = izraz imeVarijable := izraz; imeVarijable = izraz; znak dodjeljivanja
i=i+j k=k+1 i=j i:=i+j; k:=k+1; i:=j; i+=j; k++; i=j++; ekvivalenti i upotreba znaka dodjele
a=a-b j=j+1 a:=a-b; j:=j+1; a-=b; ++k;
poveavanje i smanjivanje vrijednosti varijable k za jedan
c=c*d k=k-1 j=j+1 c:=c*d; k:=k-1; j:=j+1; c*=d; k--; i=++j;
e=e/f i=j e:=e/f; i:=j; e/=f; --k; ekvivalenti i sline upotrebe znakova dodjele
Sloenije raunske operacije
/* za koritenje matematikih funkcija u c++ treba, na samom poetku programa, ukljuiti math.h biblioteku, tj. treba napisat: #include <math.h> */
y
x^y exp(y*ln(x)) pow(x,y) x (x na y)
n
EXP(n) exp(n) exp(n) e (e na n) e=2.718281828459045240
2
x^2 sqr(x) pow(x,2) x (x na kvadrat)
SQR(m) sqrt(m) sqrt(m) drugi korijen broja m
LOG(a) ln(a) log(a) logaritam broja a po bazi e
LOG(x) / LOG(10) ln(x) / ln(10) log10(x) logaritam broja x po bazi 10
SIN(ugla) sin(ugla) sin(ugla) asin(ugla) trigonometriske funkcije (sinus, kosinus, tangens, arkussinus,
COS(ugla) cos(ugla) cos(ugla) acos(ugla) arkuskosinus i arkustangens) koje daju ispravan rezultate za
TAN(ugla) ATN(ugla) arctan(ugla) tan(ugla) atan(ugla) ugao u radijanima
ABS(a) abs(a) abs(a) apsolutna vrijednost broja a
INT(x) trunc(x) int(x) odsjeca decimalni dio broja x
ATN(1)*4 arctan(1)*4 atan(1)*4 vrijednost broja pi (pi=3.141592653589793240)
radijan=(ATN(1)*4) / 180 radijan:=(arctan(1)*4) / 180; radijan=(atan(1)*4) / 180; vrijednost jednog radijana (1rad = pi / 180)
ugao=ugao*radijan ugao:=ugao*radijan; ugao*=radijan; pretvaranje ugla koji je u stepenima u ugao radijana
(da bi se mogle ispravno primjeniti trigonometrijske funkcije)
raunske operacije koje se upotrebljavaju samo na cijelim br.:
\ div / cijeli dio djeljenja dva broja (cjelobrojno djeljenje)
mod mod % ostatak pri djeljenju (modul)
Cikline strukture (petlje)
Naredbe koje su skoro izale iz upotrebe: naredba goto i naredba case (naredba goto se treba izbjegavati pod svaku cijenu)
... ... label imeLabele; label imeLabele; ... ... dva naina upotrebe naredbe goto
GOTO labela labela: naredba ... ... goto imeLabele; imeLabele: naredba
... 'ili ... goto imeLabele; {ili} imeLabele: naredba ... /*ili*/ ...
labela: naredba GOTO labela ... ... imeLabele: naredba goto imeLabele;
... ... imeLabele: naredba goto imeLabele; ... ...
... ...
SELECT CASE varijabla case varijabla of switch(varijabla) opti oblici case naredbe
CASE konstanta konstanta: naredba; {
naredbe ... case konstanta:
... konstanta: naredba; naredba
CASE konstanta else ...
naredbe naredba }
CASE ELSE end
naredbe
END SELECT
Ostale naredbe ponavljanja
= <> > = <> > == != > relacioni operatori (znakovi jednakosti, razliito, vee od,
< >= <= < >= <= < >= <= manje od, vee ili jednako i manje ili jednako )
begin { poetak i kraj neke cjeline ili bloka (moe i tijela petlje)
... ...
end; }
DO do naredba do (tanije strukture do-loop while i do-while) za
... { Basic i c++
LOOP WHILE uvjet DO repeat ...
... ... } i naredba repeat-until za Pascal
LOOP UNTIL uvjet until uvjet; while (uvjet); (struktura do-loop until za Basic)
DO WHILE uvjet DO UNTIL uvjet do petlje kod kojih se uvjet provjerava na poetku petlje
... ...
LOOP LOOP
EXIT break; break; naredba za izlaenje iz petlji ponavljanja
WHILE uvjet while uvjet do while(uvjet) naredba while
... begin {
WEND ... ...
end; }
FOR varijablaP=prvaVrijednost TO broj for i:=prviBroj to broj do for (inicijalizacija; uvjet; izmjena) neki od oblika naredbe for
naredbe begin {
NEXT varijablaP naredbe tijeloPetlje
end; }
FOR varijablaP=nekiBrojA TO NekiBrojB STEP brojK for broja:=zadnjeBroj downto nekiBroj do
naredbe begin for (i=10; i>=1; i-- )
NEXT VarijablaP naredbe cout<<i<<endl;
end; /* gornji primjer ispisuje brojeve od 10 do 1 unatrake */
Strukture grananja
IF uvjet THEN if uvjet then if (uvjet) naredba grananja if
naredbe begin naredba
ELSE naredbe else
naredbe end {
END IF else naredbe
naredba }
RANDOMIZE TIMER randomize; randomize(); ukljuivanje generatora sluajnih brojeva
a=INT(1000*RND) a:=trunc(1000*random); a=random(1000); broj a e dobiti vrijednost iz intervala {0,1,...,999}
'RND se ponaa kao promjenjiva ija je vrijednost vea ili /* za koritenje funkcije random() potrebno je ukljuiti stdlib.h
'jednaka nuli a strogo manja od jedinice (0<=RND<1) { rije random ima isto znaenje kao rije RND u Basic-u } biblioteku, tj. treba napisati: #include <stdlib.h> */
AND OR NOT(izraz) and or not(izraz) && || !(izraz) konjukcija, disjunkcija i negacija
Nizovi kao sloene strukture podataka
DIM imeNiza (brojElemenata) AS tip tip *imeNiza; dinamiki nain definiranja niza
...
//kad unesemo broj elemenata
imeNiza = new tip[brojElemenata+1];

var imeNiza: array[1..brojElemenata] of tip; tip imeNiza[brojElemenata+1]; statiki nain definiranja niza

naredba imeNiza(brojElementa) naredba imeNiza[brojElementa] naredba imeNiza[brojElementa] pristup nizu

orgprotri v2.5 str 1


DIM imeMatrice(brojRedova, brojKolona) AS tip var imeMatrice: array[1..brojRedova, 1..brojKolona] of tip; tip imeMatrice[brojRedova+1][brojKolona+1]; definiranje matrice

naredba imeMatrice(brojReda,brojKolone) naredba imeMatrice[red,kolona] naredba imeMatrice[red][kolona] pristup matrici


Stringovi (alfanumerike promjenjive)
DIM imeS AS STRING var imeS: string; char imeS[maksimalnaDuinaStringa]; definiranje alfanumerike promjenjive pod imenom: imeS
imeS="tekst" imeS:='tekst'; dodjeljivanje vrijednosti alfanumerikoj promjenjivoj
+ + znak za nadovezivanje stringova
INPUT imeS readln(imeS); cin.getline(imeS,maksimalnaDuinaStringa); uitavanje stringova u varijablu imeS
cin>>imeS; uitavanje stringova u varijablu imeS do prvog praznog mjesta
LEN(imeS) length(imeS) strlen(imeS) funkcija koja za rezultat vraa broj znakova alfa. promj. imeS
/* za koritenje funkcije strlen() potrebno je ukljuiti string.h
biblioteku, tj. treba napisati: #include <string.h> */
LEFT$(imeS,m) izdvaja prvih m znakova iz alfa. promjenjive imeS
RIGHT$(imeS,m) izdvaja posljednjih m znakova iz alfa. promjenjive imeS
MID$(imeS,m,n) copy(imeS,m,n) izdvaja n znakova iz prom. imeS poevi od m-tog znaka
MID$(imeS,i,1) imeS[i] imeS[i] pristup i-tom znaku u stringu imeS
MID$(imeS,m) izdvaja sve znakove iz imeS poevi od m-tog znaka do kraja
Potprogrami
...
GOSUB linija poziv
...
END linija: naredba i pisanje potprograma u izvornom BASICU (u ovom sluaju
... potprogram smo napisali iza glavnog programa mada se u
RETURN naelu mogu napisati bilo gdje)
'potprogrami se u QBasicu ponu pisati u glavnom prozoru s tim to im ukucamo zaglavlje {potprogrami se u Pascal-u /*u c++ potprogrami se mogu pisati bilo prije bilo poslije
'potprograma QBasic nam automatski otvori novi potpuno prazan prozor rezervisan samo za taj piu prije poetka glavnog glavnog programa. Ja u, radi neto lake varijante,
'potprogram. Kasnije se sa pritiskom na tipku F2 moemo prebacivati izmeu glavnog programa programa} potprograme pisati prije poetka glavnog dijela programa*/
'i potprograma pomou menija koji se tom prilikom prikae na ekranu
O O O
1 SUB imePotprograma 1 procedure imePotprograma; 1 void imePotprograma() definiranje potprograma
naredbe ... {
END SUB begin naredbe
naredbe }
end;
'potprograme u Basic-u moemo pozivati na dva naina: pomou koritenja naredbe CALL ili kucajui samo ime potprograma. U drugom sluaju na samom poetku glavnog programa je potrebno
'dodati naredbu DECLARE iza koje slijedi zaglavlje potprograma (QBasic nam ovdje prua nekakvu prednost jer im snimimo program on e automatski dodati naredbu DECLARE)
O
CALL imePotprograma imePotprograma; imePotprograma(); dva naina pozivanja potprograma 1 za Basic i
O
poziv potprograma 1 za Pascal i c++
DECLARE SUB imePotprograma()
. . .
imePotprograma
O O O
2 SUB imePotprograma 2 procedure imePotprograma; 2 void imePotprograma() definiranje potprograma koji e koristiti svoju lokalnu
DIM imeVarijable AS tip var imeVarijable: tip; { promjenjivu
... ... tip imeVarijable;
END SUB begin ...
naredbe }
end;
O
CALL imePotprograma imePotprograma; imePotprograma(); dva naina pozivanja potprograma 2 za Basic i
O
poziv potprograma 2 za Pascal i c++
DECLARE SUB imePotprograma()
. . .
imePotprograma
'u Basicu ako elimo da istu varijablu moemo koristiti u dva ili vie potprograma (da ta varijabla bude sasvim je legalno da postoje lokalne i globalne promjenjive istog imena. Tada
'zajednika), prvo je potrebno da tu varijablu u glavnom programu definiemo sa DIM imeVarijable AS tip pa unutar potprograma vrijedi lokalna promjenjiva a ne globalna promjenjiva istog
'onda u potprogramu u kojem je elimo koristiti, dodamo na poetku SHARED imeVarijable AS istiTip imena, dok u ostatku programa vrijedi globalna promjenjiva
O O O
3 SUB imePotprograma(formalniParametar AS tip) 3 procedure imePotprograma(formalniParametar:tip); 3 void imePotprograma(tip formalniParametar) definiranje potprograma koji e koristiti prenos parametara po
... ... { vrijednostima (vrijednosni parametri) u Pascal-u i c++-u
END SUB begin naredbe i
naredbe } definiranje potprograma sa jednim formalnim parametrom u
end; Basic-u
O
CALL imePotprograma(stvarniParametar) imePotprograma(stvarniParametar); imePotprograma(stvarniParametar); dva naina pozivanja potprograma 3 za Basic (ukoliko je
stvarni parametar promjenjiva prenos se vri po referenci)
DECLARE SUB imePotprograma(formalniParametar AS tip) i
O
. . .
poziv potprograma 3 za Pascal i c++
imePotprograma stvarniParametar
O
CALL imePotprograma((stvarniParametar)) CALL imePotprograma(stvarniParametar+0) neki od naina pozivanja potprograma 3 za Basic pri emu e
stvarni parametar biti prenesen po vrijednosti
DECLARE SUB imePotprograma(formalniParametar AS tip) DECLARE SUB imePotprograma(formalniParametar AS tip)
. . . . . .
imePotprograma (stvarniParametar) imePotprograma 0+stvarniParametar
O O O
4 SUB imePot(forPar1 AS tip, foPar2 AS tip, forPa3 AS tip) 4 procedure imePotpr(forPar1, forPar2, forPar3 :tip); 4 void imePotpr(tip forPar1, tip forPar2, tip forPar3) definiranje potprograma koji koristi tri formalna parametra i
... ... { koji e koristiti prenos parametara po vrijednostima
END SUB begin naredbe (vrijednosni parametri) u Pascal-u i c++-u
naredbe } i definiranje potprograma koji koristi tri formalna parametra u
end; Basic-u
O
CALL imePotpr(stvPar1, stvPar2, stvPar3) imePotprograma(stvPar1, stvPar2, stvPar3); imePotprograma(stvPar1, stvPar2, stvPar3); dva naina pozivanja potprograma 4 za Basic (ukoliko je
stvarni parametar promjenjiva prenos se vri po referenci)
DECLARE SUB imPo(foP1 AS tip, foP2 AS tip, foP3 AS tip) i
O
. . .
poziv potprograma 4 za Pascal i c++
imePotprograma stvPar1, stvPar2, stvPar3
O
CALL imePotpr((stvPar1), (stvPar2), (stvPar3)) CALL imePotpr(stvPar1+0, stvPar2+0, stvPar3+0) neki od naina pozivanja potprograma 4 za Basic pri emu e
stvarni parametar biti prenesen po vrijednosti
DECLARE SUB imPo(foP1 AS tip, foP2 AS tip, foP3 AS tip) DECLARE SUB imPo(foP1 AS tip, foP2 AS tip, foP3 AS tip)
. . . . . .
imePotpr(stvPar1), (stvPar2), (stvPar3) imePotpr stvPar1+0, stvPar2+0, stvPar3+0
' pri definisanju potprograma kao f-ja koja e vratiti vrijednost treba definisati kojeg e tipa f-ja biti. U Basic-u to je mogue samo formalni parametri su lokalne promjenjive, dok stvarni
'ako se iza imena f-je i u deklaraciji i u definiciji f-je doda neki specijalni znak. Sledei znakovi predstavljaju tipove funkcijaje: parametar moe biti neka vrijednost, varijabla(kojoj je
% (INTEGER), & (LONG), !(SINGLE), #(DOUBLE), $(STRING) dodjeljena vrijednost) ili neki izraz
O O O
5 FUNCTION imePotprZnakTipaFje(formalParame AS tip) 5 function imePotprograma(formalniParametar:tip):tip; 5 tip imePotprograma(tip formalniParametar) definiranje potprograma kao funkciju (funkcija je potprogram
... ... { koja za rezultat vraa neku vrijednost koja nam je potrebna za
imePotprograma=traenaVrijednost begin ... dalji rad)
END SUB ... return traenaVrijednost;
imePotprograma:=traenaVrijednost; }
end;
O
DECLARE FUNCTION imePotprZnTiFje(forPar AS tip) naredba imePotprograma(stvarniParametar) naredba imePotprograma(stvarniParametar) poziv potprograma 5
. . .
naredba imePotprograma(stvarniParametar)
O O O
6 FUNCTION imePotZTF(forPar1 AS tip, forPar2 AS tip) 6 function imePotprograma(forPar1, forPar2:tip):tip; 6 tip imePotprograma(tip forPar1, tip forPar2) definiranje potprograma kao funkciju koja koristi dva formalna
... ... { paramerra
imePotprograma=traenaVrijednost begin ...
END SUB ... return traenaVrijednost;
imePotprograma:=traenaVrijednost; }
end;
O
DECLARE FUNCTION imPZTF(foP1 AS tip, foP2 AS tip) naredba imePotprograma(stvPar1, stvPar2) naredba imePotprograma(stvPar1, stvPar2) poziv potprograma 6
. . .
naredba imePotprograma(stvPar1, stvPar2)
O O O
7 FUNCTION iPoZt(fP1 AS tp1, fP2 AS tp2, fP3 AS tp3) 7 function imePo(foPa1: tip1, foPa2:tip2, foPa3:tip3):tip; 7 tip imePotpr(tip1 forPar1, tip2 forPar2, tip3 forPar3) generalno potprogrami mogu imati vie parametara koji su
... ... { razliitog tipa. Ovo je jedan primjer za definiranje
imePotprograma=traenaVrijednost begin ... potprograma kao funkcije koja koristi tri formalna parametra,
END SUB ... return traenaVrijednost; koja mogu biti razliitog tipa
imePotprograma:=traenaVrijednost; }
end;
O
DECLARE FUNCTION iZ(fp1 AS t1, fp2 AS t2, fp3 AS t3) naredba imePotprograma(stvPar1, stvPar2, stvPar3) naredba imePotprograma(stvPar1, stvPar2, stvPar3) poziv potprograma 7
. . .
naredba imePotprograma(stvPar1, stvPar2, stvPar3)
O O O
8 DEF FNimeFunkcije(forPar1,..., forParN)=izraz 8 procedure imePotprograma(var formalniParametar:tip); 8 void imePotprograma(tip &formalniParametar) definiranje potprograma koji e koristiti prenos parametara po
... { referenci (promjenjivi parametri) u Pascal-u i c++-u
begin naredbe i
naredbe } definiranje funkcijeje za Basic u jednoj liniji koda
end;
O
naredba FNimeFunkcije(stvPar1,...,stvParN) imePotprograma(stvarniParametar); imePotprograma(stvarniParametar); poziv potprograma 8
O O
9 procedure imePotpr(var forPar1, forPar2, forPar3 :tip); 9 void imePotpr(tip &forPar1, tip &forPar2, tip &forPar3) definiranje potprograma koji koristi tri formalna parametra i
... { koji e koristiti prenos parametara po referenci (promjenjivi
begin naredbe parametri) u Pascal-u i c++-u
naredbe }
end;
O
imePotprograma(stvPar1, stvPar2, stvPar3); imePotprograma(stvPar1, stvPar2, stvPar3); poziv potprograma 9
prenos parametara po vrijednosti podrazumjeva da se stvarni parametar ne moe promjeniti. Parametri koji se prenose po vrijednosti nazivaju se vrijednosnim parametrima
prenos parametara po referenci podrazumjeva da e stvarni parametar dobiti vrijednost koju elimo i iju izmjenu emo definisati unutar nekog potprograma. U ovom sluaju stvarni parametar mora
biti neka varijabla. Parametri koji se prenose po referenci nazivamo promjenjivi parametrima
potprograme moemo uiniti praktiki neovisnim od glavnog programa. Ovo je upravo jedno od osnovnih zadataka metodologije programiranja poznate pod nazivom struktuirano ili modularno
programiranje. Pod tim podrazumjevamo razbijanje programa na vie manjih cjelina - modula koji se mogu razvijati neovisno jedan od drugoga
programske jezike moemo podjeliti na: jezike niskog nivoa 1.mainski jezik(kombinacija 0 i 1), 2.asembler (ili simboliki jezik) i jezike visokog nivoa 3.proceduralni jezici 4.neproceduralni jezici. Za proceduralne jezike je neophodno znati definisati algoritam tj. jasan
i nedvosmislen niz koraka koja u konanom nizu dolazi do reenja ili do zakljuka da zadatak nema rjeenja. Proceduralni jezici su: FORTRAN, COBOL, od novijih: BASIC, Pascal, C, c++ i tipini predstavnici Objektno orjentisanih jezika (posebna vrsta procedural.
jezika): Visual Basic, Object Pascal (Delphi), C++ i Java. Kod neproceduralnih jezika nemora se sastavljati algoritam ve moramo jasno definisati od ega se problem sastoji. Koriste se za baze podataka. Predstavnici su: SQL, Prolog, Lisp.

orgprotri v2.5 str 2

You might also like