5.8 Muistele
tätä
Mikäli
edellä esitetyt asiat tuntuvat ymmärrettäviltä, niin
ohjelmoinnissa ei tule olemaan mitään vaikeuksia. Jos vastaavat
asiat tuntuvat vaikeilta ohjelmoinnin kohdalla, kannattaa palata takaisin
tähän lukuun ja yrittää samaistaa asioita
ohjelmointikieleen.
Taulukoiden
samaistaminen ruutupaperiin, korttipakkaan tai muuhun tuttuun asiaan auttaa
asian käsittelyä. Osoitinmuuttuja on yksinkertaisesti jokin
(vaikkapa sormi) joka osoittaa johonkin (vaikkapa yhteen kirjaimeen).
Silmukat
ja ehtolauseet ovat hyvin luonnollisia asioita.
Aliohjelmat
ovat vain tietyn asian tarkempi kuvaus. Tarvittaessa tiettyä asiaa ei
ongelmaa tarvitse heti ratkaista, vaan voidaan määritellä
aliohjelma, joka hoitaa homman ja kirjoitetaan itse aliohjelman
määrittely joskus myöhemmin.
Tehtävä
5.46
Merkkijonot
- C-
kielessä merkkijonot tullaan esittämään taulukoina
kirjaimista. Merkkijonon loppu ilmaistaan kirjaimella NUL. Siis esimerkiksi
Kissa
olisi seuraavan näköinen
0 |
1 |
2 |
3 |
4 |
5 |
|
K |
i |
s |
s |
a |
NUL |
|
-
- Kirjoita
seuraavat algoritmit. Erityisesti kirjoita ensin algoritmin sanallinen versio
- 5.
- Välilyöntien
poistaminen jonon alusta.
- 2.
- Välilyöntien
poistaminen jonon lopusta.
- 3.
- Ylimääräisten
(2 tai useampia) välilyöntien poistaminen jonosta.
- 4.
- Kaikkien
ylimääräisten (alku-, loppu- ja monikertaiset)
välilyöntien poistaminen.
- 5.
- Jonon
muuttaminen siten, että kunkin sanan 1. kirjain on iso kirjain.
- 6.
- Tietyn
merkin esiintymien laskeminen jonosta.
- 7.
- Esiintyykö
merkkijono toisessa merkkijonossa (
kissatarha,
sata
- > esiintyy;
kissatarha,
satu
- > ei esiinny).
Tehtävä
5.47
Päivämäärät
- Kirjoita
seuraavat algoritmit:
- 5.
- Onko
vuosi karkausvuosi vai ei. (Huom! 1900 ei, 2000 on)
- 2.
- Montako
karkausvuotta on kahden vuosiluvun välillä.
- 3.
- Jos
1.1 vuonna 1 oli maanantai, niin mikä viikonpäivä on 1.1 vuonna
x?
(Oletetaan että kalenteri olisi ollut aina samanlainen kuin nytkin.
Vihje! Tutki almanakkaa peräkkäisiltä vuosilta.)
- 4.
- Onko
päivämäärä
pp.kk.vvvv
oikeata muotoa?