Vajad kellegagi rääkida?
Küsi julgelt abi LasteAbi
Logi sisse

Programmeerimise algkursus (0)

1 HALB
Punktid
Arvutitest ja programmeerimisest
  • Riistvara :
    • loogikaelemendid, kahendsüsteem, 16-süsteem, 8-süsteem, teisendused , ...
    • protsessor (CPU) - juhtseade (CU), aritmeetikaseade (ALU), registrid , taimer, ...
    • põhimälu - muutmälu (RAM), püsimälu (ROM), ülekirjutatav püsimälu, ...
    • adresseerimine - bitt, bait , sõna, aadress, aadressruum, ...
k - kilo (10^3), M - mega (10^6), G - giga (10^9), T - tera (10^12), P - peta (10^15), E - eksa (10^18), Z - zeta (10^21), Y - jota (10^24)
    • siinid - andmesiin, aadress-siin, juhtsiin, ...
    • välisseadmed - välismälu, sisend /väljundseadmed, kontrollerid , ...
  • Programmi täitmine arvutis:
    • masinkäsud - protsessori käsustik
    • operandid , aadresside moodustamine
    • andmete kujutamine madaltasemel: täisarvud, ujupunktarvud, sümbolid ja stringid (sõned), ...
    • käskude täitmistsükkel juhtseadmes: käsuregister, käsuloendaja (PC), aadressregister, olekuregister (flags), ...
    • katkestused
John von Neumann (1903 - 1957) - mällu salvestatud programmi idee. Annab võimaluse programme genereerida (programm on andmete eriliik). Neumanni arhitektuuri kriitika.
Need kaks pilti siin on kopeeritud meie põhiõpikust
  • Arvutisüsteemi kihid :
    • riistvaralised komponendid, füüsiline võrk
    • tarkvaralised komponendid
      • riistvaralähedane kiht - operatsioonisüsteemi tuum, seadmete draiverid, ...
      • operatsioonisüsteem, selle poolt pakutavad teenused, ressursside haldamine : mälu, protsessid, s/v, ...
      • süsteemitarkvara - kompilaatorid, süsteemi haldamine, arendusvahendid, ...
      • rakendustarkvara   -  üldotstarbeline (näit. kontoripakett) või eriotstarbeline (näit. kassaaparaadi tarkvara)
    • organisatsioonilised jm. mittetehnilised asjad - kasutajad, koolitus, ... (need on rohkem infosüsteemi aspektid, praegu meid ei huvita)
Vajalikke lühendeid:
IDE - Integrated Development Environment. Arenduskeskkond programmide koostamiseks, silumiseks ja testimiseks (tavaliselt graafiline, näiteks eclipse - www.eclipse org).
API - Applications Programmer Interface . Programmeerijatele mõeldud kirjeldus mingi süsteemi funktsioonide kasutamiseks programmis , näiteks Java API kirjeldab keeles Java olemasolevaid funktsioone (konkreetselt Java puhul on need jagatud pakettidesse ja klassidesse, aga sellest hiljem...).
Programmeerimiskeeltest
Eesmärk: mitte töötada riistvara terminites, muuta programmeerimine universaalseks (sõltumatuks konkreetsest arvutitüübist).
  • masinkood - konkreetse protsessori käsud kahendkujul, elektroonika tase
  • assembler - madaltaseme programmeerimiskeel, käskude koodid on mnemoonilised (näit. ADD, DIV, MOV, ...), operandide ja aadresside jaoks saab kasutada nimesid, saab deklareerida andmeid, programmi võib varustada kommentaaridega, ...
  • universaalsed programmeerimiskeeled (ei sõltu protsessori käsustikust) e. kõrgtaseme keeled, saab liigitada paradigma alusel
  • keskkonnad tööks valmiskomponentidega, võimaldavad "liimida" valmiskomponendid tervikuks
Keele muudab arvutile arusaadavaks eriline süsteemitarkvara hulka kuuluv programm - keele translaator:
  • Kompilaator - tõlgib kõrgtaseme keelest masinkoodi (või mingisse nn. vahekoodi, näit. Java baitkoodi).
  • Interpretaator - täidab programmi ilma masinkoodi moodustamata; tavaliselt interpreteeritakse vahekoodi, mitte programmi teksti.
  • JIT (Just In Time) kompilaator - teisendab vahekoodi masinkoodiks "vajadusel" (näit. optimiseerimise eesmärgil).
Näiteks keele Java korral
Programmi elutsükkel (IDE mõttes - small picture , mitte segi ajada elutsükliga tarkvaratootmises):
  • programmi teksti sisestamine (näiteks notepad abil, programmi teksti toimetamiseks kontoripaketid hästi ei sobi!)
  • programmi kompileerimine (Java keele korral: javac Programm.java)
  • süntaksivigade parandamine (süntaksi silumine)
  • käivitamiseks vajaliku keskkonna loomine ja muude programmide kaasamine (kui vaja)
  • programmi käivitamine (Java keele korral: java Programm )
  • sisuliste vigade parandamine (silumine, debugging)
  • programmi testimine (testid peavad olema ENNE välja mõeldud; parem veel, kui testib keegi teine)
  • programmi dokumenteerimine (Java keele korral genereeritakse html- vormingus dokumentatsioon javadoc abil)
  • programmi viimine tegeliku kasutajani ja kõik see, mis on seotud tarkvaratehnika aspektidega - big picture

Programmeerimise paradigmadimperatiivne vs. deklaratiivne lähenemine:
  • imperatiivne
  • funktsionaalne
  • loogiline
  • objekt-orienteeritud
  • ...
Ajalooliselt esimesed kõrgtaseme keeled toetavad imperatiivset lähenemist.
  • FORTRAN , kirjeldus 1954, realisatsioon 1956. J. Backus. FORmula TRANslator
  • ALGOL , 1958, P. Naur. ALGOrithmic Language - Euroopa projekt
  • COBOL, 1959 , COmmon Business Oriented Language - USA
  • BASIC , 1965, Beginners All- purpose Symbolic Instruction Code - USA
  • Pascal , 1971 , N. Wirth - Euroopa
  • C, 1974, D. Ritchie
  • Ada, 1979 - USA
  • Funktsionaalsetest keeltest esimene on Lisp, 1962, J. McCarthy, LISt Processing - MIT
  • Loogilistest keeltest esimene on Prolog, 1971, PROgramming in LOGic - Marseille Univ .
  • OOP alused Simula, 1967
  • Smalltalk - "puhas" OOP
  • C++ , 1986, B. Stroustrup, OOP
  • ML, Haskell , Scheme - funktsionaalsed
  • Java, 1995, Sun - OOP
Programmeerimiskeelt iseloomustavad:
  • leksika - kuidas panna kirja elementaarseid "sõnu" antud keeles - nimed (identifikaatorid), konstandid (arvud, stringid, tõeväärtused jne.),  võtmesõnad (reserveeritud nimed), eraldajad jne.
  • süntaks - antud keele grammatikareeglid. Erinevalt loomulikest keeltest ei ole programmeerimiskeeltes mitte midagi peale hakata süntaktiliselt vigaste tekstidega.
  • semantika - keelekonstruktsioonide tähendus, s.t. kuidas interpreteeritakse süntaktiliselt korrektset programmi.
  • stiil ja programmide koostamise metoodika. On kokkulepped, millega vabatahtlikult kitsendatakse süntaktiliselt lubatud programmide hulka, et saavutada paremat loetavust inimese poolt (näit. "treppimine" programmi struktuuri väljatoomiseks, nimekokkulepped jne.).
    Algoritmidest
    ca 825 m.a.j. , Abu Ja'far Mohammed ibn Mûsâ al-Khowârizmî - reeglid aritmeetiliste operatsioonide sooritamiseks
    Algoritm on täpne (üheselt mõistetav) juhis antud ülesande lahendamiseks. Algoritm koosneb lõplikust arvust sammudest, millest igaüks on täidetav lõpliku aja jooksul lõplikke ressursse kasutades. Algoritmi rakendatakse teatavale lähteandmete komplektile (sisend) ning ta annab teatava resultaadi (väljund).
    Kui algoritm lõpetab töö (peatub) mistahes sisendi korral, siis nim. seda kõikjal määratud algoritmiks, vastasel juhul osaliseks algoritmiks.
    Kui algoritmi mistahes sammu täitmise järel on üheselt määratud, milline on järgmine samm, siis nim. algoritmi determineeritud algoritmiks.
    Teosti on vahend teatud tüüpi ülesannete lahendamiseks. Teosti põhiomaduseks on juhitavus - teda saab programmeerida etteantud käsusüsteemi piirides (käsusüsteemi kuuluvad tavaliselt nn. lihtkäsud, tingimuste kontrollimise käsud, juhtimiskäsud jm.). Programm on tegevusjuhend, mis on teostile üheselt mõistetav ning viib püstitatud eesmärgi saavutamisele . Programm on algoritmi realisatsioon konkreetse teosti jaoks. Tavaliselt peame teosti all silmas arvutit, aga miks mitte näiteks ka robotit või pesumasinat...
    Algoritmi iseloomustamiseks kasutatakse järgmisi mõisteid:
    • Korrektsus (algoritm lahendab "õiget" ülesannet, tulemus vastab spetsifikatsioonile).
    • Määratletus (sammud on lõplikud ja üheselt määratud).
    • Kirjelduse lõplikkus (algoritm on kirjeldatav lõpliku arvu sammudega).
    • Peatuvus. Töö lõpetamine mistahes sisendi korral - kõikjal määratud algoritm. Osaline e. "poollahenduv" algoritm kas annab tulemuse või ei lõpeta tööd.
    • Determinism ( samade algandmete korral vastus sama, lahenduskäik on korratav) vs. mittedeterminism (näit. "tõeline" juhuarvude generaator ).
    • Universaalsus (lahendab probleemide klassi: sisend -> väljund ).
    • Keerukus (efektiivsus, kas lõpetamise aeg ja/või mälumaht on praktilised).
    Algoritmi formaalsed ( matemaatilised ) esitused (samaväärsed):
    • Turingi masin, 1936-37
    • lambda-arvutus (Church), 1941
    • Posti süsteemid, 1943
    • Markovi algoritmid, 1951
    • Chomsky 0-tüüpi grammatikad , 1959
    • programmeerimiskeeled, Sammet, 1969
    Algoritmi peab saama väljendada nii, et see oleks mugav nii koostajale (algoritme koostavad inimesed) kui ka täitjale (teostile, arvutile).
    Algoritmi esitusviisid:
    •  inimesele orienteritud esitused
      • sõnaline kirjeldus (peab siiski mahtuma algoritmi def. alla!)
      • joonis - plokkskeem
      • algoritmikeel, näit. poolformaalne pseudokeel, millest saab kerge vaevaga tõlkida mistahes (imperatiivsesse) programmeerimiskeelde
      • joonis - Jacksoni skeem, E-skeem (näide1, näide2),  ...
      • ...
    • arvutile orienteeritud esitused
      • programm kõrgtaseme programmeerimiskeeles
      • programm assembleris või masinkoodis
      • ...

    Näide: Eukleidese algoritm kahe täisarvu suurima ühisteguri leidmiseks.
  • Kui teine arv on null, siis anda vastuseks esimene arv ja lõpetada.
  • Leida jääk, mis tekib esimese arvu jagamisel teisega .
  • Asendada esimene arv teisega ja teine leitud jäägiga.
  • Minna sammule 1.
     Joonised (plokkskeem, E-skeem)
       public static int syt (int a, int b)
          return a;
       } // syt
    Algoritmi sammude järjekorra määramiseks on kasutusel kaks lähenemisviisi:
  • "goto"-stiilis juhtimine. Sammud on märgendatud. Algoritmis tohib "suunata" mistahes märgendile, s.t. on lubatud käsud stiilis "minna sammule 6". See on pärit masinkoodi aegadest (suunamiskäsud), kõrgkeeltest kannab seda ideed näiteks Basic. Raskesti jälgitav/ hallatav .
  • Struktuurne lähenemine. Algoritm pannakse kokku lihtkäskudest ja juhtimisstruktuuridest. Iga juhtimisstruktuuri tervikuna saab vaadelda kui lihtkäsku, samuti võib iga juhtimisstruktuuri koostisosa olla kas lihtkäsk või omakorda juhtimisstruktuur .
    Tüüpilisteks juhtimisstruktuurideks on:
    • järjend, plokk - mingi hulk samme võetakse kokku üheks sammuks
    • valik - vastavalt mingi tingimuse täidetusele valitakse üks alternatiivsetest variantidest
    • jadatsükkel - etteantud tegevust korratakse etteantud lõpliku jada kõigi elementide jaoks
    • jätkamistingimusega tsükkel - etteantud tegevust korratakse niikaua , kui nn. jätkamistingimus on tõene
    • katkestiga tsükkel - etteantud tegevust korratakse niikaua, kuni nn. väljumistingimus muutub tõeseks

    Seni oleme vaadelnud korraga üht algoritmi/programmi - programming in small. Kui tekivad algoritmide/programmide kogud, mida on tarvis hallata, siis muutub meie ülesanne keerukamaks - programming in large.
  • Programmeerimise algkursus #1 Programmeerimise algkursus #2 Programmeerimise algkursus #3 Programmeerimise algkursus #4 Programmeerimise algkursus #5 Programmeerimise algkursus #6
    Punktid 50 punkti Autor soovib selle materjali allalaadimise eest saada 50 punkti.
    Leheküljed ~ 6 lehte Lehekülgede arv dokumendis
    Aeg2011-10-06 Kuupäev, millal dokument üles laeti
    Allalaadimisi 146 laadimist Kokku alla laetud
    Kommentaarid 0 arvamust Teiste kasutajate poolt lisatud kommentaarid
    Autor relepp Õppematerjali autor

    Sarnased õppematerjalid

    Referaat-Programmeerimine
    9
    pdf

    Referaat: Programmeerimine

    SISUKORD 1. Tarkvara arendusmeetodid ja tehnikad 3 1.1. Tarkvara 3 1.2. Tarkvaratehnika 3 1.3. Tarkvaratehnika raamistik 3 2. Andmebaaside struktuur ja algotrim 4 2.1. Algoritmi mõiste, struktuur ja esitamine 4 2.2. Erinevad andmestruktuurid ja nende omadused 5 3. Programmkeelte põhitüübid 7 3.1. Programmeerimise ajalugu 7 3.2. Programmeerimiskeelte põhitüübid 8 3.3. Programmeerimiskeele semantika ja süntaks 9 Page 2 1. Tarkvara arendusmeetodid ja tehnikad 1.1 TARKVARA - Arvutile antavad käsud. Mingi tegumi sooritamiseks vajalikku käsujada nimetatakse programmiks. Tarkvara jaguneb kahte suurde kategaooriasse - süsteemitarkvaraks ja rakendustarkvaraks. Süsteemitarkvara

    Arvutiõpetus
    Programmeerimine-Referaat
    9
    pdf

    Programmeerimine [Referaat]

    SISUKORD 1. Tarkvara arendusmeetodid ja tehnikad 3 1.1. Tarkvara 3 1.2. Tarkvaratehnika 3 1.3. Tarkvaratehnika raamistik 3 2. Andmebaaside struktuur ja algotrim 4 2.1. Algoritmi mõiste, struktuur ja esitamine 4 2.2. Erinevad andmestruktuurid ja nende omadused 5 3. Programmkeelte põhitüübid 7 3.1. Programmeerimise ajalugu 7 3.2. Programmeerimiskeelte põhitüübid 8 3.3. Programmeerimiskeele semantika ja süntaks 9 Page 2 1. Tarkvara arendusmeetodid ja tehnikad 1.1 TARKVARA - Arvutile antavad käsud. Mingi tegumi sooritamiseks vajalikku käsujada nimetatakse programmiks. Tarkvara jaguneb kahte suurde kategaooriasse - süsteemitarkvaraks ja rakendustarkvaraks. Süsteemitarkvara

    Informaatika
    Programmeerimine
    22
    docx

    Programmeerimine

    ..............................................................3 2. Andmestruktuurid ja algoritmid..........................................................................4 2.1 ALGORITMI MÕISTE, STRUKTUUR JA ESITAMINE.............................................4 2.2 Erinevad andmestruktuurid ja nende omadused..............................................5 Programmeerimiskeelte tüübid.............................................................................. 8 3.1 PROGRAMMEERIMISE AJALUGU......................................................................8 3.2 PROGRAMMEERIMISKEELTE PÕHITÜÜBID.......................................................9 3.3 PROGRAMMEERIMSKEELE SEMANTIKA JA SÜNTAKS.....................................11 Page 1 SISSEJUHATUS Programmeerimine on lihtsalt arvutiga teostatavad spetsiifilised (erilised) tegevused. Näiteks, kui Te sisestate taskukalkulaatoril

    Programmeerimine
    Algoritmid ICD0001 - kordamisküsimused
    22
    docx

    Algoritmid ICD0001 - kordamisküsimused

    Kordamisküsimused aines "Algoritmid ja andmestruktuurid" Eksamil 1 komplekt katseid Moodles. Enne enesetesti õpi ära asümptootiliste relatsioonide (hinnangute?) definitsioonid. Lõppeksam koosneb teooriaküsimustest ning programmeerimisülesannetest. Eksam toimub arvutiklassi arvutitel e-õppe keskkonnas ning kestab 150 minutit. Meetod Keskmine Halvim Insertion sort, О(n2) O(n2) Stabiilne pistemeetod Binary search, O(log n) O(log n) kahendotsimine Kahendpistemeetod, Stabiilne. binary insertion sort Quicksort, O(n logn) O(n2) Ei ole stabiilne. kiirmeetod Radix sort, O(n) O(n) Stabiilne. positsioonimeetod Merge sort, O(n logn) O(n logn) On enamasti ühildusmeetod

    Algoritmid ja andmestruktuurid
    Sissejuhatus infotehnoloogiasse eksamikonspekt
    35
    pdf

    Sissejuhatus infotehnoloogiasse eksamikonspekt

    kangasteljed, Babbage, Hollerith, colossus ja saksa krüptomasinad, Turing, Shannon, Zuse, esimesed programmeeritavad arvutid. Algoritm – täpne samm-sammuline, kuid mitte tingimata formaalne juhend millegi tegemiseks. Nt toiduretsept, juhend ruutvõrrandi lahendamiseks. Programm – formaalses, üheselt mõistetavas keeles kirja pandud algoritm. Arvutid suudavad täita ainult programme. Bitt – info mõõtmise ühik, tuleb mõistest binary digit – nö kahendarv kahe võimaliku väärtusega 0 ja 1. Saab näidata kahte võimalikku olekut. Nibble - 4 bitti. Bait – arvutites kasutatav infoühik, mis sisaldab 8 järjestatud bitti, kõige levinum infohulga mõõtühik. Tähistatakse B. Kilobait, megabait, gigabait, terabait, petabait(inimmälu hulk), eksabait, zettabait, jottabait. Kõik on eelnevast 210 korda suuremad. St 1 MB = 1024 kB

    Sissejuhatus infotehnoloogiasse
    Operatsioonisüsteemi alused
    23
    docx

    Operatsioonisüsteemi alused

    Tehnilises baasis toimus üleminek transistoridelt integraalskeemidele Esimene ühtsussüsteemi arvutid olid IBM/360 seeria arvutid. Neljas põlvkond Suurte integraalskeemide kasutuselevõtmine · Toimub mikroskeemide integreerimisastme järsk tõus ja hinna odavnemine Programmeerimise areng · Esimene programmeerimine seisnes arvutiseadme esipaneelil olevate lülitite õigesse asendisse seadmises · Sellisel viisil ei saa teha eriti pikki programme · Arvutitehnika arenemisel ilmus masinkood Assemblerkeel · Masinkoodi asemel masinale orienteeritud keel ­ assembler · Inimesed kasutavad masinkoodi käskude asemel mnemoonilisi käske, mis tõlgitakse translaatori poolt masinkoodi keelde · Kõikidel protsessoritel on ainult temale omane masinkoodide hulk, assembler Kõrgtasemekeeled · Järgmine samm tehti 1954. A. Millal tehti esimene kõrgtaseme keel ­ FORTRAN

    Operatsioonisüsteemide alused
    Sissejuhatus infotehnoloogiasse konspekt
    138
    docx

    Sissejuhatus infotehnoloogiasse konspekt

    Sissejuhatus infotehnoloogiasse 1. Loeng Algoritm on täpne samm-sammuline, kuid mitte tingimata formaalne juhend millegi tegemiseks. Näited: a. Toiduretsept. b. Juhend ruutvõrrandi lahendamiseks Algoritmiline probleem - probleem, mille lahenduse saab kirja panna täidetavate juhendite loeteluna. Programm on formaalses, üheselt mõistetavas keeles kirja pandud algoritm. Arvutid suudavad täita ainult programme. Analoogsüsteem  andmeid salvestatakse (peegeldatakse) proportsionaalselt  Näit: termomeeter, vinüülplaat, foto Digitaalsüsteem  (pidevad) andmed lõhutakse üksikuteks tükkideks, mis salvestatakse eraldi  Näit: CD, arvutiprogramm, kiri tähtede ja bittidena Ühelt teisele: digitaliseerimine  The three major comparisons of computers are:  Electronic computers versus Mechanical computers

    Sissejuhatus infotehnoloogiasse
    12 it kordamiskysimused
    23
    docx

    12 it kordamiskysimused

    Ülejäänud on muud tähed. UTF8 on viis Unicode lühemalt käsitleda (Unicode kompaktsema esitamise viis). 1,112,064 code points. Algoritm - on täpne samm sammuline, kuid mitte tingimata, formaalne juhend millegi tegemiseks. Toiduretsept. Juhend ruutvõrrandi lahendamiseks. Algoritmiline probleem probleem, mille lahenduse saab kirja panna täidetavate juhendite loeteluna. Programm - on formaalses, üheselt mõistetavas keeles kirja pandud algoritm. Arvutid suudavad täita ainult programme. Posu mingeid käske. Kreeka loogikud. Loogika on teadus mõtlemise alustest. Loogika uurib mõtlemise paratamatuid aspekte ehk seda, mis üldse teeb mõtlemisest mõtlemise ehk õige mõtlemise ehk seda, mida ja kuidas üldse mõelda saab. Loogikud Parmenides, Zenon Eleast (promos paradokse, et asjad on keerulisemad kui nad paistavad (nt liikumist ei ole olemas, Achilleuse kilpkonna paradoks jne)), Sokrates, Platon, Aristoteles. Kõrgaeg kompaktne periood 5 saj – 350 e.m.a.

    Kategoriseerimata




    Meedia

    Kommentaarid (0)

    Kommentaarid sellele materjalile puuduvad. Ole esimene ja kommenteeri



    Sellel veebilehel kasutatakse küpsiseid. Kasutamist jätkates nõustute küpsiste ja veebilehe üldtingimustega Nõustun