Ohjelmointi (Pascal) Harjoitukset 2, 23.-27.9. (monisteen sivut 1-11) 2.1 a) Mitkä seuraavista ovat/eivät ole Pascalin tunnuksia? Miksi? tkt_ilmo, G498DQ7TR4W, karja-auto, 4sLinja, record, begin14, endend, integer, täysi, B10, 10B, A10A, B*C, writeln, Else, else, Elsi b) Mitkä seuraavista ovat/eivät ole Pascalin lukuvakioita? Miksi? Mitkä luvuista ovat integer-tyyppisiä, mitkä real? Miksi? Ovatko ne ei-luvut jotakin ja jos ovat, niin mitä? 7, 3E-4, 8.0, -4E0.4, +6/8, +22.0E-03, 0E0, 14E-000, E-03, E4, 3*7, .99, -00000.600E+0009, 1E1, 2/-3, -0000, 3,14, -00.00E+00 2.2 Selvitä tarkasti, mitä seuraavat lauseet tulostavat. write('mitä', ' lie', '1', ' ynnä', ' ', 1:1, ' ehken'); writeln(' 3', '? ', 'Eh''hei', ' ', 'tie', 'tenkään,'); write(' sehän on', 45-44+89-88:2, ','); write(' '); Write ('niin aina'); Write('kin');write(' k'); write('Oulussa'); writeln(' ope-'); write('tetaan'); WrITeLn('n!'); 2.3 Laadi ohjelma, joka pyytää kaksi kokonaislukua ja tulostaa niiden summan, erotuksen, tulon ja osamäärän. Jos luvut ovat 12 ja 27, ohjelma tulostaa: lukujen 12 ja 27 summa: 39 erotus: -15 tulo: 324 osamäärä: 0.44 2.4 a) Esittele muuttujat seuraaviin tarkoituksiin: tuoppilukumäärä, lämpötila, devalvaatioprosentti, välimerkki, isoäidin ikä, maidon litrahinta. b) Kirjoita Pascal-lauseet, jotka pyytävät ja lukevat a)-kohdan muuttujille arvot. c) Kirjoita Pascal-lauseet, jotka tulostavat selkein selostuksin a)-kohdan muuttujien arvot. 2.5 Laadi ohjelma, joka lukee vuosiluvun ja tulostaa tiedon, monesko vuosi monennellako vuosisadalla kyseinen vuosi on. Jos esimerkiksi syöttövuosi on 1548, ohjelma tulostaa: Vuosi 1548 on 48. vuosi 16. vuosisadalla. Jos olet sitä mieltä, että 1548 on jo 49. vuosi 16. vuosisadalla, voit toki laatia ohjelman käsityksesi mukaiseksi. Kerro joka tapauksessa ohjelman alussa olevassa huomatuksessa, kumpaa tapaa ohjelmasi noudattaa. 2.6 a) Mikä on integer-muuttuja X:n arvo kunkin sijoituslauseen jälkeen? x := sqr(sqr(sqr(2))); x := sqr(trunc(388/23)) + round(abs(57.1-223.9)); x := round(abs(6-74.5))-abs(round(17-93.5)); x := -abs(trunc(6/4) - round(6/4)) b) Kirjoita Pascal-lausekkeina: