Egy új programozási nyelv megtanulása szórakoztató lehet. Amikor megpróbálok megtanulni egy újat, mindig a változók definiálására, az utasításírásra és a kifejezések kiértékelésére koncentrálok. Ha már általánosságban megértettem ezeket a fogalmakat, a többit általában magamtól is ki tudom találni. A legtöbb programozási nyelvnek van némi hasonlósága, így ha már ismerünk egy programozási nyelvet, a következő nyelv megtanulása csak az egyedi részletek kitalálásából és a különbségek felismeréséből áll.
Az új programozási nyelv gyakorlása érdekében szeretek néhány tesztprogramot írni. Az egyik mintaprogram, amit gyakran írok, egy egyszerű “találd ki a számot” program, ahol a számítógép kiválaszt egy számot egy és 100 között, és megkér, hogy találjam ki a számot. A program addig ismétlődik, amíg helyesen nem tippelek.
A “találd ki a számot” program a programozási nyelvek számos fogalmát gyakorolja: hogyan rendeljünk értékeket változókhoz, hogyan írjunk utasításokat, és hogyan végezzünk feltételes kiértékelést és ciklusokat. Ez egy nagyszerű gyakorlati kísérlet egy új programozási nyelv elsajátításához.
Kitaláld a számot a Bashben
A Bash a legtöbb Linux rendszer standard shellje. Amellett, hogy gazdag parancssori felhasználói felületet biztosít, a Bash egy teljes programozási nyelvet is támogat szkriptek formájában.
Ha nem ismeri a Bash-t, ajánlom ezeket a bevezetőket:
- Mi a Bash?
- Kezdés a Bash programozással
- Kezdés a Bash szkripteléssel rendszergazdáknak
- Hogyan írjunk függvényeket a Bashben
- Tovább a Bashről
A Bash-t a “találd ki a számot” játék egy változatának megírásával fedezheted fel. Íme az én megvalósításom:
A szkript lebontása
A szkript első sora, #!/bin/bash
megmondja a Linuxnak, hogy a szkriptet a Bash shell segítségével futtassa. Minden szkript a #!
karakterpárral kezdődik, ami azt jelzi, hogy ez egy shell szkript. Ami közvetlenül a #!
után következik, az a futtatandó shell. Ebben az esetben a /bin/bash
a Bash shell.
A változóhoz értéket rendelhetünk, ha felsoroljuk a változó nevét, amelyet a =
jel követ. Például a guess=0
utasítás nulla értéket rendel a guess
változóhoz.
A read
utasítással is kérheti a felhasználót egy érték megadására. Ha a read guess
utasítást írja, a Bash megvárja, hogy a felhasználó beírjon valamilyen szöveget, majd ezt az értéket a guess
változóban tárolja.
A változó értékére való hivatkozáshoz használja a $
utasítást a változó neve előtt. Ha tehát egy értéket a guess
változóban tároltunk, akkor azt a $guess
használatával kérhetjük le.
A változókhoz bármilyen nevet használhatunk, de a Bash néhány speciális változónevet fenntart magának. Az egyik speciális változó a RANDOM
, amely egy nagyon nagy véletlen számot generál minden alkalommal, amikor hivatkozol rá.
Ha egy érték tárolásával egyidejűleg egy műveletet is el akarsz végezni, akkor az utasítást speciális zárójelek közé kell zárnod. Ez azt mondja a Bashnek, hogy először az adott utasítást hajtsa végre, és a =
az így kapott értéket tárolja a változóban. Matematikai kifejezés kiértékeléséhez használjon $(( ))
-t az utasítás körül. A dupla zárójelek aritmetikai kifejezést jelölnek. Példámban a number=$(( $RANDOM % 100 + 1 ))
kiértékeli a $RANDOM % 100 + 1
kifejezést, majd az értéket a number
változóban tárolja.
A szokásos aritmetikai operátorok, mint a +
(plusz), -
(mínusz), *
(szorzás), /
(osztás) és %
(modulo) alkalmazhatók.
Az number=$(( $RANDOM % 100 + 1 ))
utasítás tehát egy egy és 100 közötti véletlen számot generál. A modulo operátor (%
) két szám osztása után a maradékot adja vissza. Ebben az esetben a Bash egy véletlen számot oszt 100-zal, így a maradék a nullától 99-ig terjedő tartományban marad. Ha ehhez az értékhez hozzáadunk egyet, akkor egy egy és 100 közötti véletlen számot kapunk.
A Bash támogatja a feltételes kifejezéseket és a ciklusokhoz hasonló folyamatkezelést. A “találd ki a számot” játékban a Bash addig folytatja a ciklusolást, amíg a guess
-ban lévő érték nem egyenlő number
-val. Ha a kitalált szám kisebb, mint a véletlen szám, a Bash kiírja, hogy “Túl alacsony”, ha pedig nagyobb, mint a szám, a Bash kiírja, hogy “Túl magas.”
Hogyan működik
Most, miután megírta a Bash-szkriptet, futtathatja a “találd ki a számot” játékot. Folytassa a találgatást, amíg meg nem találja a helyes számot:
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!
Minden alkalommal, amikor futtatja a szkriptet, a Bash egy másik véletlen számot fog választani.
Ez a “találd ki a számot” játék remek bevezető program egy új programozási nyelv tanulásakor, mert számos gyakori programozási fogalmat gyakorol elég egyszerű módon. Ha ezt az egyszerű játékot különböző programozási nyelveken valósítjuk meg, bemutathatunk néhány alapvető fogalmat, és összehasonlíthatjuk az egyes nyelvek részleteit.
Van kedvenc programozási nyelved? Hogyan írnád meg benne a “találd ki a számot” játékot? Kövesse ezt a cikksorozatot, hogy példákat láthasson más programozási nyelvekre, amelyek érdekelhetik Önt.
Vélemény, hozzászólás?