Ohjausrakenteet Määräävät ohjelmakoodin suoritusjärjestyksen Ehtolause if – else on muotoa if (lauseke) lause1 else lause2 Jos lauseke on tosi, niin suoritetaan.

Slides:



Advertisements
Samankaltaiset esitykset
Tuloksellinen Java-ohjelmointi Luku 3 Luokkien käyttäminen
Advertisements

Olio-ohjelmoinnin perusteet luento 3: Muuttujista ja funktioista Sami Jantunen LTY/Tietotekniikan osasto.
© Jukka Harju, Viittausmuuttujat. © Jukka Harju, Viittaukset •Viittausmuuttuja sisältää tiedon siitä missä muistipaikassa olio.
© Hannu Laine 1 Tietorakenteet ja algoritmit Funktio-osoittimet Funktio-osoittimen ja taulukko-osoittimen vertailu Funktio-osoittimen käyttötapoja.
JavaScript (c) Irja & Reino Aarinen, 2007
Tietorakenteet ja algoritmit
Rakenteinen ohjelmointi
C-kieli ja dynaaminen muistin varaus
22. Taulukot.
Rakenteinen ohjelmointi
Näytölle tulostaminen. 7.2 Sisällys System.out.println - ja System.out.print -operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden.
Sovellusohjelman suunnittelu & toteutus
C-ohjelmointi, kevät 2006 Taulukot Binääritiedostot Luento
Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 4 Toistolauseet
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
OLIO-OHJELMOINTI PERUSTEET PERUSTIETOTYYPIT
TyyppimuunnoksettMyn1 Tyyppimuunnokset Joskus kääntäjän on tehtävä itse päätöksiä, jos ohjelmoija ei ole ajatellut yksityiskohtia: int arvo1=10; long arvo2=25;
Vakio-osoitin ja osoitin vakioon tMyn1 Vakio-osoitin ja osoitin vakioon Tavallinen osoitin voi vaihtaa osoitettavaa keskusmuistialuetta. Tämä voidaan tehdä.
16. Lohkot Sisällys Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat.
Poikkeustenkäsittely  Mitä poikkeustenkäsittely tarkoittaa?  Poikkeuksen käsitteleminen  Poikkeusluokkien hierarkia  Poikkeuksen heittäminen 1.
Toiston tekeminen Javalla  Mikä toistorakenne on?  while toistorakenne  do-while toistorakenne  for toistorakenne 1.
Ohjelmoinnin tekniikkaa Sisällys for -lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely.
Pseudokoodi Tietokoneohjelmien perusidea:
© Jukka Harju, Jukka Juslin
Funktion esittely eli prototyyppi tMyn1 Funktion esittely eli prototyyppi Funktion esittely (function declaration) kertoo funktion nimen, parametrien tyypit.
7. Oliot ja viitteet.
ict1td002 - Copyright Raine Kauppinen 1 Alkuarvot ja tyyppimuunnokset (1/5)  Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int.
String-vertailusta ja Scannerin käytöstä (1/2)
C-ohjelmoinnin perusteet
Metodit – Arvotyyppi Ellei metodi palauta arvoa, sen arvotyyppi on void Tällöin ”return;”-lauseke ei ole metodissa pakollinen, vaikka sen käyttö on sallittua.
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Hyvä ohjelmointitapa (osa 2) Yleistä Lisää hyviä ohjelmointikäytäntöjä: − Jaa pitkä koodi osiin. − Käytä attribuutteja säästeliäästi.
22. Taulukot.
Johdatus ohjelmointiin – C kielen peruselementit Tutkijayliopettaja Manne Hannula Opetusharjoittelu (ohjaava opettaja Jukka Jauhiainen)
FunktiottMyn1 Funktiot Funktiot voidaan jakaa –Kirjastofunktioihin, jotka ovat valmiina kaikkien käytössä. Erikoisempien kirjastofunktioiden käyttöönotto.
Oman poikkeus- käsittelyfunktion tMyn1 Oman poikkeuskäsittelyfunktion määrittely Funktion tulisi muodostaa ainoastaan sellaisia poikkeuksia, jotka on sallittu.
Visual Basic -ohjelmointi
Antti-Jussi Lakanen Nuorten peliohjelmointi 2009 / Jyväskylän yliopisto.
Kontrollirakenteet laajemmin
For-toistolausetMyn1 for-toistolause for-lauseen rakenne on: for(aloituslauseke; lauseke; lopetuslauseke) lause; Puolipisteiden on oltava aina paikoillaan,
Ohjelmointi 1. toinen luento1 Taulukot n Kiinteät taulukot: alkioiden määrä tiedetään Dim intCount(12) As Integer 0 indeksit saavat arvoja 0-12 (Option.
14. Poikkeukset Sisällys Johdanto poikkeuksiin. Poikkeusten käsittely: − Poikkeusten käsittely paikallisesti. − Poikkeusten heittäminen. Exception.
Ohjelmassa tänään Ohjelmointimallit Pseudokieli Modulaarisuus.
Muuttujan osoite int a=1; 0xbfffea64 /* tulostetaan a:n osoite*/ printf(“%p\n”, &a); 0xbfffea68 /* tulostetaan a:n osoite + 1*/ printf(“%p\n”, &a+1); /*
C-ohjelman käännösvaiheet
Tiedosvirtat Puskuroiduissa virroissa lukeminen/kirjoittaminen tapahtuu lohko kerrallaan stdin – puskuroitu (näppäimistö) stdout – purkuroitu (näyttö)
String-vertailusta ja Scannerin käytöstä (1/2)
1. Omat operaatiot.
2. Taulukot.
7. Hyvä ohjelmointitapa..
13. Loogiset operaatiot.
3. Luokat, oliot ja metodit Java-kielessä (Lausekielinen ohjelmointi I ja II –kursseilla opitun kertausta.)
15. Lohkot.
7. Näytölle tulostaminen
do-while -toistolause
Toisto Toistolausekkeet for, while(ehto){…} ja do {…} while(ehto)
do-while -toistolause
16. Ohjelmoinnin tekniikkaa
11. Javan valintarakenteet
2. Taulukot.
15. Lohkot.
7. Oliot ja viitteet.
4. Attribuutit.
7. Näytölle tulostaminen
Kontrollirakenteet laajemmin
13. Loogiset operaatiot.
4. Luokan testaus ja käyttö olion kautta
16. Ohjelmoinnin tekniikkaa
Esityksen transkriptio:

Ohjausrakenteet Määräävät ohjelmakoodin suoritusjärjestyksen Ehtolause if – else on muotoa if (lauseke) lause1 else lause2 Jos lauseke on tosi, niin suoritetaan lause1 muutoin suoritetaan valinnainen lause2 else liitetään aina lähimpään if-lauseeseen, jolla ei ole else-osaa

Monihaarainen päätös else if lausella if (lauseke1) lause1 else if (lauseke2) lause2 else if (lauseke3) lause 3 else lause

Monihaarainen päätös switch-lauseen avulla switch (lauseke){ case vakio1: lausejoukko1 break; case vakio2: lausejoukko1 break; default: lausejoukko break; } (lauseke) == vakio1 (lauseke) == vakio2 ilman break lausetta ohjelman suoritus jatkuisi lausejoukkoon2 valinnainen, hypätään tänne mikäli (lauseke) ei vastaa mitään case:ssa luetelluista arvoista

while Lause toistetaan niin kauan kun (lauseke) on tosi while(lauseke) lause Kopioidaan merkkijono lahde merkkijonoon kohde while(*kohde++=*lahde++); Lasketaan merkkijonon mj pituus while(*kohde++);

for for(lauseke1; lauseke2; lauseke3) lause lauseke1 suoritetaan aluksi lause toistetaan niin kauan kun lauseke2 on tosi jokaisen toistokerran jälkeen suoritetaan lauseke3

do - while do lause while (lauseke); lause suoritetaan aina vähintään yhden kerran Toiston määräävä lauseke arvioidaan vasta suorituksen jälkeen

for – continue - break for (i=0; i < 10; i++){ if(i%2 == 0) continue; if(i==7) break; printf(”%i\n”, i); } ohjelma tulostaa: 1 3 5

Funktiot extern int funktio(int a, char *m){ return 0; } Ohjelman suoritus alkaa funktiosta main() funktion määrittelyssä tarvitaan 1. paluuarvon tyyppi 2. kutsuparametrien tyyppi ja määrä 3. näkyvyys määrittelytiedoston ulkopuolella 4. suoritetaan ohjelmakoodi

Funktion muistimääritteet extern funktion esittelyn edessä => etsitään funktion määrittelyä myös toisista lähdekooditiedostoista static funktion esittelyn edessä => funktiota ei voida käytää/tietää kyseisen lähdekooditiedoston ulkopuolella extern on oletusarvoinen muistimäärite

Funktion esittely int f(void); int f(); ei parametrejä, palauttaa int:n ei tietoa parametreistä, palauttaa int:n int *f(void); ei parametrejä, palauttaa osoittimen int:n Ilman funktion esittelyä ei funktion argumenttien määrää eikä tyyppiä tarkisteta

Funktio esimerkki extern double a; static double palauta(void){ return (a + 1.0); } double arvo(double l){ return l + palauta(); } const double a = 1.0; extern double arvo(double); int main(void){ int b; b = (int)arvo(a); return b; } testi.crutiini.c Kääntäminen: gcc –o testi testi.c rutiini.c Ohjelman paluuarvo: echo $?

Funktioihin viittaaminen osoittimien avulla Funktiota ei voi välittää parametrina funktiolle Osoittimen funktioon voi välittää parametrina funktiolle Käytetään esim. qsort() kirjastofunktiossa osoittimena vertailufunktioon => Ei tarvita eri lajittelufunktiota eri tyypeille int (*f)(); f on osoitin funktioon, joka palauttaa int:n

Esimerkki funktio-osoittimesta extern int arvo(double); int (*pf)(double) = arvo; int main(void){ int i= (*pf )(1.0); return 0; } Osoitin funktioon jonka ainoana parametrinä on double ja joka palauttaa int:n

Osoitintaulukot double *g[3]; *g[0] = 1.0; varaa muistia kolmelle osoittimelle double tyyppisiin muuttujiin g[0]:aa ei ole alustettu, joten sijoituslause ei toimi Käytetään tavallisesti dynaamisen muistin varauksen yhteydessä Voidaan käyttää myös merkkijonojen talletukseen char *h[] = {”eka”, ”toka”, ”kolmas”, NULL};

Tietueiden välittäminen funktiolle Tietuemuuttuja voidaan välittää funktioon argumettina Paluuarvon tyyppinä voi olla tietuetyyppi struct tietue_t funktio(struct tietue_t); Funktiolle voidaan myös valittää tietueen osoite void funktio(struct tietue_t *);

typedef määrittää synonyymin typedef unsigned char cc_t; määritelmän jälkeen cc_t vastaa unsigned char:a Alla määritellään tietotyyppi DBT joka on siis tietue typedef struct { void *data; int datan_pituus; } DBT; mikäli määritelmä alkaisi typedef struct dbt{ niin DBT olisi synonyymi struct dbt:lle

typedef typedef:n avulla koodin lukemista voidaan helpottaa typedef void signal_handler(int); signal_handler *signal(int, signal_handler*); signal_handler on funktion jonka argumenttina on int ja paluuarvoa ei ole signal on funktio argumentteinaan int ja osoitin signal_handler:iin, joka on myös paluuarvo Sama signal määritelmä ilman typedef:ä void (*signal(int, void(*)(int)))(int);