Tietorakenteet ja algoritmit
|
|
- Pirjo Tikkanen
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 Tietorakenteet ja algoritmit Useampitasoiset ADT:t Käytetään esimerkkiohjelmaa Ratkaisuyritys 1 Ratkaisuyritys 2 Lopullinen ratkaisu Lopullisen ratkaisun toteutusyritys Lopullisen ratkaisun oikea toteutus Ympyrän kuvauksen hierarkiakaavio 1
2 Useampitasoinen abstraktiomalli Asian monimutkaistuessa abstraktiomallissa tarvitaan useampia tasoja, jotta asia voidaan hallita (kts sivu 5 osassa 1). Käytämme taas esimerkkiohjelmaa asian valaisemiseksi. 2
3 Esimerkkiohjelman tehtäväkuvaus Ympyräohjelman tehtäväkuvaus Kirjoita ohjelma, jolle syötetään ympyrän määrittelevät tiedot. Ohjelma laskee ja tulostaa ympyrän pinta-alan ja myös syötetyt ympyrän tiedot. 3
4 Ensimmäinen ratkaisuyritys int main(void) { float cpx, cpy, r, area; printf( Anna keskipisteen x ja y : ); scanf( %f%f, &cpx, &cpy); printf( Anna säde : ); scanf( %f, &r); area = PII * r *r; printf( Ympyrän ala on %f\n, area); } Ylemmän tason käsitteitä ei näy ollenkaan. Mitkä tiedot määräävät ympyrän? printf( Keskipiste on (%f, %f). Säde on %f\n, cpx, cpy, r); return 0; 4
5 Toinen ratkaisuyritys Ympyrän määrittelevät tiedot ovat keskipiste ja säde (ei 3 lukua). Hyödynnetään aikaisemmin kehitetty ADT point keskipisteen esittämisessä. int main(void) { Tpoint cp; float r, area; read_point(&cp, Anna keskipiste : ); printf( Anna säde : ); scanf( %f, &r); area = PII * r *r; printf( Ympyrän ala on %f\n, area); print_point(&cp, Ympyrän keskipiste ); return 0; } Tämä on parempi ratkaisu. Mutta mitä tehtävässä pitikään tehdä ja mitä asiaa käsitellä? 5
6 Lopullinen ratkaisu Tehtävässä piti lukea ympyrän tiedot, laskea ympyrän ala jne. Näitä ei näy edellisen sivun ratkaisussa. void main(void) { Tcircle c; float area; read_circle(&c); area = circle_area(&c); print_circle(&c); printf("%f", area); } 6
7 Lopullisen ratkaisun toteutusyritys typedef struct { float kpx; float kpy; Ei hyvä! float r; } Tcircle; void read_circle(tcircle* c, const char* prompt); void print_circle(const Tcircle* c, const char* prompt); float circle_area(const Tcircle* c); jne Tällä voisi toteuttaa edellisen sivun lopullisen ratkaisun, mutta... Ei hyödynnetä (uudelleen käytetä) jo kerran tehtyä pistettä keskipisteen esittämiseen. 7
8 Lopullisen ratkaisun oikea toteutus 1/2 typedef struct { Tpoint cp; float r; } Tcircle; void read_circle(tcircle* c, const char* prompt); void print_circle(const Tcircle* c, const char* prompt); float circle_area(const Tcircle* c); jne Nyt hyödynnetään (uudelleenkäytetään) jo kerran tehtyä pistettä keskipisteen esittämiseen. 8
9 Lopullisen ratkaisun oikea toteutus 2/2 Toteutetaan malliksi yksi ADT circlen käyttöfunktioista: void read_circle(tcircle* c, const char* prompt) { printf( %s, prompt); read_point(&c->cp, Anna keskipiste ); printf( Anna säde : ); scanf( %f, &c->r); } Huomautus. Sääntönä on, että ympyrän käyttöfunktioiden toteutuksissa, käytetään keskipisteen käsittelyyn pisteen käyttöfunktioita. Olisi väärin lukea keskipiste näin scanf( %f%f, &c->cp.x, &c->cp.y); Jos keskipisteen (alakomponentin) toteutustapa muuttuisi, niin pitäisi muuttaa myös ympyrän (pääkomponentin) toteutusta. Ylemmässä oikein tehdyssä tapauksessa ympyrän funktioita ei tarvitse muuttaa vaikka pisteen toteutus muuttuu, kunhan interface säilyy. 9
10 Ympyrän hierarkiamalli Ei sallittu Interface Ympyrä Interface Keskipiste Interface Säde x y 10
11 Miten saadaan ympyrän header ja musta laatikko Pisteen tapauksessa opimme, että pistekomponenttia käytetään otsikkotiedoston point.h ja mustan laatikon point.obj avulla. Kuinka saadaan vastaavat circle.h ja musta laatikko circle. Sitä tarkastellaan seuraavaksi. Edellytyksenä on, että pistettä voidaan käyttää sellaisenaan (siis header-tiedoston ja linkattavan mustan laatikon avulla) erikseen ja myös ympyrän toteutuksessa. Lisäksi sovellusohjelmoijan tulee voida käyttää ympyrää ympyränä ilman edes tietoa pisteestä tai myös yhdessä pisteen kanssa. Näiden vaatimusten täyttämiseen tarvitaan ehdollista kääntämistä ja kirjaston luontia. 11
12 Ehdollinen kääntäminen 1 Application programmers view: Case 1 (Application programmer needs only circles) #include "circle.h" void main (void) { Tcircle c; read_circle(&c);... } file circle.obj (or circle.lib) is linked Case 2 (Application programmer needs circles and points) #include "circle.h" #include "point.h" void main (void) { Tcircle c; Tpoint p; read_circle(&c);... } files circle.obj (or circle.lib) and point.obj are linked 12
13 Ehdollinen kääntäminen 2 A component programmer's view: The contents of file point.h : #ifndef _POINT interface of point //type and prototypes #define _POINT #endif The contents of circle.h is as follows: #ifndef _CIRCLE //#ifndef _POINT #include "point.h" //#endif typedef struct { Tpoint kp; float r; } Tcircle; void read_circle(tcircle *c);... #define _CIRCLE #endif // do not use but study what would be the effect //do not use 13
14 Miten tehdään musta laatikko circle.lib Visual Studio 2010 Solutions Testausprojekti (Tyyppinä 32 bit Console Application) testi.c circle.lib Ympyräprojekti (Tyyppinä library (static library).) circle.c point.obj Unix / Linux Testausprojekti gcc o testi.exe testi.c circle.a Ympyräprojekti gcc c circle.c o circle.o ar crv circle.a circle.o point.o (tulos on circle.a) Dev C++ Graafisessa ympäristössä libin tekeminen näyttää vaativan sourcet kaikista osista, eli ar ohjelmaa ei pystytä ohjaamaan IDEstä. Tällöin lib voidaan koota objekteista komentoriviltä käyttämällä suoraan ar ohjelmaa, kuten yllä on sanottu tapauksesta Unix/Linux. 14
Tietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Kurssin sisältö pääpiirteittäin Tarvittavat pohjatiedot Avainsanat Abstraktio Esimerkkiohjelman tehtäväkuvaus Abstraktion käyttö tehtävässä Abstrakti tietotyyppi Hyötyjä ADT:n
Tietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Abstrakti tietotyyppi komponenttina Komponentin kriteerit Täyttääkö ADT komponentin kriteerit Millä ehdoilla kriteerit täyttyvät Yleisyyden tarkastelua funktion read_point
tietueet eri tyyppisiä tietoja saman muuttujan arvoiksi
tietueet eri tyyppisiä tietoja saman muuttujan arvoiksi ero taulukkoon taulukossa alkiot samantyyppisiä tietueessa alkiot voivat olla erityyppisiä tiedot kuitenkin yhteen kuuluvia ohjelmoinnin perusteet,
Algoritmi ja abstraktio
Algoritmit ja tietorakenteet / HL 1 Algoritmi ja abstraktio Algoritmin määrittely yleisesti Algoritmi on täsmällisesti määritelty äärellinen sarja toimenpiteitä, jotka toteuttamalla saadaan aikaan jonkin
Tietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Muuttujat eri muisteissa Ohjelman muistialueen layout Paikallisen ja globaalin muuttujan ominaisuudet Dynaamisen muistinkäytön edut Paikallisten muuttujien dynaamisuus ADT
Tietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Listan määritelmä Listan toteutustapoja Yksinkertainen taulukkototeutus Linkattu taulukko Dynaamisesti linkattu taulukko Listan toteutuksen yleisyysvaatimukset Millä ehdoilla
Tietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Merkintöjen tulkintoja *++Pstack->top = item *Pstack->top++ = item (*Pstack->top)++ *(Pstack++)->top = item *(++Pstack)->top = item Lisää pinon toteutuksia Dynaaminen taulukko
Tietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Taulukon edut Taulukon haitat Taulukon haittojen välttäminen Dynaamisesti linkattu lista Linkatun listan solmun määrittelytavat Lineaarisen listan toteutus dynaamisesti linkattuna
// // whiledemov1.c // #include <stdio.h> int main(void){ int luku1 = -1; int luku2 = -1;
// // whiledemov1.c // #include int main(void){ int luku1 = -1; int luku2 = -1; while( luku1
C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.
Taulukot C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukon muuttujilla (muistipaikoilla) on yhteinen nimi. Jokaiseen yksittäiseen
Tietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Pino Pinon määritelmä Pinon sovelluksia Järjestyksen kääntäminen Palindromiprobleema Postfix-lausekkeen laskenta Infix-lausekkeen muunto postfix-lausekkeeksi Sisäkkäiset funktiokutsut
Loppukurssin järjestelyt C:n edistyneet piirteet
C! Loppukurssin järjestelyt C:n edistyneet piirteet 30.3.2017 Ohjelmassa Ohjelmontitehtävän järjestelyt Tietokonetentin järjestelyt Esikääntäjä Parametrilistat Funktio-osoittimet Kunniamainintoja Kuura
3. Binääripuu, Java-toteutus
3. Binääripuu, Java-toteutus /*-------------------------------------------------------------/ / Rajapinta SearchTree: binäärisen hakupuun käsittelyrajapinta / / Metodit: / / void insert( Comparable x );
Tietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Elegantti toteutus funktiolle insert_to_list_end Alkion lisäys sisällön mukaan järjestettyyn listaan (insert_to_list) Linkatun listan yleisyys alkiotyypin suhteen source-tasolla
TIETORAKENTEET JA ALGORITMIT
TIETORAKENTEET JA ALGORITMIT Timo Harju 1999-2004 1 typedef link List; /* Vaihtoehtoisia nimiä */ typedef link Stack; /* nodepointterille */ typedef link Queue typedef struct node Node; /* itse nodelle
Lyhyt kertaus osoittimista
, syksy 2007 Kertausta Luento 10 12.10.2007 Syksy 2007 1 Lyhyt kertaus osoittimista char *p; /* char, int, jne ilmoittavat, minkä tyyppisiä */ Keskusmuisti int *q; /* olioita sisältäviin muistilohkoihin
Loppukurssin järjestelyt
C! Loppukurssin järjestelyt 29.3.2018 Ohjelmassa Yhteenvetoa palautteesta Ohjelmontitehtävän järjestelyt Tietokonetentin järjestelyt Kysyttävää / kerrattavaa 10-kierroksen asioista? Aikatauluista 10. kierroksen
Tietueet. Tietueiden määrittely
Tietueet Tietueiden määrittely Tietue on tietorakenne, joka kokoaa yhteen eri tyyppistä tietoa yhdeksi asiakokonaisuudeksi. Tähän kokonaisuuteen voidaan viitata yhteisellä nimellä. Auttaa ohjelmoijaa järjestelemään
Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö C-ohjelmassa
ssa ohjelman käytössä suoritusaikana oleva muisti jakautuu neljään osaan: koodisegmentti datasegmentti pinosegmentti (stack) kasa (heap) ssa ohjelman koodisegmentti sisältää käännetyn ohjelmakoodin sisältö
Tietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Rekursio Rekursion käyttötapauksia Rekursio määritelmissä Rekursio ongelmanratkaisussa ja ohjelmointitekniikkana Esimerkkejä taulukolla Esimerkkejä linkatulla listalla Hanoin
Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:
Merkkijonot C-kielessä merkkijono on taulukko, jonka alkiot ovat char -tyyppiä. Taulukon viimeiseksi merkiksi tulee merkki '\0', joka ilmaisee merkkijonon loppumisen. Merkkijono määritellään kuten muutkin
Moduli 5: Kehittyneitä piirteitä
C! : Kehittyneitä piirteitä 19.4.2016 Aikataulusta 5. harjoituskierroksen määräaika: pe 22.4. Maari-C keskiviikkoisin ja torstaisin (12-14) Ti 26.4. Harjoitustentti (eli kertausluento) Normaalin luennon
Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla:
KERTAUSTEHTÄVIÄ Tietue Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla: struct henkilotiedot char nimi [20]; int ika; char puh [10]; ; Edellä esitetty kuvaus määrittelee
Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.
2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet
Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot
Tiedosto yhteenkuuluvien tietojen joukko, joka on tavallisesti talletettu pysyväismuistiin muodostuu tietueista, jotka voivat olla keskenään samanlaisia tai vaihdella tyypiltään tiedostot ovat joko tekstitiedostoja
C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys
Loogisia operaatioita - esimerkkejä Tänään on lämmin päivä ja perjantai Eilen satoi ja oli keskiviikko tai tänään on tiistai. On perjantai ja kello on yli 13 Ei ole tiistai tai ei sada. Ei pidä paikkaansa,
Algoritmit ja tietorakenteet / HL 1 Copyright Hannu Laine. Lista. Yleistä
Algoritmit ja tietorakenteet / HL 1 Lista Yleistä Lista, pino ja jono ovat abstrakteja tietotyyppejä, joilla on yleistä käyttöä. Niitä voidaan hyödyntää mitä erilaisimmissa probleemoissa ja sovelluksissa.
Osoittimet ja taulukot
Osoittimet ja taulukot Hannu Laine Copyright Hannu Laine Osoittimet int main (void) { int a; int *p; //p on osoitinmuuttuja p = &a; *p = 10; printf( %d, *p); //tulostuu muuttujan a sisältö scanf( %d, p);
Rakenteiset tietotyypit Moniulotteiset taulukot
C! Rakenteiset tietotyypit Moniulotteiset taulukot 22.2.2018 Agenda Rakenteiset tietotyypit Vilkaisu 6. kierroksen tehtäviin Moniulotteiset taulukot Esimerkki Seuraava luento to 8.3. Ilmoittautuminen ohjelmointikokeeseen
1.1 Pino (stack) Koodiluonnos. Graafinen esitys ...
1. Tietorakenteet Tietorakenteet organisoivat samankaltaisten olioiden muodostaman tietojoukon. Tämä järjestys voidaan saada aikaan monin tavoin, esim. Keräämällä oliot taulukkoon. Liittämällä olioihin
C-kieli mahdollistaa hyvin tiiviin ja samalla sekavan tavan esittää asioita, kuitenkin hyvän ohjelman tulisi olla mahdollisimman helppolukuinen ja
1. C-kieli yleiskäyttöinen ohjelmointikieli, standardoitu 1990. siirrettävä laiteläheinen pieni ydin, monimutkaiset kokonaisuudet rakennetaan aliohjelmakirjastojen avulla. direktiivit ja esikääntäjien
ICS-C2000 Tietojenkäsittelyteoria Kevät 2016
ICS-C2000 Tietojenkäsittelyteoria Kevät 2016 Kierros 6, 22. 26. helmikuuta Huom: arviointiviikolla 15. 19.2. ei ole laskuharjoituksia! Demonstraatiotehtävien ratkaisut D1: (a) Osoita, että seuraava yhteydetön
Muuttujien roolit Kiintoarvo cin >> r;
Muuttujien roolit Muuttujilla on ohjelmissa eräitä tyypillisiä käyttötapoja, joita kutsutaan muuttujien rooleiksi. Esimerkiksi muuttuja, jonka arvoa ei muuteta enää kertaakaan muuttujan alustamisen jälkeen,
C-ohjelmointi, syksy Modulaarinen ohjelmointi. Luento C-ohjelmointi Syksy
, syksy 2007 Modulaarinen ohjelmointi Luento 9 10.10.2007 Syksy 2007 1 Sisältö Modulaarisuus C:ssä Käännösyksikkö ja otsaketiedosto Makefile Syksy 2007 2 1 Ison ohjelman toteuttaminen Kokonaisuus on jaettava
#include <stdio.h> // io-toiminnot. //#define KM_MAILISSA int main( ){
demo1.c 30/09/15 08:19 #include // io-toiminnot //#define KM_MAILISSA 1.609 int main( ){ double mailit = 0.0; double kilometrit; const double KM_MAILISSA = 1.609; printf("anna maililukema > ");
Modulaarinen ohjelmointi
C-ohjelmointi Modulaarinen ohjelmointi Viikko 6 1 Sisältö Modulaarisuus C:ssä Käännösyksikkö ja otsaketiedosto Makefile 2 Ison ohjelman toteuttaminen Kokonaisuus on jaettava hallittaviin osiin Toiminnallisia
Demo 6 vastauksia. 1. tehtävä. #ifndef #define D6T1 H D6T1 H. #include <iostream> using std::ostream; using std::cout; using std::endl;
Demo 6 vastauksia 1. tehtävä #ifndef #define D6T1 H D6T1 H #include using std::ostream; using std::cout; using std::endl; #include using std::string; 10 template class
1. luento. Ohjelmointi (C) T0004 Syksy 2003. 1. luento. 1. luento. 1. luento. 1. luento. kurssin sisältö ja tavoitteet työmuodot.
EVTEK Teknillinen ammattikorkeakoulu Ohjelmointi (C) T0004 Syksy 2003 Olli Hämäläinen kurssin sisältö ja tavoitteet työmuodot luennot 1-2/2003 laboratorioharjoitukset 1-2/2003 kotitehtävät, laboratoriokerrat
Binäärioperaatiot Tiedostot ja I/O
C! Binäärioperaatiot Tiedostot ja I/O 8.3.2018 Tiedotteita Viimeinen luento to 29.3. Ohjelmointitehtävä, ohjelmointikoe ja niiden järjestelyt Ohjelmointikokeeseen ilmoittautuminen auki 2 .c tiedostot ja.h
Modulaarinen ohjelmointi Kertaus osoittimista
, kevät 2006 Modulaarinen ohjelmointi Kertaus osoittimista Luento 9 28.3.2006 Kevät 2006 Liisa Marttinen 1 Sisältö Modulaarisuus C:ssä Käännösyksikkö ja otsaketiedosto Makefile Kertaus osoittimista ja
Metaohjelmointia ja muuta hauskaa
Metaohjelmointia ja muuta hauskaa Juho Lauri C++11-seminaari Kevät 2012 Sisältö 1 Metaohjelmat ja -ohjelmointi 2 Funktiowrapperit ja sitominen 3 std::result of Metaohjelmat ja -ohjelmointi Ensimmäisiä
Tiedosto on yhteenkuuluvien tietojen joukko, joka tavallisimmin sijaitsee kiintolevyllä, muistitikulla tai jollakin muulla fyysisellä tietovälineellä.
Tiedostot Tiedosto on yhteenkuuluvien tietojen joukko, joka tavallisimmin sijaitsee kiintolevyllä, muistitikulla tai jollakin muulla fyysisellä tietovälineellä. C-kielessä syöttö ja tulostus kuvataan laiteriippumattomasti
1. Mitä seuraava ohjelma tulostaa? Vastaukseksi riittää yksi rivi joka esittää tulosteen. (6 p)
C- ohjelmoinnin peruskurssi, Tentti 28.5.2015 Lyhyt referenssi funktioista tehtäväpaperin lopussa. Paperilla on 5 tehtävää, joista useimmissa on muutama alikohta. Maksimipistemäärä on 30 pistettä. Kirjoita
Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti
C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) (Erittäin) helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Ei selvää että main funktion pitikin
JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?
JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,
Tietotyypit ja operaattorit
Tietotyypit ja operaattorit Luennossa tarkastellaan yksinkertaisten tietotyyppien int, double ja char muunnoksia tyypistä toiseen sekä esitellään uusia operaatioita. Numeeriset tietotyypit ja muunnos Merkkitieto
Tehtävä 1. TL5302 Olio-ohjelmointi Koe Malliratkaisuja. Tässä sekä a)- että b)-kohdan toimiva ratkaisu:
TL5302 Olio-ohjelmointi Koe 19.4.2005 Malliratkaisuja Tehtävä 1 Tässä sekä a)- että b)-kohdan toimiva ratkaisu: #include using namespace std; int main() int taul[5]=1,2,3,4,5; int *p,&r=taul[0];
2. C-kieli ja ongelmanratkaisu
2. C-kieli ja ongelmanratkaisu Taustaa Esimerkki C-kielisen ohjelman kehityksestä Kielen yleispiirteet Muuttujat Suoritettavat lauseet Tietotyypit ja lausekkeet Tietojen lukeminen ja tulostaminen 64 C
Attribuuttikieliopit
TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 3. toukokuuta 2011 Sisällys t Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti
Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti
C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) Toistaiseksi helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Vaikeaa eroavuudet Pythonin ja C:n
Osoittimet ja taulukot
C! ja taulukot 1.2.2018 Tiedotteita Tämän jälkeen taas pari väliviikkoa (tenttiviikko) Seuraava luento 22.2. Laskareita ei tenttiviikolla 12.2. 16.2. 2 ja muisti Muisti Keskusyksikkö Suorittaa muistissa
Binäärioperaatiot Tiedostot ja I/O
C! Binäärioperaatiot Tiedostot ja I/O 16.3.2017 Tiedotteita Määräaikoja pidennetty Myös 7. kierros uudestaan auki perjantaihin asti Seuraava ja viimeinen luento 30.3. Makrot, funktio-osoittimet Kokeen
6.3. AVR_rauta. EEPROM-muisti 09.12.2007 pva
6.3. AVR_rauta. EEPROM-muisti 09.12.2007 pva Experience is what causes people to make new mistakes instead of old ones... - Unknown Sisältö Yleistä EEPROM-rekisterit Protoilu-ohje EEPROMmista ja Fuse-biteistä
Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti
C! Perusteet 19.1.2015 Työkaluista Perinteinen: komentorivi + tekstieditori Editori: esimerkiksi Kate, Notepad++, Aquamacs (Emacs) Ohjelman kääntäminen ja suorittaminen komentoriviterminaalissa TMC - komentorivityökalu
int main(void) int **matrix; matrix : malloc(5 * sizeof(int *) ); *matrix : malloc(20 * sizeof(int) ); #include <stdlib.h> #include <stdio.
AS-0.1101 C-ohjelmoinnin peruskurssi / Tentti 29.08.2006 / Aki Hiisilä Vastaa viiteen kvsvmvkseen! Tentin arvosteluasteikko on 0-30 pistenä. Kaikkien kysymysten painoarvo on sama (6 pistettatehtava). Ohjeimointitehtät
A274101 TIETORAKENTEET JA ALGORITMIT
A274101 TIETORAKENTEET JA ALGORITMIT GRAAFITEHTÄVIÄ JA -ALGORITMEJA Lähteet: Timo Harju, Opintomoniste Keijo Ruohonen, Graafiteoria (math.tut.fi/~ruohonen/gt.pdf) GRAAFIN LÄPIKÄYMINEN Perusta useimmille
Plagioinnin tunnistaminen lähdekielisistä ohjelmista
Plagioinnin tunnistaminen lähdekielisistä ohjelmista Plagiointi- ja tutkimusetiikka seminaari 30.09.2003 Kirsti Ala-Mutka TTY/Ohjelmistotekniikka Sisältö Plagiointi ohjelmointikursseilla Tyypillisiä ulkoasumuutoksia
Moduli 4: Moniulotteiset taulukot & Bittioperaatiot
C! : Moniulotteiset taulukot & Bittioperaatiot 15.3.2016 Agenda Pieni kertausharjoitus Moniulotteiset taulukot Esimerkki taulukoista Tauko (bittitehtävä) Binäärioperaatioista Esimerkki (vilkaistaan IP
C++ rautaisannos. Kolme tapaa sanoa, että tulostukseen käytetään standardikirjaston iostreamosassa määriteltyä, nimiavaruuden std oliota cout:
C++ rautaisannos Kolme tapaa sanoa, että tulostukseen käytetään standardikirjaston iostreamosassa määriteltyä, nimiavaruuden std oliota cout: # include #include main ( ) main (
Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta
C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus
2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)
2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi
815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 4 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten lauseisiin, lausekkeisiin ja aliohjelmiin liittyvät kysymykset. Tehtävä 1. Mitä
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.
Dynaaminen muisti. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät 2017.
C! Dynaaminen muisti 9.2.2017 Agenda Kertausta merkkijonoista Dynaaminen muisti Valgrind-perusteet ja esimerkkejä Seuraava luento to 2.3. Ei harjoituksia arviointiviikolla 13.2. 17.2. 2 Palautetta merkkijonoihin
Dynaamiset tietorakenteet
1 Dynaamiset tietorakenteet Muuttujien sijaintipaikat ja muut ominaisuudet Kuten tiedetään, muuttujan määrittely tarkoittaa tilan varausta muuttujalle. Tämä tila voidaan varata eri paikoista. Periaatteessa
// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.
Lue kukin tehtävänanto huolellisesti ja kokonaisuudessaan ennen kuin aloitat vastaamisen. Kustakin tehtävästä voi saada 0 6 pistettä. Tentin läpipääsyraja on 12 / 24 pistettä. Ratkaisut palautetaan WETO-järjestelmään
ITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 22. huhtikuuta 2016 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille! Kirjoittamasi luokat, funktiot ja aliohjelmat
Java-kielen perusteet
Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero
Efficiency change over time
Efficiency change over time Heikki Tikanmäki Optimointiopin seminaari 14.11.2007 Contents Introduction (11.1) Window analysis (11.2) Example, application, analysis Malmquist index (11.3) Dealing with panel
Modulaarisessa ohjelmoinnissa jaetaan ohjelma osiin (moduuleihin), jotka ovat yksinkertaisia ja lyhyitä.
3. Funktiot Modulaarisessa ohjelmoinnissa jaetaan ohjelma osiin (moduuleihin), jotka ovat yksinkertaisia ja lyhyitä. Modulaarisuudella pyritään parantamaan ohjelman ymmärrettävyyttä, testattavuutta sekä
Laiteläheinen C-kieli osa 1 pva
Laiteläheinen C-kieli osa 1 pva 12.7.2016 Osion sisältö Ohjelmoimaan oppii vain itse tekemällä Ensimmäinen projekti ja ensimmäinen ohjelma hello.c Oletus Sinulla on käytössäsi 1. GNU/Linux (Mint) pöytäkone
LAS-TIEDOSTON SISÄLTÖ LIITE 2/1
LAS-TIEDOSTON SISÄLTÖ LIITE 2/1 LAS-TIEDOSTON SISÄLTÖ Las-tiedoston version 1.4 mukainen runko koostuu neljästä eri lohkosta, ja jokaiseen lohkoon voidaan tallentaa vain standardissa sovittua tietoa ja
C-ohjelmoinnin peruskurssi. Pasi Sarolahti
C! C-ohjelmoinnin peruskurssi Pasi Sarolahti 12.1.2017 presemo.aalto.fi/c17 1/12/17 Mikä C? 3 Ken Thompson & Dennis Ritchie http://www.computerhistory.org/fellowawards/hall/bios/ken,thompson/ 4 Mikä C?
Moduli 2: Osoittimet ja taulukot. Joel Huttunen
: Osoittimet ja taulukot 26.1.2016 Moduli 1 yhteenvetoa laskuharjoituksista (PS: palautteen saa jättää myös suomeksi jos haluaa) Ongelmia ympäristön asennuksessa Hoitakaa kuntoon ajoissa, niin loppukurssilla
VIII. Osa. Liitteet. Liitteet Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto
Osa VIII Liitteet Liitteet A B C Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto Osa VIII A. Liite Operaattoreiden suoritusjärjestys On tärkeää ymmärtää, että operaattoreilla on prioriteettinsa,
C-ohjelmoinnin peruskurssi. Pasi Sarolahti
C! C-ohjelmoinnin peruskurssi Pasi Sarolahti 4.6.2018 Mikä C? 4 Ken Thompson & Dennis Ritchie http://www.computerhistory.org/fellowawards/hall/bios/ken,thompson/ 5 C vs Python Python friends = ['john',
Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.
1 Luokka Murtoluku uudelleen Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista. Sievennettäessä tarvitaan osoittajan ja nimittäjän suurin yhteinen tekijä (syt).
Ohjeet. AS C-ohjelmoinnin peruskurssi Aalto-yliopiston sahkotekniikan korkeakoulu Tentti , Raimo Nikkila
AS-0.1103 C-ohjelmoinnin peruskurssi Aalto-yliopiston sahkotekniikan korkeakoulu Tentti 15.05.2013, Raimo Nikkila Ohjeet Kaikki ohjelmointitehtavat tulee toteuttaa C-kielella hyvaa ohjelmointityylia noudattaen.
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 3.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.2.2010 1 / 36 Esimerkki: asunnon välityspalkkio Kirjoitetaan ohjelma, joka laskee kiinteistönvälittäjän asunnon
2 Haku ja lajittelu. 2.1 Luvun hakeminen taulukosta X?? n-1. Haku ja lajittelu 35
Haku ja lajittelu 35 2 Haku ja lajittelu Tässä luvussa käsitellään tiedon hakemista taulukosta sekä taulukon lajittelua. Useista erilaisista lajittelumenetelmistä on kirjaan otettu suurehko osa. Lajittelumenetelmien
TAITAJA 2007 ELEKTRONIIKKAFINAALI 31.01-02.02.07 KILPAILIJAN TEHTÄVÄT. Kilpailijan nimi / Nro:
KILPAILIJAN TEHTÄVÄT Kilpailijan nimi / Nro: Tehtävän laatinut: Hannu Laurikainen, Deltabit Oy Kilpailutehtävä Kilpailijalle annetaan tehtävässä tarvittavat ohjelmakoodit. Tämä ohjelma on tehty laitteen
C-ohjelmointi: Osoittimet
C-ohjelmointi: Osoittimet Liisa Marttinen & Tiina Niklander 22.2.2005 Muistinhallinta Java vs C Luokka on viittaustyypin määritelmä ja olio on viittaustyypin ilmentymä Muistinhallinta on implisiittistä.
Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1
3. Komponentit ja rajapinnat 3.1 Komponenttien idea: ohjelmistotuotannon rationalisointi 3.2 Mikä on ohjelmistokomponentti? 3.3 Komponentit ohjelmistoyksikköinä 3.4 Rajapinnat 3.6 Komponenttien räätälöinti
Luennon sisältö Tyypit int, char, float, double signed, unsigned short, long Vakiot const Rakenteet if, for, while, switch, do-while Syöttö ja tulostu
C-kurssi Viikko 1: tyypit, rakenteet, makrot Luennon sisältö Tyypit int, char, float, double signed, unsigned short, long Vakiot const Rakenteet if, for, while, switch, do-while Syöttö ja tulostus Makrot
AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin
AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin Raimo Nikkilä Aalto-yliopiston sähkötekniikan korkeakoulu - Automaation tietotekniikan tutkimusryhmä 17. tammikuuta 2013
C++11 Syntaksi. Jari-Pekka Voutilainen Jari-Pekka Voutilainen: C++11 Syntaksi
1 C++11 Syntaksi Jari-Pekka Voutilainen 13.4.2012 2 Range-for Iteroi säiliön kaikki alkiot for-silmukassa. Säiliöltä vaaditaan begin- ja end-iteraattorit. Pätee kaikille C++11 STL-säiliöille, taulukoille,
if-lauseen yksinkertaisin muoto on sellainen, missä tietyt lauseet joko suoritetaan tai jätetään suorittamatta.
if- valintarakenne Yksittäisen vaihtoehdon valinta if-lauseen yksinkertaisin muoto on sellainen, missä tietyt lauseet joko suoritetaan tai jätetään suorittamatta. Syntaksi: if (ehto) lauseita; Aaltosulkeiden
\+jokin merkki tarkoittaa erikoismerkkiä; \n = uusi rivi.
1. Johdanto 1.1 Yleistä Suurten ohjelmien organisointi vaikeaa C:ssä. 1980 Stroustrup lisäsi C:hen olio-ohjelmoinnin (OOP = Object Oriented Programming). C C++: C-ohjelma on (muutamia poikkeuksia lukuunottamatta)
21. oppitunti. Esikäsittelijä. Osa. Esikäsittelijä ja kääntäjä
Osa VI 21. oppitunti Esikäsittelijä Lähdekooditiedostoihin kirjoitetaan pääosin C++ -koodia. Ne käännetään kääntäjän toimesta ajettaviksi ohjelmiksi. Ennen kääntäjän osallisuutta ajetaan kuitenkin esikäsittelijä,
Huonon suunnittelun oireita. Hajuja ja sääntöjä. Hyvän suunnittelun periaatteet. Paha haju
Hajuja ja sääntöjä OA2005 Huonon suunnittelun oireita Kankeus suunnitelmaa on vaikea muokata. Hauraus suunnitelma on helppo rikkoa. Liikkumattomuus suunnitelmaa on hankala uudelleenkäyttää. Viskositeetti
Ohjelmoinnin jatkokurssin opetuksen kehitys
Lappeenrannan teknillinen yliopisto Tuotantotalouden tiedekunta Tietotekniikan koulutusohjelma Kandidaatintyö Ohjelmoinnin jatkokurssin opetuksen kehitys Kandidaatintyön aihe on hyväksytty 18.3.2013 Työn
Apuja ohjelmointiin» Yleisiä virheitä
Apuja ohjelmointiin» Yleisiä virheitä Ohjelmaa kirjoittaessasi saattaa Visual Studio ilmoittaa monenlaisista virheistä "punakynällä". Usein tämä johtuu vain siitä, että virheitä näytetään vaikket olisi
Luennon sisältö. Taulukot (arrays) (Müldnerin kirjan luku 10) Yksiulotteiset taulukot. Mikä taulukko on? Taulukko-osoitin. tavallinen osoitin
, kevät 2006 Taulukot Yksiulotteiset taulukot Moniulotteiset taulukot Dynaamiset taulukot Binääritiedostot Luento 8 21.3.2006 Kevät 2006 Liisa Marttinen 1 Luennon sisältö Taulukoiden käsittelyä Yksiulotteiset
C-ohjelmointi, syksy 2006
, syksy 2006 Taulukot Yksiulotteiset taulukot Moniulotteiset taulukot Dynaamiset taulukot Binääritiedostot Luento 8 3.10.2006 Syksy 2006 1 Luennon sisältö Taulukoiden käsittelyä Yksiulotteiset taulukot
C-ohjelmointi, syksy Yksiulotteiset taulukot Moniulotteiset taulukot Dynaamiset taulukot. Binääritiedostot. Luento
, syksy 2006 Taulukot Yksiulotteiset taulukot Moniulotteiset taulukot Dynaamiset taulukot Binääritiedostot Luento 8 3.10.2006 Syksy 2006 1 Luennon sisältö Taulukoiden käsittelyä Yksiulotteiset taulukot
Ohjelmointiharjoituksia Arduino-ympäristössä
Ohjelmointiharjoituksia Arduino-ympäristössä Yleistä Arduino-sovelluksen rakenne Syntaksi ja käytännöt Esimerkki ohjelman rakenteesta Muuttujat ja tietotyypit Tietotyypit Esimerkkejä tietotyypeistä Ehtolauseet
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.2.2011 1 / 37 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti
13. Loogiset operaatiot 13.1
13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.
Kielioppia: toisin kuin Javassa
Object Pascal Pascal kielen oliolaajennus (Inprise/Borland:n oma) luokat Voit uudelleenkäyttää luomiasi objekteja esim. komponentteja Periytyminen Kielioppia: toisin kuin Javassa Ei eroa isojen ja pienien
ASCII-taidetta. Intro: Python
Python 1 ASCII-taidetta All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/18cplpy to find out what to do.