-ohjelmointikurssi luentomoniste ja tehtävät
|
|
- Kirsti Ketonen
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 -ohjelmointikurssi luentomoniste ja tehtävät
2 Sisällysluettelo C++-KIELESTÄ...2 KONEKIELI JA LAUSEKIELI...3 C++-KIELEN OHJELMAN RAKENNE...4 TYYPIT JA MUUTTUJAT...6 OPERAATTOREISTA...8 TYYPPIMUUNNOKSET...11 FUNKTIOT...13 MUUTTUJIEN NÄKYVYYSALUEET...15 SYÖTTÖ...17 EHTOLAUSE IF...19 SWITCH-RAKENNE...24 SILMUKAT...25 TAULUKOT...27 MERKKIJONOT : CHAR-TAULUKKO...28 MERKKIJONOT : STRING...30 SUDENKUOPPIA C:SSÄ JA C++:SSA...32 ESIMERKKI KIRJASTOFUNKTIOIDEN KÄYTÖSTÄ...34 LIITE A: ASCII -TAULUKKO...35 LIITE B: TYYPPIEN TARKENNUKSET...36 LIITE C: VUOKAAVION SYMBOLIT...37 ERIKOISTEHTÄVIÄ...38 LÄHDELUETTELO
3 C++-kielestä Kehittänyt Bjarne Stroustrup Laajalti käytetty, eräänlainen teollisuusstandardi Lähes jokaiseen käyttöjärjestelmään saatavilla C++-kääntäjä C++ on tarpeeksi monipuolinen monimutkaistenkin rakenteiden toteuttamiseen C++ on kehitetty C-kielestä. Pieniä yksityiskohtia lukuun ottamatta C++ on C -ohjelmointikielen laajennus. Miksi C valittiin C++:n pohjaksi? Miljoonia rivejä ohjelmia ja kirjastofunktioita on tehty C:llä, joita voidaan käyttää C++:ssa, koska C++ on linkitettävästi yhteensopiva ja syntaktisesti samanlainen kuin C. On olemassa satoja tuhansia ohjelmoitsijoita jotka käyttävät C:tä, joiden tarvitsee oppia vain C++:n uudet piirteet. C++:aa ja C:tä tullaan käyttämään sekaisin samoissa systeemeissä vuosikausia, joten erojen täytyi olla joko erittäin suuria tai pieniä minimoidakseen virheet ja ohjelmistojen sekavuutta. C:n kirjastoja voidaan käyttää C++ -ohjelmassa, ja useimpia C- ohjelmointityökaluja voidaan käyttää myös C++ -ohjelmointiin. C++ on saanut vaikutteita myös mm. kielistä BCPL, Simula67, Algol68 ja Ada. Mikä C++ on? parempi C tukee datan kätkemistä tukee olio-ohjelmointia yms. 2
4 Konekieli ja lausekieli Konekieli muodostuu ykkösen ja nollien muodostamista käskyistä. Eri ohjelmointikielillä kirjoitetut ohjelmat joudutaan aina kääntämään konekieleksi, koska tietokone ei ymmärrä muita kieliä. Lähinnä konekieltä on symbolinen konekieli eli assembly, jossa jokaista käskyä vastaa lyhyt kirjainyhdistelmä ja muistiosoite. Assembly vaatii kuitenkin yksityiskohtaista tuntemusta tietokoneen sisäisestä rakenteesta ennen kuin sillä saa aikaan ohjelmia, ja on vaivalloinen ja virhealtis käyttää. Lausekieltä on helpompi käyttää, koska se muistuttaa enemmän luonnollista kieltä. Esimerkkinä näistä ovat C, C++, Java, Ada, Pascal ja BASIC. C++ on käännettävä ohjelmointikieli. Ero tulkattavan ja käännettävän ohjelmointikielen kohdalla on se, että käännettävä kieli käännetään ajettavaksi ohjelmaksi ennen ajoa, ja tulkattavaa kieltä käännellään sitä mukaa, kun ohjelman suoritus etenee. Eräs esimerkki tulkattavasta kielestä on BASIC. C++:lla ohjelman tekeminen tapahtuu suurin piirtein näin: Ohjelma kirjoitetaan eli koodataan, josta syntyy lähdekoodi (source) Lähdekoodi käännetään konekielelle Linkkeri yhdistää luodut tiedostot valmiiksi käännettyihin kirjastoihin ja muodostaa ajettavan ohjelman Ohjelma on valmis 3
5 C++-kielen ohjelman rakenne C++ -ohjelma koostuu funktioista ja muuttujista. Pääohjelma, eli mistä ohjelmaa aletaan ajamaan on funktio main. Esimerkki: #include <iostream.h> int main () { cout << Hello World << endl; Tämä ohjelma tulostaa ruudulle Hello World ja rivinvaihdon. ( endl tarkoittaa rivinvaihtoa ja vastaa C:n rivinvaihtomerkkiä \n. Muita erikoismerkkejä ovat mm. \t tabulaattori ja \b backspace ). Rivillä 1 #include liittää ohjelmaan mukaan kirjaston iostream.h, joka sisältää mm. funktion cout. (Kirjaston (library) ideana on laajentaa kieltä niin, että joukko pieniä ohjelmia tallennetaan funktioiksi kirjastoon, joka on sitten kenen tahansa käytettävissä.) Ruudulle tulostaminen tapahtuu cout:lla rivillä 3. Funktion main tulee palauttaa arvonaan jokin kokonaisluku, kuten rivillä 4:. Jokainen lause loppuu puolipilkkuun (;). Poikkeuksen muodostavat #:lla alkavat ns. esiprosessorin direktiivit, esim #include ja aaltosulut {. Funktioilla on esittelyosa ja määrittelyosa. Esittelyosassa määritellään funktion muuttujat ja määrittelyosa sisältää suoritettavat lauseet. Esittelyosan tulisi olla ennen määrittelyosaa. (C:ssa pakko). Funktioiden ja muuttujien niminä kannattaa käyttää tavallisia kirjaimia, mutta ei skandinaavisia merkkejä, välilyöntejä tai erikoismerkkejä. 4
6 Tehtäviä 1. Kirjoita ohjelma Hello World koneellesi ja aja se. 2. Muokkaa Hello World ohjelma niin, että se tulostaa nimesi. 3. Ota pois puolipilkku cout- lauseen lopusta, käännä ohjelma ja katso, mistä kääntäjä herjaa. 4. Muuta ohjelmaa niin, että World -merkkijono tulostuu omalle rivilleen ( vihje: endl ) 5. Muuta ohjelmaa niin, että tulostat Hello World kahdella eri cout -käskyllä. 6. Lisää ohjelmaan rivi, joka tulostaa merkkijonon toinen rivi. 7. Mitä virheitä seuraavassa koodinpätkässä on? Voit kokeilla myös kääntää ohjelmaa. #include <iostream.h> int main () { cout Introduction to C++ programming language << endl; return 5
7 Tyypit ja muuttujat C:ssä ja C++:ssa jokaisella muuttujalla tulee olla tyyppi. Perustyyppejä ovat seuraavat: int char float double kokonaisluku merkki desimaaliluku (liukuluku) tarkempi desimaaliluku kuin float Esim. int luku; char merkki; int a=1; a=1; // kokonaisluvun esittely // merkin esittely // luvun a alustus // sijoitus muuttujaan a Tyyppeihin voi myös lisätä tarkentimia (short, long, signed, unsigned, ks. liite B). Muuttujat täytyy esitellä ennen käyttöä ja ne voidaan alustaa esittelyn yhteydessä. Esimerkki ohjelmasta, jossa käsitellään muuttujaa. 1 #include <iostream.h> 2 int main () { 3 int a; // esittely 4 a = 1; // sijoitus 5 cout << a; // luvun tulostus 6 7 Ohjelmaan voidaan lisätä kommentteja koodin havainnollistamiseksi ja yleensäkin selittämään, mitä kukin osa tekee. Kommentti C++:ssa alkaa // -merkillä ja loppuu rivinvaihtoon. // tässä on kommentti Rivillä 3 esitellään kokonaislukumuuttuja a. Rivillä 4 sijoitetaan muuttujaan a luku 1 ja rivillä 5 tulostetaan a. Rivillä 5: cout huomaa automaattisesti minkä tyyppinen muuttuja on tulostettavana. cout:lla voi tulostaa myös useammat luvun, merkin tai merkkijonon samalla rivillä. Nämä erotetaan toisistaan << -merkinnällä. Merkkien (char) alustus tapahtuu samaan tapaan kuin lukujen. Huomaa :n käyttö sijoituksessa! Merkkijonoihin palataan taulukoiden yhteydessä. Esim. char kirjain = Q ; cout << kirjain; 6
8 Merkkejä voidaan vertailla samaan tapaan kuin lukuja. Vertailu tapahtuu ASCII-taulukon* merkkejä vastaavien lukujen avulla. Tätä voidaan käyttää hyväksi mm. aakkostamisessa. * ks. liite A Tehtäviä 1. Tee ohjelma, joka esittelee muuttujan (int) a, sijoittaa siihen luvun 3 ja tulostaa a:n arvon. 2. alustaa muuttujan a 3:lla, ja tulostaa a:n arvon tulostaa luvun esittelee muuttujan (char) c, sijoittaa siihen kirjaimen B ja tulostaa muuttujan c. 7
9 Operaattoreista Laskujärjestyksen nyrkkisääntönä voisi sanoa, että ensimmäisinä suoritetaan (evaluoidaan) sulkujen sisältö (), sitten laskutoimitukset *, /, %,... ja sitten laskutoimitukset +, -,... siten, että samanarvoiset lasketaan oikealta vasemmalle. Esim. lauseessa 1+2*3 lasketaan ensin 2*3, joka lisätään sitten lukuun 1, lopullinen tulos on siis 7, kun taas (1+2)*3 tuottaisi luvun 9. Taulukossa operaattorit ovat järjestyksessä (ensin käsitellään ylinnä olevat). Kaikkia taulukon operaattoreita ei ole vielä käsitelty, joten ei syytä paniikkiin. () [] sulkeet, taulukko! negaatio (NOT) * / % kertominen, jakolasku, jakojäännös + - summa, vähennys < <= > >= pienempi kuin, pienempi tai yhtäsuuri, suurempi kuin, suurempi tai yhtäsuuri ==!= yhtäsuuri, erisuuri && JA (AND) TAI (OR) = sijoitus Kryptisimmät operaattorit ovat jätetty pois lähinnä koska niillä saa aikaan täysin käsittämättömän näköistä koodia. Myös pointtereita ei käsitellä tässä. Mikäli olet epävarma laskujärjestyksestä, käytä sulkuja. Sulkuja voi käyttää myös selkeyttämään koodin rakennetta. Huom! = on sijoitus ja == on yhtäsuuruusvertailu! Tämä on yksi yleisimmistä sudenkuopista C:ssä ja C++:ssa, varsinkin if -ehtolauseissa. Myös & ja &&:n sekä ja :n kanssa on oltava tarkkana, koska & ja ovat bittikohtaisia operaatioita (jätetään väliin tässä). C:ssa totuusarvot määritetään siten, että 0 on epätosi ja kaikki muut arvot tosia. Kokonaisluvuilla (integer) jaettaessa tulos pyöristyy alaspäin. Esim. 8 / 3 = 2. 8
10 Esimerkki: #include<iostream> int main () { int a; // esittely int b; a = 2; // sijoitus b = 3; cout << (a + b * a) << endl; // lasku ja tulostus Muuttujiin voi sijoittaa myös toisia muuttujia. #include<iostream> int main () { int a = 2; // alustus int b = 3; int c = 0; c = a + b * a; cout << c << endl; Alustamattomista muuttujista saattaa olla yllättävääkin päänvaivaa laajemmissa ohjelmissa. Niiden arvo saattaa olla aivan mitä tahansa. (Kokeilepa jättää esim. edellisestä esimerkistä b:n alustus pois). Tämä johtuu siitä, että muuttujaa esitellessä vain varataan vapaasta muistista muuttujan tyypin mukainen tavumäärä. Muuttujaan sijoitettaessa varattu muistialue käytetään. 9
11 Tehtäviä: Muuttujat ja operaattorit 1. Tee ohjelma, joka tulostaa lukujen 2, 5 ja 7 summan esittelee muuttujat a, b ja c, sijoittaa niihin arvot 4, 10 ja 50, ja tulostaa muuttujien summan. 3. tulostaa π:n likiarvon (sopivalla tarkkuudella) alustaa muuttujan p π:n likiarvolla, ja tulostaa p:n 5. Mikä virheitä seuraavassa ohjelmassa on? #include<iostream>; int main () { char aakkonen = a ; cout Variable is now << aakkonen << endl 6. Tee ohjelma, joka tulostaa lukujen 5, 7 ja 9 keskiarvon lukujen 6, 7 ja 9 summan keskiarvon. Vihje 7. Voit jakaa desimaaliluvulla tai käyttää float -typpisiä muuttujia. 10
12 Tyyppimuunnokset Jotta erityyppisiä muuttujia voitaisiin käsitellä samassa lauseessa, täytyy ne muuttaa samantyyppisiksi. Kääntäjä tekee myös automaattisesti tyyppimuunnoksia (joista useimmista ei ohjelmoijan tarvi päätään vaivata, mutta joistain saattaa tulla yllättävääkin päänvaivaa). Ohjelmoijan tekemät muunnokset tehdään ns. cast -operaattorilla. Muuttuja esitellään eri tyyppisenä laittamalla muuttuja sulkeisiin tyypin jälkeen. Huom: tämä ei muuta itse muuttujan tyyppiä! Esim. int t = 42; cout << char (t); Tulostaa lukua 42 vastaavan ASCII -merkin *. Muuttuja t on edelleen tyyppiä int. Esimerkki, jossa desimaaliluku tulostetaan kokonaislukuna: float p = ; cout << int (p); Tulostaa ruudulle 3 (int). Muista, että kokonaisluvuksi muutettaessa desimaaliluku pyöristyy alaspäin. Esimerkki, joka tulostaa ruudulle kirjaimen Q : int n = 81; char m; m = char (n); cout << m; m on nyt lukua 81 vastaava merkki Q ja n edelleen kokonaisluku
13 Tehtäviä: Typpimuunnokset 1) Tee ohjelma, joka tulostaa lukua 65 vastaavan merkin ( int char ). 2)... lukua 35 vastaavan merkin. 3)... lukua 62 vastaavan merkin. 4)... merkkiä T vastaavan luvun ( char int ). 5)... merkkiä [ vastaavan luvun. 6)... vastaavan luvun. 7)... desimaaliluvun (float) 8.1 kokonaislukuna (int). 8)... desimaaliluvun 8.99 kokonaislukuna. Vihjeet luku ASCII 35 # 62 > 65 A 84 T 91 [ ( Liitteessä A on C++:lla tehty ASCII -kartta ). 12
14 Funktiot Ohjelman kasvaessa tulee vastaan tilanne, jossa esim. samaa operaatiota vaaditaan useammassa paikassa. Funktioita voidaan kutsua pääohjelmasta (main), ja niille voidaan välittää arvoja. Funktion yleinen muoto: paluutyyppi funktio ( argumentit ) {... Itse main -funktio on int -tyyppinen, joten se palauttaa jonkin lukuarvon. Funktion paluuarvo palautetaan komennolla return. main -funktion paluuarvo 0 tarkoittaa sitä, että ohjelman suoritus oli virheetön. void -tyyppinen funktio ei palauta mitään. Esimerkki, jossa pääohjelmasta kutsutaan funktiota tulosta: #include<iostream> void tulosta () { cout << Pikkarainen << endl; int main () { tulosta(); Esim. #include<iostream> int summa ( int a, int b ) { return (a + b); int main () { int luku; luku = summa ( 1, 2 ); cout << luku << endl; Huomattavaa on, että funktion summa muuttuvat a ja b näkyvät vain funktion sisällä, eivätkä esim. main -ohjelmaan. summa palauttaa arvon, joka tässä esimerkissä on 3. Palautettu arvo sitten sijoitetaan pääohjelmassa muuttujaan luku ja tulostetaan. 13
15 Funktiolle summa annettua kahta kokonaislukua kutsutaan argumenteiksi. Jos funktion nimi koostuu useammasta sanasta, voidaan funktion nimessä käyttää alaviivaa yhdistelemään sanoja, esim. tulosta_ruudulle. Tehtäviä: Funktiot 1. Tee ohjelma Hello World! siten, että tulostus tapahtuu funktiossa tulosta, jota kutsutaan pääohjelmasta. 2. Tee funktio, joka palauttaa kolmen int -muuttujan summan kahden int -muuttujan tulon. 4. sille annetun ASCII-merkkiä vastaavan luvun. 5. nollan, jos sille annettu argumentti on kolmella jaollinen. 14
16 Muuttujien näkyvyysalueet Muuttujan näkyvyysalue tarkoittaa sitä osaa koodia, jossa muuttujaa voidaan käyttää. Tavallisesti muuttujan ovat lokaalisia (paikallisia). Aaltosulkujen { erottamassa kokonaisuudessa eli lohkossa esitellään lokaalit muuttujat. Lohkossa esitelty muuttuja näkyy myös lohkon alilohkoihin. Muuttujat syntyvät, kun ne esitellään ja häviävät, kun mennään alueelle, jossa ne eivät enää ole voimassa. Globaali muuttuja näkyy kaikkialla koodissa. Globaaliksi muuttujan tekee se, että se on kirjoitettu jokaisen funktion ulkopuolelle. Koska tällaisen muuttujan arvoa voidaan käsitellä missä paikassa hyvänsä, virheiden löytäminen virhetilanteissa voi olla työlästä. Vältä globaaleja muuttujia. Esim. float f; void trunc ( float x ) { int b;... int main () { float e;... muuttuja näkyvyysalue f globaali x funktiossa void trunc () b lohkossa void trunc () e pääohjelmassa globaali f pääohjelma e trunc -funktio x b 15
17 Tehtäviä: Muuttujien näkyvyysalueet 1. Mitkä ovat muuttujien a, c ja d näkyvyysalueet? #include<iostream> int a; void lisaa ( int c ) { a = a + c; int main () { int d; a = 0; d = 1; lisaa (d); 16
18 Syöttö Käyttäjän syötetietoja voidaan lukea käskyllä cin. Ohjelman ajaminen pysähtyy cin:n ajaksi ja käyttäjä voi tällöin antaa jonkin luvun, merkin tai merkkijonon ja sitten painaa return -näppäintä. Syöte sijoittuu cin >>:n ohjaamaan muuttujaan. Merkkijonoa luettaessa cin lukee välilyöntiin tai rivinvaihtoon saakka. Esimerkki ohjelmanpätkästä, joka esittelee muuttujan a ja sijoittaa siihen käyttäjän antaman luvun. int a; cin >> a; Esimerkki: Ohjelma, joka lukee luvun a ja tulostaa sen. #include<iostream> int main () { int a; cout << Anna luku << endl; cin >> a; cout << Luku oli: << a << endl; Esimerkki: Ohjelma, joka kysyy pallon sädettä ja tulostaa sen tilavuuden #include<iostream> float pii = ; float vol (float r) { // funktio vol palauttaa floatin return (4.0/3.0*pii*r*r*r); int main () { float r; cout << Anna säde: ; cin >> r; cout << endl << Pallon tilavuus = << vol(r) << endl; 17
19 Tehtäviä: Syöttö 1. Tee ohjelma, joka kysyy käyttäjältä lukua ja tulostaa sen kahta lukua ja tulostaa niiden summan ympyrän sädettä ja tulostaa sen pinta-alan. ( π r 2 ) 4. Tee ohjelma, joka kysyy suorakulmaisen kolmion kahta kateettia ja tulostaa kolmion hypotenuusan. Neliöjuurifunktio sqrt löytyy kirjastosta math.h. 18
20 Ehtolause if If -lause on muotoa if ( ehto ) { toteutetaan jos ehto on tosi else { toteutetaan jos ehto on epätosi Else-osa ei ole pakollinen. Esimerkki ohjelmanpätkästä, joka tarkistaa onko a:n arvo 1. Kuvassa 1 on sama esitetty vuokaaviona. (Vuokaavion symbolit ovat liitteessä C). int a = 1; if ( a == 1 ) { cout << a oli 1 << endl; Kuva 1 19
21 Toinen esimerkki: int a = 1; if ( a == 1 ) { cout << a oli 1 << endl; else { cout << ei ollutkaan << endl; Esimerkki ohjelmasta, joka vertailee kahden muuttujan arvoja: #include<iostream> int main () { int a; int b; a = 3; b = a - 1; if ( a > b ) { cout << a on suurempi kuin b << endl; Miksi seuraavat ohjelmanpätkät toimivat eri tavalla? if ( a == 0 ) { cout << a oli nolla << endl; // oikein if ( a = 0 ) { cout << a oli nolla << endl; // väärin Ehto voi myös olla moniosainen, jolloin eri osat erotetaan toisistaan loogisilla operaattoreilla. && JA (AND) TAI (OR)! EI (NOT) 20
22 Esim. if ( a == 1 && b == 1 ) {... // jos a on 1 JA b on 1 if ( a == 1 b == 1 ) {... // jos a on 1 TAI b on 1 if ( a!= 1 ) {... // jos a ei ole 1 if ( a == 3 && b!= 4 c == 12 ) {... if ( d == N ) {... // jos merkki d on N if ( d == Q d == d == \n ) {... // jos d on Q, välilyönti tai rivinvaihto Myös else-osan jälkeen voi olla if -lause. if ( ehto ) { jos ehto oli tosi else if ( toinen ehto ) { ellei ollut, niin jos toinen ehto oli tosi else { muussa tapauksessa 21
23 Tehtäviä: Ehtolauseet 1. Miten seuraavat if -lauseet toimivat? Oletetaan, että a ja b ovat tyyppiä int ja c char. if ( a > 6 ) {... if ( a == 0 ) {... else {... if ( (-3 < a) && (a < 3) ) {... if ( a!= b ) {... if ( a > b ) {... if ( c == N c == R ) {... if ( c == v ) {... else if ( c == w ) {... else {... if ( c >= 0 && c <= 9 ) {... if (! (a == b) ) { 2. Miten muotoilisit seuraavat if -lauseiksi? Oletetaan, että a ja b ovat tyyppiä int. Muista = ja == :n ero ja että voit yhdistellä JA ja TAI -lauseita. a) a on nolla b) a on yhtäsuuri kuin 7 c) a on pienempi kuin 16 d) a on suurempi kuin 16 e) a on suurempi tai yhtäsuuri kuin 0 f) a on pienempi tai yhtäsuuri kuin 0 g) a ei ole nolla h) a ei ole negatiivinen i) b on pienempi kuin 10 j) a on b k) a ei ole b l) a on suurempi kuin b m) a on 1 tai 2 n) a on 1, 3 tai 5 o) a on -10, b tai 10 p) a on 0 tai suurempi kuin 127 q) 0 < a < b r) a on suurempi kuin 0 ja pienempi kuin b s) a on välillä t) a on välillä 0...b 3. Muuta seuraavat C++:n if-lauseiksi. Muuttuja c on tyyppiä char. 22
24 a) c on f b) c on q c) c on k tai p d) c on rivinvaihto ( \n ) e) c on tabulaattori ( \t ) f) c on (välilyönti, space) g) c on rivinvaihto tai tabulaattori h) c ei ole rivinvaihto i) c ei ole rivinvaihto eikä välilyönti ( ) j) c on ESC-näppäin ( ASCII merkki 27 ) k) c on numero ( ASCII -taulukon merkit 0 9 ) l) c on pieni kirjain ( ASCII -taulukon merkit a z ) m) c on iso kirjain ( ASCII -taulukon merkit A... Z ) n) c on pieni tai iso kirjain o) c ei ole numero p) c on alfanumeerinen merkki k) Vihje luentomonisteen tehtävässä. Toinen vihje: TAI-lauseilla tehty tarkistus saattaa olla työläs... p) Vihje: Alfanumeerisia merkkejä ovat numerot 0 9 sekä kirjaimet a z ja A...Z. Voit myös vilkaista kappaletta "Esimerkki kirjastofunktioiden käytöstä". Karkausvuosi Karkausvuodet ovat vuosilukuja, jotka ovat neljällä jaollisia. Erikoisasemassa ovat 100:lla jaolliset vuosiluvut, joista vain 400:lla jaollisiset ovat karkausvuosia. Jaollisuutta C++:ssa tarkastellaan jakojäännös-operaattorilla %. Jos jakojäännös on 0, luku on jaollinen jakajalla. Tee ohjelmanpätkä, joka kertoo, onko kokonaisluku (int) vuosi karkausvuosi. Esim. laskuoperaatio jakojäännös 8 % 1 = 0 8 % 2 = 0 8 % 3 = 2 8 % 4 = 0 8 % 5 = 3 8 % 6 = 2 8 % 7 = % 4 = % 4 = % 4 = 0 23
25 Switch-rakenne switch:n parametrinä olevaa muuttujaa (int) testataan, onko se jonkin case-sanan jälkeen tuleva vaihtoehto. Jos on, niin suoritetaan case-lohkon koodi. Sanalla break poistutaan switchrakenteesta. Mikäli se puuttuu, suoritus jatkuu seuraavaan case-lauseeseen. default-lohko (ei ole pakollinen) suoritetaan, jos mikään edellinen lohko ei täsmää. Esim. ( c on tyyppiä int ) switch ( c ) { case 1: cout << ykkönen << endl; break; case 2: cout << kakkonen << endl; break; default: cout << jokin muu << endl; Esim. ( c on tyyppiä char ) switch ( c ) { case + : a = a + 1; break; case - : a = a - 1; break; default: cout << # << endl; Tehtäviä: switch-rakenne 1. Tee ohjelma, joka kysyy käyttäjältä kokonaislukua väliltä 1-3 ja tulostaa luvun sanana. 2. Sama kuin 1, ja jonkin muun luvun kohdalla antaa virheilmoituksen. 3. Miten ensimmäisen esimerkin ohjelmanpätkä toimisi, jos case 1-lohkon break-komento puuttuu? 4. Tee ohjelma, jolla voi laskea yhteen-, vähennys-, kerto- tai jakolaskun (nelilaskin). Tarkista erikseen mahdollinen nollalla jakaminen. 24
26 Silmukat for -silmukka on muotoa: for ( alustus ; ehto ; askel ) { silmukan koodi Alustus tehdään vain silmukan alussa. Ehto ja askel toteutetaan joka kierroksella. Esim. ohjelmanpätkä, joka tulostaa luvut omille rivilleen. int a; for ( a = 1; a <= 10; a = a + 1 ) { cout << a << endl; Kuva 2 Esim. Sarjan summa saadaan laskettua seuraavasti: #include<iostream> int main () { int summa = 0; int k; for ( k = 1; k <= 10; k = k + 1 ) { summa = summa + k; cout << Summa oli << summa << endl; 25
27 while -silmukka on muotoa: while ( ehto ) { silmukka While-silmukkaa kierretään niin kauan, kuin ehto on tosi. Esimerkki ohjelmakoodista, joka tekee saman kuin edellinen for -silmukka. int a = 1; while ( a <= 10 ) { cout << a << endl; a = a + 1; do-rakenne eroaa while:sta siten, että silmukan koodi suoritetaan ehdosta riippumatta ainakin kerran. do { silmukka while ( ehto ); Silmukan toteutustapa valitaan käyttötarkoituksen mukaan. Silmukoissa on syytä olla tarkkana: on myös mahdollista tehdä silmukoita, jotka eivät lopu koskaan. Tehtäviä 1. Tee ohjelma, joka tulostaa for-silmukalla 10 rivillistä merkkijonoa **** tulostaa for -silmukalla luvut omille riveilleen luvut välilyönnillä erotettuna. 4. Tee tehtävien 1-3 silmukat while -tekniikalla parilliset luvut välillä (Huom: useampi tapa toteuttaa) lukusarjan 0, 3, 6, 9, Tee ohjelma, joka tulostaa aakkoset (a...z). Käytä tyyppimuunnosta. 8. Miten liitteen A ASCII -taulukko-ohjelma liittyy silmukoihin? Miten se toimii? Vihje: 8. ASCII -koodit ja 127 ovat merkkejä, jotka ohjelmassa ovat esitetty tulostettavassa muodossa. Control -näppäinyhdistelmiä merkitään ^-merkillä, esim control+a kirjoitetaan ^A. ASCII merkki 10 (^J) on newline, 13 (^M) vastaa returnia, ^H on backspace jne. 26
28 Taulukot Taulukko on tietorakenne, johon voidaan tallettaa useampia samantyyppisiä muuttujia. Taulukon muuttujia kutsutaan alkioiksi. Taulukon koko täytyy tietää jo käännösaikana. Käytännössä tämä tarkoittaa sitä, että taulukon koko pitää määritellä koodissa luvulla tai vakiolla. Esimerkki: luodaan taulukko taul, johon mahtuu 4 int -tyyppistä alkiota. int taul[4]; Taulukko voidaan myös alustaa luodessa, jolloin taulukon koko voidaan jättää kääntäjän huoleksi: int taul[] = { 1, 2, 3, 4 ; Esittelyn jälkeen taulukon arvoja voidaan käsitellä yksi kerrallaan. Taulukkoa käsitellään operaattorin [] avulla. Taulukon ensimmäisen alkio C:ssä ja C++:ssa nolla (0). taul[0] = 5; Ensimmäinen alkio on nyt 5. int a; a = taul[1]; a saa arvon 2. Tehtäviä 1) Tee ohjelma, joka luo int-tyyppisen taulukon table, jossa on 6 alkiota. a) Alusta table -taulukon luvuilla 1, 2, 3,... b) Sijoita table:n ensimmäiseen alkioon luku 99. (Ensimmäinen alkiohan oli paikassa [0]). c)... toiseen alkioon luku 10. d)... viimeiseen alkioon luku 1. ( Vihje: ei ole table[6]...) 2) Tee ohjelma, joka kysyy käyttäjältä kolmea lukua, ja sijoittaa ne taulukkoon. 3) Edellinen tehtävä for -silmukkaa käyttäen. 27
29 Merkkijonot : char-taulukko Char-taulukoilla toteutetut merkkijonot ovat taulukoita ( [] ), jotka loppuvat aina merkkiin \0 (NUL). Esimerkiksi merkkijono foobar on koneen muistissa muodossa: f o o b a r \0 Esimerkki: char array[] = foobar ; cout << array; Taulukon koko on kuitenkin tiedettävä jo käännösaikana. Tämä tarkoittaa sitä, että ohjelmoijan on pidettävä itse huolta siitä, että taulukon koko riittää joka käänteessä. Edellisessä esimerkissä taulukon koko jätettiin kääntäjän huoleksi. Taulukon koon ylitystä ei kääntäjä valvo mitenkään, vaan ohjelma sitten myöhemmin sekoilee tai/ja kaatuu. Taulukkoon saa myöhemmin sijoitettua merkkijonon strcpy:llä, joka löytyy kirjastosta string.h. Esim. char array[10]; strcpy ( array, foobar ); cout << array; Merkkijonoja vertaillaan strcmp -funktiolla (kirjastosta string.h). Jos strcmp palauttaa nollan, merkkijonot ovat samoja. Esim. char automobiili[] = Lada ; if ( strcmp(automobiili, Mosse ) == 0 ) {... Jos haluamme muuttaa merkkijonon ensimmäisen kirjaimen, se sijoitetaan merkkinä taulukon alkuun: array[0] = m ; m o o b a r \0 28
30 Käyttäjän syötteen voi lukea cin:llä. cin >> array; Tässä kohtaa voi mennä pieleen, miksi? Varsinkin strcat:a (string.h:sta) käytettäessä pitää varmistaa, että taulukossa todellakin on tilaa. strcat kopioi merkkijonon toisen merkkijonon perään. Esimerkki strcat:n käytöstä: char array[20]; strcpy ( array, "esim" ); strcat ( array, "erkki" ); Voit myös lukea merkkejä (välilyönti mukaan lukien) cin.getline:llä: char word[30]; cin.getline ( word, 30 ); // ei mene yli varatun tilan Tehtäviä: char-merkkijono 1. Tee ohjelma, joka alustaa char -taulukon merkkijonolla Wartburg ja tulostaa sen. 2. kysyy käyttäjän nimeä ja tulostaa sen. 3. kopioi merkkijonon 1500 merkkijonon Lada jälkeen ja tulostaa sen kysyy käyttäjältä tunnusta ja salasanaa ja tulostaa access granted, mikäli tunnus on jobe ja salasana mainframe. Muussa tapauksessa ohjelma tulostaa access denied. 29
31 Merkkijonot : string String-tyyppisen merkkijonon C++:ssa saat käyttöön seuraavasti: #include<string> String-merkkijono on C++:n yksi tapa toteuttaa merkkijono. Erona char-taulukkoon on, että string:iä käytetään hieman eri tavalla. Esim. #include<iostream> #include<string> int main () { string s = Hello, World! ; cout << s << endl; Stringejä voidaan liittää toisiinsa seuraavasti: string s1 = Hello, ; string s2 = World ; string s3 = s1 + + s2; Esimerkissä s3 alustetaan merkkijonoksi Hello, World. String-merkkijonojen vertailu tapahtuu == -operaattorilla: if ( s1 == s2 ) {... if ( s1 == Eastwood ) {... Käyttäjän syötteen lukeminen merkkijonoon tapahtuu cin:llä: string str; cin >> str; 30
32 Vielä yksi esimerkki: string str; cout << Please enter your name << endl; cin >> str; cout << Hello, << str <<! << endl; Tehtäviä: string 1) Tee ohjelma, joka sijoittaa string:iin s merkkijonon olio. 2)... liittää s:n perään merkkijonon -ohjelmointi ja tulostaa sen. 3) kysyy käyttäjän nimeä ja tulostaa sen. 4)... kysyy käyttäjältä tunnusta ja salasanaa ja tulostaa access granted, mikäli tunnus on jobe ja salasana mainframe. Muussa tapauksessa ohjelma tulostaa access denied. 31
33 Sudenkuoppia C:ssä ja C++:ssa Kokonaisluku int on kääntäjästä tai käyttöjärjestelmästä riippuen joko 16 tai 32-bittinen. (Näin ei ole esim. Javassa, jossa perustyypit ovat tarkemmin standardisoitu). 16:lla bitillä voidaan ilmaista lukua ja 32:lla bitillä lukua. Mikäli muuttuja ylittää lukualueen, kääntäjä ei ilmoita virhettä, vaan ohjelma antaa todennäköisesti virheellisiä tuloksia. Toisinaan etumerkillisyyskin voi tuottaa yllätyksiä; int onkin oletusarvoisesti tyyppiä signed (etumerkillinen), jolloin se on väliltä (16-bittisillä luvuilla). Esimerkkiohjelma lukualueen ylittämisestä: #include <iostream.h> int main () { signed short int a = ; cout << a << endl; a = a - 1; cout << a << endl; Indeksointi alkaa nollasta. Esimerkin ohjelma kääntyy ilman virheilmoituksia, mutta ajettaessa kirjoittaakin varatun muistin ulkopuolelle (mikä pidemmän päälle sekoittaa kaiken PC:ssä). Taulukon ensimmäinen alkio jää myös alustamatta, ja sen arvo saattaa olla mitä tahansa. #include <iostream.h> int main () { int array[3]; int a; for ( a = 1; a <= 3; a = a + 1 ) { array[a] = 0; == on vertailu ja = on sijoitus(operaattori). Esimerkin ohjelmanpätkä sijoittaa 1:n muuttujaan a, ja if-lause tulkitsee tämän olevan tosi. (C:ssa totuusarvot määritetään siten, että 0 on epätosi ja kaikki muut arvot tosia). if ( a = 1 ) { // tämä suoritetaan aina riippumatta a:sta Huom: char-tyyppisiä merkkijonoja ei voi suoraan verrata == -operaattorilla. 32
34 Näkyvyysalueiden kanssa on myös oltava tarkkana. C:n ja C++:n syntaksi sallii kirjoittaa mitä kryptisimmän näköisiä ohjelmia. Näitä ei ole tässä opetettu, koska lyhenteet voivat olla vaikealukuisia ja myös virhealttiita. Klassinen esimerkki on kaarisulkeiden jättäminen pois if -lauseessa. Esimerkiksi tämä toimii: if ( a == 1 ) cout << jep ;...mutta tämä suorittaa joka kerta sijoituksen a b: if ( a == 1 ) cout << jep ; a = b; 33
35 Esimerkki kirjastofunktioiden käytöstä Näillä ctype.h -kirjaston funktioilla näytetään tässä esimerkin avulla, miten pienissä ja yleisissä ongelmissa kannattaa käyttää kirjastoja. Näin vältytään myös matalan tason koodaukselta ja yleensäkin pyörän uudelleen keksimiseltä. Funktio Tarkistaa onko argumentti Selitys islower pieni kirjain Tests for lowercase character. isupper iso kirjain Tests for uppercase character. isalpha kirjain Classifies an alphabetical character. isdigit numero Tests for decimal-digit character. isalnum kirjain tai numero Tests for an alphanumeric character. iscntrl kontrollikoodi Tests for a control character. Esim. Tarkastellaan, onko merkki C kirjain: #include <iostream> #include <ctype.h> int main() { char c; c = 'C'; if ( isalpha(c) ) { cout << c << is alphabetical" << endl; else { cout << c << is not alphabetical" << endl; 34
36 Liite A: ASCII -taulukko 0 ^@ 1 ^A 2 ^B 3 ^C 4 ^D 5 ^E 6 ^F 7 ^G 8 ^H 9 ^I 10 ^J 11 ^K 12 ^L 13 ^M 14 ^N 15 ^O 16 ^P 17 ^Q 18 ^R 19 ^S 20 ^T 21 ^U 22 ^V 23 ^W 24 ^X 25 ^Y 26 ^Z 27 ^[ 28 ^\ 29 ^] 30 ^^ 31 ^_ 32 ' ' 33! 34 " 35 # 36 $ 37 % 38 & 39 ' 40 ( 41 ) 42 * , / : 59 ; 60 < 61 = 62 > 63? 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _ 96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z 123 { ~ 127 DEL 1 #include <iostream.h> // ASCII table v0.2 2 int main () { // by EP int a = 0; 4 cout << endl; 5 for ( a = 0; a <= 127; a = a + 1 ) { 6 cout << int(a) << " "; 7 if ( a>=0 && a<=31 ) { 8 cout << "^" << char ( a+64 ) ; 9 10 else if ( a==32 ) { 11 cout << "\' \'"; else if ( a==127 ) { 14 cout << "DEL"; else { 17 cout << char (a); cout << "\t"; cout << endl;
37 Liite B: Tyyppien tarkennukset int char float double kokonaisluku merkki desimaaliluku (liukuluku) tarkempi desimaaliluku kuin float short long signed unsigned pienentää lukualuetta suurentaa lukualuetta etumerkilliset luvut ei-negatiiviset luvut Tarkennin short sopii ainoastaan tyyppiin int. char hyväksyy vain tarkentimet signed ja unsigned. Muita rajoituksia ei ole. Tarkentimia voi myös yhdistellä: unsigned long int suurluku; 36
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
LisätiedotJava-kielen perusteet
Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero
LisätiedotOhjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka
LisätiedotAlkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)
Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,
LisätiedotPerusteet. 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
LisätiedotPerusteet. 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
LisätiedotSystem.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);
Kysy Karilta tai Kimmolta, jos tehtävissä on jotain epäselvää. Kerro WETOon liittyvät ongelmat suoraan Jormalle sähköpostitse (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja
LisätiedotPython-ohjelmointi Harjoitus 2
Python-ohjelmointi Harjoitus 2 TAVOITTEET Kerrataan tulostuskomento ja lukumuotoisen muuttujan muuttaminen merkkijonoksi. Opitaan jakojäännös eli modulus, vertailuoperaattorit, ehtorakenne jos, input-komento
LisätiedotKoottu 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
LisätiedotSystem.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);
Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Ohjelmointitehtävien osalta palautetaan
LisätiedotHarjoitus 3 (viikko 39)
Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Vältä liian pitkiä rivejä. Ohjelmointitehtävien
LisätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat
LisätiedotKääntäjän virheilmoituksia
OHJ-1101 Ohjelmointi 1e 2008-09 1 Kääntäjän virheilmoituksia Kun progvh2 ohjelma käännetään antaa tutg++ seuraavat virheilmoitukset ja varoitukset: proffa> tutg++ progvh2.cc progvh2.cc:29:13: warning:
LisätiedotOhjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen
Ohjelmointitaito (ict1td002, 12 op) Kevät 2009 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-kehitysympäristö Java-ohjelma ja luokka
LisätiedotMerkkijono 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
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 21.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 21.1.2009 1 / 32 Tyypeistä Monissa muissa ohjelmointikielissä (esim. Java ja C) muuttujat on määriteltävä ennen
LisätiedotHarjoitustyö: virtuaalikone
Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 20.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 20.1.2010 1 / 40 Arvon pyytäminen käyttäjältä Käyttäjän antaman arvon voi lukea raw_input-käskyllä. Käskyn sulkujen
Lisätiedot2. 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
LisätiedotOhjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:
1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri
Lisätiedot13. 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.
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen
LisätiedotJava-kielen perusteita
Java-kielen perusteita valintalauseet 1 Johdantoa kontrollirakenteisiin Tähän saakka ohjelmissa on ollut vain peräkkäisyyttä eli lauseet on suoritettu peräkkäin yksi kerrallaan Tarvitsemme myös valintaa
LisätiedotOhjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.
Osoittimet Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Muistilohkon koko riippuu muuttujan tyypistä, eli kuinka suuria arvoja muuttujan
LisätiedotOhjelmointiharjoituksia 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
Lisätiedot815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,
LisätiedotJavan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi
1 Javan perusteet Ohjelmointi IPO-malli Java lähdekoodista suoritettavaksi ohjelmaksi Vakio Muuttuja Miten Javalla näytetään tietoa käyttäjälle, miten Javalla luetaan käyttäjän antama syöte Miten Javalla
LisätiedotKerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta 5. 1. Toteuta Pythonilla seuraava ohjelma:
Kerta 2 Kerta 3 Kerta 4 Kerta 5 Kerta 2 1. Toteuta Pythonilla seuraava ohjelma: 2. Tulosta Pythonilla seuraavat luvut allekkain a. 0 10 (eli, näyttää tältä: 0 1 2 3 4 5 6 7 8 9 10 b. 0 100 c. 50 100 3.
LisätiedotTietueet. 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
LisätiedotZeon PDF Driver Trial
Matlab-harjoitus 2: Kuvaajien piirto, skriptit ja funktiot. Matlabohjelmoinnin perusteita Numeerinen integrointi trapezoidaalimenetelmällä voidaan tehdä komennolla trapz. Esimerkki: Vaimenevan eksponentiaalin
LisätiedotTietotyypit 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
LisätiedotC-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,
LisätiedotOsoitin ja viittaus C++:ssa
Osoitin ja viittaus C++:ssa Osoitin yksinkertaiseen tietotyyppiin Osoitin on muuttuja, joka sisältää jonkin toisen samantyyppisen muuttujan osoitteen. Ohessa on esimerkkiohjelma, jossa määritellään kokonaislukumuuttuja
LisätiedotAS-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
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 19.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 19.1.2011 1 / 39 Haluatko antaa palautetta luennoista? Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast
LisätiedotITKP102 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
LisätiedotOsa. Listaus 2.1. HELLO.CPP esittelee C++ -ohjelman osat. 14: #include <iostream.h> 15: 16: int main() 17: {
Osa I 2. oppitunti C++-ohjelman osat Ennen kuin menemme yksityiskohtaisemmin sisälle C++-luokkiin, -muuttujiin jne, katsokaamme ensin, millaisista osista C++-ohjelma koostuu. Tämän tunnin aikana opit seuraavat
LisätiedotHarjoitus 5 (viikko 48)
Moni tämän harjoituksen tehtävistä liittyy joko suoraan tai epäsuorasti kurssin toiseen harjoitustyöhön. Harjoitustyö edistyy sitä paremmin, mitä enemmän tehtäviä ratkaiset. Mikäli tehtävissä on jotain
Lisätiedot// 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
LisätiedotMetropolia ammattikorkeakoulu 05.02.2015 TI00AA43-3004: Ohjelmointi Kotitehtävät 3
: http://users.metropolia.fi/~pasitr/2014-2015/ti00aa43-3004/kt/03/ratkaisut/ Tehtävä 1. (1 piste) Tee ohjelma K03T01.cpp, jossa ohjelmalle syötetään kokonaisluku. Jos kokonaisluku on positiivinen, niin
LisätiedotOhjelmassa on käytettävä funktiota laskeparkkimaksu laskemaan kunkin asiakkaan maksu. Funktio floor pyöristää luvun lähimmäksi kokonaisluvuksi.
Tehtävä 24. Kallioparkki veloittaa 2 euroa kolmelta ensimmäiseltä pysäköintitunnilta. Yli kolmen tunnin pysäköinnistä veloitetaan lisäksi 0.5 euroa jokaiselta yli menevältä tunnilta. Kuitenkin maksimiveloitus
Lisätiedot815338A 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ä.
Lisätiedot5. HelloWorld-ohjelma 5.1
5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 9.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2015 1 / 26 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.
LisätiedotIDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit
IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,
LisätiedotATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014
18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 28.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 28.2.2011 1 / 46 Ohjelmointiprojektin vaiheet 1. Määrittely 2. Ohjelman suunnittelu (ohjelman rakenne ja ohjelman
LisätiedotEhto- ja toistolauseet
Ehto- ja toistolauseet 1 Ehto- ja toistolauseet Uutena asiana opetellaan ohjelmointilauseet / rakenteet, jotka mahdollistavat: Päätösten tekemisen ohjelman suorituksen aikana (esim. kyllä/ei) Samoja lauseiden
LisätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 12. huhtikuuta 2019 Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä. Yksi A4-kokoinen lunttilappu
LisätiedotPerinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä.
TIETOKONEOHJELMIEN RAKENNE Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä. Teollisuusautomaation ohjelmiin on lainattu runsaasti perinteisen
LisätiedotHarjoitus 2 (viikko 45)
Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista lisätä static-määre operaatioidesi otsikoihin, jotta ohjelmasi kääntyvät. Muista noudattaa hyvän
LisätiedotPERL. TIE Principles of Programming Languages. Ryhmä 4: Joonas Lång & Jasmin Laitamäki
PERL TIE-20306 Principles of Programming Languages Ryhmä 4: Joonas Lång & Jasmin Laitamäki 1. Johdanto Perl on ohjelmointikielten perhe, johon kuuluu Perl 5 ja Perl 6. Kielet ovat kuitenkin erilliset ohjelmointikielet
LisätiedotMetodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen
Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus
Lisätiedot4. Lausekielinen ohjelmointi 4.1
4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Hyvä ohjelmointitapa. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen
LisätiedotMuuttujien 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,
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 13.9.2017 CS-A1111 Ohjelmoinnin peruskurssi Y1 13.9.2017 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,
LisätiedotHarjoitus 4 (viikko 47)
Kaikki tämän harjoituksen tehtävät liittyvät joko suoraan tai epäsuorasti kurssin toiseen harjoitustyöhön. Saa hyvän alun harjoitustyön tekoon, kun ratkaiset mahdollisimman monta tehtävää. Mikäli tehtävissä
LisätiedotOhjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin
Ohjausjärjestelmien jatkokurssi Visual Basic vinkkejä ohjelmointiin http://www.techsoft.fi/oskillaattoripiirit.htm http://www.mol.fi/paikat/job.do?lang=fi&jobid=7852109&index=240&anchor=7852109 Yksiköt
Lisätiedot7. Näytölle tulostaminen 7.1
7. Näytölle tulostaminen 7.1 Sisällys System.out.println- ja System.out.print-operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden muotoilua. 7.2 Tulostusoperaatiot System.out.println-operaatio
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 12.9.2018 CS-A1111 Ohjelmoinnin peruskurssi Y1 12.9.2018 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 25.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 1 / 41 Valintakäsky if Tähänastiset ohjelmat ovat toimineen aina samalla tavalla. Usein ohjelman pitäisi
LisätiedotITKP102 Ohjelmointi 1 (6 op), arvosteluraportti
ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti Tentaattori: Antti-Jussi Lakanen 8. kesäkuuta 2018 Yleistä Tentti 1 meni pistekeskiarvon (11.2) perusteella välttävästi. Omasta tehtäväpaperista saa kopion
LisätiedotChapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen
Chapel TIE-20306 Ryhmä 91 Joonas Eloranta Lari Valtonen Johdanto Chapel on Amerikkalaisen Cray Inc. yrityksen kehittämä avoimen lähdekoodin ohjelmointikieli. Chapel on rinnakkainen ohjelmointikieli, joka
Lisätiedot815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 21.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2015 1 / 25 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.
Lisätiedot811120P Diskreetit rakenteet
811120P Diskreetit rakenteet 2018-2019 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen
Lisätiedot13. 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.
LisätiedotSisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä
Sisällys 11. Javan toistorakenteet Laskuri- ja lippumuuttujat.. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin lopettaminen break-lauseella.
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 11.9.2019 CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2019 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,
LisätiedotC++ 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 (
LisätiedotApuja 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
Lisätiedot1. 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
LisätiedotKirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.
Tehtävä 63. Kirjoita oma versio funktiosta strcmp(),joka saa parametrinaan kaksi merkkiosoitinta. Tee ohjelma, jossa luetaan kaksi merkkijonoa, joita sitten verrataan ko. funktiolla. Tehtävä 64. Kirjoita
LisätiedotMuuttujat ja kontrolli. Ville Sundberg
Muuttujat ja kontrolli Ville Sundberg 14.9.2007 Alkeistyyppi Alin abstraktiotaso josta tarvitsee välittää Yksittäinen, jakamaton tiedonjyvä Tavallaan kaikki alkeistyypit ovat lukuja arvojoukko vaihtelee
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle
LisätiedotPlagioinnin 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
LisätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 20. huhtikuuta 2018 Vastaa kaikkiin tehtäviin. Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä.
Lisätiedot11. Javan toistorakenteet 11.1
11. Javan toistorakenteet 11.1 Sisällys Laskuri- ja lippumuuttujat. Sisäkkäiset silmukat. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin
LisätiedotHarjoitus 6 (viikko 42)
Nämä ovat kurssin viimeiset harjoitukset. Hyväksytyistä ratkaisuista ja läsnäoloista kerättyjen pisteiden summan tulee olla vähintään 40 % ( pistettä) tehtävien ja läsnäolopisteiden kokonaislukumäärien
LisätiedotTIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 16.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 16.2.2010 1 / 41 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti
LisätiedotTIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne
LisätiedotTähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python
Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python 31. tammikuuta 2009 Ohjelmointi Perusteet Pythonin alkeet Esittely Esimerkkejä Muuttujat Peruskäsitteitä Käsittely
LisätiedotJAVA-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,
LisätiedotSisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. salinovi tai syntymapaiva
Sisällys 6. Muuttujat ja Java Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit: Kokonais- ja liukuluvut. boolean- ja char-tyypit. Tyyppien yhteensopivuus. Viitetietotyypit ja merkkijonotietotyyppi
Lisätiedot6. Muuttujat ja Java 6.1
6. Muuttujat ja Java 6.1 Sisällys Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit: Kokonais- ja liukuluvut. boolean- ja char-tyypit. Tyyppien yhteensopivuus. Viitetietotyypit ja merkkijonotietotyyppi
Lisätiedot13 Operaattoreiden ylimäärittelyjä
248 13 C++-kielessä voidaan operaattoreita ylimäärittää. Ylimääriteltävää operaattoria voidaan pitää ikäänkuin metodina, joka esitellään luokan esittelyssä ja määritellään luokan ulkopuolella kuten metoditkin.
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 15.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.2.2010 1 / 46 Merkkijonot Merkkijonojen avulla ohjelmassa voi esittää tekstitietoa, esim. nimiä, osoitteita ja
LisätiedotTietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla
Tietojen syöttäminen ohjelmalle Tähän mennessä on käsitelty Javan tulostuslauseet System.out.print ja System.out.println sekä ohjelman perusrakenneosat (muuttujat, vakiot, lauseet). Jotta päästään tekemään
LisätiedotMetropolia ammattikorkeakoulu TI00AA : Ohjelmointi Kotitehtävät 3 opettaja: Pasi Ranne
Seuraavista tehtävistä saatu yhteispistemäärä (max 7 pistettä) jaetaan luvulla 3.5 ja näin saadaan varsinainen kurssipisteisiin laskettava pistemäärä. Bonustehtävien pisteet jaetaan luvulla 4 eli niistä
Lisätiedot\+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)
LisätiedotHarjoitus 6. Käytä String-luokasta vain charat- ja length-operaatioita.
Nämä ovat kurssin viimeiset harjoitukset. Hyväksytyistä ratkaisuista ja läsnäoloista kerättyjen pisteiden summan tulee olla vähintään 40 % ( pistettä) tehtävien ja läsnäolopisteiden kokonaislukumäärien
LisätiedotOhjelmoinnin 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
LisätiedotHarjoitus 5 (viikko 41)
Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Vältä liian pitkiä rivejä, käytä
LisätiedotTutoriaaliläsnäoloista
Tutoriaaliläsnäoloista Tutoriaaliläsnäolokierroksella voi nyt täyttää anomuksen läsnäolon merkitsemisestä Esim. tagi ei toiminut, korvavaltimon leikkaus, yms. Hyväksyn näitä omaa harkintaa käyttäen Tarkoitus
LisätiedotPythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python
Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python 8. marraskuuta 2010 Ohjelmointi Perusteet Peruskäsitteitä Olio-ohjelmointi Pythonin alkeet Esittely Esimerkkejä Muuttujat
Lisätiedot811120P Diskreetit rakenteet
811120P Diskreetit rakenteet 2016-2017 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen
LisätiedotELEC-A4010 Sähköpaja Arduinon ohjelmointi. Jukka Helle
ELEC-A4010 Sähköpaja Arduinon ohjelmointi Jukka Helle Arduino UNO R3 6-20VDC 5VDC muunnin 16 MHz kideoskillaattori USB-sarjamuunnin (ATmega16U2) ATmega328 -mikro-ohjain 14 digitaalista I/O väylää 6 kpl
LisätiedotC-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
Lisätiedot