model small
.stack 100h
.data
msg db 'Hello world!$'
.code
start:
mov ah, 09h ; Display the message
lea dx, msg
int 21h
mov ax, 4C00h ; Terminate the executable
int 21h
end start
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("Hello Wordl!\n");
return 0;
}
// A Hello World! program in C#.
using System;
namespace HelloWorld
{
class Hello
{
static void Main()
{
Console.WriteLine("Hello World!");
}
}
}
class Hello
def say_hello
puts "hello"
end
end
program = Hello.new
program.say_hello
En namngiven plats i datorns minne, en slags förvaringslåda.
Samma sak i matten (den där x)
Variabler i Ruby skrivs med små bokstäver t.ex.
omkrets = 3.145
Ett värde är något man kan lagra i en variabel.
Till exempel ett tal med värdet 12 eller en text med värdet "hej"
Alla värden har en typ, typen beskriver hur värdet skall tolkas och vad man kan göra med det.
Man kan säga att typen gör att innehållet får en betydelse.
Några exempel på några (udda)typer:
Man kan sätta samman värden, variabler, operatorer och funktioner till uttryck.
Till exempel kan man använda de fyra räknesätten på tal, och slå samman strängar och olika logiska operatorer för boolesk typer (och, eller, icke)
ett_tal = 1*10+20-2/10
en_strng = "Hejsan" + " Du gamle indian"
boolesk = a || b && !c
Innebär att man ger en variabel ett värde. I de flesta språk symboliseras tilldelning med =
Nedan syns ett exempel på tilldelning, vi beräknar omkretsen av en cirkel med uttrycket på höger sida om tilldelningen. Alltså beräknas en cirkels omkrets från radien och tilldelas variabeln omkrets.
omkrets = 3.14 * 2 * radie
En funktion en uppsättning instruktioner som körs efter varandra, man använder dem för att få byggblock som man kan återanvända
Funktioner har ett namn och kan utföra ett ”arbete”. De kan också ta parameterar och skicka tillbaka, returnera, ett värde.
def omkrets(radie)
puts "Beräknar omkretsen av en cirkel"
return 3.14*2*radie
end
Innebär att programmet kommer upprepa en uppsättning instruktioner tills dess att något vilkor eventuellt avbryter.
sum = 0
i = 0
while i < 10 do #Upprepa medans i är mindre än 10
sum = sum + i
i = i + 1
end
sum = 0
for i in 0..9
sum = sum + i
end
Betyder att datorn kan välja väg med hjälp av logiska uttryck. Alltså uttryck som antingen blir sanna eller falska.
== Jämför värden, i exemplet jämförs värdet 42 med det som finns i variabeln svar.
puts "Vad är svaret på allt?"
svar = gets.to_i() #Läs in tal från tangentbordet
if(svar == 42)
puts "Rätt svar"
else
puts "Fel svar"
end
Ganska avancerat koncept
Klasser är en användardefinierad typ.
På samma sätt som heltal eller strängar i Ruby.
En instans av en klass kallas objekt. Klassen är abstrakt, t.ex. Bok medan en instans av en klass kan vara en viss bok.
När man gör nya objekt från en klass i Ruby använder man funktionen new på klassen.
class Bok #Klass definition
def initialize(name)
@name = name
end
def name()
return @name
end
end
hitchiker = Bok.new("The Hitchhiker's Guide to the Galaxy")
puts hitchiker.name() #Skriver ut namnet på boken
Har hand om att ställa in det nya objektet så att det är redo att användas.
Funktionen heter initialize och kan ta parameterar
class Bok
def initialize(name) #Konstruktor
@name = name
end
def name()
return @name
end
end
hitchiker = Bok.new("The Hitchhiker's Guide to the Galaxy")
puts hitchiker.name() #Skriver ut namnet på boken
Är variabler som kan nås från alla funktioner i klassen.
@name är en instansvariabel. Det betyder att objektet har en variabel som kan nås från alla funktioner. Gör vi en ny Bok kommer den få en egen instansvariabel.
Instansvariabler startar alltid med ett @
class Bok
def initialize(name) #Konstruktor
@name = name
end
def name()
return @name
end
end
hitchiker = Bok.new("The Hitchhiker's Guide to the Galaxy")
puts hitchiker.name() #Skriver ut namnet på boken
http://tryruby.org / kidsruby