Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
Algoritmi i programiranje
Varijable, tipovi podataka, logički operatori, aritmetički operatori i grananje
Prof. dr. sc. Tonči Carić
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
• Sadržaj
– Ustroj programa
– Podaci
– Varijable
– Aritmetički operatori
– Logički operatori
– Grananje
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
Osnovni pojmovi Prvi program
• Po tradiciji je to program koji ispisuje “Hej svijete.”
• Program “Hej svijete.” zapisan u C#
• Procjena kakvoće programskog jezika na temelju jednostavnosti pisanja i čitanja programa “Hej svijete”
• Na početku program u C# teško razumljiv početniku
Hello
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
Osnovni pojmovi Metoda Main
• U svim programima Main označava
– Mjesto početka izvođenja programa
– Naredbe se izvode od prve do zadnje, nakon čega se izvođenje zaustavlja
• Ne postoji granica na broj naredbi
• Vanjske vitičaste zagrade označavaju početak i kraj definicije klase
• Unutarnje vitičaste zagrade označavaju početak i kraj definicije Main
• Dvije kose crte // označavaju da iza njih slijedi komentar koji prirodnim jezikom objašnjava što program radi
• Kod prevođenja se komentar preskače, pa se prilikom izvođenja i ne izvodi
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
Osnovni pojmovi Ustroj programa
class NAZIV_KLASE
{
public static void NAZIV_METODE (String[] args)
{
NAREDBE
}
}
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
• Postoji više vrste podataka s obzirom na način nastajanja podataka
– IZLAZNI podaci se generiraju programom i prikazuju na izlaznoj jedinici (npr. zaslon)
– ULAZNI podaci nastaju izvan računala i program ih pribavlja preko ulazne jedinice (npr. tipkovnica)
– VARIJABLE programa su “varijabilni” podaci u glavnoj memoriji računala i nalaze se u ispisno/upisnoj memoriji(RAM)
Osnovni pojmovi Podaci
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
• Varijable
– Mogu sadržavati vrijednosti ulaznih ili izlaznih veličina /
podataka ili međurezultate
– Program tijekom izvršavanja može u bilo kojem koraku
izmijeniti vrijednost VARIJABLE
Osnovni pojmovi Varijable
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
• Ime varijable
– Mora biti jedna riječ
– Ne smije sadržavati razmak
– Ne smije biti rezervirana riječ programskog jezika
– Prvi znak ne smije biti znamenka
– Ime bi trebalo sugerirati namjenu ili sadržaj varijable
• Prije uporabe u programu varijable se moraju navesti, deklarirati tj. potrebno je odrediti tip varijable
Osnovni pojmovi Varijable
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
• IME VARIJABLE ne smije biti rezervirana riječ programskog jezika c#
Osnovni pojmovi Varijable
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
• Ova naredba je DEKLARACIJA pošto je varijabli ivo ovom naredbom dodijeljen tip string,ovaj tip služi za pohranu niza znakova
• Za pohranu vrijednosti cijelih brojeva potrebno je deklarirati varijablu kao tip int
Osnovni pojmovi Varijable
string ivo;
int sat, minuta;
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
• DEKLARACIJOM varijable dodjeljujemo varijabli određenog imena njezin tip
• TIP varijable definira vrstu podataka koju želimo pohranjivati u tu varijablu npr.
– Za cjelobrojne vrijednosti koristimo tipove int
– Za niz znakova koristimo tip string
– Za brojeve s decimalnim zarezom koristimo tip double
– Za logičke vrijednosti koristi se tip bool
• Boole-ove vrijednosti: – Vrijednosti istinitosti - istina -> true ili laž -> false
Osnovni pojmovi Varijable
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
Osnovni pojmovi Varijable
Tip Pohrana Najmanja vrijednost Najveća vrijednost
sbyte byte short ushort int uint long ulong float double decimal
8 bita 8 bita 16 bita 16 bita 32 bita 32 bita 64 bita 64 bita 32 bita 64 bita 96 bita
-128 0 -32,768 0 -2,147,483,648 0 -9,223,372,036,854,775,808 0 1.5 ∙10-45 5.0 ∙10-324 1.0 ∙10-28
127 255 32,767 65,535 2,147,483,647 4,294,967,295 9,223,372,036,854,775,807 18,446,744,073,709,551,615 3.4 ∙ 1038 1.7 ∙10308 7.9 ∙1028
• Osnovni ugrađeni tipovi podataka u c# su:
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
Osnovni pojmovi Varijable
• Nakon deklariranja, varijabla može poprimiti vrijednost nekog ulaznog podatka ili se operacijom pridruživanja = postavlja početna vrijednost
ivo = "Hej."; // pridjeljuje var. ivo vrijednost "Hej."
sat = 11; // pridjeljuje vrijednost 11 var. sat
minuta = 59; // postavlja vrijednost var. minuta na 59
Ime
varijable
Vrijednost
varijable
ivo “Hej.”
sat 11
minuta 59
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
Osnovni pojmovi Varijable
• Varijabla i njoj pridijeljeni podaci moraju imati isti tip
Ime
varijable
Vrijednost
varijable
ivo 11
sat “Hej.”
minuta 59
string
int
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
• KONSTANTA je vrsta “varijable” koje se nakon deklaracije (pridruživanje tipa varijabli) samo jednom inicijalizira i tijekom programa više ne mijenja svoju vrijednost
Osnovni pojmovi Varijable
const int mjeseci = 12;
const int tjedana = 52;
const int dana = 365;
const double pi = 3.14;
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
• OSNOVNI ARITMETIČKI OPERATORI su specijalni znakovi koji predstavljaju jednostavne računske operacije poput zbrajanja i množenja
Osnovni pojmovi Aritmetički operatori
1+1
sat-1
sat*60+minuta
minuta/60
• Navedeni izrazi sadrže i varijable i brojeve
• U svakom od izraza, varijabla se prilikom izračuna zamjeni svojom trenutnom vrijednošću
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
Osnovni pojmovi Aritmetički operatori
Program će ispisati ove rezultate na zaslonu
int sat, minuta;
sat = 11;
minuta = 59;
Console.Write (“Broj minuta poslije ponoci: ");
Console.WriteLine(sat * 60 + minuta);
Console.Write (“Dio sata koji je prosao: ");
Console.WriteLine(minuta / 60);
Broj minuta poslije ponoci: 719
Dio sata koji je prosao: 0
Console.Write(“Postotak sata koji je prosao: ");
Console.WriteLine(minuta * 100 / 60);
Alternativa za kritični dio programa izgleda:
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
Osnovni pojmovi Aritmetički operatori
• PRAVILA PREDNOSTI aritmetičkih operatora
– 2*3-1=5 2*3-1≠4 veći rang operacija
– minute*100/60, 5900/60=98 s lijeva na desno (int)
– minute*100/60, 59*1=59 s desna na lijevo (int)
• Izbjegavanje prednosti operatora vrši se upotrebom zagrada
– 2*(3-1)=4
• Upotrebom zagrada zaobilazimo nedoumice
– (minute*100)/60
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
Osnovni pojmovi Aritmetički operatori
• Općenito nije moguće vršiti matematičke operacije nad nizovima znakova (stringovima)
• Slijedeći izrazi nisu dozvoljeni ako je varijabla ivo tipa string
• Da li je varijabla ivo tipa string ili int, moguće je ustanoviti jedino gledajući njezinu deklarciju
• Operator “+” IPAK radi nad nizovima znakova, ali izvodi spajanje, a ne matematičku operaciju zbrajanja
ivo - 1 "Hello"/123 ivo * "Hello"
"Hello, " + "world" = " Hello, world"
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
Osnovni pojmovi Logičke operacije i relacije
– Operacije uspoređivanja (npr. >,
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
Osnovni pojmovi Relacijski operatori
Relacijski operatori služe za uspoređivanje varijabli
– Operator = je operator pridruživanja vrijednosti varijabli, a == je
operator identičnosti (uspoređivanja vrijednosti)
– Varijable koje se uspoređuju moraju biti istog tipa
– Rezultat usporedbe varijabli je logička vrijednost
• true istina
• false laž
x == y // x je identično y (u matematici jednako =)
x != y // x nije identično y (u matematici različito ≠)
x > y // x je veće od y
x < y // x je manje od y
x >= y // x je veće ili jednako y (u matematici ≥)
x
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
Osnovni pojmovi Logičke operacije i relacije
• Logički operatori
– U praksi se najčešće koriste tri logička operatora: AND, OR i NOT
Logička
operacija
Način pisanja
u C#-u
Logička
operacija (HR)
AND && I
OR II Ili
NOT ! Ne
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
Osnovni pojmovi Logičke operacije i relacije
Značenje operatora je vrlo blisko govornom jeziku. Na primjer: x > 0 && x < 10
Gornji izraz će imati vrijednost true (istinito) samo ako je x veće od 0 i manje od 10 paran || n%3 == 0
Gornji izraz će imati vrijednost true (istinito) ako varijabla paran ima vrijednost true ili ako je vrijednost varijable n djeljiva s brojem 3
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
Osnovni pojmovi Grananje
• STRUKTURE ODLUČIVANJA omogućavaju uvjetno izvršavanje određenih akcija (grananje) ovisno o uvjetima
• TRI OSNOVNE STRUKTUE:
– if
• Jednostavna struktura odluke (alternativa)
– if - else
• Struktura s više ishoda odluka
– switch
• Struktura odluke temeljena na vrijednosti varijable
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
Osnovni pojmovi Grananje
• STRUKTURE ODLUČIVANJA
– Uvjetna naredba if (ako)
– Potreba za izvođenjem dijela naredbi programa zavisno o ispunjenju određenog uvjeta
– ako je uvjet ispunjen izvodi se naredba u
{zagradama}
– ako uvjet nije ispunjen ne izvodi se naredba u
{zagradama}
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
• STRUKTURE ODLUČIVANJA – Uvjetna naredba if (ako)
– Potreba za izvođenjem dijela naredbi programa zavisno o ispunjenju određenog uvjeta
– ako je uvjet ispunjen izvodi se naredba u
{zagradama}
– ako uvjet nije ispunjen ne izvodi se naredba u
{zagradama}
if (x > 0) { // provjera uvjeta
Console.WriteLine("x je pozitivan broj");
}
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
• STRUKTURE ODLUČIVANJA
– Uvjetna naredba if - else (ako - inače)
– Izvođenje sa dvije mogućnosti nastavka izvođenja naredbi zavisno o ispunjenju uvjeta
if (x % 2 == 0) {
Console.WriteLine("x je paran broj");
} else {
Console.WriteLine("x je neparan broj");
}
Parnost
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
• STRUKTURE ODLUČIVANJA
– Uvjetna naredba if – else if - else
– Primjena kod višestruke provjere i odabira nastavka izvođenja naredbi
– Uvlake naredbi istog značaja olakšavaju čitanje i tumačenje programa
if (x > 0) {
Console.WriteLine("x je pozitivan broj");
} else if (x < 0) {
Console.WriteLine("x je negativan broj");
} else {
Console.WriteLine("x je nula");
}
Pozitivnost
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
• PRIMJER
x > 0 && x < 10
Gornji izraz će imati vrijednost true (istinito) samo ako je x veće od 0 i manje od 10
Odlucivanje01
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
• PRIMJER
paran || n%3 == 0
Gornji izraz će imati vrijednost true (istinito) ako varijabla paran ima vrijednost true ili ako je vrijednost varijable n
djeljiva s brojem 3
Odlucivanje02
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
struktura odluke
temeljena na
vrijednosti varijable
x
Odlucivanje03
ZITS :: Algoritmi i programiranje :: Varijable, operatori i grananje © 2013 Carić, Ivanjko
Ugniježđene if naredbe
Osnovno uvjetno grananje
Ugniježđeno uvjetno grananje
• PRIMJER: Pronađi min (br1,br2,br3)
Najmanji