1 Tee ohjelma, joka tulostaa nimesi näytölle. Olli Opiskelija 2 Tee ohjelma, joka tulostaa näytölle nimesi ja osoitteesi. Olli Opiskelija Torikatu 19 90100 Oulu 3 Tee ohjelma, joka tulostaa kahden opiskelijan nimet ja osoitteet rinnakkain. Olli Opiskelija Oiva Oppija Torikatu 19 Kotkantie 1 90100 Oulu 90230 Oulu 4 Tee ohjelma, joka kysyy käyttäjältä numeron ja tulostaa sen näytölle. Anna luku: 2 Syötit luvun 2. 5 Tee ohjelma, joka kysyy käyttäjältä 2 lukua ja ilmoittaa niiden summan. 6 Tee ohjelma, joka muuttaa käyttäjän syöttämät metrit maileiksi (1 maili=1609 metriä). 7 Tee ohjelma, joka laskee ympyrän kehän pituuden, kun ohjelmalle annetaan syötteenä ympyrän halkaisija. (Kaava löytyy osoitteesta http://virtuoosi.pkky.fi/materiaalit/yhteiset/matikka1/pintaala/ympyra.htm) 8 Tee ohjelma. joka muuttaa käyttäjän syöttämät Celsius-asteet Fahrenheitasteiksi. Muunnoskaava on x C = ((212-32)/100*x+32) F ja sievennetyssä muodossa x C = (1.8x+32) F 9 Tee ohjelma, jota ajettaessa kuvaruudulla on seuraavanlaista tekstiä: Arvaa luku : 5 Minun arvaukseni on 6, hävisit niukasti. Luku 5 on käyttäjän syöttämä. Muu teksti on ohjelman tulostamaa. Ohjelman arvaama luku on aina yhtä suurempi.
10 Tee palkanlaskentaohjelma. Ohjelma kysyy käyttäjän etu- ja sukunimen, tuntipalkan, työtunnit ja veroprosentin(esim 20.5). Ohjelma tulostaa koko nimen, sekä brutto- ja nettopalkan: Oiva Opiskelija Bruttopalkkasi on 1500.00 euroa. Nettopalkkasi on 1080.00 euroa. 12 Tee ohjelma, joka kysyy käyttäjältä kaksi lukua ja tulosta luvuista suuremman. Anna kaksi lukua : 2 5 Suurempi luvuista oli 5. 13 Tee ohjelma, joka kysyy käyttäjältä 2 lukua. Ohjelma vähentää pienemmän luvun suuremmasta luvusta ja tulostaa laskutoimituksen ja erotuksen. Anna kaksi lukua : 2 5 5 2 = 3 14 Tee ohjelma, joka kysyy käyttäjältä luvun. Jos luku on jaollinen kolmella, ohjelma tulostaa jana BINGO, muussa tapauksessa ohjelma tulostaa sanan BONGO. (Tämän tehtävän ratkaisuun tarvitset modulo-operaattoria sivulta 9) 15 Tee laskinohjelma, jossa käyttäjä antaa kaksi lukua ja valitsee haluamansa laskutoimituksen. Ohjelma tulostaa laskutoimituksen ja tuloksen. Anna kaksi lukua: 2 5 Valitse haluamasi laskutoimitus + yhteenlasku - vähennyslasku /jakolasku * kertolasku Valinta: / 2 / 5 = 0.40 16 Tee ohjelma, joka kysyy opiskelijan etu- ja sukunimen ja arvosanan numerona. Ohjelma tulostaa opiskelijan kokonimen ja arvosanan tekstimuotoisena (5=kiitettävä, 4=hyvä, 3=hyvä, 2=tyydyttävä, 1=tyydyttävä,0=hylätty). Jos käyttäjä syöttää jonkin muun arvon ilmoita siitä käyttäjälle! 17 Tee uudelleen Harjoitus 15 käyttäen switch case rakennetta.
18 Tee ohjelma, joka tarkistaa käyttäjän syöttämän salasanan oikeellisuuden. Ohjelma antaa virheellisestä salasanasta virheilmoituksen. Anna salasana: Tiivitaavi Aivan oikein! 19 Tee sanakirjaohjelma, johon sana syötetään englanniksi ja ohjelma tulostaa sanan suomeksi. Jos sanaa ei löydy ohjelma tulostaa virheilmoituksen. Ohjelma tuntee sanat horse, cow, mouse ja bear sekä vastaavat suomenkieliset sanat hevonen, lehmä, hiiri ja karhu 20 Tee ohjelma 19 käyttäen ainoastaan kahta printf-lausetta. 21 Tee harjoitus 16 tallentaen sanallisen arvosanan merkkijonomuuttujaan. 22 Tee ohjelma, joka tulostaa näytölle nimesi 100 kertaa. 23 Tee ohjelma, joka tulostaa näytölle luvut 1-10000, 20 lukua yhdellä rivillä. 24 Tee ohjelma, joka kysyy sata lukua ja laskee lukujen summan. 25 Tee ohjelma, joka kysyy sata lukua ja laskee sekä positiivisten että negatiivisten lukujen summan ja keskiarvon. 26 Tee ohjelma, joka tallentaa taulukkoon täydet kymmenet väliltä 1-10000 (10 20 30 40 9970 9980 9990). Ohjelma tulostaa taulukon sisällön kymmenen lukua rivillään. 27 Ohjelma kysyy käyttäjältä 7 päivän lämpötilat ja laskee viikon keskilämpötilan. Ohjelma tulostaa käyttäjän syöttämän lämpötilat ja keskilämpötilan seuraavasti: ******************************************************** MA TI KE TO PE LA SU Keskilämpötila 23 22 17 15 15 14 27 19 ******************************************************** 28 Luokalle on pidetty ohjelmoinnin tentti, tee ohjelma joka kysyy arvosanat ja tallentaa ne sellaiseen taulukkoon, että tämän perusteella ohjelma voi tulostaa arvosanojen keskiarvon ja jakauman seuraavasti: Tentin keskiarvo 2,96 0: *** 1: ***** 2: ****** 3: ******* 4: *** 5: ****** 29 Tee ohjelma, joka kysyy käyttäjältä etunimen, sukunimen sekä syntymäajan ja tallettaa tiedot tietueeseen. Ohjelma tulostaa tietueen sisällön.
30 Tee ohjelma, joka kysyy käyttäjältään etunimen, sukunimen ja käyttäjän terveydellisiä tietoja hemoglobiinin ja verenpaineen (ylä- ja alapaine). Ohjelma tallettaa tiedot tietueeseen. Ohjelma tulostaa tietueen sisällön. 31 Alla olevassa osoitteessa on tämän harjoituksen pohjakoodi. Tallenna koodi hakemistoosi ja suorita ohjelma. Ohjelma ei toimi oikein. Korjaa opettajan virhe. Kun saat ohjelman toimimaan pohdi mitä ohjelma tekee. http://www.oamk.fi/~jjauhiai/opetus/lk1/pohjakoodit/kirja.c Muokkaa ohjelmaa lisäämällä muuttuja käyttäjän valitsemalle kirjalle ja tietuemuuttuja lainakirja. Tietueeseen tallennetaan käyttäjän lainaaman kirjan tiedot. Tulosta lainakirja-tietueen sisältö. 32 Tee ohjelma, joka kysyy käyttäjältään 200 henkilön etunimen, sukunimen ja käyttäjän terveydellisiä tietoja hemoglobiinin ja verenpaineen. Ohjelma tulostaa taulukkona käyttäjän syöttämät tiedot. 33 Tee ohjelma, joka kysyy käyttäjältään 200 henkilön etunimen, sukunimen ja syntymäajan. Ohjelma tulostaa taulukkona käyttäjän syöttämät tiedot. 34 Tee ohjelma, joka kysyy käyttäjältä kaksi 3x3-matriisia, laskee ne yhteen ja tulostaa vastauksen. 35 Matriisin jälki (engl. trace) on diagonaalielementtien summa: Tr ( A) = a ii i Tee ohjelma, joka kysyy käyttäjältä yhden 3x3-matriisin ja laskee matriisin jäljen eli summan a 11 +a 22 +a 33. 36 Tee tehtävän 19 sanakirjaohjelma käyttäen kolmiulotteista taulukkoa. 37 Tee keskilämpötilan laskentaohjelma käyttäen while-silmukkaa. 38 Tee oma strlen-ohjelma, joka laskee käyttäjän syöttämän merkkijonon pituuden. 39 Tee keskilämpötilan laskentaohjelma käyttäen do-while-silmukkaa. 40 Tee tehtävän 15 laskinohjelmasta do-while-silmukalla toteutettu versio. Ohjelma kysyy joka laskutoimituksen jälkeen, jatketaanko laskentaa. 41 Tee oma strcmp-ohjelma käyttäen do-while-silmukkaa. Ohjelma siis kysyy kaksi merkkijonoa, vertaa niitä merkki kerrallaan ja tulostaa tiedon siitä, ovatko ne samat vaiko eivät. Voit käyttää apuna string.h:n strlen-funktiota. Jos merkkijonot ovat eri mittaisia, ne eivät voi olla samoja Jos merkkijonot ovat saman mittaisia, verrataan niitä merkki kerrallaan ja
lasketaan, kuinka monta eri merkkiä merkkijonoissa on. Jos kaikki merkit olivat samoja, tulostetaan tieto, että merkkijono olivat samat Muuten tulostetaan tieto, että merkkijonot eivät ole samat. 42 Tee funktio, joka ottaa parametreina kaksi lukuja ja palauttaa niistä pienemmän. Tee myös pääohjelma funktion toiminnan testaamiseen. 43 Tee ohjelma, joka laskee kuution tilavuuden, kun syötteeksi annetaan kuution sivun pituus. Toteuta tilavuuden laskenta funktiossa käyttäen paluuarvoa. 44 Tee ohjelma, joka laskee kartion tilavuuden, kun syötteeksi annetaan pohjan säde ja kartion korkeus. Toteuta tilavuuden laskenta funktiossa. Tulostus omaan funktioon! 45 Tee tehtavasta 15 funktioilla toteutettu versio, jossa laskutoimitukset on toteutettu omissa funktioissaan. Funktio valikontulostamiselle, kukin laskutoimitus, tulosfunktio, silmukka. 46 Tee tehtavasta 16 funktiolla toteutettu versio. Funktiolle välitetään arvosana parametrina ja se tulostaa sanallisen arvosanan. 47 Tee ohjelma, joka kysyy käyttäjältä lukuja silmukassa ja etsii niistä pienimmän ja suurimman. Kirjoita minimin ja maksimin haku omiksi funktioikseen. Voit toteuttaa silmukan ja sen lopetusehdon haluamallasi tavalla. 48 Tee funktio, joka lajittelee kolme lukua suuruusjärjestykseen. Tulosta luvut pääohjelmassa ennen ja jälkeen funktiokutsua. 49 Tee funktio, joka laskee kahden liukuluvun summan, erotuksen, tulon ja osamäärän. Lukujen syöttö ja tulostus tapahtuu pääohjelmassa. 50 Mielivaltaisen kolmion pinta-ala voidaan laskea ns. Heronin kaavalla: a β A = s( s a)( s b)( s c), χ missä a, b ja c ovat kolmion sivujen pituudet ja s = ( a + b + c) Tee kaksi funktiota, joista toinen kysyy käyttäjältä kolmion sivujen pituudet ja toinen laskee kolmion pintaalan. Tee pääohjelma, jonka avulla voit testata funktion / 2 b c α
toimintaa. 51 Lisää edelliseen ohjelmaan funktio, joka laskee kolmion kulmat, kun tiedetään, että 1 1 A = bc sinα = ca sin β = 2 2 1 2 absin χ 52 Tulosta kokonaisluku-, liukuluku- ja merkkimuuttujan arvot käyttäen vastaava tietotyyppiä olevia osoittimia. Alusta varsinaiset muuttujat määrittelyn yhteydessä haluamiisi arvoihin. 53 Tee ohjelma, joka kysyy käyttäjältä kaksi kokonaislukua käyttäen osoittimia ja laskee niiden osoittamien muistipaikkojen sisällöt yhteen. 54 Toteuta viikon keskilämpötilan laskentaohjelma siten, että lämpötilat luetaan taulukkoon yhdessä funktiossa ja keskiarvo lasketaan toisessa funktiossa. 55 Tee ohjelma, joka kysyy sata lukua taulukkoon funktiossa. Ohjelma laskee toisessa funktiossa positiivisten ja negatiivisten lukujen keskiarvon. Kolmannessa funktiossa tulostetaan käyttäjän syöttämät luvut sekä positiivisten ja negatiivisten lukujen keskiarvot. 56 Tee ohjelma, jossa kysyy yhden merkin kerrallaan 5 alkion mittaiseen merkkijonotaulukkoon. Ohjelma tulostaa taulukon merkit ja niiden muistipaikat. Kuinka monta tavua tulostuksen perusteella yksi merkki vie tilaa keskusmuistista? Toteuta tämäkin tehtävä osoittimia käyttäen ilman suoraa indeksointia. 57 Tee ohjelma, joka kysyy käyttäjältä pääohjelmassa merkkijonon. Aliohjelma etsii sieltä kaikki a -kirjaimet ja tulostaa löytyneiden kirjainten lukumäärän
näytölle. 58 Tee ohjelma, joka kysyy opiskelijan etu- ja sukunimen ja arvosanan numerona. Ohjelma tulostaa opiskelijan kokonimen ja arvosanan tekstimuotoisena (5=kiitettävä, 4=hyvä, 3=hyvä, 2=tyydyttävä, 1=tyydyttävä,0=hylätty). Jos käyttäjä syöttää jonkin muun arvon ilmoita siitä käyttäjälle! Ohjelmassa on 3 funktiota, yksi tietojen kysymiseen, toinen vertailun tekemiseen ja kolmas tulostamiseen. 59 Tee sanakirjaohjelma, johon sana syötetään englanniksi ja ohjelma tulostaa sanan suomeksi. Jos sanaa ei löydy ohjelma tulostaa virheilmoituksen. Ohjelma tuntee sanat horse, cow, mouse ja bear sekä vastaavat suomenkieliset sanat hevonen, lehmä, hiiri ja karhu. Ohjelmassa on 3 funktiota, yksi sanan kysymiseen, toinen vertailun tekemiseen ja kolmas tulostamiseen. 60 Tee ohjelma, joka kysyy funktiossa käyttäjältä etunimen, sukunimen sekä syntymäajan. Ohjelma tulostaa toisessa funktiossa tietueen sisällön. 61 Tee ohjelma joka kysyy funktiossa käyttäjän nimen sekä ala- että yläpaineen. Toisessa funktiossa tulostetaan käyttäjän nimi ja pulssipaine. Pulssipaine lasketaan ylä- ja alapaineen erotuksena. 62 Oheisesta linkistä löytyy yllä olevan päivämääräesimerkin koodi. http://www.oamk.fi/~jjauhiai/opetus/lk1/pohjakoodit/tietue-funktioon.cpaiva Koodiin on lisätty prototyyppi funktiolle huominen() ja sen kutsu pääohjelmassa. Kirjoita funktion huominen() runko- eli määrittelyosa siten, että funktio Kasvattaa päivä-kentän (paiva) arvoa yhdellä. Jos päivä on 31, funktio asettaa päivän arvoon 1 ja kasvattaa kuukauden
(kuukausi) arvoa yhdellä. Oletetaan tässä yksinkertaisuuden vuoksi, että kaikissa kuukausissa on 31 päivää. 63 Jos aikaa ja harrastuneisuutta riittää, niin lisää edelliseen tehtävään ominaisuus, joka tutkii, että syötetyt päivämäärät ovat järkevissä rajoissa. Ohjelman tulee käyttää jokaiselle kuukaudelle oikeaa määrää päiviä. Lisäksi jos ollaan vuoden viimeisessä päivässä, siirrytään seuraavan vuoden ensimmäiseen päivään. 64 Muuta edellä esitettyä Disney_tietue-ohjelmaa siten, että tietuetaulukon tulostus tapahtuu funktiossa. Pääohjelmassa valitaan, tulostetaanko hiiret vai ankat. Ohjelman pohjakoodi löytyy täältä: http://www.oamk.fi/~jjauhiai/opetus/lk1/pohjakoodit/disney.c 65 Tee opiskelijarekisteriohjelma käyttäen tietuetaulukkoa. Tietue sisältää etunimen, sukunimen ja opiskelijanumeron. Tee funktiot joiden avulla tietoja syötetään rekisteriin ja tulostetaan rekisteristä. 66 Tee ohjelma, joka kysyy funktiossa 200 henkilön nimen, pituuden (m) ja painon (kg). Toisessa funktiossa tulostetaan nimi ja painoindeksi. 67 Osoitteesta http://www.oamk.fi/~jjauhiai/opetus/lk1/pohjakoodit/h67- pohja.cpp löytyy opiskelijarekisterin pohjakoodi. Tee funktio, jolle annetaan syötteeksi (tietuetaulukon lisäksi) arvosana (0, 1, 2, 3, 4 tai 5) ja joka tulostaa kaikki kyseisen arvosanan saaneet opiskelijat. 69 Tee ohjelma, jonka avulla tallennat oman nimesi tiedostoon nimi.txt.
70 Tee ohjelma, jonka avulla luet oman nimesi nimi.txt tiedostosta. 71 Tee ohjelma, joka tulostaa numerot 1-100 tabulaattorilla erotettuna 10 lukua/rivi tiedostoon, jonka nimen käyttäjä antaa. 72 Tiedostossa luvut.txt on 10 kokonaislukua / rivi. Tee ohjelma, joka lukee kaikki tiedoston sisältämät luvut ja tulostaa ne ohjelmaikkunaan 5 luku rivillään. 73 Eräs mittauslaite on tuottanut mittausdataa tekstitiedostoon. Insinöörioppilas S.A. Tiaiselle on annettu tehtäväksi kirjoittaa C-ohjelma, joka analysoi tätä dataa. Tiaiselle on kerrottu, tiedostossa on aina yhdellä rivillä juokseva numero sekä kaksoistarkkuuden liukuluku. Auta insinöörioppilasta tekemällä ohjelma, joka tulostaa tiedostossa olevat luvut, niiden lukumäärän, keskiarvon sekä suurimman ja pienimmän arvon. Data löytyy täältä http://www.oamk.fi/~jjauhiai/opetus/lk1/pohjakoodit/data.txt Vihje: Tarkista sscanf:n paluuarvon avulla, että riviltä todellakin luettiin kaksi lukua. 74 Tee Harjoituksen 67 opiskelijarekisteriohjelmasta versio, joka tallettaa tiedot tiedostoon. Kirjoita tallennus omaksi funktiokseen. 75 Lisää edelliseen harjoitustehtävään funktio, joka lukee tiedostosta opiskelijarekisterissä olevat tiedot ja tulostaa ne näytölle. 76 Tee edellisen harjoitustehtävän ohjelmaan tekstipohjainen valikko, jossa on seuraavat toiminnot: o Tulosta opiskelijarekisterin sisältö o Kysy opiskelijan tiedot o Tallenna opiskelijan tiedot tiedostoon o Etsi opiskelijan tiedot tiedostosta nimen perusteella o Tulosta lista tietyn arvosanan saaneista opiskelijoista o Lopeta
77 Tee ohjelma, joka tallentaa luvut 0-999 binääritiedostoon, lukee ne sieltä ja tulostaa näytölle. 78 Tallenna vapaasti valittava teksti binäärimuodossa tiedostoon ja lähetä se kaverille sellaisten tietojen kanssa että hän pystyy sen avaamaan. 79 Muuta harjoituksen 76 opiskelijarekisteriä niin, että tiedot tallentuvat binääritiedostoon. 80 Tee komentoriviltä suoritettava nelilaskin, jolle annetaan kaksi lukua ja niiden välissä merkki +, -,. tai /. HUOM: Komentoriviohjelmassa * toimii komentotulkin jokerimerkkinä! Sitä ei voi siis tässä tehtävässä käyttää kertomerkkinä. 81 Muuta nelilaskinohjelmaa siten, että kukin laskutoimitus on kirjoitettu omaan tiedostoonsa. Kaikkien neljän funktion prototyypit on kirjoitettu yhteen otsikkotiedostoon. 82 Lisää edellä esitettyyn esimerkkiohjelmaan omaan tiedostoonsa funktio int laskekirjain(char *merkkijono,char haettava_merkki); joka laskee syötetystä merkkijonosta, kuinka monta kertaa valittu kirjain esiintyy.