Difference between revisions of "IAX0583 - Programmeerimine I"

From ATI public wiki
Jump to: navigation, search
 
(136 intermediate revisions by 9 users not shown)
Line 1: Line 1:
[[IAG0581 - Programming I|English course page]] [[File:United Kingdom.png|32px|link=IAG0581 - Programming I]]
+
[[IAG0581 - Programming I|In English]] [[File:United Kingdom.png | 32px | link=IAG0581 - Programming I]]
 +
=E-Õpe=
 +
[https://docs.google.com/spreadsheets/d/14AXT08xTwv5BU7uiFVopFbspaAxT5EJjI2pWj2Kx2sU/edit?usp=drive_web&ouid=110958304628248477593 Punktide tabel 2024 sügis] - Tabelit uuendatakse kord nädalas<br />
 +
[https://confluence.ttu.ee/it-info/it-arvuti-ja-oppetoeoekoht/virtuaalne-toeoelaud-virtual-desktop Virtuaalse töölaua juhend]<br />
 +
[https://echo360.org.uk/media/7535cd84-4e53-4700-867d-81fe314c416e/public Kaugelt ligipääsu juhend - Video]<br />
 +
[http://pld.ttu.ee/~trkal/Download%20PuTTY.pdf Kaugelt ligipääsu juhend]<br />
 +
Ülesanded võib lahendada oma arvutis, kaugelt ligipääsu juhend on lisaks, kui on vajadus kasutada kooli arvutit kompileerimiseks või oma varasematele koodidele ligipääsuks.<br />
 +
Sisse logimisel on vaja ainult kasutajanime, doomeni (@ttu.ee, @taltech.ee jne) ärga kasutage.<br />
 +
Parooli sisestamisel ei ole tähmärke näha aga sisestus töötab, kirjutage oma parool ja vajutage ENTER.<br /><br />
 +
Kooli arvutis math.h teeki kasutava koodi kompileerimiseks tuleb kasutada tähist -lm<br />
 +
 
 +
[http://pld.ttu.ee/~trkal/suusahype.c Kodutöö maatriksid]
 +
Realiseerida võimalikult palju funktsioone ette antud prototüüpide järgi. <br />
 +
[http://pld.ttu.ee/~trkal/E/kuup.txt Kodutöö nädalal 4 (kuupäevad)] <br />
 +
[https://echo360.org.uk/media/d24406d9-7d96-4a52-aaeb-15f2d0e91e55/public Rühmatöö nädal 10 - esitlus]<br />
 +
[https://echo360.org.uk/media/ddf8d069-35d6-4adb-a95e-a9338bbc96c4/public Funktsioonid lindistus]<br />
 +
 
 +
 
 +
[http://pld.ttu.ee/~trkal/E/maatrikstehted.doc Kodutöö maatriksitehted]<br />
 +
Realiseerida kõik maatriksi tehted eraldi funktsioonidega<br />
 +
 
 +
[https://docs.google.com/document/d/1qfV3LKe8fIb_Tlc5J2N95bXf3xWHZOvHA63gNdmXI9M/edit?usp=sharing Eksam/koondtöö - ennem registreerimist palun esitage mõlemad kodutööd]<br />
 +
 
 +
[https://livettu.sharepoint.com/sites/ProgreI2021sgis/Shared%20Documents/Forms/AllItems.aspx?id=%2Fsites%2FProgreI2021sgis%2FShared%20Documents%2FGeneral%2FRecordings%2FMeeting%20in%20%5FGeneral%5F%2D20211005%5F082331%2DMeeting%20Recording%2Emp4&parent=%2Fsites%2FProgreI2021sgis%2FShared%20Documents%2FGeneral%2FRecordings Sorteerimise loeng]<br />
 +
[http://pld.ttu.ee/~trkal/E/Programmeerimine%20I%2017.pdf Ülesanded ja materialid 7. nädal]<br />
 +
[https://echo360.org.uk/media/32017c93-28f0-4cc6-9cff-5c50606778e5/public Loeng 8. nädal]<br />
 +
[http://pld.ttu.ee/~trkal/E/PR1%20loeng_24_03.pdf Abimaterjalid ja lisaülesanne 8. nädala loeng]<br />
 +
[https://echo360.org.uk/media/2dbbd871-75be-4bf2-8a2a-83303a65376e/public 8. nädala praktikumi ülesannete sissejuhatus]<br />
 +
[http://pld.ttu.ee/~trkal/E/Pr1%2024%20est.pdf 8. nädala praktikumi ülesanded]<br />
 +
[https://echo360.org.uk/media/e3b6086e-9d33-4087-839a-d3450957ef58/public Funktsioonid loeng 9. nädala]<br />
 +
[https://echo360.org.uk/media/2f91704b-82e4-41eb-9fd4-5cb5db303064/public  Funktsioonid II kodutöö]<br />
 +
[http://pld.ttu.ee/~trkal/E/Funktsiooni1.pdf Funktsioonid. Stringitöötlus]<br />
 +
 
 +
 
 +
[https://echo360.org.uk/media/82cc668f-2778-47a2-804a-6e2cc790c295/public Kontrolltöö 10. nädal]<br />
 +
[http://pld.ttu.ee/~trkal/E/pr%201%20eesti%20.pdf Funktsioonid geomeetria tunniülesanne]<br />
 +
[https://echo360.org.uk/media/8d9e8bef-821c-4e7f-84a1-1f974edc9c9e/public Kordamine kontrolltööks 11. nädal]<br />
 +
 
 +
[http://pld.ttu.ee/~trkal/E/Progr1Failid&kasut.pdf Loeng 14. nädal slaidid]<br />
 +
 
 +
[https://echo360.org.uk/media/e3250a5f-6eb2-487d-8a1c-d3795c081147/public Loeng 15. nädal salvestus]<br />
 +
 
 +
Koodi failid saata vladimir.viies@gmail.com<br />
 +
 
 +
 
 +
Kodutöö 2 jaoks valige variant vastavalt oma matrikli numbri viimasele numbrile<br />
 +
[http://www.tud.ttu.ee/im/Vladimir.Viies/materials/IAX0583Programmeerimine%20I/pR0583est/arhiiv/prog_I_est20/PR1kodunet%c3%b6%c3%b6_2.pdf Kodutöö 2 link]
 +
 
 
== Viited ==  
 
== Viited ==  
 
* [https://ois.ttu.ee/portal/page?_pageid=35,428610&_dad=portal&_schema=PORTAL&p_msg=&p_public=1&p_what=1&p_lang=ET&p_open_node2=&p_id=100807&p_mode=1&p_pageid=OKM_AINE_WEB_OTSING&_ainer_kood=iag0581 Ainekaart]
 
* [https://ois.ttu.ee/portal/page?_pageid=35,428610&_dad=portal&_schema=PORTAL&p_msg=&p_public=1&p_what=1&p_lang=ET&p_open_node2=&p_id=100807&p_mode=1&p_pageid=OKM_AINE_WEB_OTSING&_ainer_kood=iag0581 Ainekaart]
 +
* [http://ati.ttu.ee/index.php?page=4110&aine=IAG0581 Aine leht TTÜ lehel]
 
* '''[https://docs.google.com/document/d/1uf-X2HZC73b0U4mVBCY7D9wrrgBvu5UtlQJ5yvSJ90I/pub Teated]'''
 
* '''[https://docs.google.com/document/d/1uf-X2HZC73b0U4mVBCY7D9wrrgBvu5UtlQJ5yvSJ90I/pub Teated]'''
* '''[https://docs.google.com/spreadsheets/d/1MSrsvUsdJUbMzJ5MYUwNSj0BjIJKyZVvDaLv8uKlTMM/pubhtml?gid=882379455&single=true Tulemused]'''
 
  
  
 
* [http://ati.ttu.ee/wiki/index.php/Git_manual Git manual EN]
 
* [http://ati.ttu.ee/wiki/index.php/Git_manual Git manual EN]
  
=== Materjalid/Materials ===
+
=== Materjalid ===
''Vladimir Viies'' - http://www.tud.ttu.ee/im/Vladimir.Viies/materials/IAG0581,IAG0582,PROGRAMMEERIMINE/PR1/
+
==== Aine õppejõudude materjalid ====
 +
[http://www.tud.ttu.ee/im/Vladimir.Viies/materials/IAX0583%2cIAX0584PROGRAMMEERIMINE/PR1_IAX0583/ Vladimir Viies]
  
''Risto Heinsar'' - http://www.blue.pri.ee/ttu/programmeerimine-i/
 
  
 +
==== Moodle materjalid ====
 +
Ise registeerumisega kursususele "IAX0583 Programmeerimine I".
  
Vanad materjalid
+
https://moodle.taltech.ee/course/view.php?id=3347
  
''Helena Kruus'' - http://www.tud.ttu.ee/im/Vladimir.Viies/materials/Helena_materjalid/iag0581/
+
==I Kodutöö ülesanne==
 +
[http://ati.ttu.ee/~hkinks/iag0581/hw1/hw1_et.pdf Ülesande kirjeldus]
  
 +
[http://www.tud.ttu.ee/im/Vladimir.Viies/materials/IAX0583Programmeerimine%20I/hw1.html I kodutöö ülesande genereerimine ]<br />
 +
Kui genereerimine ei tööta 100% (näiteks valemi asemel prinditakse $$) siis tuleb proovida brauseril lubada javascript. Kui see ei ole võimalik siis tuleb valem leida manuaalselt Ülesande Kirjeldusest.
  
=== Moodle materjalid ===
+
[http://blue.pri.ee/ttu/koodimisstiil/ Koodimisstiil]
Ise registeerumisega kursususele "IAG0581 Programmeerimine I".
+
  
https://moodle.e-ope.ee/
+
I kodutöö tähtaeg on '''8. nädal'''. Esitades hiljem, läheb iga järgnev nädal puntkisummast maha 1 punkt.
  
 +
== Praktikumid ==
  
=== Praktikumitunnid ===
+
Jooksvad pratkikumi materjalid tekivad GITi repositooriumi:  
==== 4. nädal ====
+
[http://ati.ttu.ee/wiki/images/Praktikum4.pdf Slaidid]
+
==== 5. nädal ====
+
[http://ati.ttu.ee/~hkinks/iag0581/labs/praktikum5.pdf Rühmatöö]
+
==== 6. nädal ====
+
Näide alamprogrammide loomisest kasutades funktsioone:
+
<source lang="c" collapse="true">
+
#include <stdio.h>
+
  
/* funktsioone saab deklareerida kahel viisil: */
+
http://gitlab.pld.ttu.ee/Hannes.Kinks/iag0581
// funktsiooni deklaratsioon ja kohe defineerimine
+
int findSquare(int number) {
+
  return number*number;  // funktsioon peab tagastama int tüüpi muutuja ja v6tab sisendiks int tyypi argumendi
+
}
+
  
// prototyyp (funktsiooni deklaratsioon) ja definitsioon eraldi
+
== Töö praktikumis ==
void input(int *value);
+
void output(int v);   
+
  
//peafunktsioon
+
Arvutiklassis töötamise kohta üldiselt: [[Arvutiklassis töötamise juhend]]
int main(void) {
+
  int n;        // deklareerime muutuja n, mis asub nt aadressil x01
+
  input(&n);    // anname funktsioonile edasi tema aadressi (x01), kuhu kysitakse tema väärtus
+
  
  // kutsume välja ruudu leidmise funktsiooni, andes ette muutuja n väärtuse ja talletame tulemuse muutujasse vastus
+
Üksikasjalik kaugtöö juhend piltidega [http://ati.ttu.ee/wiki/images/Kaugtoo_juhend.pdf EST] [http://mini.li.ttu.ee/~priit/IAY0340.2013/ssh_setup/putty_guide.html ENG]
  int vastus = findSquare(n);
+
  
  // väljastame leitud vastuse, andes selle (väärtuse) ette väljastusfunktsioonile
+
Töö alustamisel terminalis on vaja paika seada töökeskkond käsuga '''cad'''
  output(vastus);
+
  return 0;
+
}
+
  
/* sisestusfunktsioon.
+
=== Versioonihaldus ===
void tüüpi funktsioon - ei tagastata midagi.
+
Praktikumitundides on kohustuslik kasutada oma koodi hoiustamiseks versioonihaldustarkvara Git ja hoiustada seda serveris
argumendina antakse ette pointer,
+
milles hoitakse muutuja asukohta mälus.
+
*/
+
void input(int *value) {
+
  printf("Sisesta n:\n");
+
  scanf("%d", value);
+
}
+
  
/* v2ljastusfunktsioon
+
'''[http://gitlab.pld.ttu.ee gitlab.pld.ttu.ee] '''
argumendina antakse ette v22rtus
+
*/
+
void output(int v) {
+
  printf("%d\n", v);
+
}
+
  
</source>
+
Sisselogimiseks tuleks kasutada oma ülikooli Uni-ID kasutajat ja parooli. Kui te ei tea oma kasutajat või parooli, siis Uni-ID saamiseks või parooli vahetamiseks on järgmised võimalused:
#include <stdio.h>
+
*Logides sisse ID-kaardiga aadressil http://pass.ttu.ee
#include <time.h>
+
  
int main(void) {
+
Esmakordsel sisenemisel tuleks kõige pealt kursuse tarbeks luua oma projekt. Selleks tuleks vajutada nupul '''New project'''.
  srand(time(NULL));
+
[[File:Git_create_project.png|200px|thumb|none|Nupp projekti loomiseks]]
  int randomNumber = rand()%10 +1; // suvaline number 1-10
+
Seejärel avaneval lehel tuleks oma projektile anda nimi '''iax0583'''. Lisaks tuleks veenduda, et projekti avalikuse seade on '''internal'''.
  printf("%d\n", randomNumber);
+
Vastav nimi ja avalik projekt on oluline selleks, et me leiaksime teie tehtud tööd üles. Lõpuks vajutage '''Create project'''.
  return 0;
+
[[File:Git_create_repo.png|200px|thumb|none|Projekti loomise leht]]
}
+
Sellega on repositoorium loodud.
<source lang="c" collapse="true">
+
  
</source>
+
====Mis on Git?====
 +
Git on enimkasutatav versioonihaldustarkvara, mis võimaldab hõlpsasti programmikoodi sisaldavaid projekte hallata. Git on väärtuslik tööriist just suurte projektide puhul, mis hõlmab palju erinevaid arendajaid, kuid on hea vahend ka väikeste projektide paremaks organiseerimiseks. Ta võimaldab meeles hoida ajalugu erinevatest projekti versioonidest ja arendusharudest ning neid liita vajadusel.
 +
Giti repositoorium on lisaks üks variant oma programmi lähtekoodi avalikustamiseks või tehtud projektide portfoolio hoidmiseks.
 +
Oma Giti repositooriumi hoidmiseks on erinevaid veebisaite, kus on võimalik oma koodi tasuta hoida. Näiteks: [https://github.com github], [https://bitbucket.org bitbucket], [https://gitlab.com gitlab].
  
==Õppetöö==
+
====Git-i allalaadimine====
===Punktisüsteem===
+
Kõikides klassiarvutites on Git eelnevalt paigaldatud ja selle kasutamiseks tuleks avada lihtsalt terminal.
* 15p - I kontrolltöö
+
* 15p - II kontrolltöö
+
* 15p - I kodutöö
+
* 15p - II kodutöö
+
* 40p - Tunnitöö
+
* 10p - Boonus
+
  
Hinne
+
Kodus kasutamiseks tuleks Git kõigepealt alla laadida lingilt
* < 50p - 0
+
* 50p - 1
+
* 60p - 2
+
* 70p - 3
+
* 80p - 4
+
* 90p - 5
+
  
===Loengud===
+
https://git-scm.com/downloads
{| class="wikitable"
+
! Kuupäev !! Teema !! Tähtaeg
+
|-
+
| 10.09.2015 || algoritmi mõiste ||
+
|-
+
| 24.09.2015 || arvsüsteemid, ekstreemumid ja mullsort, kalender ||
+
|-
+
| 08.10.2015 || UML, Shell sort. || I kodutöö  algoritmi kaitsmine
+
|-
+
| 22.10.2015 || kontrolltöö kirjutamine (algoritmi koostamine) || '''I kontrolltöö'''
+
|-
+
| 05.11.2015 || C Keel, põhilaused, dialoogprogramm. || '''I kodutöö''' (algoritm + programmikood)
+
|-
+
| 19.11.2015 || sortimisagoritmi realiseerimine, alamprogrammid ||
+
|-
+
| 03.12.2015 || kontrolltöö kirjutamine (programmikood) || '''II kontrolltöö''' ja '''II kodutöö '''
+
|-
+
| 17.12.2015 || Arvestustöö (juhul kui on vaja) ||
+
|}
+
http://www.tud.ttu.ee/im/Vladimir.Viies/materials/IAG0581,IAG0582,PROGRAMMEERIMINE/PR1/prog_I__est/Progra1Kalender15.xls
+
  
===I Kodutöö ülesanne===
+
Installeerimisel küsitavad sätted võib jätta vaikimisi nii nagu on.
http://www.tud.ttu.ee/im/Vladimir.Viies/materials/IAG0581,IAG0582,PROGRAMMEERIMINE/PR1/prog_I__est/Kodune_I.pdf
+
  
 +
====Git-i kasutamine====
 +
Alustada tuleks sellest, et avame terminali (või Git bash Windows-i puhul).
  
== Töö praktikumis ==
+
===== Kloonimine =====
 +
Eeldades, et Git-i repositoorium on tehtud (kui ei ole, vaata [[IAG0581 - Programmeerimine I#Versioonihaldus|Versioonihaldus]]), tuleks see kõigepealt omale kohalikku arvutisse alla kloonida.
 +
Oletades, et teie Uni-ID on ''Heli.Kopter'', siis repositoorium peaks asuma ''http://gitlab.pld.ttu.ee/heli.kopter/iag0581.git'' ning selle alla kloonimiseks on käsk ''git clone'':
 +
<source lang="bash" collapse="false">git clone http://gitlab.pld.ttu.ee/heli.kopter/iag0581.git</source>
 +
Järgnevalt küsitakse teilt kasutajanime ja parooli. Nagu mainitud eelnevalt, siis selleks on teie Uni-ID. Lisaks, parooli sisestamisel ei maksa välja teha sellest, et tärne (*) ei teki parooli kohale - sisestus toimib sellegipoolest nagu peab.
 +
Kui kasutaja ja parool klapivad, siis peaks esmakordsel kloonimisel tekkima sõnum
 +
warning: You appear to have clone and empty repository.
 +
Checking connectivity.. done.
 +
Järgnevalt liigume äsja loodud kausta kasutades ''cd'' käsku (Change Directory).
 +
<source lang="bash" collapse="false">cd iag0581</source>
  
Arvutiklassis töötamise kohta üldiselt: [[Arvutiklassis töötamise juhend]]
+
===== Staging area =====
 +
Nüüd on võimalik meil kausta ''iag0581'' lisada faile. Kausta võiks organiseerida kaustadesse järgnevalt:
 +
* Kodutöö 1
 +
* Kodutöö 2
 +
* Praktikum 1
 +
* Praktikum 2
 +
* ....
 +
Alustame näiteks sellest, et laeme koduse töö kirjelduse alla lehelt http://ati.ttu.ee/~hkinks/iag0581/hw1/hw1_et.pdf ning paigutame selle esimese kodutöö kausta.
 +
Järgmisena tuleks märku anda ka Gitile, et lisasime uue faili kasutades käsku ''git add <faili nimi>''. Lihtsaim viis lisamaks kõik failid, mille oleme lisanud on kasutada käsku:
 +
<source lang="bash" collapse="false">git add .</source>
 +
Selleks, et veenduda kas Git tõepoolest sai sellest aru ja lisas, võime kirjutada
 +
<source lang="bash" collapse="false">git status</source>
 +
Selle peale peaks tulema vastus:
 +
$> git status
 +
On branch master
 +
 +
Initial commit
 +
 +
Changes to be committed:
 +
  (use "git rm --cached <file>..." to unstage)
 +
 +
        new file:  Kodune1/hw1_et.pdf
  
Üksikasjalik kaugtöö juhend piltidega [http://ati.ttu.ee/wiki/images/Kaugtoo_juhend.pdf EST] [http://mini.li.ttu.ee/~priit/IAY0340.2013/ssh_setup/putty_guide.html ENG]
+
===== Commit =====
 +
Järgmisena tuleks teha ''commit'', millega sisuliselt tekitame ühe versiooni oma repositooriumis olevatest failidest ja kuhu saame tulevikus tagasi pöörduda vajadusel.
 +
<source lang="bash" collapse="false">git commit -m "Kommentaar versiooni kohta, milliseid muudatusi tehti."</source>
 +
git commit -m "esimene commit"
 +
[master (root-commit) 630c631] esimene commit
 +
  1 file changed, 0 insertions(+), 0 deletions(-)
 +
  create mode 100644 Kodune1/hw1_et.pdf
  
Töö alustamisel terminalis on vaja paika seada töökeskkond käsuga '''cad'''
+
Selle toiminguga on fail kindlalt Git-i ajaloos kirjas. Et näha Git-i ajalugu, kirjuta sisse käsk:
 +
<source lang="bash" collapse="false">git log</source>
 +
Et log vaatest väljuda, tuleb vajutada klaviatuuril Q klahvi.
 +
 
 +
===== Push =====
 +
Nüüd kui muudatused on salvestatud lokaalselt, tuleks need ka üles laadida serverisse, kust neid oleks võimalik hiljem alla laadida ka teistest arvutitest.
 +
Muudatuste üles laadimiseks on käsk ''git push''. ''Origin'' on välise repositooriumi aadress, kust algselt selle alla laadisime. ''Master'' on peamise haru nimi. Peale esimest pushi võib need ära jätta, kuna siis Git oskab ise eeldada kuhu soovime üles laadida.
 +
<source lang="bash" collapse="false">git push origin master</source>
 +
  git push origin master
 +
Username for 'http://gitlab.pld.ttu.ee': test
 +
Password for 'http://test@gitlab.pld.ttu.ee':
 +
Counting objects: 4, done.
 +
Delta compression using up to 8 threads.
 +
Compressing objects: 100% (2/2), done.
 +
Writing objects: 100% (4/4), 255.45 KiB | 0 bytes/s, done.
 +
Total 4 (delta 0), reused 0 (delta 0)
 +
To http://gitlab.pld.ttu.ee/test/iag0581.git
 +
  * [new branch]      master -> master
 +
 
 +
Peale käsu sisestamist ja enterile vajutamist küsitakse taaskord kasutajat ja parooli.
 +
Kui soovite kindlaks teha, et kõik õnnestus edukalt, saate minna repositooriumile ligi kasutades veebibrauserit ja veenduda, et lisatud failid on sealt nähtavad.
 +
 
 +
{| class="wikitable"
 +
| [[File:Git_files1.png|200px|thumb|none|Projektis olevate failide nägemiseks kliki 'Files'.]]
 +
| [[File:Git_files2.png|200px|thumb|none|Järgneval lehel peaks näha olema lisatud failid.]]
 +
|}
 +
 
 +
===== Pull =====
 +
Viimase põhilise Git-i käsu selgitamiseks eeldame, et teil on oma Git-i repositoorium alla kloonitud nii kodu- kui klassiarvutisse. Nüüd kui te teete muudatusi oma failides praktikumitunni jooksul, siis kodus olevas arvutis on repositoorium endiselt vanas seisus. Selleks, et uuendada oma kodus oleva repositooriumi seisu, on vaja muudatused alla laadida kasutades käsku ''git pull''.
 +
<source lang="bash" collapse="false">git pull</source>
 +
 
 +
Et vältida võimalikke konflikte, siis tuleks kindlasti enne uute muudatuste tegemiseks tööd alustada sellega, et annate käsu ''git pull''.
 +
 
 +
===== Lisainfo =====
 +
Siinkohal on selgitatud ainult Git-i põhifunktsionaalsuse kasutamine, kuid tegelikult on tal palju teisigi funktsioone, mille kohta saate iseseisvalt juurde lugeda.
 +
 
 +
*Git-i ametlik dokumentatsioon  - https://git-scm.com/doc
 +
*Spikker - https://training.github.com/kit/downloads/github-git-cheat-sheet.pdf
  
 
=== Programmeerimistarkvara ===
 
=== Programmeerimistarkvara ===
Line 156: Line 219:
  
 
* MinGW - http://www.mingw.org/
 
* MinGW - http://www.mingw.org/
 
 
 
* Cygwin - http://www.cygwin.com/
 
* Cygwin - http://www.cygwin.com/
  
Line 167: Line 228:
  
 
* Geany - http://www.geany.org/ (Windows, Linux)
 
* Geany - http://www.geany.org/ (Windows, Linux)
 +
Klassi arvutites terminali käsk '''geany'''
  
  
 
* Orwell Dev-C++ - http://sourceforge.net/projects/orwelldevcpp/ (Windows)
 
* Orwell Dev-C++ - http://sourceforge.net/projects/orwelldevcpp/ (Windows)
 
Klassi arvutites terminali käsk '''geany'''
 
  
 
=== Süntaksi värvimisega tekstiredaktorid ===
 
=== Süntaksi värvimisega tekstiredaktorid ===
Line 184: Line 244:
 
=== Diagrammide joonistamisvahendid ===
 
=== Diagrammide joonistamisvahendid ===
  
* ArgoUML - http://argouml.tigris.org/ (Windows, Linux)
+
* ArgoUML - https://argouml.en.softonic.com/ (Windows, Linux)
  
 
Klassi arvutites terminali käsk '''argouml'''
 
Klassi arvutites terminali käsk '''argouml'''

Latest revision as of 15:27, 29 August 2024

In English United Kingdom.png

E-Õpe

Punktide tabel 2024 sügis - Tabelit uuendatakse kord nädalas
Virtuaalse töölaua juhend
Kaugelt ligipääsu juhend - Video
Kaugelt ligipääsu juhend
Ülesanded võib lahendada oma arvutis, kaugelt ligipääsu juhend on lisaks, kui on vajadus kasutada kooli arvutit kompileerimiseks või oma varasematele koodidele ligipääsuks.
Sisse logimisel on vaja ainult kasutajanime, doomeni (@ttu.ee, @taltech.ee jne) ärga kasutage.
Parooli sisestamisel ei ole tähmärke näha aga sisestus töötab, kirjutage oma parool ja vajutage ENTER.

Kooli arvutis math.h teeki kasutava koodi kompileerimiseks tuleb kasutada tähist -lm

Kodutöö maatriksid Realiseerida võimalikult palju funktsioone ette antud prototüüpide järgi.
Kodutöö nädalal 4 (kuupäevad)
Rühmatöö nädal 10 - esitlus
Funktsioonid lindistus


Kodutöö maatriksitehted
Realiseerida kõik maatriksi tehted eraldi funktsioonidega

Eksam/koondtöö - ennem registreerimist palun esitage mõlemad kodutööd

Sorteerimise loeng
Ülesanded ja materialid 7. nädal
Loeng 8. nädal
Abimaterjalid ja lisaülesanne 8. nädala loeng
8. nädala praktikumi ülesannete sissejuhatus
8. nädala praktikumi ülesanded
Funktsioonid loeng 9. nädala
Funktsioonid II kodutöö
Funktsioonid. Stringitöötlus


Kontrolltöö 10. nädal
Funktsioonid geomeetria tunniülesanne
Kordamine kontrolltööks 11. nädal

Loeng 14. nädal slaidid

Loeng 15. nädal salvestus

Koodi failid saata vladimir.viies@gmail.com


Kodutöö 2 jaoks valige variant vastavalt oma matrikli numbri viimasele numbrile
Kodutöö 2 link

Viited


Materjalid

Aine õppejõudude materjalid

Vladimir Viies


Moodle materjalid

Ise registeerumisega kursususele "IAX0583 Programmeerimine I".

https://moodle.taltech.ee/course/view.php?id=3347

I Kodutöö ülesanne

Ülesande kirjeldus

I kodutöö ülesande genereerimine
Kui genereerimine ei tööta 100% (näiteks valemi asemel prinditakse $$) siis tuleb proovida brauseril lubada javascript. Kui see ei ole võimalik siis tuleb valem leida manuaalselt Ülesande Kirjeldusest.

Koodimisstiil

I kodutöö tähtaeg on 8. nädal. Esitades hiljem, läheb iga järgnev nädal puntkisummast maha 1 punkt.

Praktikumid

Jooksvad pratkikumi materjalid tekivad GITi repositooriumi:

http://gitlab.pld.ttu.ee/Hannes.Kinks/iag0581

Töö praktikumis

Arvutiklassis töötamise kohta üldiselt: Arvutiklassis töötamise juhend

Üksikasjalik kaugtöö juhend piltidega EST ENG

Töö alustamisel terminalis on vaja paika seada töökeskkond käsuga cad

Versioonihaldus

Praktikumitundides on kohustuslik kasutada oma koodi hoiustamiseks versioonihaldustarkvara Git ja hoiustada seda serveris

gitlab.pld.ttu.ee

Sisselogimiseks tuleks kasutada oma ülikooli Uni-ID kasutajat ja parooli. Kui te ei tea oma kasutajat või parooli, siis Uni-ID saamiseks või parooli vahetamiseks on järgmised võimalused:


Esmakordsel sisenemisel tuleks kõige pealt kursuse tarbeks luua oma projekt. Selleks tuleks vajutada nupul New project.

Nupp projekti loomiseks

Seejärel avaneval lehel tuleks oma projektile anda nimi iax0583. Lisaks tuleks veenduda, et projekti avalikuse seade on internal. Vastav nimi ja avalik projekt on oluline selleks, et me leiaksime teie tehtud tööd üles. Lõpuks vajutage Create project.

Projekti loomise leht

Sellega on repositoorium loodud.

Mis on Git?

Git on enimkasutatav versioonihaldustarkvara, mis võimaldab hõlpsasti programmikoodi sisaldavaid projekte hallata. Git on väärtuslik tööriist just suurte projektide puhul, mis hõlmab palju erinevaid arendajaid, kuid on hea vahend ka väikeste projektide paremaks organiseerimiseks. Ta võimaldab meeles hoida ajalugu erinevatest projekti versioonidest ja arendusharudest ning neid liita vajadusel. Giti repositoorium on lisaks üks variant oma programmi lähtekoodi avalikustamiseks või tehtud projektide portfoolio hoidmiseks. Oma Giti repositooriumi hoidmiseks on erinevaid veebisaite, kus on võimalik oma koodi tasuta hoida. Näiteks: github, bitbucket, gitlab.

Git-i allalaadimine

Kõikides klassiarvutites on Git eelnevalt paigaldatud ja selle kasutamiseks tuleks avada lihtsalt terminal.

Kodus kasutamiseks tuleks Git kõigepealt alla laadida lingilt

https://git-scm.com/downloads

Installeerimisel küsitavad sätted võib jätta vaikimisi nii nagu on.

Git-i kasutamine

Alustada tuleks sellest, et avame terminali (või Git bash Windows-i puhul).

Kloonimine

Eeldades, et Git-i repositoorium on tehtud (kui ei ole, vaata Versioonihaldus), tuleks see kõigepealt omale kohalikku arvutisse alla kloonida. Oletades, et teie Uni-ID on Heli.Kopter, siis repositoorium peaks asuma http://gitlab.pld.ttu.ee/heli.kopter/iag0581.git ning selle alla kloonimiseks on käsk git clone:

git clone http://gitlab.pld.ttu.ee/heli.kopter/iag0581.git

Järgnevalt küsitakse teilt kasutajanime ja parooli. Nagu mainitud eelnevalt, siis selleks on teie Uni-ID. Lisaks, parooli sisestamisel ei maksa välja teha sellest, et tärne (*) ei teki parooli kohale - sisestus toimib sellegipoolest nagu peab. Kui kasutaja ja parool klapivad, siis peaks esmakordsel kloonimisel tekkima sõnum

warning: You appear to have clone and empty repository.
Checking connectivity.. done.

Järgnevalt liigume äsja loodud kausta kasutades cd käsku (Change Directory).

cd iag0581
Staging area

Nüüd on võimalik meil kausta iag0581 lisada faile. Kausta võiks organiseerida kaustadesse järgnevalt:

  • Kodutöö 1
  • Kodutöö 2
  • Praktikum 1
  • Praktikum 2
  • ....

Alustame näiteks sellest, et laeme koduse töö kirjelduse alla lehelt http://ati.ttu.ee/~hkinks/iag0581/hw1/hw1_et.pdf ning paigutame selle esimese kodutöö kausta. Järgmisena tuleks märku anda ka Gitile, et lisasime uue faili kasutades käsku git add <faili nimi>. Lihtsaim viis lisamaks kõik failid, mille oleme lisanud on kasutada käsku:

git add .

Selleks, et veenduda kas Git tõepoolest sai sellest aru ja lisas, võime kirjutada

git status

Selle peale peaks tulema vastus:

$> git status
On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

        new file:   Kodune1/hw1_et.pdf
Commit

Järgmisena tuleks teha commit, millega sisuliselt tekitame ühe versiooni oma repositooriumis olevatest failidest ja kuhu saame tulevikus tagasi pöörduda vajadusel.

git commit -m "Kommentaar versiooni kohta, milliseid muudatusi tehti."
git commit -m "esimene commit"
[master (root-commit) 630c631] esimene commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 Kodune1/hw1_et.pdf

Selle toiminguga on fail kindlalt Git-i ajaloos kirjas. Et näha Git-i ajalugu, kirjuta sisse käsk:

git log

Et log vaatest väljuda, tuleb vajutada klaviatuuril Q klahvi.

Push

Nüüd kui muudatused on salvestatud lokaalselt, tuleks need ka üles laadida serverisse, kust neid oleks võimalik hiljem alla laadida ka teistest arvutitest. Muudatuste üles laadimiseks on käsk git push. Origin on välise repositooriumi aadress, kust algselt selle alla laadisime. Master on peamise haru nimi. Peale esimest pushi võib need ära jätta, kuna siis Git oskab ise eeldada kuhu soovime üles laadida.

git push origin master
 git push origin master
Username for 'http://gitlab.pld.ttu.ee': test
Password for 'http://test@gitlab.pld.ttu.ee':
Counting objects: 4, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (4/4), 255.45 KiB | 0 bytes/s, done.
Total 4 (delta 0), reused 0 (delta 0)
To http://gitlab.pld.ttu.ee/test/iag0581.git
 * [new branch]      master -> master

Peale käsu sisestamist ja enterile vajutamist küsitakse taaskord kasutajat ja parooli. Kui soovite kindlaks teha, et kõik õnnestus edukalt, saate minna repositooriumile ligi kasutades veebibrauserit ja veenduda, et lisatud failid on sealt nähtavad.

Projektis olevate failide nägemiseks kliki 'Files'.
Järgneval lehel peaks näha olema lisatud failid.
Pull

Viimase põhilise Git-i käsu selgitamiseks eeldame, et teil on oma Git-i repositoorium alla kloonitud nii kodu- kui klassiarvutisse. Nüüd kui te teete muudatusi oma failides praktikumitunni jooksul, siis kodus olevas arvutis on repositoorium endiselt vanas seisus. Selleks, et uuendada oma kodus oleva repositooriumi seisu, on vaja muudatused alla laadida kasutades käsku git pull.

git pull

Et vältida võimalikke konflikte, siis tuleks kindlasti enne uute muudatuste tegemiseks tööd alustada sellega, et annate käsu git pull.

Lisainfo

Siinkohal on selgitatud ainult Git-i põhifunktsionaalsuse kasutamine, kuid tegelikult on tal palju teisigi funktsioone, mille kohta saate iseseisvalt juurde lugeda.

Programmeerimistarkvara

Kompileerimine terminalis

Terminalis kompileerimiseks on käsk gcc.

Näiteks kui programmikood on failis hello.c, siis kompileerimiseks tuleks anda käsk

gcc –o hello hello.c

See tekitab binaarfaili hello, milles võime veenduda kasutades käsku ls. Järgnevalt on see võimalik tööle panna käsuga

./hello

Windowsi all käsitsi gcc-ga kompileerimiseks võib kasutada nt:

C/C++ Integreeritud programmeerimiskeskkonnad (IDE)

Klassi arvutites terminali käsk codeblocks


Klassi arvutites terminali käsk geany


Süntaksi värvimisega tekstiredaktorid

SciTE

Klassi arvutites terminali käsk SciTE


Diagrammide joonistamisvahendid

Klassi arvutites terminali käsk argouml


Klassi arvutites terminali käsk astah-com


Klassi arvutites terminali käsk yEd


Klassi arvutites terminali käsk jsp

argoUML
yEd
Jackson System Programming (JSP) Editor