RAČUNALNIŠKI PRAKTIKUM d o c. d r. A N D R E J T A R A N E N K O Kdo bo z vami? Predavatelj: dr. Andrej Taranenko

Podobni dokumenti
Diapozitiv 1

Microsoft Word - UP_Lekcija04_2014.docx

Microsoft Word - M docx

MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje prir

Diapozitiv 1

Strojna oprema

Microsoft Word - M _mod..docx

Datum in kraj

RAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni

Turingov stroj in programiranje Barbara Strniša Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolo

Urejevalna razdalja Avtorji: Nino Cajnkar, Gregor Kikelj Mentorica: Anja Petković 1 Motivacija Tajnica v posadki MARS - a je pridna delavka, ampak se

GHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega)

Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefo

Microsoft PowerPoint - Java_spremenljivke

Delavnica Načrtovanje digitalnih vezij

Microsoft PowerPoint - Objekti_gradnja.ppt

Microsoft Word - M docx

Microsoft PowerPoint _12_15-11_predavanje(1_00)-IR-pdf

Učinkovita izvedba algoritma Goldberg-Tarjan Teja Peklaj 26. februar Definicije Definicija 1 Naj bo (G, u, s, t) omrežje, f : E(G) R, za katero v

Microsoft Word - vaje2_ora.doc

Iskanje ničel funkcij z metodo bisekcije Imejmo podano funkcijo f(x), ki ji želimo poiskati ničle, to je presečišča z x-osjo, kjer je vrednost f(x)=0.

ŠTEVCI PROMETA IN NJIHOVA UPORABA ZA NAMENE STATISTIK ČRT GRAHONJA

1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatk

PRIPOROČILA ZA OBLIKOVANJE KATALOGOV ZNANJA ZA MODULE V PROGRAMIH VIŠJEGA STROKOVNEGA IZOBRAŽEVANJA

Delavnica Načrtovanje digitalnih vezij

DES

Microsoft PowerPoint - Java-rekurzija.ppt

Vprašanja za 2. izpitno enoto poklicne mature Strokovni predmet APJ Vsako izpitno vprašanje je sestavljeno iz posameznih delov, od katerih je vsak del

Ime in priimek: Vpisna št: FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Verjetnost Pisni izpit 5. februar 2018 Navodila Pazljivo preberite

Microsoft Word - CNC obdelava kazalo vsebine.doc

Optimizacija z roji delcev - Seminarska naloga pri predmetu Izbrana poglavja iz optimizacije

M

Analiza vpliva materiala, maziva in aktuatorja na dinamiko pnevmatičnega ventila

Teorija kodiranja in kriptografija 2013/ AES

Sistemi Daljinskega Vodenja Vaja 3 Matej Kristan Laboratorij za Strojni Vid Fakulteta za elektrotehniko, Univerza v Ljubl

Kazalo 1 DVOMESTNE RELACIJE Operacije z dvomestnimi relacijami Predstavitev relacij

STAVKI _5_

1. izbirni test za MMO 2018 Ljubljana, 16. december Naj bo n naravno število. Na mizi imamo n 2 okraskov n različnih barv in ni nujno, da imam

Ime in priimek: Vpisna št: FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Statistika Pisni izpit 6. julij 2018 Navodila Pazljivo preberite be

BiokemInfo - Pregled funkcij

Vprašanja za 2. izpitno enoto poklicne mature Strokovni predmet NPA Vprašanja Visual C# (4. letnik) 1. Uporabniški vmesnik razvojnega okolja Visual C#

Najprej si poglejmo učilnico. Za vse začetnike lahko tukaj najdete čudovito knjigo Python za programiranje. Poda odlično iztočnico za učenje. Priporoč

Chapter 1

APS1

BYOB Žogica v vesolju Besedilo naloge Glavna ideja igre je paziti, da žoga ne pade na tla igralne površine, pri tem pa zbrati čim več točk. Podobno ig

rm.dvi

PMJ, XPath

Revija 124 za PDF.p65

Prekinitveni način delovanja PLK Glavni program (OB1; MAIN) se izvaja ciklično Prekinitev začasno ustavi izvajanje glavnega programa in zažene izvajan

Predmetnik programa Družboslovna informatika, smer Digitalne tehnologije in družba (DI-DTID) 1. letnik Zimski semester Poletni semester # Naziv predme

Microsoft Word - PRO1_2_Java_2015_12_22

ARS1

LaTeX slides

Vrste

APS1

Microsoft Word - avd_vaje_ars1_1.doc

Microsoft Word - M docx

COBISS3/Medknjižnična izposoja

Slide 1

TNUV Lab

Vgrajeni sistemi Uvod & ponovitev C

Microsoft Word - Seštevamo stotice.doc

Uradni list RS - 12(71)/2005, Mednarodne pogodbe

3. Preizkušanje domnev

Vaja04_Ver02

Brownova kovariancna razdalja

Orodje za izvoz podatkov

FAKULTETA ZA ORGANIZACIJSKE VEDE Kidričeva cesta 55a, 4000 Kranj Tel.: (04) (04) E pošta: Splet

Komisija za študijske zadeve UL Medicinske fakultete Vrazov trg 2 SI-1000 Ljubljana E: T: Režim študija Predmet: Uvod

DIGITALNE STRUKTURE Zapiski predavanj Branko Šter, Ljubo Pipan 2 Razdeljevalniki Razdeljevalnik (demultipleksor) opravlja funkcijo, ki je obratna funk

VST: 1. kviz

Univerza v Mariboru Fakulteta za naravoslovje in matematiko Oddelek za matematiko in računalništvo Enopredmetna matematika IZPIT IZ VERJETNOSTI IN STA

Ime in priimek

C:/Users/Matevž Èrepnjak/Dropbox/FKKT/TESTI-IZPITI-REZULTATI/ /Izpiti/FKKT-avgust-17.dvi

C:/Users/Matevž Èrepnjak/Dropbox/FKKT/testi in izpiti/ /IZPITI/FKKT-februar-14.dvi

Navodila:

Space Invaders Opis igre: Originalna igra: Space Invaders je arkadna igra, ki so jo ustvarili leta Bila je ena izmed prvih streljaških iger, v k

FAKULTETA ZA STROJNIŠTVO Matematika 2 Pisni izpit 9. junij 2005 Ime in priimek: Vpisna št: Zaporedna številka izpita: Navodila Pazljivo preberite bese

DN5(Kor).dvi

Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna str

predstavitev fakultete za matematiko 2017 A

Slide 1

PREDMETNI KURIKULUM ZA RAZVOJ METEMATIČNIH KOMPETENC

Spoznajmo PowerPoint 2013

EKVITABILNE PARTICIJE IN TOEPLITZOVE MATRIKE Aleksandar Jurišić Politehnika Nova Gorica in IMFM Vipavska 13, p.p. 301, Nova Gorica Slovenija Štefko Mi

2. izbirni test za MMO 2017 Ljubljana, 17. februar Naj bosta k 1 in k 2 dve krožnici s središčema O 1 in O 2, ki se sekata v dveh točkah, ter

Ime in priimek: Vpisna št: FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Statistika Pisni izpit 31. avgust 2018 Navodila Pazljivo preberite

Microsoft Word - ELEKTROTEHNIKA2_ junij 2013_pola1 in 2

Microsoft Word - M doc

'Kombinatoricna optimizacija / Lokalna optimizacija'

ANALITIČNA GEOMETRIJA V RAVNINI

Zavod sv. Stanislava Škofijska klasična gimnazija Programiranje v Pythonu Program za računanje Maturitetna seminarska naloga iz informatike Kandidat:

INFORMATOR BIROKRAT 1/2011

Navodila Trgovina iCenter

UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Miha Anžiček UREJEVALNIK JAVANSKE KODE DIPLOMSKO DELO NA VISOKOŠOLSKEM STROKOVNEM ŠTUDI

POKLICNA MATURA 2010

Osnove verjetnosti in statistika

%

TNUV Lab5

Transkripcija:

RAČUNALNIŠKI PRAKTIKUM d o c. d r. A N D R E J T A R A N E N K O Kdo bo z vami? Predavatelj: dr. Andrej Taranenko andrej.taranenko@uni-mb.si kabinet: 0/95 govorilne ure: http://matematika-racunalnistvo.fnm.uni-mb.si/ 2 Asistentka: Mojca Bračič ostale podrobnosti od nje Naloge (vaje) 20 % Obveznosti in ocenjevanje kaj je potrebno, bo povedala Mojca Pisni izpit - problemi 40 % problemi reševanje na papir Pisni izpit - teorija 40 % teorija snov s predavanj 3 Prisotnost na vajah je obvezna, na predavanjih zaţelena! Osnovna literatura Viljem Ţumer, Janez Brest: Strukturirano in objektno usmerjeno programiranje v C++ (1. del), FERI UM. Viljem Ţumer, Janez Brest: Objektno programiranje v C++, FERI UM. Edward Scheinerman: C++ for mathematicians, Chapman & Hall Derek M. Capper: Introducing C++ for scientists, engineers and mathematicians, Springer splet 4 http://matematika-racunalnistvo.fnm.uni-mb.si/ ŠTUDIJ Moji predmeti Študijski program: Matematika / Izobraţevalna matematika Predmet: Računalniški praktikum ČLANI ODDELKA Mojca Bračič Andrej Taranenko 5 KRATKA PONOVITEV OSNOV C++ 6 S P R E M E N L J I V K E P O G O J N I S T A V K I Z A N K E F U N K C I J E P O L J A N I Z I 1

Spremenljivke (1) spremenljivke uporabljamo za shranjevanje podatkov, imenovali jih bomo tudi objekti vsaka spremenljivka ima določen podatkovni tip vrsta podatka, ki ga objekt predstavlja ime s tem imenom se skličemo na podatek deklaracija spremenljivke stavek, s katerim uvedemo nov pojem spremenljivko definicija spremenljivke kadar z deklaracijo spremenljivke ustvarimo tudi sam objekt 7 Spremenljivke (2) deklaracija spremenljivke tip ime; podatkovni tipi, ki smo jih spoznali: int cela števila double realna števila char 1 znak bool logična vrednost (true/false) tip[] polje elementov tipa tip string niz znakov 8 Prireditveni stavek stavek, s katerim povemo, kateri podatek spremenljivka predstavlja pravimo, da priredimo vrednost operator = sintaksa prireditvenega stavka: ime_spremenljivke = izraz; spremenljivka, ki je ţe deklarirana 9 izraz mora biti enakega oz. kompatibilnega tipa kot spremenljivka na levi strani enačaja Podatkovni toki podatkovni vir, s katerega dobivamo podatke oz. na katerega podatke pošiljamo vhodni podatkovni tok podatke dobivamo npr. tipkovnica cin izhodni podatkovni tok podatke pošiljamo npr. konzola na ekranu cout tekstovni podatkovni tok podatke dobivamo / pošiljamo v obliki teksta 10 Operatorja << in >> z << pošljemo podatek na podatkovni tok npr. cout << "To je stavek." << endl; z >> pridobimo podatek s podatkovnega toka npr. cin >> stevilo; 11 Stavki v C++ večina stavkov v C++ se zaključi s podpičjem poznamo več vrst stavkov deklaracijski napovemo nekaj novega prireditveni priredimo vrednost pogojni if stavek izbirni switch stavek iterativni zanke (while, do..while, for) 12 2

pogojni stavek (if) Vejitveni stavki doseţemo, da se stavek oz. pa skupina stavkov izvede le ob določenem pogoju izbirni stavek (switch) preverjamo enakost neke spremenljivke števnega tipa na določene vrednosti 13 poznamo več oblik 1. oblika ima naslednjo sintakso if (pogoj) stavek; beremo tako: Če je res, kar pravi pogoj, potem izvedi stavek. if stavek 1. oblika stavek je en stavek v C++ ali sestavljen stavek sestavljen stavek več stavkov znotraj zavitih oklepajev 14 if stavek - 2. oblika 2. oblika ima naslednjo sintakso if (pogoj) stavek1; else stavek2; beremo tako: Če je res, kar pravi pogoj, potem izvedi stavek1, v nasprotnem primeru izvedi stavek2. 15 switch stavek switch ( test ) { case vrednost1 : // test == vrednost1 break; case vrednost2 : // test == vrednost2 break; default: // vse druge vrednosti 16 izraz, ki se ovrednoti na števno vrednost nato se ena za drugo preverjajo naštete vrednosti torej ali je test enak kateri od teh vrednosti če je enak, izvedi stavke pri tisti vrednosti stavek break, skoči nemudoma ven iz switch stavka (ne preverja nadaljnjih vrednosti) moţnost default če test ni enak nobeni od prej naštetih vrednosti, izvede te stavke. Po potrebi lahko moţnost default izpustimo. Zanke while zanka 17 18 z zankami doseţemo, da se stavek oz. skupina stavkov zaporedoma večkrat izvede kolikokrat se izvede je odvisno od v naprej znanega števila ponovitev ali najbolj primerna for zanka nekega splošnega pogoja najbolj primerni while ali do..while zanki while (pogoj) { stavki 1. Ovrednoti pogoj. Če je pogoj resničen (true), nadaljuj na koraku 2. V nasprotnem primeru nadaljuj za zanko. 2. Izvedi stavke. 3. Skoči na korak 1. pogoj true stavki false 3

do while zanka for zanka 19 20 do { stavki; while (pogoj); 1. Izvedi stavke. 2. Ovrednoti pogoj. Če je pogoj resničen (true), skoči na korak 1. V nasprotnem primeru nadaljuj za zanko. true stavki pogoj false for (inicializacija; pogoj; sprememba) { ; stavki; 1. Izvedi inicializacijo. 2. Ovrednoti pogoj. Če je pogoj resničen (true), skoči na korak 3. V nasprotnem primeru nadaljuj za zanko. 3. Izvedi stavke. 4. Izvedi spremembo. 5. Skoči na korak 1. inicializacija pogoj true stavki sprememba false zanke katero naj uporabim? 21 Katero zanko izbrati? Ali je znano število NE Ali se stavki vsaj NE ponovitev? enkrat izvedejo? DA DA uporabi while zanko stavka break in continue stavek break lahko uporabljamo le znotraj switch stavka znotraj poljubne zanke 22 stavek break nemudoma prekine izvajanje zanke oz. switch, v katerih se pojavi uporabi for zanko uporabi dowhile zanko stavek continue lahko uporabljamo le znotraj poljubne zanke stavek continue nemudoma skoči na preverjanje pogoja v zanki, v kateri se pojavi Struktura programa v C++ s stališča strukturiranega programiranja program je razdeljen na knjiţnice in funkcije v knjiţnicah so definirani razni objekti podatkovni tipi funkcije razredi uporabimo jih lahko, če v program vključimo knjiţnico vsak program ima funkcijo main() v tej funkciji se prične izvajanje programa 23 vrača celo število, ki operacijskemu sistemu pove, ali je prišlo do napake lastno funkcijo moramo funkcije v C++ (1) deklarirati preden jo uporabimo in jo definiramo kjerkoli v programu definirati preden jo uporabimo funkcjo definiramo na naslednji način: tip imefunkcije(formalni parametri) { return vrednost; // če funkcija vrača vrednost 24 4

funkcije v C++ (2) tip imefunkcije(formalni parametri) { return vrednost; // če funkcija vrača vrednost tip imefunkcije 25 vrsta rezultata, ki ga funkcija vrača s tem imenom kličemo funkcijo, izvedemo stavke v funkciji formalni parametri so opis podatkov, ki jih posredujemo funkciji ob klicu parametri so podatki, brez katerih v funkciji ne moremo rešiti naloge opišemo jih s t. i. formalnimi parametri formalni parametri so deklaracije (lokalnih) spremenljivk povedo nam 26 število podatkov, ki jih potrebujemo kakšnega tipa morajo biti podatki ob klicu funkcije vrstni red podatkov ob klicu funkcije Primer 1 klic funkcije v knjiţnici cmath je definirana funkcija sqrt double sqrt(double x); uporaba funkcije: double y; je izraz tipa double y = sqrt(17.54); 27 nam pove, da moramo ob klicu funkcije podati en podatek, ki je realno število Primer 2 28 napiši funkcijo, ki izračuna največji skupni delitelj dveh celih števil Def: Največji skupni delitelj dveh celih števil a in b je tako največje celo število, ki deli oba a in b. nsd(a,b). oznaka za največji skupni delitelj. nad(a,b) = nsd (-a,b) = nsd(a,-b) = nsd (-a,-b) nsd(a,0) = a ni definirano: nsd (0,0) Primer 2 Primer 2 hitreje (Evklidov algoritem) int nsd(int a, int b) { a = abs(a); b = abs(b); // drugo st. bo manjse if (a < b) { int t = a; a = b; b = t; if (a==0 && b==0) { cout << "ni def."; 29 if (b==0) return a; // preverimo vse možne // kandidate for(int d=b; d>=1; d--) if (a%d==0 && b%d==0) return d; TRDITEV: Naj bosta a in b celi števili, a>0, b>0, in c = a mod b. Potem je nsd(a, b) = nsd(b, c). Primer nsd(80, 25) = 80 mod 25 = 5 = nsd(25, 5) = 25 mod 5 = 0 = nsd(5, 0) = = 5 30 5

Primer 2 hitreje (Evklidov algoritem) Primer 2 klic funkcije int nsd(int a, int b) { a = abs(a); b = abs(b); // drugo st. bo manjse if (a < b) { int t = a; a = b; b = t; if (a==0 && b==0) { cout << "ni def."; 31 if (b==0) return a; // Evklidov algoritem do { int novi_a = b; int novi_b = a%b; a = novi_a; b = novi_b; while (b!=0); return a; ne glede na to, kako smo največji skupni delitelj poiskali, funkcijo kličemo na enak način 32 int main() { int st1, st2; cout << "Vnesi dve celi stevili: "; cin >> st1 >> st2; cout << "Najvecji skupni delitelj stevil " << s1; cout << " in " << st2 << " je " << nsd(st1, st2) << endl; Naključna števila (1) 33 generator naključnih števil je funkcija, ki vrne na videz naključno število, v bistvu pa se rezultat določi deterministično. s semenom generatorja določimo na katerem mestu v zaporedju vračanih števil funkcija prične vračati vrednosti. seme generatorja naključnih števil določimo s funkcijo void srand(int seme) seme običajno določimo s sistemsko uro funkcija je definirana v knjiţnici cstdlib Naključna števila (2) za delo z naključnimi števili moramo vključiti knjiţnico cstdlib generator naključnih števil je funkcija, ki vrne na videz naključno število, v bistvu pa se rezultat določi deterministično. s semenom generatorja določimo na katerem mestu v zaporedju vračanih števil funkcija prične vračati vrednosti. seme generatorja naključnih števil določimo s funkcijo void srand(int seme) seme običajno določimo s sistemsko uro srand(time(0)); za funkcijo time() moramo vključiti knjiţnico ctime 34 Naključna števila (3) naključno število dobimo s klicem funkcije int rand(); funkcija rand() vrne naključno celo število med 0 in RAND_MAX RAND_MAX konstanta definirana v cstdlib (2 31-1) naključno celo število med 0 in a, aϵn int y = rand ()%(a+1); (a+1) koliko števil je na izbiro 35 Naključna števila (4) naključno celo število med a in b, a b, a,bϵz int y = rand ()%(b-a+1) + a; (b-a+1) koliko števil je na izbiro, če štejemo a in b a je najmanjše število, ki ga ţelimo naključno realno število med 0 in 1 double y = rand ()/double(rand_max); naključno realno število med a in b, a b, a,bϵr double y = rand ()/double(rand_max)*(b-a)+a; 36 6

Polja zbirke elementov istega tipa (1) polja ločimo na statična velikost polja je znana v naprej (konstanta) dinamična velikost je lahko spremenljivka sami rezerviramo in sprostimo pomnilnik uporabimo kazalec statična polja tip ime[velikost]; int polje[5]; 37 dinamična polja tip *ime; // kazalec na polje, prostor za // elemente še ni rezerviran ime = new tip[velikost]; // rezerviraj pomn. int *polje = new int[5]; Polja zbirke elementov istega tipa (2) delamo s posameznimi elementi v polju elementi so indeksirani od 0 naprej dostop do posameznega elementa operator [ ] indeks elementa npr. polje[0] = 10; 38 pri delu z dinamičnim poljem moramo sami sprostiti rezerviran pomnilnik delete[] ime; Primer 3 - polja Nizi delo s tekstom /* program prebere polje n celih števil, kjer n preberemo preko tipkovnice, nato preveri, ali so vsa števila v polju deljiva s 3. */ #include <iostream> using namespace std; void preberi (int*ap, int an){ for (int i = 0; i < an; i++){ cout << "Vnesi element: "; cin >> ap[i]; bool preverilastnost(int*ap, int an){ // iskali bomo takega, // ki ne ustreza for (int i = 0; i < an, i++){ if (a[i] %3!= 0) return false; return true; 39 int main(){ int n; cout << "Vnesi stevilo elementov: "; cin >> n; int *polje = new int [n]; preberi (polje, n); if (preverilastnost(polje,n) == true) cout << "Vsa so deljiva s 3."; else cout << "Niso vsa deljiva s 3." ; delete [] polje; C-nizi izvirajo iz jezika C besedilo predstavimo s poljem znakov zadnji znak mora biti '\0' tip char[] char* 40 razred string razred definiran v knjiţnici string imenski prostor std tip string razred string (1) deklaracija in inicializacija spremenljivke string niz1; // prazen niz 0 znakov 41 string niz2("test"); // kopija niza ali c-niza v oklepajih string niz3(10, '*'); // 10x ponovi znak '*' operator + lepljenje nizov string niz4 = niz2 + niz3; // niz4 = "Test**********" operator += dodajanje na konec niz2 += " in test"; // niz2 = "Test in test" operator << razred string (2) definiran za uporabo na izhodnem podatkovnem toku cout << niz2; // izpiše na ekran operator >> definiran za uporabo na vhodnem podatkovnem toku 42 pridobi vse znake do prvega nevidnega znaka ali nove vrstice cin >> niz1; 7

razred string (3) branje z podatkovnega toka funkcija getline() definirana v knjiţnici string je globalna funkcija, ne razredna bere tudi nevidne znake dve različici uporabe funkcije getline() getline(vhodnipodatkovnitok, niz); getline(vhodnipodatkovnitok, niz, ločilniznak); 43 razredne funkcije razred string (4) kličemo jih drugače, kot "klasične" funkcije najprej povemo objekt, nad katerim kličemo funkcijo preko operatorja. (pika) dostopamo do razredne funkcije funkcija size() vrne dolţino niza število znakov v nizu int x = niz3.size(); funkcija clear() odstrani vse znake v nizu niz2.clear(); 44 razred string (5) funkcija find(iskaniniz) išče podniz v danem nizu int x = niz3.find("abc"); vrne indeks, kjer se iskani niz prvič pojavi v nizu ali string::npos, če iskanega niza ne najde funkcija insert(i, podniz) v niz na indeks i vrine podani podniz spreminja obstoječi niz paziti moramo, da je indeks i ustrezen niz2.insert(0, "ABC"); 45 razred string (6) funkcija erase(i, n) iz danega niza izbriše znake indeks i je indeks prvega znaka, ki ga izbriše število n je skupno število znakov, ki jih brišemo paziti moramo, da je indeks i ustrezen niz3.erase(0, 10); funkcija substr(i, n) vrne kopijo dela niza indeks i je indeks prvega znaka, ki ga kopira število n je skupno število znakov, ki jih kopiramo paziti moramo, da je indeks i ustrezen niz2.insert(0, "ABC"); 46 Primer 4 - nizi /* Program prebere niz znakov in en sam znak. Obstoječi niz spremeni tako, da izbriše vse pojavitve prebranega znaka. */ #include <iostream> #include <string> using namespace std; void brisiznake(string &an, char az){ string::size_type i; do { i = an.find(az); if (i!=string::npos) an.erase(i,1); while(i!=string::npos); 47 int main (){ string niz; cout << "Vnesi niz: "; getline(cin, niz); char znak; cout << "Vnesi znak: "; cin >> znak; brisiznake(niz, znak); cout << niz; 8