Tietojenkäsittelytiede Proseduraalinen ohjelmointi, syksy 2007 Harjoituskerta 2 11.9.2007 NÄMÄ OVAT NE TEHTÄVÄT JOTKA OLI TARKOITUS ANTAA. JOS PAPERILLA ON ERILAISIA TEHTÄVIÄ, NIIN OTA MIELUUMMIN NÄMÄ. TOKI, JOS OLET JO TEHNYT PAPERILLA OLEVAT, KÄYVÄT NEKIN. ANTEEKSI HÄIRIÖ. Tee ohjelmat. Syötä ne tietokoneelle, käännä ne ja tarkasta niiden toiminta. Demotilaisuudessa ohjelmat esitetään dataprojektorilla, joten tuo tehtäväsi paikalle mieluiten keskuskoneelle (cs tai cc) tallennettuna. Demoissa otetaan pääteyhteys keskuskoneeseen. ckieli.h otsikkotiedoston käyttö ei ole enää sallittua. 6. Kirjoita ohjelma, joka tulostaa siistin Celsius- ja Fahrenheit-vertailuasteikon käyttäjän antamalle lämpötilavälille käyttäjän antamilla askeleilla. Esim. "-30 30 5": välille -30 C .. +30 C viiden asteen välein. C F ------------------ -30 -22 -25 -13 ... ... 25 77 30 86 Vinkki: Fahrenheit-asteet (F) saadaan Celsius-asteista (C) kaavalla F = (9/5)C + 32. (Muista ottaa huomioon C-kielen tyypinmuunnokset jakolaskussa!) 7. Kirjoita funktio joka lukee käyttäjältä kokonailuvun annetulta väliltä. Funktio saa siis parametreinaan ala- ja ylä-rajan, ja pyytää käyttäjää antamaan luvun ko. väliltä. Jos käyttäjä antaa luvattoman luvun, pyydetään lukua uudestaain kunnes käyttäjä antaa luvallisen luvun. Kirjoita myös pääohjelma, joka testaa ko. funkiota. 8. Täydennä edellisen tehtävän funktio tarkistamaan kokonaislukutyypin (int) yli/alivuodot. Lue siis kokonaisluku long long int -tyyppiseen muuttujaan (konversiomääre "%lld") ja vertaa syötettyä lukua limits.h:sta löytyviin int -tyypin konekohtaisiin rajoihin. long long int on C99:n ominaisuus, joten älä käytä -ansi -optiota kääntäessäsi. 9. Kirjoita funktio "int omastrlen(char *s)" joka laskee ja palauttaa parametrina saamansa merkkijonon s pituuden. Älä käytä valmiita varusfunktioita. Kirjoita myös lyhyt pääohjelma, jossa funktiota testataan. 10. Kirjoita funktio joka järjestää kolme parametrina saamaansa kokonaislukua suuruusjärjestykseen. Siis kolme erillistä parametria, ja luvut palautetaan samoissa parametreissa. Parametrit ovat siis osoittimia varsinaisiin kokonaislukuihin (viiteparametreja). Kirjoita myös pääohjelma, joka testaa ko. funkiota.