32
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ć

Prof. dr. sc. Tonči arić i programiranje/e-student/003... · • U svim programima Main označava –Mjesto početka izvođenja programa –Naredbe se izvode od prve do zadnje,

  • 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