Programmering:Ruby Lav Ruby programmer

Fra Wikibooks, den frie samling af lærebøger
Spring til navigation Spring til søgning

For at lave et program dom ligger i en fil på computeren og som du kan køre skal du lave en .rb-fil. Som fx kunne hedde rubyProgram.rb En rb-fil gør det samme som hvis du skrev det i irb - bortset fra at det der normalt står efter => bliver ikke skrevet.

At skrive hej[redigér]

Prøv at lav en fil hvor du skriver:

 puts "Hej verden!"
 puts "...Og hej med dig!"

Nu kan du så køre filen med

ruby filnavn.rb

Hvis fx filen hedder mitProgram.rb kører du filen med ruby mitProgram.rb

Når du har kørt dit program skulle der gerne stå:

Hej verden!
...Og hej med dig

Forklaring[redigér]

puts skriver det ud på skærmen der står efter det laver en ny linje.

Opgaver[redigér]

  • Prøv at lave et program der skriver hej til både verden og dig
  • Skriv et program som også skriver farvel
  • Lav et program der skriver hej og laver en tom linje og skriver farvel

At skrive hej til navn[redigér]

Hvis du har et program der skriver en masse om en bestemt ting fx

 puts "Hej Verden"
 puts "Farvel Verden"
 puts "Hvem er Verden?"
 puts "Verden er bare Verden"
 puts "..og ingen andre end Verden"

..ville det være ret dumt hvis du lige pludselig ville sige hej til en anden. Så skulle du jo skifte alle Verden'erne ud. Du kunne jo også bare gemme en enkelt Verden i en variabel og så bruge den i stedet for.

 navn = "Verden"
 
 puts "Hej " + navn
 puts "Farvel " + navn
 puts "Hvem er " + navn + "?"
 puts navn + " er bare " + navn
 puts "..og ingen andre end " + navn

Forklaring[redigér]

Man kan gemme en værdi i en variabel og så kan man bruge variablen som bliver skiftet ud med værdien. En variabel er en slags seddel som har et navn og så står der noget på sædlen.

Navn variablen:

====== NAVN ======
=                =
=  Verden        =
=                =
==================

Nå man så spørger efter navn giver den en "Verden" i stedet for. Det er derfor at man skal huske " omkring strenge - ellers ville ruby tro at man prøvede at finde variablen 'hej' eller 'farvel'

+ bliver bare brugt til at sætte ting sammen - hvis man skrev navn i en streng ville ruby bare skrive navn og ikke Verden

Opgaver[redigér]

  • Skift Verden ud med noget andet
  • Skriv et andet program som bruger flere variabler (fx navn og borI)
  • Skriv et program der sætter to strenge sammen med et + (ikke en streng og en variabel)

Hvem er du?[redigér]

Ville det ikke være meget sjovere hvis man kunne lave programmer hvor man selv fik lov til at skrive noget. I stedet for bare at blive ved med at skrive hej til verden kunne man også skrive hej til nogle andre

 puts "Hvem er du?"
 navn = gets
 
 puts "Hej " + navn + "! Det er et flot navn!"

gets venter på at man skriver noget. Så Hvis man skriver verden ville det være det samme som navn = "verden"

Ups![redigér]

Der ser ud som om at der er en fejl! Når man tester programmet ser det sådan her ud:

Hvem er du?
Jonas
Hej Jonas
! Det er et flot navn!

Når den skriver hej kommer står udråbstegnet på en næste linje. Det er fordi at når man skriver noget til gets så læser den det man skriver indtil man trykker enter. Men den læser også enter som er det samme som et linjeskift. Så her er navn sat til: jonas\n (\n er det samme som et linjeskift i ruby). For at der ikke kommer et ekstra linjeskift bliver man nød til at skrive:

 navn = gets.chomp

.chomp betyder at gets ikke læser det sidste tegn som er et linjeskift.

Nu skulle der stå:

Hvem er du?
Jonas
Hej Jonas! Det er et flot navn!

Opgaver[redigér]

  • Lav et program som spørger efter to tal og så lægger tallene sammen og skriver resultatet på skærmen.