Pomnilnik in spremenljivke

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Kateri od naslednjih atributov ni nujno povezan s spremenljivko?

  • Vsebina (correct)
  • Tip
  • Naslov
  • Ime

Vsaka celica pomnilnika je vedno v stanju 'dodeljena'.

False (B)

Kaj imenujemo čas med ustvaritvijo in brisanjem spremenljivke?

življenjska doba

Spremenljivka ______ tipa zaseda eno samo celico.

<p>osnovnega</p> Signup and view all the answers

Povežite vrsto dodelitve pomnilnika z njenimi značilnostmi:

<p>Statična dodelitev = Prostor se dodeli pred pričetkom izvajanja programa in sprosti po zaključku. Avtomatična dodelitev = Prostor se dodeli na skladu, programer ne more vplivati na življenjsko dobo. Dinamična dodelitev = Prostor se dodeli na kopici, programer ima vpliv na življenjsko dobo.</p> Signup and view all the answers

Katera vrsta dodelitve pomnilnika ne omogoča rekurzije?

<p>Statična dodelitev (D)</p> Signup and view all the answers

Lokalne spremenljivke imajo statično dodelitev pomnilnika.

<p>False (B)</p> Signup and view all the answers

Kako imenujemo spremenljivko, ki jo ustvarimo z izrazom/ukazom in do nje dostopamo s kazalcem?

<p>spremenljivka kopice</p> Signup and view all the answers

Kazalec, ki kaže na pomnilnik, ki ni več veljaven, imenujemo ______ naslov.

<p>obviseli</p> Signup and view all the answers

Kaj je glavni namen ukaza?

<p>Ažuriranje spremenljivk (D)</p> Signup and view all the answers

Preskok (skip) je ukaz, ki ima stranski učinek na spremenljivke.

<p>False (B)</p> Signup and view all the answers

Kakšna je oblika splošnega prireditvenega ukaza?

<p>V = E</p> Signup and view all the answers

Pri prireditvenem ukazu, pravilo 'najprej leva stran' pomeni, da se najprej izračuna ______ spremenljivke V.

<p>referenca</p> Signup and view all the answers

Katera izmed naslednjih trditev najbolje opisuje hkratno prireditev?

<p>Vsaki od več spremenljivk se hkrati priredi druga vrednost. (C)</p> Signup and view all the answers

Klic procedure vedno spreminja vrednost spremenljivk.

<p>True (A)</p> Signup and view all the answers

Kaj je 'krmilni tok'?

<p>vrstni red izvajanja ukazov</p> Signup and view all the answers

Računanje je ______, če lahko vnaprej natančno napovemo zaporedje korakov.

<p>deterministično</p> Signup and view all the answers

Kaj je značilno za pogojni ukaz?

<p>Izvede se samo eden od podukazov, izbran glede na pogoj. (B)</p> Signup and view all the answers

Ukaz 'case' (ali 'switch') omogoča izbiro samo na osnovi logičnih pogojev.

<p>False (B)</p> Signup and view all the answers

Kaj mora vrniti izraz E pri ukazu 'case'?

<p>rezultat, ki je enak enemu izmed literalov</p> Signup and view all the answers

V jezikih C++ in Java se po končanem ukazu v bloku case izvajanje prenese na ______ ukaz.

<p>naslednji</p> Signup and view all the answers

Kateri od naštetih jezikov ne prepozna switch-case stavka?

<p>Python (D)</p> Signup and view all the answers

Iterativni ukazi se vedno izvedejo vsaj enkrat.

<p>False (B)</p> Signup and view all the answers

Iz česa je sestavljen iterativni ukaz (zanka)?

<p>telesa zanke in testa zaključka zanke</p> Signup and view all the answers

Iterativne ukaze delimo na dve skupini glede na to, ali je število ponavljanj ______ določeno.

<p>vnaprej</p> Signup and view all the answers

Kateri izmed naslednjih ukazov spada med nedoločne iteracije?

<p>while (C)</p> Signup and view all the answers

Za iteracijo s for zanki je vedno potrebno vnaprej določiti število ponovitev.

<p>True (A)</p> Signup and view all the answers

Kaj je 'krmilno zaporedje' pri iterativnih ukazih?

<p>vrednosti, ki jih zavzame krmilna spremenljivka</p> Signup and view all the answers

V imperativnih jezikih lahko ovrednotenje izraza tudi ______ spremenljivko.

<p>ažurira</p> Signup and view all the answers

Kateri je glavni namen ovrednotenja izraza?

<p>Izračun vrednosti (B)</p> Signup and view all the answers

Izrazni jeziki ne potrebujejo pogojnih izrazov in pogojnih ukazov.

<p>True (A)</p> Signup and view all the answers

Kaj je stranski učinek pri ovrednotenju izraza?

<p>ažuriranje spremenljivke</p> Signup and view all the answers

Imenujemo lokalna spremenljivka tista, ki je deklarirana ______ bloka.

<p>znotraj</p> Signup and view all the answers

Kaj pomeni, da je spremenljivka 'trajna'?

<p>Njena življenjska doba je daljša od izvajanja programa. (C)</p> Signup and view all the answers

Če v C++ ali Javi uporabimo switch stavek in pozabimo na ključno besedo break, program javi napako.

<p>False (B)</p> Signup and view all the answers

Katero operacijo izvedemo, da sprostimo pomnilnik, ki ga zaseda spremenljivka kopice?

<p>brisanje</p> Signup and view all the answers

Postopek avtomatskega brisanja spremenljivk kopice se imenuje ______.

<p>garbage collection</p> Signup and view all the answers

Kaj je značilno za dinamično alokacijo polja?

<p>Množica indeksov je določena med izvajanjem. (D)</p> Signup and view all the answers

V C++ lahko ustvarimo statično polje s spreminjajočo se velikostjo med izvajanjem programa.

<p>False (B)</p> Signup and view all the answers

Katero ključno besedo uporabljamo v C++ za dinamično dodeljevanje pomnilnika?

<p>new</p> Signup and view all the answers

Flashcards

Spremenljivka

Entiteta, ki vsebuje vrednost, ki se lahko primerja, spreminja ali briše.

Pomnilnik (shramba)

Zaporedje lokacij ali celic v pomnilniku, kjer so shranjeni podatki.

Dodeljena/nedodeljena celica

Stanje celice v pomnilniku, ali je zasedena (dodeljena) ali prosta (nedodeljena).

Trenutna vsebina celice

Trenutna vsebina celice v pomnilniku, ki je bodisi shranljiva vrednost ali nedefinirana.

Signup and view all the flashcards

Atributi spremenljivke

Ime, tip, naslov celice (lokacija) in vrednost (vsebina celice).

Signup and view all the flashcards

Sestavljeni tip

Tip, katerega vrednost sestoji iz komponent, ki jih lahko selektivno obravnavamo.

Signup and view all the flashcards

Spremenljivka polja

Spremenljivka, ki jo lahko obravnavamo kot preslikavo iz množice indeksov v množico spremenljivk.

Signup and view all the flashcards

Statično polje

Polje spremenljivk, pri katerem je množica indeksov določena že v času prevajanja.

Signup and view all the flashcards

Dinamično alocirano polje

Polje spremenljivk, pri katerih se množica indeksov določi v času izvajanja.

Signup and view all the flashcards

Dinamično polje

Polje spremenljivk, pri katerem množica indeksov ni določena in se lahko spreminja.

Signup and view all the flashcards

Shranljive vrednosti jezika

Vrednosti, ki so shranjene v eni sami celici in jih ni možno selektivno ažurirati.

Signup and view all the flashcards

Življenjska doba spremenljivke

Čas med ustvaritvijo in brisanjem spremenljivke.

Signup and view all the flashcards

Statična dodelitev

Dodelitev spomina spremenljivki pred pričetkom izvajanja programa.

Signup and view all the flashcards

Avtomatična dodelitev

Dodelitev spomina spremenljivki na skladu, kjer programer ne more vplivati na življenjsko dobo.

Signup and view all the flashcards

Dinamična dodelitev

Dodelitev spomina spremenljivki na kopici, kjer ima programer vpliv na življenjsko dobo.

Signup and view all the flashcards

Lokalna spremenljivka

Spremenljivka, ki je deklarirana znotraj bloka in se uporablja samo znotraj tega bloka.

Signup and view all the flashcards

Globalna spremenljivka

Spremenljivka, ki je deklarirana v najbolj zunanjem bloku programa.

Signup and view all the flashcards

Spremenljivka kopice

Spremenljivka, ki jo lahko ustvarimo ali zbrišemo v kateremkoli trenutku z izrazom/ukazom.

Signup and view all the flashcards

Obviseli naslov

Kazalec na spremenljivko, ki ne obstaja več.

Signup and view all the flashcards

Trajna spremenljivka

Spremenljivka, ki ima življenjsko dobo daljšo od izvajanja programa.

Signup and view all the flashcards

Prehodna spremenljivka

Spremenljivka, ki ima življenjsko dobo omejeno z izvajanjem programa.

Signup and view all the flashcards

Ukaz

Programska fraza, ki jo izvršimo z namenom, da ažuriramo spremenljivke.

Signup and view all the flashcards

Preskok

Ukaz, ki nima učinka na ažuriranje spremenljivk.

Signup and view all the flashcards

Prireditev

Ukaz, ki priredi vrednost izraza spremenljivki.

Signup and view all the flashcards

Večkratna prireditev

Ukaz kjer se vrednost izraza priredi vsem spremenljivkam.

Signup and view all the flashcards

Hkratna prireditev

Ukaz kjer se vrednosti n izrazov hkratno priredijo n spremenljivkam.

Signup and view all the flashcards

Klic procedure

Podajanje dejanskih parametrov oz. argumentov proceduri.

Signup and view all the flashcards

Zaporedni ukazi

Zaporedje ukazov, kjer se ukazi izvajajo v določenem vrstnem redu.

Signup and view all the flashcards

Vzporedni ukazi

Ukazi, ki se izvajajo sočasno, vrstni red izvajanja ni določen.

Signup and view all the flashcards

Deterministično računanje

Izvajanje ukazov, kjer lahko vnaprej natančno napovemo zaporedje korakov.

Signup and view all the flashcards

Nedeterministično računanje

Izvajanje ukazov, kjer ne moremo vnaprej natančno napovedati zaporedja korakov.

Signup and view all the flashcards

Pogojni ukaz

Ukaz, ki izbere in izvrši samo enega od podukazov glede na vrednost logičnega izraza.

Signup and view all the flashcards

Izbirni ukaz

Ukaz, ki izbere eno od možnosti glede na vrednost v izrazu.

Signup and view all the flashcards

Iterativni ukaz ali zanka

Ukaz, ki večkrat ponavlja izvajanje dela kode.

Signup and view all the flashcards

Nedoločne iteracije

Ukazi, kjer število ponovitev ni vnaprej določeno.

Signup and view all the flashcards

Določne iteracije

Ukazi, kjer je število ponovitev vnaprej določeno.

Signup and view all the flashcards

Izrazni jezik

Okrajšava za "expression-oriented language, ki se uporablja za jezike, kjer je ocenjevanje izrazov jedro programiranja.

Signup and view all the flashcards

Stranski učinek

Izraz, ki poleg izračuna vrednosti spremeni tudi stanje programa.

Signup and view all the flashcards

Study Notes

Pomnilnik in spremenljivke

  • Razumevanje spremenljivk je ključno za računalniško programiranje.
  • Spremenljivka je entiteta, ki vsebuje vrednost.
  • Vrednost spremenljivke se lahko primerja, spremeni ali izbriše.
  • Model pomnilnika je pomemben za spreminjanje spremenljivk.
  • Pomnilnik je zaporedje lokacij ali celic.
  • Celice so dodeljene ali nedodeljene.
  • Dodeljena celica ima vsebino, ki je lahko shranljiva vrednost ali nedefinirana.

Atributi spremenljivke

  • Vsaka spremenljivka ima atribute: ime, tip, naslov in vrednost.

Sestavljeni tipi

  • Vrednost sestavljenega tipa sestoji iz komponent, ki so selektivno obravnavane.
  • Spremenljivka sestavljenega tipa sestoji iz komponent, ki se selektivno ažurirajo.
  • Spremenljivka zapisa je n-terica komponent spremenljivk.
  • Spremenljivka polja preslikava množice indeksov v množico spremenljivk.
  • Spremenljivka osnovnega tipa zaseda eno celico, sestavljena pa več.
  • Spremenljivka tipa T je definirana z isto strukturo kot vrednost tipa T.
  • Vsaka vrednost tipa Card je dvojica CardSuit in CardRank.
  • Spremenljivka tipa Card je dvojica suit in rank.
  • Pri spreminjanju vrednosti sestavljenega tipa ločimo popolno in selektivno ažuriranje.
  • Selektivno ažuriranje spremeni nekatere celice.

Spremenljivke polja

  • Polje se obravnava kot preslikava indeksov v spremenljivke.
  • Programski jeziki omogočajo različne načine za določanje množice indeksov.
  • Polja se delijo na statična, dinamična z alokacijo in dinamična polja.
  • Statično polje ima določene indekse že v času prevajanja.
  • Dinamično alocirano polje ima indekse določene v času izvajanja.
  • Pri prilagodljivem polju se lahko meje indeksov spreminjajo.

Shranljive vrednosti jezika

  • Shranljive vrednosti jezika so shranjene v eni sami celici in jih ni mogoče selektivno ažurirati.

Življenjska doba spremenljivke

  • Spremenljivka se najprej ustvari in kasneje izbriše.
  • Življenjska doba je čas med ustvaritvijo in brisanjem.
  • Spremenljivka zaseda pomnilnik samo med svojo življenjsko dobo.
  • Novejši programski jeziki omogočajo statično, avtomatično in dinamično dodelitev pomnilnika.
  • Statična dodelitev dodeli spomin pred izvajanjem, ki se sprosti po zaključku.
  • Življenjska doba je enaka trajanju programa.
  • Statična dodelitev ne omogoča rekurzije in zaseda prostor, čeprav spremenljivka ni dosegljiva.
  • Globalne imajo statično dodelitev
  • Spremenljivke, statične spremenljivke imajo statično dodelitev.
  • Pri avtomatični dodelitvi programer ne more vplivati na življenjsko dobo.
  • Lokalne spremenljivke in parametri abstrakcij imajo avtomatično dodelitev.
  • Dinamična dodelitev se izvaja na kopici, kjer ima programer vpliv na življenjsko dobo.
  • Na kopici imajo dodelitev dinamične spremenljivke.

Lokalne in globalne spremenljivke

  • Lokalna spremenljivka je deklarirana znotraj bloka in se uporablja samo tam.
  • Globalna spremenljivka je deklarirana v najbolj zunanjem bloku programa.

Spremenljivke kopice

  • Spremenljivka kopice se ustvari in briše po želji programerja.
  • Spremenljivka kopice se ustvari z izrazom/ukazom in je neimenovana.
  • Nasprotno je lokalna spremenljivka ustvarjena s predpisano deklaracijo in ima identifikator.
  • Spremenljivke kopice imenujemo tudi dinamične spremenljivke.

Ustvarjanje in brisanje spremenljivke kopice

  • Za ustvarjanje se uporablja operacija dodelilnika.
  • Spremenljivka ostane dostopna, dokler nanjo kaže vsaj en kazalec.
  • Brisanje se lahko izvede implicitno ali eksplicitno.

Eksplicitno brisanje

  • Slabosti eksplicitnega brisanja:
    • zbriše se spremenljivko kopice, na katero kažejo kazalci,
    • spremenljivka kopice se sploh ne zbriše,
    • spremenljivka kopice zbriše večkrat.

Obviseli naslov

  • Kazalec na spremenljivko, ki ne živi več, se imenuje obviseli naslov.
  • Obviseli naslov nastane, ko se naslov lokalne spremenljivke priredi.

Trajne in prehodne spremenljivke

  • Trajna spremenljivka ima življenjsko dobo daljšo od izvajanja programa.
  • Prehodna spremenljivka ima življenjsko dobo omejeno z izvajanjem programa.
  • Lokalne spremenljivke in spremenljivke kopice so prehodne.

Ukazi

  • Ukaz je programska fraza, ki ažurira spremenljivke.
  • Obstajajo osnovni in sestavljeni ukazi.
  • Temeljni ukazi: preskoki, prireditve, klici procedur, zaporedni, vzporedni, pogojni, iterativni in bločni ukazi.

Preskok

  • Preskok je najpreprostejši ukaz, ki ne ažurira spremenljivk.
  • Uporablja se pri pogojnih ukazih
  • Primeri: goto, break, continue

Prireditve

  • Ukaz prireditve ima obliko V = E, kjer je V referenca in E izraz.
  • Vrednost izraza E se priredi spremenljivki V.
  • Pri prireditvi se najprej izračuna referenca spremenljivke V in nato izraz E.

Večkratna in hkratna prireditev

  • Pri večtratni prireditvi se vrednost izraza E priredi vsem spremenljivkam V1,..., Vn.
  • Pri hkratni prireditvi se vrednosti n izrazov priredijo n spremenljivkam V1,..., Vn.

Klici procedure

  • Klic procedure ima obliko P(AP1,..., APn), kjer so APi dejanski parametri.
  • Dejanski parameter je lahko izraz ali spremenljivka, ki da referenco.
  • Klic procedure ažuriranje spremenljivk preko parametrov ali globalnih spremenljivk.

Vrstni red izvajanja

  • Vrstni red izvajanja ukazov je pomemben za ažuriranje spremenljivk.
  • Najpogostejši krmilni tok je zaporedje ukazov C1; C2.
  • Pri vzporednih ukazih C1, C2 vrstni red izvajanja ni določen.
  • Računanje je deterministično, če lahko napovemo zaporedje korakov, drugače je nedeterministično.

Nedeterministično izvajanje ukazov

  • Primer nedeterminističnega izračuna: n = 7, n = n + 1.
  • Rezultati so odvisni od vrstnega reda izvajanja.

Pogojni ukaz

  • Pogojni ukaz je sestavljen iz podukazov, od katerih se izbere eden.
  • Osnovna oblika: if E then C1 else C2.
  • Izbira je odvisna od vrednosti logičnega izraza E.

Izbirni ukazi

  • Izbira med podukazi je možna na osnovi vrednosti.
  • Ukaz case ali switch:
    • Seznam primerov: case izraz of primer1: ukaz1, primer2: ukaz2, ...
    • end
  • Izraz mora vrniti rezultat, ki se ujema z enim od literalov.
  • V C++ in Java se prenesemo na ukaz Ci+1, pri izhodu iz klicanja break pa se preselimo ven.
  • Iz vidika OOP izbirni ukazi niso implementacije - polimorfizem
  • Python, Lua, itd. nimajo switch-case stavka

Iterativni ukazi

  • Iterativni ukaz ali zanka je sestavljena iz telesa in testa zaključka.
  • Test zaključka določa, kdaj se ponavljanje zaključi.
  • Razdelitev na nedoločne in določne iteracije.

Nedoločne iteracije

  • Število ponovitev ni vnaprej določeno.
  • Primer: while in repeat (do while).

Iterativni ukazi

  • Splošnejša oblika s testom kjerkoli znotraj telesa: repeat C1 while E do C2.
  • Najprej C1, sledi test E, nato C2 in C1 se ponavljata, dokler ni izpolnjen test E.

Določne iteracije

  • Število ponovitev je vnaprej določeno.
  • Uporablja se krmilna spremenljivka z vnaprej določenimi vrednostmi.
  • Za vsako vrednost se izvrši telo zanke.
  • Ukaz for:
    • for V := E1 to E2 do C
    • for V := E1 to E2 by E3 do C

Iterator

  • Zaporedje lahko vsebuje vrednosti poljubnega tipa:
    • for V in E do C Status krmilne spremenljivke se razlikuje med jeziki, doseg krmilne spremenljivke, vrednost krmilne spremenljivke po zaključku zanke, vrednost krmilne spremenljivke pri skoku iz zanke in dovoljeno prirejanje krmilne spremenljivke.

Ovrednotenje izraza

  • Glavni namen je dobiti vrednost, ki lahko tudi ažurira spremenljivko s stranskim učinkom.
  • Izrazni jezik nima razlike med izrazi in ukazi.
  • Ovrednotenje ima hkrati vrednost in stranski učinek na spremenljivke.
  • Slaba stran je, da vzpodbuja k uporabi stranskih učinkov.
  • Rust, Scala sta primera izraznih jezikov
  • Ne rabimo pogojnih izrazov, ker se lahko izrazov kombinira

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Use Quizgecko on...
Browser
Browser