Luku- ja kuviojonot

Esimerkki 1

Tee ohjelma, joka tulostaa lukujonon 19, 17, 15, 13, 11, 9, 7, 5, 3, 1.

Ratkaisu

Lukujono muodostuu parittomista luvuista välillä 1–19 laskevassa järjestyksessä. Range()-komennossa alue määritetään ensimmäisestä luvusta eli luvusta 19 alkaen. Lukualue päättyy yhden luvun halutun päättymisluvun jälkeen. Koska viimeiseksi halutaan tulostaa luku 1, päättyy alue lukuun nolla. Parittomat luvut saadaan laskevassa järjestyksessä, kun määritetään askeleeksi –2. Laskuria kuvaamaan käytetään muuttujakirjainta n.

KOODI
for n in range (19, 0 , -2):
print n

TULOSTE

19

17

15

13

11

9

7

5

3

1

 

Jos lukujono halutaan tulostaan yhdelle riville, tulostusrivi kirjoitetaan print n,. Numerot tulostuvat tällöin yhdelle riville välilyönnillä erotettuina.

Jos lukujono halutaan tulostaa yhdelle riville luvut pilkulla erotettuna, kirjoitetaan tulostusrivi print (str(n)+', '). Numerot tulostuvat yhdelle riville välilyönneillä erotettuna ja myös viimeisen luvun perän tulee pilkku.

Esimerkki 2

Tee ohjelma, joka tulostaa kuviojonon jäseniä käyttäjän haluaman määrän.

Ratkaisu

Kuviojono saadaan tulostettua leimaustoiminnon avulla.

Käyttäjän ilmoittamaa kuviojonon jäsenten määrää käytetään silmukkamuuttujan alueen päättymislukuun. Käyttäjältä pyydetty lukumäärä, muuttuja lkm, pitää muuttaa kokonaisluvuksi, jotta sitä voidaan käyttää range()-komennossa.

Ulommalla silmukkarakenteella määrätään kuvioiden määrä. Silmukkamuuttujan lopetusluvuksi käytetään käyttäjän ilmoittamaa määrää lisättynä yhdellä. Ulomman silmukan silmukkamuuttujaa merkitään muuttujakirjaimella n. Kuviojonon jäsenten välinen etäisyys määritetään ulommassa silmukassa.

Sisempi silmukkarakenne toteuttaa halutun kuviojonon muodostumisen. Käytetään kuviojonon tekemiseen leimaustoimintoa. Sisemmän silmukan silmukkamuuttujaa merkitään muuttujakirjaimella m.

from turtle import*
alue = Screen()
ukko = Turtle()
lkm = int(input(u'Kuinka monta jäsentä kuviojonoon tulostetaan? (maks. 6)'))
ukko.shape('circle')
ukko.penup()
ukko.goto(-300, 0)
for n in range (1, lkm + 1):
for m in range(n):
ukko.stamp()
ukko.forward(20)
ukko.forward(55)

Kun käyttäjä haluaa tulostaa neljä kuviojonon jäsentä, on tuloste seuraava:

Tehtävä 3 (Palautettavat tehtävät)

Tavoitteena on muodostaa lukujono. Tee ohjelma, joka tulostaa lukujonon väliltä 2–20. Lukujonon ensimmäinen jäsen on 2 ja seuraava jäsen on aina kolme edellistä suurempi.

Tehtävä 4 (Palautettava tehtävä)

Tavoitteena on muodostaa lukujono, jonka seuraava jäsen on aina edellistä pienempi.Tee ohjelma, joka tulostaa lähtölaskennan luvusta 10 lukuun 0. Seuraava jäsen on aina yhden edellistä pienempi.

Tehtävä 5 

Tavoitteena harjoitella kuviojonon tulostamista leimaustoiminnolla. Tee ohjelma, joka tulostaa lukujonoa 1, 2, 3, 4, 5 vastaavan kuviojonon. Alla on mallikuva tällaista lukujonoa vastaavasta kuviojonosta. Käytä haluamaasi hahmoa kuviojonon muodostamiseen.

Tehtävä 6

Tavoitteena on tulostaa kuviojono piirtämällä.Tee ohjelma, joka tulostaa lukujonoa 2, 4, 6 vastaavan kuviojonon. Käytä kuviona piirrettyä ympyrää.

  • Ympyrä saadaan piirrettyä circle-komennolla.
  • Ympyrän säteeksi kannattaa valita 10 tai 20.
  • Määritä kuvioiden välinen siirtymä sopivaksi.
  • Määritä jäsenien välinen etäisyys.
  • Muista nostaa ja laskea kynää tarvittaessa, muutoin siirtymiset piirtyvät viivana.