Uuden ohjelmointikielen oppiminen voi olla hauskaa. Aina kun yritän oppia uutta, keskityn muuttujien määrittelyyn, lausekkeen kirjoittamiseen ja lausekkeiden arviointiin. Kun minulla on yleinen ymmärrys näistä käsitteistä, voin yleensä selvittää loput itse. Useimmissa ohjelmointikielissä on jonkin verran yhtäläisyyksiä, joten kun osaat yhden ohjelmointikielen, seuraavan opetteleminen on pelkkää ainutlaatuisten yksityiskohtien selvittämistä ja erojen tunnistamista.

Hyödyntääkseni uuden ohjelmointikielen harjoittelua kirjoitan mielelläni muutaman testiohjelman. Yksi usein kirjoittamani koeohjelma on yksinkertainen ”arvaa luku” -ohjelma, jossa tietokone valitsee luvun yhden ja sadan välillä ja pyytää minua arvaamaan luvun. Ohjelma kiertää silmukkaa, kunnes arvaan oikein.

”Arvaa luku”-ohjelmassa harjoitellaan useita ohjelmointikielen käsitteitä: miten muuttujille annetaan arvoja, miten kirjoitetaan lausekkeita ja miten suoritetaan ehdollista arviointia ja silmukoita. Se on loistava käytännön kokeilu uuden ohjelmointikielen oppimiseen.

Arvaa luku Bashissa

Bash on useimpien Linux-järjestelmien vakiokuorintaohjelma. Sen lisäksi, että Bash tarjoaa monipuolisen komentorivikäyttöliittymän, se tukee myös täydellistä ohjelmointikieltä skriptien muodossa.

Jos Bash ei ole sinulle tuttu, suosittelen näitä esittelyjä:

  • Mikä on Bash?
  • Aloita Bash-ohjelmointi
  • Aloita Bash-skriptaaminen sysadminille
  • Miten kirjoittaa funktioita Bashissa
  • Lue lisää Bashista

Voit tutustua Bashiin kirjoittamalla version ”arvaa numero”-pelistä. Tässä on minun toteutukseni:

Skriptin purkaminen

Skriptin ensimmäinen rivi #!/bin/bash käskee Linuxia suorittamaan tämän skriptin Bash-selaimella. Jokainen skripti alkaa merkkiparilla #!, joka osoittaa, että kyseessä on komentotulkkiskripti. Välittömästi #!:n jälkeen on suoritettava komentotulkki. Tässä tapauksessa /bin/bash on Bash-komentotulkki.

Muuttujalle annetaan arvo listaamalla muuttujan nimi, jota seuraa merkki =. Esimerkiksi lauseke guess=0 antaa nolla-arvon muuttujalle guess.

Voit myös pyytää käyttäjää syöttämään arvon käyttämällä read-lausetta. Jos kirjoitat read guess, Bash odottaa, että käyttäjä syöttää jonkin tekstin, ja tallentaa sitten arvon guess-muuttujaan.

Voidaksesi viitata muuttujan arvoon, käytä $ ennen muuttujan nimeä. Kun olet siis tallentanut arvon guess-muuttujaan, voit hakea sen käyttämällä $guess.

Muuttujille voi käyttää mitä tahansa nimiä, mutta Bash varaa itselleen muutamia erityisiä muuttujien nimiä. Yksi erikoismuuttuja on RANDOM, joka luo hyvin suuren satunnaisluvun joka kerta, kun siihen viitataan.

Jos haluat suorittaa operaation samaan aikaan, kun tallennat arvoa, sinun on suljettava lauseke erikoissulkeisiin. Tämä käskee Bashia suorittamaan ensin kyseisen lausekkeen, ja = tallentaa tuloksena saadun arvon muuttujaan. Jos haluat arvioida matemaattisen lausekkeen, käytä $(( )) lausekkeen ympärillä. Kaksoissulkeet ilmaisevat aritmeettisen lausekkeen. Esimerkissäni number=$(( $RANDOM % 100 + 1 )) arvioi lausekkeen $RANDOM % 100 + 1 ja tallentaa sitten arvon muuttujaan number.

Tyypillisiä aritmeettisia operaattoreita, kuten + (plus), - (miinus), * (kerrannaisluku), / (jakoluku) ja % (moduuliluku), sovelletaan.

Tämähän tarkoittaa sitä, että lausekkeella number=$(( $RANDOM % 100 + 1 )) luodaan satunnaisluku väliltä yksi ja 100. Modulo-operaattori (%) palauttaa jäännöksen kahden luvun jakamisen jälkeen. Tässä tapauksessa Bash jakaa satunnaisluvun luvulla 100, jolloin jäljelle jää jäännös alueella nollasta 99. Lisäämällä tähän arvoon yhden, saat satunnaisluvun väliltä yksi ja 100.

Bash tukee ehdollisia lausekkeita ja virtauksen hallintaa kuten silmukoita. ”Arvaa luku” -pelissä Bash jatkaa silmukointia niin kauan kuin guess:n arvo ei ole yhtä suuri kuin number. Jos arvaus on pienempi kuin satunnaisluku, Bash tulostaa ”Liian pieni”, ja jos arvaus on suurempi kuin luku, Bash tulostaa ”Liian suuri”.”

Miten se toimii

Nyt kun olet kirjoittanut Bash-skriptisi, voit ajaa sen pelataksesi ”arvaa luku” -peliä. Jatka arvaamista, kunnes löydät oikean numeron:

Guess a number between 1 and 100
50
Too high
30
Too high
20
Too high
10
Too low
15
Too high
13
Too low
14
That's right!

Joka kerta, kun suoritat skriptin, Bash valitsee erilaisen satunnaisluvun.

Tämä ”arvaa numero”-peli on loistava johdanto-ohjelma, kun opettelet uutta ohjelmointikieltä, koska se harjoittaa useita yleisiä ohjelmointikäsitteitä melko suoraviivaisella tavalla. Toteuttamalla tämän yksinkertaisen pelin eri ohjelmointikielillä voit demonstroida joitakin keskeisiä käsitteitä ja vertailla yksityiskohtia kussakin kielessä.

Onko sinulla suosikkiohjelmointikieli? Miten kirjoittaisit ”arvaa numero” -pelin sillä? Seuraa tätä artikkelisarjaa nähdäksesi esimerkkejä muista ohjelmointikielistä, jotka saattavat kiinnostaa sinua.