Ohjelmointi (Pascal) Harjoitukset 3, 30.9.-4.10. (monisteen sivut 1-16) 3.1. Laadi ohjelma, jolla voi selvittää seuraavat Pascal-toteutuksen ominaisuudet: a) Mikä on integer-tyypin tulostuskentän oletusleveys? b) Mikä on suurin esitettävissä oleva kokonaisluku? c) Mikä on merkin '7' merkkikoodi? d) Minkä merkin koodi on 72? Tutki ohjelmallasi ainakin kaksi eri Pascal-toteutusta. 3.2 a) Kirjoita parametriton proseduuri VaihdaPQ, joka vaihtaa pääohjelman integer-muuttujien P ja Q arvot keskenään, muttei muuten vaikuta pääohjelman muuttujien arvoihin. Käytä paikallista apumuuttujaa vaihtoon. b) Kirjoita muuttujaparametreja käyttäen proseduuri Vaihda, joka vaihtaa kahden parametrina annetun integer-muuttujan arvot keskenään, muttei muuten vaikuta ei-paikallisten muuttujien arvoihin. Käytä paikallista apumuuttujaa vaihtoon. Miksi b)- kohdan proseduuri on a)-kohdan proseduuria käyttökelpoisempi? c) Pääohjelmassa on integer-muuttujat a, b, c, d, e. Nillä on arvot 3, 5, 7, 11, 13. Selvitä askelittain, miten arvot muuttuvat, kun kutsutaan: Vaihda(a,b); Vaihda(b,c); Vaihda(c,d); Vaihda(d,e). 3.3 Tee proseduuri LueAika, joka pyytää käyttäjältä ajan tunteina, minuutteina ja sekunteina ja palauttaa parametrin avulla ajan sekunteina. 3.4 Tee ohjelma, joka pyytää käyttäjältä kaksi aikaa tunteina, minuutteina ja sekunteina ja sitten tulostaa noiden aikojen eron sekunteina, minuutteina ja tunteina. Käytä hyväksesi edellisen tehtävän proseduuria. Minne se ohjelmarakenteessa sijoitetaan? 3.5 Mitä seuraava ohjelma tulostaa? Miksi? program KauheaSekaannus(output); var A, B, C, D : integer; procedure SekoitaOpiskelijanPaeae(var A:integer; D:integer); var B : integer; begin A := 1; B := 2; C := 3; D := 4; writeln(A, B, C, D); end; {of proc SekoitaOpiskelijanPaeae} begin {pääohjelma} A := 5; B := 6; C := 7; D := 8; writeln(A, B, C, D); SekoitaOpiskelijanPaeae(B, C); writeln(A, B, C, D) end. {of program KauheaSekaannus}