Variabler

Ni som nybörjare inom programmering måste snabbt lära er att hantera grunderna. Denna vecka kommer vi att titta på just detta. Alla exempel är i C Sharp men ni kommer att ha nytta av detta inom all sorts programmering.

Kort om variabler

I program vill man kunna spara undan data för senare användning. T ex man vill mata in ett tal. Detta tal måste sparas undan i programmet, till vår hjälp har vi då variabler. Variabler hör man på namnet att de lagrar information som kan variera. I C Sharp finns en mängd fördefinierade variabeltyper. Man måste alltså deklarera vilken sorts typ av variabel man vill använda för att kompilatorn ska förstå vilken sorts data den lagrar. Vi kommer att titta på 3 olika variabeltyper:

  • int, lagrar heltal (t ex -2, 1, 3...)
  • double, lagrar decimaltal ( t ex 12.34, 1.872)
  • string, lagrar text

Första steget är alltså att tala om att variabeln finns och vad vi ska kalla den. Detta kallas för deklarera variabeln. Man anger variabeltyp följt av det variabelnamn som man väljer att kalla variabeln för, t ex;

Exempel: Deklaration

int mittTal1;
double mittTal2;
string minString;

I editorn kommer den blå färgen att indikera att variabeltypen är känd. Blå färg indikerar nyckelord. När vi sen ska välja namn på våra variabler så är det viktigt att komma ihåg:

  • öäå bör inte användas som variabelnamn om vi använder engelska namn.
  • Vi kan inte ha två variabler som heter samma sak.
  • Vi får också vara uppmärksamma på anda "låsta" namn som t ex int double string.
  • Använder vi stora o små bokstäver i namnen så måste vi följa det exakt senare, d vs mittHELTAL och mittHeltal är inte samma variabel.

När vi nu har deklarerat våra variabler och talat om att de finns så kan vi inte använda dem hursomhelst förrän variablerna har fått något värde. Gör vi det så kan vi få fel av typen "unassigned variable". Har vi inte deklarerat variabeln så kan man få fel som "undefined/unknown variable". Dessa fel dyker upp senare när vi försöker kompilera i så fall.

Vi kan ge våra variabler olika värden efter deklarationen, detta kallas då för tilldelning, t.ex:

Exempel: Tilldelning

//
mittTal1 = 4;
mittTal2=13.5;
minString = "Hej Svejs";
//

Man kan även göra både deklaration och tilldelning samtidigt. D.v.s. samtidigt som du skapar din variabel så kan du passa på att ge den ett värde. Detta brukar kallas för initiering eller att man initierar variabeln. Kombinerar vi ihop tidigare exempel så skulle detta se ut som:

Exempel: Initiering

int mittTal1 = 4;
double mittTal2=13.5;
string minString = "Hej Svejs";

Notera att vi använder tecknet " för att visa var text börjar och var text slutar.

Inmatning av data

För att våra program ska kunna göra något som bygger på information från användaren så måste vi kunna ta emot data/information. Informationen kan komma från en rad olika håll; inläsning av filer, nätverk eller från användaren. Vi ska börja med att lära oss inmatning från tangentbordet i ett Console Application. Jobbar vi med ett Console Application så kan vi även mata in information i form av text genom t ex:

Exempel: Inmatning till string

minString = Console.ReadLine();

Nu kommer vårt Console Application att vänta på att vi skriver något och trycker enter. Det vi då matat in kommer funktionen Console.ReadLine() att "kasta tillbaka" (returnera) till vår variabel minString. Variabeln minString kommer då att tilldelas data som vi senare kan använda i vårt program.

Vi kan även läsa in tal (int o double) med Console.ReadLine() men då måste vi vara extra försiktiga. För det vi skriver är i själva verket text som på något sätt måste översättas till ett tal. Lyckligtvis så finns det färdiga funktioner för detta. Studera följande:

Exempel: Inmatning till tal

using System;
using System.Collections.Generic;
using System.Text;

namespace variabler
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Mata in ett heltal: ");
            string inmatat;
            inmatat = Console.ReadLine();
            int mittHeltal = int.Parse(inmatat);
            Console.WriteLine("Mata in ett decimaltal: ");
            inmatat = Console.ReadLine();
            double mittDecimaltal = double.Parse(inmatat);
            Console.WriteLine("Summan av talen blir: " + (mittHeltal + mittDecimaltal));

            Console.ReadLine(); 
        }
    }
}

Notera att vi både deklarerar, läser in, översätter och tilldelar våra variabler direkt. Visst är det fiffigt?

  • Deklarera alltid dina variabler!
  • Välj variabeltyp efter vilken sorts information du ska spara i dem.
  • Tänk på att allt du matar in (med t.ex. Console.ReadLine() ) bara är text och behöver alltid omvandlas till tal om vi ska göra beräkningar.

Övning 1

Utifrån exemplet ovan så ska du försöka göra ett Console Application där du får mata in två tal. Efter inmatningen så ska summan, produkten och divisionen av talen skrivas ut. T.ex. som bilden nedan visar:

bild

Övning 2

Utifrån exemplen ovan så ska du försöka göra ett Console Application där du får mata in ditt förnamn och ditt efternamn. Efter inmatningen så ska programmet skriva ut en hälsningsfras. T.ex. som bilden nedan visar:

bild

Konsten att namnge en variabel

En av de svårare sakerna med programmering är faktiskt namngivning. Detta kan låta konstigt men faktum är att det är en färdighet som aldrig blir fulländad. Vi ska gå igenom några rekommendationer som kan hjälpa dig i valet av namn.

Engelska eller svenska? Som svensk kan det vara enkelt att hålla sig till det egna språket. En regel kan vara att inte blanda engelska och svenska. Håll dig strikt till ett språk. Nackdelen med svensk namngivning blir att koden blir extremt svårläst för icke-svenskar. Du kan använda åäö vilket inte alltid har varit en självklarhet i programmeringssammanhang.

Camel case är en teknik som används inom C# för att namnge variabler. Regeln är enkel: första bokstaven är gemen och varje nytt ord i variabeln inleds med en versal. T.ex. mittHeltal eller antalGissningar. Använd inga specialtecken mellan ord utan skriv ihop orden.

Undvik förkortningar och namn som inte säger något. Dåliga exempel: a, g eller gissningar istället för antalGissningar. Vilket av namnen är mest begripligt om du vill lagra antalet gissningar som gjorts i ett program?

Rekommendationen är 10 til 16 bokstäver i ett variabelnamn för att koden skall bli lättläst.

För metoder, properties eller klassnamn används Pascal case vid namngivning. Även om det är lite tidigt att nämna metoder och klasser så kan du ändå känna till Pascal case. Denna regel är precis som Camel case men även första bokstaven inleds som versal. T.ex. antalGissningar i Camel case blir AntalGissningar som Pascal case.

Tillåtna variabelnamn

Oavsett om vi väljer bra eller dåliga namn, camel case eller Pascal case, så finns det regler vi måste följa. Kortfattat lyder de:

  • En variabel måste börja med en bokstav eller _ (underscore).
  • Efter första tecknet kan du ha bokstäver, siffror, bindetecken, etc.
  • Om variabelnamnet matchar ett reserverat ord, t.ex. int, så kan du använda tecknet @ framför. Alltså @int.

Bokstäver inkluderar all världens bokstäver, alltså även åäö eller japanska tecken.

Fler variabeltyper

Datatyp Beskrivning Utrymme
short Heltal, -32768 till 32767 16 bitar
int Heltal, ±2*109 32 bitar
long Heltal, ±9*1018 64 bitar
float Flyttal, ±3,4*1038 (med 7 gällande siffror) 32 bitar
double Flyttal, ±1,7*10308 (med 15 gällande siffror) 64 bitar
char Ett tecken (unicode) 16 bitar
string En text (sträng av tecken, unicode) 16 bitar/tecken
bool true eller false 8 bitar
byte Heltal, 0 till 255 8 bitar
decimal Decimaltal, ±7,9*1028 (med 28 gällande siffror) 128 bitar

Videogenomgång

Vi går igenom lite fler variabeltyper (int, short, long, decimal, float, double) och diskuterar begreppen signed/unsigned samt overflow.

Övning 3

Skriv ett program som läser in ett decimaltal (Celsius-grader). Talet skall sedan räknas om till Farenheit enligt formeln farenheit = 1.8 * celsius + 32. Bilden nedan visar hur det skall se ut:

bild

Övning 4

Ändra i övning 3 och använd Console.Write istället för Console.WriteLine. Du skall då kunna få programmet att se ut som:

bild

Övning 5

Gör ett program där du matar värdet på radien i en cirkel som ett decimaltal. Skriv sedan ut cirkelns omkrets och area.

bild

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Scroll to top