Difference between revisions of "IAX0583 - Programmeerimine I"
(→Praktikumitunnid) |
|||
Line 30: | Line 30: | ||
==== 5. nädal ==== | ==== 5. nädal ==== | ||
[http://ati.ttu.ee/~hkinks/iag0581/labs/praktikum5.pdf Rühmatöö] | [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: */ | ||
+ | // funktsiooni deklaratsioon ja kohe defineerimine | ||
+ | int findSquare(int number) { | ||
+ | return number*number; // funktsioon peab tagastama int tyypi muutuja ja v6tab sisendiks int tyypi argumendi | ||
+ | } | ||
+ | |||
+ | // prototyyp (funktsiooni deklaratsioon) ja definitsioon eraldi | ||
+ | void input(int *value); | ||
+ | void output(int v); | ||
+ | |||
+ | //peafunktsioon | ||
+ | int main(void) { | ||
+ | int n; // deklareerime muutuja n, mis asub nt aadressil x01 | ||
+ | input(&n); // anname funktsioonile edasi tema aadressi (x01), kuhu kysitakse tema v22rtus | ||
+ | |||
+ | // kutsume v2lja ruudu leidmise funktsiooni, andes ette muutuja n v22rtuse ja talletame tulemuse muutujasse vastus | ||
+ | int vastus = findSquare(n); | ||
+ | |||
+ | // v2ljastame leitud vastuse, andes selle (v22rtuse) ette v2ljastusfunktsioonile | ||
+ | output(vastus); | ||
+ | return 0; | ||
+ | } | ||
+ | |||
+ | /* sisestusfunktsioon. | ||
+ | void tyypi funktsioon - ei tagastata midagi. | ||
+ | argumendina antakse ette pointer, | ||
+ | milles hoitakse muutuja asukohta m2lus. | ||
+ | */ | ||
+ | void input(int *value) { | ||
+ | printf("Sisesta n:\n"); | ||
+ | scanf("%d", value); | ||
+ | } | ||
+ | |||
+ | /* v2ljastusfunktsioon | ||
+ | argumendina antakse ette v22rtus | ||
+ | */ | ||
+ | void output(int v) { | ||
+ | printf("%d\n", v); | ||
+ | } | ||
+ | |||
+ | </source> | ||
+ | |||
==Õppetöö== | ==Õppetöö== |
Revision as of 09:43, 6 October 2015
Contents
Viited
Materjalid/Materials
Vladimir Viies - http://www.tud.ttu.ee/im/Vladimir.Viies/materials/IAG0581,IAG0582,PROGRAMMEERIMINE/PR1/
Risto Heinsar - http://www.blue.pri.ee/ttu/programmeerimine-i/
Vanad materjalid
Helena Kruus - http://www.tud.ttu.ee/im/Vladimir.Viies/materials/Helena_materjalid/iag0581/
Moodle materjalid
Ise registeerumisega kursususele "IAG0581 Programmeerimine I".
Praktikumitunnid
4. nädal
5. nädal
6. nädal
Näide alamprogrammide loomisest kasutades funktsioone:
#include <stdio.h>
/* funktsioone saab deklareerida kahel viisil: */
// funktsiooni deklaratsioon ja kohe defineerimine
int findSquare(int number) {
return number*number; // funktsioon peab tagastama int tyypi muutuja ja v6tab sisendiks int tyypi argumendi
}
// prototyyp (funktsiooni deklaratsioon) ja definitsioon eraldi
void input(int *value);
void output(int v);
//peafunktsioon
int main(void) {
int n; // deklareerime muutuja n, mis asub nt aadressil x01
input(&n); // anname funktsioonile edasi tema aadressi (x01), kuhu kysitakse tema v22rtus
// kutsume v2lja ruudu leidmise funktsiooni, andes ette muutuja n v22rtuse ja talletame tulemuse muutujasse vastus
int vastus = findSquare(n);
// v2ljastame leitud vastuse, andes selle (v22rtuse) ette v2ljastusfunktsioonile
output(vastus);
return 0;
}
/* sisestusfunktsioon.
void tyypi funktsioon - ei tagastata midagi.
argumendina antakse ette pointer,
milles hoitakse muutuja asukohta m2lus.
*/
void input(int *value) {
printf("Sisesta n:\n");
scanf("%d", value);
}
/* v2ljastusfunktsioon
argumendina antakse ette v22rtus
*/
void output(int v) {
printf("%d\n", v);
}
Õppetöö
Punktisüsteem
- 15p - I kontrolltöö
- 15p - II kontrolltöö
- 15p - I kodutöö
- 15p - II kodutöö
- 40p - Tunnitöö
- 10p - Boonus
Hinne
- < 50p - 0
- 50p - 1
- 60p - 2
- 70p - 3
- 80p - 4
- 90p - 5
Loengud
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) |
I Kodutöö ülesanne
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
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:
- MinGW - http://www.mingw.org/
- Cygwin - http://www.cygwin.com/
C/C++ Integreeritud programmeerimiskeskkonnad (IDE)
- Code::Blocks - http://www.codeblocks.org/ (Windows, Linux, Mac OS)
Klassi arvutites terminali käsk codeblocks
- Geany - http://www.geany.org/ (Windows, Linux)
- Orwell Dev-C++ - http://sourceforge.net/projects/orwelldevcpp/ (Windows)
Klassi arvutites terminali käsk geany
Süntaksi värvimisega tekstiredaktorid
- SciTE - http://www.scintilla.org/SciTE.html (Windows, Linux, Mac OS)
Klassi arvutites terminali käsk SciTE
- Notepad++ - http://notepad-plus-plus.org/ (Windows)
Diagrammide joonistamisvahendid
- ArgoUML - http://argouml.tigris.org/ (Windows, Linux)
Klassi arvutites terminali käsk argouml
- Astah Community - http://astah.net/download#community (Windows, Linux, Mac OS)
Klassi arvutites terminali käsk astah-com
- yEd - http://www.yworks.com/en/products_yed_about.html. (Windows, Linux, Mac OS)
Klassi arvutites terminali käsk yEd
- Jackson System Programming (JSP) Editor - http://www.his.se/english/university/contact/staff/henrik-engstrom/jsp-editor/ (Windows, Linux, Mac OS)
Klassi arvutites terminali käsk jsp