Programiranje

Preview:

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

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 )• 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

Namen

• Spoznati procese v izgradnji programske opreme

• Spoznati osnovne sestavine programiranja

• Spoznati osnove dela s podatki• Spoznati elemente algoritmov za

pisanje programov

Cilj

Slušatelj naj bi bil sposoben:

Kodirati postopke za obdelavo podatkov med uporabnikom,

notranjim in zunanjim pomnilnikom

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

Znanost in umetnost

Snovanje programov vsebuje elemente:

znanosti, umetnosti,

matematike in tehnike.

Programiranje

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

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

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.

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

Programski jezik

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

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

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.

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

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).

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

Zbirni jezik

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

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

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

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.

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.

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

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

Abstrakcija podatkov

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

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)

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

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

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

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

Primer C++

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

Zakaj C++

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

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)

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

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

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.

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.

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

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

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.

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

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

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

• 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

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

Strukturirano 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

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”

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”

Dogodkovni diagram

Diagram poteka

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

• Diagram poteka je eden izmed načinov zapisa algoritma

Osnovni gradniki

• start block

• izpisovalni blok

• bralni blok

Osnovni gradniki

• prireditveni blok

• klic podprograma

• odločitveni blokodločitev

funkcija

a=0

Osnovni gradniki

• blok za shranjevanje podatkov

• pot

• končni blok

konec

Osnovni gradniki

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.

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.

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

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

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

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

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

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

• 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

• 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

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

KODIRANJE

C++

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!

Vstopna točka

• funkcija main ()• struktura programa

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

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

}

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;

}

Podatki

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

Osnovni podatkovni tipiPODATKOVNI TIPI

ARITMETIČNI

ZNAKOVNI

CELOŠTEVILČNI

REALNI

INT

FLOAT

DOUBLE

CHAR

LOGIČNI

BOOL

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

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.

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.

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.

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'

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)

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

Definicija konstant

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

Definicija spremenljivk

• deklaracijaTIP IME_SPREMNLJIVKE;

• definicijaIME_SPREMNLJIVKE = NEKA_VREDNOST;

• deklaracija in definicija istočasnoTIP IME_SPREMENLJIVKE = NEKA_VREDNOST;

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

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

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

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* /

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;

}

Operatorji

• aritmetični operatorji (arithmetical operators),

• prireditveni operatorji (assignment operators),

• primerjalni operatorji (relational operators),

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

:: //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

Recommended