Difference between revisions of "IAX0583 - Programmeerimine I"

From ATI public wiki
Jump to: navigation, search
(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

English course page United Kingdom.png

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".

https://moodle.e-ope.ee/


Praktikumitunnid

4. nädal

Slaidid

5. nädal

Rühmatöö

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)

http://www.tud.ttu.ee/im/Vladimir.Viies/materials/IAG0581,IAG0582,PROGRAMMEERIMINE/PR1/prog_I__est/Progra1Kalender15.xls

I Kodutöö ülesanne

http://www.tud.ttu.ee/im/Vladimir.Viies/materials/IAG0581,IAG0582,PROGRAMMEERIMINE/PR1/prog_I__est/Kodune_I.pdf


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:


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