Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

Harjoitustehtävät

Näytä ratkaisu opettajalle, niin saat pisteet "kotiin".

...

2. a) 'debuggaa' tehtävässä 1 tekemäsi ohjelma, eli suorita se rivi kerrallaan.
b) Poistu käyttöjärjestelmään, etsi Etsi tekemäsi ohjelma ja käynnistä sen EXE-versio virtuaalikoneessa. Huom. ikkuna ei jää näkyviin.
2p.

3. a) Kirjoita ohjelma, jossa on kaksi kokonaislukumuuttujaa (int), joista toiselle annat alkuarvon. Tulosta muuttujien arvot (%d). Mitä huomaat?
b) Lisää ohjelmaasi kahden merkkimuuttujan määrittely (char). Anna toiselle merkille alkuarvo. Tulosta merkit kuvaruudulle (%c). Mitä huomaat?
c) Anna myös toiselle kokonaislukumuuttujalle alkuarvo. Tulosta kokonaislukumuuttujien summa ja erotus. Voit kirjoittaa laskutoimitukset printf()-funktion kutsussa sulkeiden sisälle.
2p.

.
.
.
.
.
.
.
.
.
.
.
.

ALLA OLEVIA TEHTÄVIÄ EI TEHDÄ VIELÄ !

1. 4. Tee ohjelma, joka kyselee käyttäjältä (scanf()-funktiolla) kolme lukua, laskee niistä kaksi ensimmäistä yhteen ja vähentää viimeisen. Tee kaikki toimainnat toiminnat pääohjelmaan. 2p.

25. Tee edellinen ohjelma siten, että lukujen kyselyt toteutetaan pääohjelmassa ja laskenta aliohjelmassa. Palauta tulos pääohjelmaan return-lauseella ja tulosta tulos pääohjelmassa. 2p.

6. Kirjoita erillinen funktio, joka tulostaa kuvaruudulle tähtirivin, jossa on 10 tähtimerkkiä:
**********
2p.

7. Kirjoita funktio, joka tulostaa kuvaruudulle funktiolle parametrina annetun määrän tähtiä. Tehtävän järkevä toteutus vaatii toistorakenteen. 2p.

8. Kirjoita ohjelma, joka kysyy käyttäjältä ympyrän säteen ja laskee sen perusteella ympyrän kehän pituuden. Jos annettu syöte ei ole kelvollinen, ohjelma antaa virheilmoituksen ja lopettaa.

9. Kirjoita ohjelma, joka kysyy käyttäjältä kuinka monta tähteä tulostetaan ja välittää tiedon funktiolle, joka tulostaa annetun määrän tähtiä ruudulle. Jos annettu syöte ei ole kelvollinen, ohjelma antaa virheilmoituksen ja lopettaa.

10. Tee ohjelma, joka tulostaa millä välillä antamasi luku on. Lukuvälit ovat <10, 10-100 ja >100. Tee ohjelma if else lauseilla. 2p. (Jos teet Qt:llä, niin katso ohje).

11. Tee ohjelma, joka tulostaa appelsiini, omena tai päärynä, kun käyttäjä antaa arvot 1, 2 tai kolme. Jos käyttäjä antaa jonkin muun arvon, ohjelma tulostaa arvon peruna. 

12. Kysy käyttäjältä lukuarvo ja tulosta vastaava määrä eri hedelmän nimiä. Jos käyttäjä antaa arvon, joka on suurempi kuin tietämiesi eri hedelmien nimet, niin pyydä pienempää lukua. Käytä while-lausetta.

13.Tee edellinen tehtävä käyttämällä for-lausetta

14. Tee edellinen tehtävä käyttämällä do-while-lausetta

   

ALLA OLEVIA TEHTÄVIÄ EI TEHDÄ VIELÄ !

3. Tee edellinen ohjelma siten, että lukujen kyselyt toteutetaan pääohjelmassa ja laskenta aliohjelmassa. Palauta tulos pääohjelmaan aliohjelman neljännessä parametrissa, jonka esittelet osoittimena. 2p

...

9. Tee edellinen ohjelma while lauseella. 2p10. Tee ohjelma , joka tulostaa millä välillä antamasi luku on. Lukuvälit ovat <10, 10-100 ja
>100. Tee ohjelma if else lauseilla. 2p

11. Lisää sotu esimerkkiin nimen ja osoitteen kysely. Tulosta lopussa nimi, osoite ja sotu ja onko tulos oikea. 2p

...

23. Tee ohjelma, joka nollaa bitit 4 ja 5  antamastasi  ja 5 antamastasi 8 bittisestä luvusta (unsigned char) ja tulostaa arvon. 2p
malliratkaisu tehtävään 23 binääriluvuilla

...

27. Vaihda 16 bittisen luvun vähiten merkitsevä ja eniten merkitsevä tavu keskenään. 2p
malliratkaisu tehtävään 27 binääriluvuilla

28. Testaa   sizeof sizeof funktion toimintaa ja tulosta näytölle char, short, int, long ja long ja long long tyyppien koko. 2p

29. Tee ohjelma, joka täyttää 3*3 taulukon ensin nollilla ja sen jalkeen sarake- ja rivi-indeksin summalla. Tulosta taulukon sisältö sekä alustuksen, että summauksen jälkeen. 2p

...

y=e^x on sarjakehitelmänä y=1+x+x^2/2!....  potenssi =pow. Kuinka monella sarjan jäsenellä saat neljännen desimaalin oikeaksi?
malliratkaisu sinin, kosinin ja eksponenttifunktion laskemiseksi sarjakehitelmillä

31. Fischer robotin ohjaus. Tehtävän on ottaa kiinni palikasta ja siirtää se pöydällä paikasta toiseen sekä päästää irti. Työ tehdään kahden hengen ryhmissä. 3p 

32. Tehtävä on ottaa käyttöön Fischer robotti. 6 pistettä. Tehdään kahden hengen ryuhmässä. Ainoastaan yksi työ. 

33.  Hae robotin kaikkien akselien rajat. Jos arvoja rajojen ulkopuoleta, ohjelma huolehtii niitten pyöristämisestä maksimi tai miniarvoihin.  3 p

34. Korjaa robotin ohjelmaa siten, että ohjelma toiimii molemmilla roboteilla oikein. Nyt ohjelma toimii siten, että nivelvarsirobotissa täytyy antaa negatiivisia arvoja tai moottorin suunta pitää muuttaa kotiinajossa. 6p

35. Testaa main-funktion komentoriviargumetteja.  Tee testiohjelma, joka tulostaa antamiesi kolmen kokonaislukuargumentin arvon. 4p

...