Tie koodariksi

Ohjelmoinnin alkeet

Luku 6: Merkkijono

Merkkijono on ohjelmoinnissa käytettävä termi, joka tarkoittaa tekstiä. Esimerkiksi "apina" on merkkijono, joka muodostuu viidestä merkistä. Merkkijonon sisältö kirjoitetaan lainausmerkkien sisään.

Merkkijonoilla laskeminen

Voimme laskea merkkijonoilla hieman samaan tapaan kuin luvuilla. Ensinnäkin voimme yhdistää merkkijonoja +-merkin avulla:

a = "esi"
b = "merkki"
print(a+b)

Tämän ohjelman tulostus on seuraava:

esimerkki

Lisäksi voimme monistaa merkkijonoa *-merkin avulla:

x = "abc"
print(x*4)

Tämä ohjelma antaa seuraavan tuloksen:

abcabcabcabc

Kuvioita silmukoilla

Kun yhdistämme silmukan ja merkkijonot, voimme tuottaa monenlaisia kuvioita. Esimerkiksi seuraava koodi tulostaa portaikon, joka muodostuu risuaidoista:

for i in range(1,6):
    print("#"*i)

Ohjelman ideana on, että se käy läpi luvut 1...5 muuttujan i avulla ja tulostaa luvun i kohdalla merkkijonon, jossa on i risuaitaa. Ohjelman tulostus on seuraava:

#
##
###
####
#####

Koska koodi käyttää silmukkaa, voimme helposti muuttaa kuvion kokoa muuttamalla silmukan alkua. Esimerkiksi voimme muuttaa koodia näin:

for i in range(1,9):
    print("#"*i)

Nyt silmukka käy läpi luvut 1...8 ja kuviossa on 8 kerrosta:

#
##
###
####
#####
######
#######
########

Seuraava koodi puolestaan tulostaa portaikon peilikuvana:

for i in range(1,6):
    print(" "*(5-i)+"#"*i)

Tämä ohjelma tulostaa merkkijonoja, joissa on ensin 5-i välilyöntiä ja sitten i risuaitaa. Välilyöntien ansiosta portaikko tulostuu peilikuvana:

    #
   ##
  ###
 ####
#####

Kun haluamme tulostaa kuvion, meidän täytyy siis keksiä, mitä teemme, kun silmukassa tulee vuoroon tietty muuttujan arvo. Pääset harjoittelemaan tätä seuraavien tehtävien avulla.


Tehtävä 1 Ratkaisematon

Tässä on risuaidoista muodostuva neliö, jonka koko on 5:

#####
#####
#####
#####
#####

Tee ohjelma, joka tulostaa silmukan avulla vastaavan neliön, jonka koko on 50.

Kirjoita ohjelma tähän:


Tehtävä 2 Ratkaisematon

Tässä on ylösalaisin käännetty portaikko, jonka koko on 5:

#####
####
###
##
#

Tee ohjelma, joka tulostaa silmukan avulla vastaavan portaikon, jonka koko on 50.

Kirjoita ohjelma tähän:


Tehtävä 3 Ratkaisematon

Tässä on laatikko, jonka koko on 5:

#####
#   #
#   #
#   #
#####

Tee ohjelma, joka tulostaa silmukan avulla vastaavan laatikon, jonka koko on 50.

Kirjoita ohjelma tähän:


Tehtävä 4 Ratkaisematon

Tässä on pyramidi, jossa on 5 kerrosta:

    #
   ###
  #####
 #######
#########

Tee ohjelma, joka tulostaa silmukan avulla vastaavan pyramidin, jossa on 30 kerrosta.

Kirjoita ohjelma tähän:


Tehtävä 5 Ratkaisematon

Tässä on shakkikuvio, jonka koko on 5:

#.#.#
.#.#.
#.#.#
.#.#.
#.#.#

Tee ohjelma, joka tulostaa silmukan avulla vastaavan kuvion, jonka koko on 50.

Kirjoita ohjelma tähän:


Tehtävä 6 Ratkaisematon

Tässä on paksu portaikko, jossa on 3 askelmaa:

###
# #
#####
# # #
#######
# # # #
#######

Tee ohjelma, joka tulostaa silmukan avulla vastaavan portaikon, jossa on 30 askelmaa.

Kirjoita ohjelma tähän: