Professional Documents
Culture Documents
Orgprotriv25 PDF
Orgprotriv25 PDF
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