87
Programiranje Neja Zupan

Programiranje

Embed Size (px)

DESCRIPTION

Programiranje. Neja Zupan. Uvod 2. Skripta : Srečko Zorman: Programiranje, gradivo za interno uporabo. Knjige (na primer): Donald Knuth : Umetnost računalniškega programiranja ( The Art of Computer Programming ) - PowerPoint PPT Presentation

Citation preview

Page 1: Programiranje

Programiranje

Neja Zupan

Page 2: Programiranje

Uvod 2

Skripta:• Srečko Zorman: Programiranje, gradivo za

interno uporabo.

Knjige (na primer):• Donald Knuth: Umetnost računalniškega

programiranja (The Art of Computer Programming )• Viljem Žumer, Janez Brest: Uvod v programiranje in

programski jezik C++, Maribor, FERI 2004.• Martin Juvan, Matjaž Zaveršnik: Vaje iz

programiranja: C, C++ in Mathematica, Ljubljana, Študentska založba, 2000.

• http://marcel.uni-mb.si/janez/cpp/• http://www.islovar.org/iskanje_enostavno.asp

Page 3: Programiranje

Namen

• Spoznati procese v izgradnji programske opreme

• Spoznati osnovne sestavine programiranja

• Spoznati osnove dela s podatki• Spoznati elemente algoritmov za

pisanje programov

Page 4: Programiranje

Cilj

Slušatelj naj bi bil sposoben:

Kodirati postopke za obdelavo podatkov med uporabnikom,

notranjim in zunanjim pomnilnikom

Page 5: Programiranje

1. Uvod (Osnovne in značilnosti programiranja, objektno usmerjen pristop, …)

2. Osnove (gradniki, spremenljivke, konstante, podatkovni tipi, …)

3. Osnovne krmilne strukture (pogojni in ponavljalni stavek, podprogrami)

4. Kazalci in funkcije5. Tabele6. Dinamični pomnilnik

Vsebina

Page 6: Programiranje

Znanost in umetnost

Snovanje programov vsebuje elemente:

znanosti, umetnosti,

matematike in tehnike.

Page 7: Programiranje

Programiranje

je dejavnost, katere cilj je ustvarjanje novih računalniških programov ali njihovih sestavnih delov na temelju določenih pravil.

Page 8: Programiranje

Vrste programiranja

• Proceduralno programiranje– Potek izvajanja je v naprej določen– START ... KONEC– Bližje računalniškemu jeziku

• Dogodkovno - objektno programiranje– Potek programa je odvisen od dogodkov

npr.:• Na kateri gumbek klikne uporabnik

– Bližje človeškemu razmišljanju

Page 9: Programiranje

Računalniški programi

Računalniški programi so napisani v izvorni kodi določenega

programskega jezika, pri delu pa si programer lahko pomaga z

ustreznimi razvojnimi orodji zanj.

Page 10: Programiranje

Programski jezik

• skupek pravil, podatkovnih struktur in vmesnikov, ki programerju služijo kot orodje za izdelavo programa.

• zbirka ukazov, ki jih razume računalnik, s katerimi mu določimo katera opravila naj opravi in po katerem vrstnem redu

Page 11: Programiranje

Programski jezik

Izbira programskega jezika odvisna od:– Vrsta problema– Naše znanje programskih jezikov– Delovno okolje– Karakteristike računalnika– Finančne omejitve

Page 12: Programiranje

Programski jeziki• Strojni jezik

– Zaporedje cifer 1 in 0, edino kar rač. razume– Odvisen od procesorja– Počasno in nepregledno programiranje

• Zbirni jezik (assembler)– 1 in 0 zamenjajo črkovne kode, lažje si zapomnimo– Samo za časovno kritične elemente (rač. igre)

• Višji programski jeziki: Pascal, C++, Basic,…Pascal, C++, Basic,…– Prenosljivost – neodvisnost od procesorja– Prevajalniki prevajajo kodo v zbirni jezik

• Jeziki 4. Generacije: SQL, …SQL, …– Neprilagodljivi in potratni– Za hitro reševanje ozkih problemov

več

del

a za

člo

veka

več

del

a za

člo

veka

večj

a p

om

raču

nal

nik

ave

čja

po

mo

č ra

čun

aln

ika

Page 13: Programiranje

Programski jezik

Programski jeziki se uporabljajo zato, ker sta človekova in računalnikova »govorica« tako različni,

da je pisati programe v jeziku računalnika (strojni kodi) nepregledno in

nasploh mukotrpno.

Page 14: Programiranje

Računalnik razume le strojni jezik

Obstajata dva načina pretvorbe kode:– Prevajanje opravi prevajalnik (compiler)

• Prevede preden program poženemo• Prevedemo 1x, poženemo večkrat• Za različne platforme prevedemo na vsaki (razen

Jave)

– Tolmačenje opravi tolmač (interpreter)• Postopno korak za korakom tolmači vrstico

izvorne kode med izvajanjem• Lažje odkrivanje napak, npr. v katerem koraku• Počasnejše izvajanje programa

Page 15: Programiranje

Zbirni jezik

• Zbirni jezik (assembler) (angleško assemble - zbirati) je programski jezik, ki je napisan z mnemoniki.

• Mnemoniki predstavljajo kodo v strojnem zapisu (ničle in enice).

Page 16: Programiranje

Primer programa v zbirniku

:004012A2 0500466F72 add eax, 726F4600

:004012A7 6D insd

:004012A8 3100 xor dword ptr [eax], eax

:004012AA 0D010D0041 or eax, 41000D01

:004012AF 7070 jo 00401321

:004012B1 204368 and byte ptr [ebx+68], al

:004012B4 61 popad

:004012B5 6C insb

:004012B6 6C insb

:004012B7 65 BYTE 065h

Page 17: Programiranje

Zbirni jezik

• povezano s strojno opremo• programi neprenosljivi na drugačno

strojno opremo• zavzamejo manj prostora v pomnilniku • izvajajo se hitreje

Page 18: Programiranje

C++

• konec ’70ih: Bjarne Stroustrup (takrat inženir pri Bell Labs)

• razširitev zelo razširjenega programskega jezika C• dodatki iz Simula67 ter Algol68• prvotno se je jezik imenoval »C with Classes« 

(C z razredi)• ime C++ se prvič pojavi v letu 1983• v drugi polovici osemdesetih let C++ doživi

korenite spremembe

Page 19: Programiranje

Zgodovina imena »C++«

• Ime jezika pripisujejo Ricku Mascittiju in so ga prvič uporabili decembra 1983.

• Kombinacijo C+ je tedaj že tudi zasedel drug nesoroden jezik. Pripono ++ je po Stroustrupovih besedah dal zaradi evolucijske/revolucionarne narave razširitve C. C++ je tudi pogosteje kot npr. raba ++C. Ker C++ v bistvu ni spremenil C-ja, bi bilo še pravilnejše ime »C+1«.

• Ko so leta 1992 vprašali Mascittija zakaj je dal takšno ime, je navedel, da je bilo ime le neuradno in da si ni nikoli mislil da bo postalo tudi uradno ime.

Page 20: Programiranje

C++ standardizacija

• Leta 1989 pod okriljem ANSI (American National Standards Institution) organizacije ustanovljen oddelek za standardizacijo programskega jezika C++ (J16)

• zatem ISO (International Standardization Organization) oddelek za mednarodno standardizacijo

• Specifikacije standarda so tudi zamrznili za naslednjih pet let, dovoljene spremembe so le popravki morebitnih napak

• Leta 1998 so sprejeli tudi ISO standard za jezik C++ kot ISO/IEC 14882:1998. Trenutna različica standarda je ISO/IEC 14882:2003.

• Razvijajo tudi novo različico z neuradnim imenom C++0x.

Page 21: Programiranje

C++

• C++ (C plus plus) [ce plus plus] je splošnonamenski programski jezik.

• V C++ so podatkovni tipi statični, zapis kode je prost.

• Jezik podpira:– večparadigmatično proceduralno

programiranje– podatkovno abstrakcijo– objektno usmerjeno– generično programiranje

Page 22: Programiranje

Proceduralno programiranje

• uporablja procedure• zaporedje programskih stavkov s

svojim imenom• lahko izvedena večkrat med

delovanjem programa• zaključen del programa, ki ga

lahko izvajanje naloge celotnega programa potrebuje večkrat

Page 23: Programiranje

Abstrakcija podatkov

Page 24: Programiranje

ADT int

Podatki:

Možen predznak + ali -, ki mu sledi zaporedje desetiških števk. V nadaljnjem besedilu označimo tako predznačeno celo število z N.

Operacije:

konstruktor

Ustvari nov primerek int - torej novo predznačeno celo število.

prištej(k)

Matematični operator +. Ustvari nov primerek int, ki je vsota N in k.

odštej(k)

Matematični operator -. Ustvari nov primerek int, ki je razlika N in k.

set(k)

Operator prirejanja. Predznačenemu celemu številu N priredi vrednost k.

Abstraktni podatkovni tip

Page 25: Programiranje

Objektno orientirano programiranje

• lažja in bolj neposredno predstavitev realnega problema v programu z objekti

• svoje lastnosti (podatkovni del programiranja)

• svoje obnašanje (funkcionalni del programiranja)

Page 26: Programiranje

OOP: objektno orientirano

programiranje• Razred – abstrakna predstavitev –

vsebuje definicije lastnosti in metod• Objekt – konkretna instanca (primerek)

razreda – vsebuje vrednosti• Lastnost (property) – označuje neko

lastnost objekta, npr. velikost črk• Metoda (methode) – funkcija, ki prebere

ali spremeni neko lastnost objekta• Pri tiskanju bi bila matrica razred, vsak tiskan

list pa svoj objekt tega razreda

Page 27: Programiranje

OOP• Gumbek na ekranu je svoj objekt• Objekti izhajajo iz razredov• Vsi objekti, ki izhajajo iz istega razreda, imajo

skupne lastnosti in metode:– Napis– Pozicija na ekranu– Lahko je (ne)aktiven– Zazna, ko ga uporabnik pritisne– ...

• Objektom uporabniškega vmesnika pravimo tudi gradniki uporabniškega vmesnika

Page 28: Programiranje

OOP

• Lastnosti razreda so zavarovane – do njih lahko dostopamo (beremo, spremeninjamo) le preko metod (object-based programming)

• Pomemben element so dogodki (events), npr:– Ko uporabnik klikne na gumbek– Ko uporabnik premakne miško– Ko uporabnik spremeni besedilo v vnosnem polju

Page 29: Programiranje

OOP

• Vsak razred lahko sprejme sporočila o določenih dogodkih (event-driven programming, event procedure)

• Program dogodke zazna in takrat lahko program izvede del programske kode imenovan

Page 30: Programiranje

Primer C++

#include <iostream> int main() { std::cout << "Pozdravljen svet!" << std::endl; return 0; // ni potrebno po ISO standardu }

Page 31: Programiranje

Zakaj C++

• objektno orientirano programiranje• prenosljivost• zgoščenost, jedrnatost • modularno programiranje• združljivost s C• hitrost

Page 32: Programiranje

Povzetek• Programiranje: pisanje (oblikovanje, ...)

zaporedja ukazov

• Programski jezik: skupek pravil, zbirka ukazov

• Program: Natančen opis zaporednih korakov (ukazov, akcij, ...), ki naj jih izvede računalnik

• Prevajalnik: računalniški program, ki prevede izvorno kodo napisano v višjem programskem jeziku v strojni jezik

• Aplikativni programi (aplikacije, uporabniške rešitve)

Page 33: Programiranje

Algoritem

• navodilo, s katerim rešujemo določen problem

• seznam korakov, ki nas pripeljejo do rešitve problema

• primer algoritma iz vsakdanjega življenja je kuharski recept

• zaporedje operacij, ki nas v končnem številu korakov vodijo do rešitve problema

Page 34: Programiranje

Značilnosti algoritma

• (lahko) ima podatke, • (običajno) vrne rezultat, • je natančno določen, • je končen, • je izvedljiv.

ZAČNI

KONEC

ZAČNI

KONEC

PREBERIŠTEVILO A

PREBERIŠTEVILO B

IZPIŠIVSOTA

VSOTA =A + B

X

X

1.1. zajemanje podatkovzajemanje podatkov2.2. obdelava podatkovobdelava podatkov3.3. izpis rezultatovizpis rezultatov

Page 35: Programiranje

Kategorije algoritmov

• Obstajajo različne kategorije algoritmov, bolje rečeno strategij, ki jih uporabljamo za reševanje problemov. Poznane strategije so:– deli in vladaj – dinamično programiranje – požrešna metoda – linearno programiranje – verjetnostni algoritmi

• Pri analizi algoritma nas običajno zanimata njegova prostorska in časovna zahtevnost.

Page 36: Programiranje

Deli in vladaj

• Deli in vladaj (angleško Divide and Conquer) predstavlja strategijo delitve problema na manjše probleme, ki so prvotnemu problemu enaki (enakega tipa). Tak postopek ponavljamo, dokler nismo sposobni rešiti podproblemov.

• Strategija temelji na rekurziji.

Page 37: Programiranje

Deli in vladajprocedure DeliInVladaj(a, dno, vrh, rešitev) / / a[dno], a[dno+1], ... , a[vrh]; dno>=1 so podatki begin if problem majhen (dno, vrh) then resi (a, dno, vrh, rešitev) else begin / / problem ni majhen, potrebna delitev s := deli(dno,vrh) / / index delitve, razdeli na 2 podproblema DeliInVladaj(a, dno, s, rešitev) / / reši levi podproblem DeliInVladaj(a, s+1, vrh, rešitev) / / reši desni podproblem Združi(dno, s, vrh, rešitev) / / združi rešitve posameznega podproblema end end

Page 38: Programiranje

Dinamično programiranje

• sistematično pregledovanje možnih poti v reševanju problema in zato tudi pride do optimalne rešitve

• potencialne rešitve na tekočem koraku določamo na osnovi potencialnih rešitev iz prejšnjega koraka

• Poznamo dva pristopa za reševanje:– pristop naprej – pristop nazaj

Page 39: Programiranje

Požrešna metoda• lažji del prepustimo računalniku, težji

del pa izvedemo sami• neko dejanje privede na preprost

način do cilja • Princip delovanja: iščemo optimum

funkcije (minimum ali maksimum), tako da sproti gradimo rešitev.

• Graditev rešitev: dodajamo najboljše dopustne dele rešitev.

Page 40: Programiranje

Zapis algoritmaAlgoritem lahko zapišemo na več

načinov:• v naravnem jeziku • hierarhični diagram • s pomočjo odločitvene tabele• s pomočjo psevdokode• grafično s pomočjo diagrama poteka• programskem jeziku

Page 41: Programiranje

Hierarhični strukturni (drevesni) diagram

Korake za strukturo programa dobimo iz hierarhične strukture, npr. že obstoječe, kjer spreminjamo predvsem spodnji del

MAINMAINMAINMAIN

INICIALIZACIJAINICIALIZACIJAINICIALIZACIJAINICIALIZACIJA PROCESPROCESPROCESPROCES ZAKLJUČEKZAKLJUČEKZAKLJUČEKZAKLJUČEK

DeklaracijespremenljivkDeklaracije

spremenljivkIzpis glave

poročilaIzpis glave

poročilaIzpis vrstice

tabeleIzpis vrstice

tabelePreberi en

zapisPreberi en

zapis RačunajRačunaj SeštejvsoteSeštejvsote

IzračunpovprečjaIzračun

povprečjaIzpis skupnih vsot in povrp.Izpis skupnih vsot in povrp.

Izračunbruto

Izračunbruto

Izračundavka

Izračundavka

Izračunneto

Izračunneto

Page 42: Programiranje

Odločitvena tabela

• Delno zamenja oz. dopolnjuje diagram poteka

• Razdeljena je na 5 enot:– A – vprašanja, ki jih lahko

odgovorimo z True ali False, ter različnost odgovorov vpliva na odločitev

– B – možne odločitve– C, D in E – stolpci, kjer je vsak

stolpec svoje pravilo

A

B

C

D

E

Page 43: Programiranje

• Pravila:– Če ima stranka pri nas odprt račun na katerem je dovolj

denarja, izvedi transakcijo– Če ima stranka pri nas odprt račun s premalo denarja

izvedi transakcijo le, če se strinja vodstvo– V vseh drugih primerih zavrni

transakcijo

Odločitvena tabela - primer

Stranka ima račun

Na računu je dovolj denarja

Vodstvo odobri

Izvedi transakcijo

Zavrni transakcijo

Pravila

1 2 3 4

Page 44: Programiranje

Strukturirano programiranjeProgramiramo samo z naslednjimi strukturami:

zaporedjezaporedje če-potem-drugačeče-potem-drugače ponavljaj-doklerponavljaj-dokler

Rutina 1

Rutina 2

Pogoj

Rutina 1 Rutina 2

True False

Rutina 1

PogojTrue

False

Page 45: Programiranje

Strukturirano programiranje

Page 46: Programiranje

Psevdokoda

• Opisujemo opravila delno s programskimi ukazi:– DO WHILE imamo še zapise v datoteki

IF zaloga je manjša od 10% načrtovane THEN

izpolni naročilopošlji naročilo po e-pošti

ENDIFzapiši log

LOOP

Page 47: Programiranje

Akcijski diagram

• Podbno psevdokodi• Grafično označimo:

– zanke (debelo)– pogojne stavke (tanke)– prekinitev zanke

(puščica)

• Kodo sestavljata:– * (naslov)– (akcija)

* Glavni programPrikaži nasloveZa i = 1 do 100

Vnesi podatkeIf (podatek ni numeričen)

If (vsaj en podatek)IzračunPrikaži rezultat

ElsePrikaži “Ni podatkov”

Page 48: Programiranje

Dogodkovni diagram

• Opisujejo opravila, ki sledijo npr. enemenu dogodku (za vse dogodke):

Uporabnik pritisnegumbek za konec

Zapiši podatkev datoteko

Izpiši,da zaključuješ

Sprazni podatkev pomnilniku

Izpiši “Konec”

Page 49: Programiranje

Dogodkovni diagram

Page 50: Programiranje

Diagram poteka

• Grafično opisuje pravila po katerih pridemo do rešitve

• Diagram poteka je eden izmed načinov zapisa algoritma

Page 51: Programiranje

Osnovni gradniki

• start block

• izpisovalni blok

• bralni blok

Page 52: Programiranje

Osnovni gradniki

• prireditveni blok

• klic podprograma

• odločitveni blokodločitev

funkcija

a=0

Page 53: Programiranje

Osnovni gradniki

• blok za shranjevanje podatkov

• pot

• končni blok

konec

Page 54: Programiranje

Osnovni gradniki

Page 55: Programiranje

Naloge

Nalogi za ogrevanje:• Narišite diagram poteka za popoldanske

aktivnosti.• Sestavi diagram poteka, ki izračuna

ploščino trikotnika z dano osnovnico in višino.

• Sestavi diagram poteka, ki izračuna ploščino trikotnika iz treh stranic s pomočjo Heronove formule.

Page 56: Programiranje

Naloge

Naloga 1• Sestavi diagram poteka, ki izračuna

absolutno vrednost danega števila.Naloga 2• Sestavi diagram poteka, ki izbere večje

od dveh števil. Naloga 3• Sestavi diagram poteka, ki vpiše 10

števil in jih sešteje.

Page 57: Programiranje

Povzetek• Algoritem: seznam korakov, ki nas pripeljejo do

rešitve problema

• Kategorije algoritmov: strategije za reševanje problemov

• Načini zapisa algoritma: – v naravnem jeziku – hierarhični diagram – s pomočjo odločitvene tabele– s pomočjo psevdokode– grafično s pomočjo diagrama poteka– programskem jeziku

Page 58: Programiranje

Proces izgradnje programa

Problem, začetni pogoji in podatki

Določimo cilje in namen programa

ProgramiranjeNačrt reševanja-zaporedje korakov

KodiranjeZapis v programski jezik

Izvajanje, testiranje

Dokumentacija za končnega uporabnika

Vzdrževanje

dokumentacija

naše delo

1

2

3

4

5

6

7

LEGENDA

Page 59: Programiranje

1. Analiza problema Precizno definiramo problem oz. področje, ki ga pokriva aplikacija, napišemo programske specifikacije: opis vhodov, obdelave, izhodov in uporabniških vmesnikov

Page 60: Programiranje

2. Zasnova programaizdelaj podrobno logiko programov z uporabo orodij kot so akcijski diagrami, psevdokoda, diagrami strukture objektov, dogodkovni diagrami, ..in razčleni funkcije programa v module, izdelaj algoritme za obdelavo podatkov, preveri algoritme

Page 61: Programiranje

3 Programiranje

• Problem razdelimo na manjše podprobleme, dokler ne pridemo do problemov, ki jih znamo kodirati

• Poiščemo že napisano programsko kodo za posamezne korake oz. podprobleme

• Posamezne korake komentiramo v kodi, kar nam olajša nadaljnje delo

3 ProgramiranjeNačrt reševanja-zaporedje korakov

Page 62: Programiranje

4 Kodiranje

• Posamezne korake zapišemo v izbranem programskem jeziku

• Težavnost dela je odvisna predvsem od dodelanosti prejšnje stopnje in sposobnosti programerja

• Težimo k čim večji preglednosti, enostavnim proceduram (posamezni logično ločeni deli kode)

4 KodiranjeZapis v programski jezikZapis v programski jezik

Page 63: Programiranje

• Testiranje program in sprotno odpravljanje napak

• Pri testiranju je potrebno vnašati logične (raznolikost testnih podatkov) in mejne vrednosti (npr. max. število pričakovanih podatkov...)

• Program lahko javi, da so mejne vrednosti presežene, ne sme pa prenehati delovati – se odzivati

5 Izvajanje, testiranje

Page 64: Programiranje

• Zagotoviti moramo delovanje programa v skladu s cilji (hitrost, ...) in skladno popraviti kodo

• Testirajo naj še izkušeni programerji, ki niso sodelovali pri programiranju in uporabniki

5 Izvajanje, testiranje

Page 65: Programiranje

5. Dokumentiranje aplikacijePreveri in popravi in integriraj interno

dokumentacijo, izdelaj uporabnikovo dokumentacijo

6. VzdrževanjeOmogoči usposabljanje in podporo končnim

uporabnikom; popravljaj napake, ki se pokažejo med uporabo aplikacije, prilagaja program spremenjenim oz. novim zahtevam

Page 66: Programiranje

KODIRANJE

C++

Page 67: Programiranje

Vstopna točka

• komentar

/ / Moj Program / / verzija 0.0.1 /* OPIS: Kaj že počnemo? Pišemo komentarje, ki se lahko raztezajo čez več vrstic. * / /* 20.2.2022 * / / / Naredil sem to!

Page 68: Programiranje

Vstopna točka

• funkcija main ()• struktura programa

/ / prvi program – izpis pozdrava #include <iostream.h> int main () {

cout << ˝Pozdrav iz C++a!˝ ; return 0;

}

Page 69: Programiranje

Vstopna točka

• deklaracija in definicija/* Primeri deklaracij ter definicij celoštevilčnih spremenljivk. * / / / deklaracija char a; int b; / / deklaracija ter definicija, uporaba preznaka char c = 10; int d = +10; char e = -10; int f = +10;

/ / prvi program – izpis pozdrava #include <iostream.h> int main () {

cout << ˝Pozdrav iz C++a!˝ ; return 0;

}

Page 70: Programiranje

Podatki

• podatkovni tipi • spremenljivke• konstante• inicializacija• doseg spremenljivk

Page 71: Programiranje

Osnovni podatkovni tipiPODATKOVNI TIPI

ARITMETIČNI

ZNAKOVNI

CELOŠTEVILČNI

REALNI

INT

FLOAT

DOUBLE

CHAR

LOGIČNI

BOOL

Page 72: Programiranje

Podatkovni tipipodatkovni tip število zlogov obseg

short 2zloga (16 bitov)-32768...32767 (predznačena) 0...65355 (nepredznačena)

int 2 zloga ali 4 zlogi

long 4 zlogi-2147483648...2147483648 (predznačena) 0...4294967295 (nepredznačena)

char 1 zlog-128...127 (predznačena) 0...255 (nepredznačena)

float 4 zlogi 7 mestdouble 8 zlogov 15 mestlong double 10 zlogov 19 mestbool 1 bit true ali false

Page 73: Programiranje

Cela števila

Naravna, cela števila (integer) sestavljajo štiri podskupine:

• short je sestavljen iz dveh bajtov, • int iz 4 bajtov, • long pa omogoča uporabo števil,

ki niso večja od osmih bajtov.

Page 74: Programiranje

Cela števila

Cela števila lahko zapisujemo v treh številčnih sistemih:

• Najpogosteje jih zapišemo v desetiškem sistemu.

• Če jih želimo v osmiškem sistemu, uporabimo le številke od O do 7, pred tako številko pa moramo vedno zapisati številko 0, npr.011 (decimalno 9)

• Za pisanje šestnajstiških števil lahko uporabimo številke od 0 do 9 in črke od A do F. Pred šestnajstiško število moramo zapisati simbola 0x ali 0X. Število 11 bi lahko zapisali v obliki 0xB.

Page 75: Programiranje

Realna števila

• Realna števila so sestavljena iz celega števila in decimalne vrednosti, ki ju ločimo z decimalno piko. Če želimo, jih lahko zapišemo v eksponenti obliki, z znakom e ali E, npr.12.16+E20.

• Realna števila sestavljata dve podskupini, podatkovni tip z enojno (float) ali z dvojno natančnostjo (double). Prvi podatkovni tip zasede 4 bajte računalnikovega pomnilnika, drugi pa 8.

Page 76: Programiranje

Znaki

• Spremenljivko lahko predstavlja en sam znak (char).

• Znak zapišemo med dva enojna narekovaja, npr. 'P'.

• S simbolom \ lahko prikažemo tudi posebne, ubežne (escape) znake, ki jih ne najdemo na tipkovnici.

• Znak za novo vrstico lahko zapišemo v obliki '\n‘

• Znak za pomik na začetek vrstice '\r'

Page 77: Programiranje

Konstante in spremenljivke

– V spremenljivke shranjujemo začasne vrednosti, ki se praviloma spreminjajo med izvajanjem programa

– Konstante shranjujejo vrednosti, ki se ne spreminjajo med izvajanjem programa

– Vsako spremenljivke najavimo preden jo uporabimo v programu (opišemo tip, dolžino, …) (priporočeno)

Page 78: Programiranje

Konstante in spremenljivke

– Na prvem mestu naj bo črka angleške abecede; v imenih slovenskih črk ne uporabljamo

– sledijo lahko črke, številke, spodnji vezaji– pika, presledek, posebni znaki, (%,$,/, …) ne

smejo biti del imena; – ne sme vsebovati rezerviranih besed

(ukazov, vgrajenih konstant, …) – ime naj bo pomensko– dolga imena so laže berljiva, če se vsaka

beseda v imenu začne z veliko črko

Page 79: Programiranje

Definicija konstant

• constpomeni, da ima spremenljivka konstantno vrednost in je ne moremo spreminjati

Page 80: Programiranje

Definicija spremenljivk

• deklaracijaTIP IME_SPREMNLJIVKE;

• definicijaIME_SPREMNLJIVKE = NEKA_VREDNOST;

• deklaracija in definicija istočasnoTIP IME_SPREMENLJIVKE = NEKA_VREDNOST;

Page 81: Programiranje

Modifikatorji

MODIFIKATOR TIP IME_SPREMENLJIVKE;

MODIFIKATOR TIP IME_SPREMENLJIVKE = NEKA_VREDNOST;

// uporaba modifikatorjev short ter long

short int malo = 100; // velikost spremenljivke naj bi bila 2 byte-a

long int veliko = 10000; // velikost spremenljivke naj bi bila 8 byte-ov

Page 82: Programiranje

Modifikatorji

/ / uporaba modifikatorjev signed ter unsigned char a; / / -127 do +128, signed je privzeta vrednost signed char b; / / -127 do +128 unsigned char c; / / 0 do 255 int d; / / - 21474836648 do +21474836647 unsigned int e; / / 0 do 42944967296

Page 83: Programiranje

Modifikatorji

char a; / / v char lahko zapišemo števila od -128 do +127 a = 0; / / ni težav a = -100; / / ni težav a = +100; / / ni težav a = +129; / / težava! vrednost spremenljivke a postane -127, kako? 129 - 256 = -127 a = 135; / / težava! vrednost spremenljivke a postane -121, kako? 135 - 256 = -121 a = 1000; / / težava! vrednost spremenljivke a postane -24, kako? 1000 - (4*256) = -24 a = -200; / / težava! vrednost spremenljivke a postane +56, kako? -200 + 256 = +56

Page 84: Programiranje

Modifikatorjiunsigned char a; / / 0 do 255 a = 100; / / ni težav a = 300; / / težave, vrednost spremenljivke a postane 44, kako? 300 - 256 = 44 a = -300; /* težave, vrednost spremenljivke a postane 212, kako? -300 + (2*256) = 212, dvakrat pridemo naokoli* / a = 1000; /* težave, vrednost spremenljivke a postane 232, kako? 1000 - (3*256) = 232, trikrat pridemo naokoli* /

Page 85: Programiranje

V/I funkcije

//predprocesorska direktiva za V/I tok #include <iostream.h> int main() { int stevilo;

cout << "Vpisi celo stevilo:" << endl; cin >> stevilo; cout << "Vpisal-a si stevilo:" << stevilo << endl; return 0;

}

Page 86: Programiranje

Operatorji

• aritmetični operatorji (arithmetical operators),

• prireditveni operatorji (assignment operators),

• primerjalni operatorji (relational operators),

• logični operatorji (logical operators), • operatorji nad biti (bitwise operators).

Page 87: Programiranje

:: //operator za določanje globalnega vidnega območja :: //operator za določanje vidnega območja v objektu (member) () //oklepaji za klic funkcije () //oklepaji pri klicu konstruktorja . //izbor člana v nekem objektu -> //izbor člana v nekem objektu, kot kazalec [] //dostop do elementa v polju ++ -- //inkrementacija, dekrementacija (kot popona) ++ -- //inkrementacija, dekrementacija (kot predpona) + - //predznak ! //logični NE ~ //bitni komplement & //naslov spremenljivke * //dereference podatkovni tip //osnovna pretvorba enega tipa v drugega .* //razklic nad članom (boljši prevod še iščemo) ->* //indirekten razklic nad članom (boljši prevod še iščemo) * / % //množenje, deljenje + - //seštevanje, odštevanje << >> //vhodni ter izhodni operator < <= > >= //operatorji za določanje neenakosti == != //operatorji za določanje enakosti & //bitni AND ^ //bitni XOR | //bitni OR && //logični IN || //logični ALI ?: //pogojni operator = //prirejanje, nastavitev *= //množenje in prirejanje /= //deljenje in prirejanje %= //deljenje z ostankom in prirejanje += //seštevanje in prirejanje -= //odštevanje in prirejanje , //tudi to je operator (ne samo ločilo), dve izjavi združi v eno