Grundlæggende Programmering
Kursus: Grundlæggende Programmering | LearnSpace
-
-
Software som vi fiorventer er installeret når forløbet starter.
-
Alle opgaver skal gemmes i seperate mapper.
De færdige opgaver skal bruges i senere fag hvor det er vigtigt de ligger sepereret.
-
-
Til at starte med er det vigtigt at kende de mest brugte datatyper i programmering.
int - Integer (Hele tal)
string - Character sequence (en samling af flere characters)
-
Variabler er en beholder til at gemme data til senere brug.
Hvis vi skal oprette en variabel skal vi først fortælle hvilken datatype vi vil gemme i variablen.
I dette eksempel vælger vi at gemme data af typen (string)
Eksempel: string
Derefter skal vi give den det navn. Navnet bestemmer vi selv men husk at give det et navn der er sigende i forhold til den data du vil gemme
Eksempel: string gemtData
Vi kan nu vælge at ligge data i variablen med det samme eller vente til senere.
I dette eksempel ligger vi data i med det samme.
Eksempel: string gemtData = "mine data";
For at fortælle programmet at vi vil gemme data skal vi først sætte en ligheds tegn( = ) efterfulgt af den data vil vil gemme.
I dette eksempel gemmer vi en string. String data skal altid omringes af enten single( ' ) eller double ( " ) quotes.
Til sidst i eksemplet kan du se et semi kolon ( ; ). Semi kolon bruges til at afslutte alle linjer kode i C#
Hvis vi senere vil ændre data i vores variabel skal vi blot fortælle navnet på vores variabel og og den nye data vi vil gemme.
Eksempel: gemtData = "ny data";
Læg mærke til at jeg ikke skulle fortælle den hvilken data type der skal gemmes.
Da vi allerede har oprettet variablen kan den kun gemme den samme data type som den gemte da vi først oprettede variablen.
-
1. Start Visual Studio.
2. Create a new project.
3. Create a new project: Console App (.NET Core).
4. Configure your new project:
- Project name: FirstConsole_app.
- Location: Gem dit project et sted du kan finde fx. (Dokumenter\Gr_Prog).
- Solution name: Efterlad som den er.
Visual studio vil nu give dig et stykke start kode "Hello World"

Til at starte med er det eneste vi skal tænke på, at vores kode skal placeres inden for vores "Main".
Linjen "Console.WriteLine("Hello World!");" er til at skrive text ud i vores konsol program.
Prøv at køre programmet og se hvad der sker :)

Som i kan se kommer der en terminal op hvor der står "Hello World" på den første linje.
Den første del af linjen i vores kode "Console.WriteLine" er en funktion der er beregnet til at skrive text ud i konsol programmet.
Parantecerne "("Hello Wolrd")" indeholder den text vi gerne vil skrive i ud.
-
I denne opgave skal vi bruge vores nuværende viden til at ændre start programmet.
- Opret en variabel til at holde på texten "Hello World".
- Brug din nye variabel til at skrive "Hello World" i consol app'en.
-
Læs text fra vores app!
Lige som vores linje "Console.WriteLine("Hello World!")" skriver ud i app'en.
Kan vi også skriver en linje kode der kan læse text fra app'en.
Sådan en linje vil se sådan her ud "Console.ReadLine();".
Her kan vi bruge en variabel til at gemme vores data "string readData = Console.ReadLine();".
Nu kan vi bruge den text vi har skrevet ind hvor som helst ved at referere til variablen "readData".
Sammensætning af variabler!
Vi har også mulighed for at kombinere/sammensætte vores variabler (Concatenation).
Så det er muligt at skrive 2 variabler ud i app'en med kun 1 "WriteLine" funktion!
det gør vi ved at sætte et "+" tegn mellem variablerne
Eksempel:

-
Du skal nu lave dit program lidt om.
Programmet skal:
- Sprørge efter fornavn.
- Indtast fornavn.
- Spørge efter efternavn
- Indtast efternavn
- Skrive det indtastede fornavn og efternavn ud i programmet.
Program Output

-
-
Vi har mulighed for at lave udregninger med tal lige så nemt som sammensætning af strings.
Med andre ord:
int tal1 = 21;
int tal2 = 21;
Console.WriteLine(tal1 + tal2);Vil skrive tallet 42 ud i programmet.
Men hvis vi prøver at skrive tallene ind med "ReadLine" og ligge dem sammen vil vi få resultatet 2121.
Det er fordi at readline tror alt hvad der bliver skrevet er text og gemmer derfor vores input som string
Vi skal derfor kigge på andre indbyggede funktioner for at kunne konvertere inputtet til int(tal).
Der er rigtig mange funktioner indbygget i C# .NET og informationer kan findes på den officielle dokumentation side.
MEN! ind til videre skal vi kun bruge 1 funktion mere.
Den funktion er "Convert.ToInt32()" lige som tidligere skal vi ligge det vi vil konvertere til int mellem parantecerne.
Så hvis vi vil konvertere vores input fra ReadLine til int, skal den inden i parantecerne.
Eksempel: Convert.ToInt32(Console.ReadLine());
Med det er vi klar til Opgave 2
-
I denne opgave skal vi lave en lommeregner der kan ligge 2 tal sammen (Husk at operette et nyt projekt!)
- Input første tal.
- Input anden tal.
- Lig de 2 tal sammen.
- Skriv resultat ud.
-
-
-
-
If sætninger er en essentiel del af programmering. If sætninger bruges til at dirigere din kode i den retning du ger vil.
Med andre ord hvis (if) nogen er korrekt (true) skal dette kode køres.
En if sætninger er sat sammen af flere dele. Først skal vi fortælle vores program at vi vil lave en if sætning. Det gør vi ved at skrive "if" derefter skal vi fortælle den hvad den skal kigge efter, det gør vi ved at lave et sær parantecer "()".
Det vi placere inden for parantecerne bestemmer om koden skal køres eller ej. Hvis resultatet inden for paranteserne er korrekte (true) vil programmet køre din kode.
Den kode du gerne vil køre skal placeres inden for curly brackets "{}".
Eksempel:

Dette eksempel vil altid udskrive "Hej".

Dette eksempel vil aldrig udskrive "Hej".
Disse eksempler er kun til at demonmstrere hvordan en if sætning virker og er ikke meget værd i et rigtigt program.
Hvis vi skal bruge "if" i et program kan vi lave en måling mellem 2 værdier for at se om de er ens.
Eksempel:


For at demonstrere dette kan du prøve at lave dette eksempel i Visual Studio.

Endnu en datatype!
Boolean er den datatype der bliver skrevet ud i demonstrationen ovenfor.
Boolean er en datatype der kun kan indeholde enten True eller False.
Eksempel: bool myBool = True;
-
Med den viden du har ind til videre skal du lave et lille program:
(Husk at operette et nyt projekt!)
- input et tal.
- Hvis tallet du skriver er 5 skriv "Du skrev 5" ud i programmet.

-
Når vi bruger if sætninger i vores kode har vi også mulighed for at lave en "else" efter.
Else er det programmet skal gøre hvis udfaldet af "if" sætnimgen resultere i False.
Eksempel:

-
Udvid programmet med en else der skriver (du skrev ikke 5 du skrev "det tal du har skrevet ind") hvis der bliver skrevet noget andet end 5 ind.
Output

-
-
Det er vigtigt når vi begynder at arbejde med ting som if sætninger at vi har styr på hvad et scope er og hvordan det virker.
Et scope er defineret med curly bracket "{}", Som vi kan se i vores if sætning er alt vores kode inden for curly brackets, Med andre ord vi definere et nyt scope for at holde styr på hvilken kode tilhøre if sætningen.
Man skal huske at scopes er lukket, og alle nye variabler vi laver inden for et scope kan ikke ses ude fra.
Men variabler som vi laver udenfor scopes kan godt ses inde fra et scope.
Eksempel Kan “a” udskrives?
Ja,
fordi “a” defineres udenfor vores curly brackets, og er derfor synlige inden de underliggende curly brackets
static void Main(string[] args)
{
String a;
a = "bil";
{
Console.WriteLine(a);
}
}Kan “b” udskrives?
Nej,
fordi “b” bliver defineret indenfor vores curly brackets og derfor ikke synlig ude fra.
static void Main(string[] args)
{
{
String b;
b = "hus";
}
Console.WriteLine(b);
}Kan “b” udskrives?
Nej.
static void Main(string[] args)
{
{
String b;
b = "hus";
}
{
Console.WriteLine(b);
}
}Kan “b” udskrives?
Ja.
static void Main(string[] args)
{
String b;
b = "hus";
{
{
Console.WriteLine(b);
}
}
}-
Til denne opgave er det nødvendigt at bruge en indbygget klasse til at lave et random nummer.
Hvad en klasse er kommer i til at arbejde med i et senere fag.I dette projekt kan i bare kopire denne kode til at starte med:
Random randomNumber = new Random();
For at bruge denne kan vi kalde den med det navn vi har givet den "randomNumber" og bruge den lige som vores ReadLine og WriteLine.
for at fortælle den hvilke tal den skal lave en nummer fra og til skriver vi dem i parantecerne efter.
Eksempel: randomNumber.Next(0, 10);
Det vil lave en random nummer fra 0 til 10.
Brug den viden du har til at lave en program hvor du kan gætte et nummer imellem to indtastede tal.
- Skriv det laveste tal der kan genereres.
- Skriv det højeste tal der kan genereres.
- Skriv dit gæt.
Program Output

eller

-
-
-
Loops giver os muligheden for at køre det samme kode flere gange.
Vi skal starte med at kigge på while loops. Det er vigtigt vi kun kigger på while så vi ikke bliver forvirret og blander dem sammen med andre loops.
Ligesom if operere vi med boolean værdier. hvis en statement er True køre loopen.

Den store foreskel her er at IF sætningen stopper efter at være kørt 1 gang. hvoimod en loop bliver ved at starte forfra ind til at statement'en bliver false.
Så eksemplet ovenfor vil blive ved at skrive text ud og aldrig stoppe.

Output for if sætning:

Output for while loop:

-
Som sagt giver loops os mulighed for at lave en operetion flere gang om og om igen.
Det vil sige at vi har mulighed for at lave noget som en tæller der kan skrive ud hvor mange gange loop'et har kørt ved at bruge matematik inden i loopet
- Opret en variabel der indeholder tallet 0 uden for scopet din while loop.
- Lav en loop der køre uendeligt som i eksemplet ovenfor.
- Skriv din variabel ud i programmet.
- Læg 1 til din variabel. (Variabel + 1)
Output:
-
En hvile løkke kan kan også bruges til at holde vores program kørende ind til det tidspunkt hvor vi gerne vil stoppe den.
I vores while loops og if sætninger har vi mulighed for at lave noget af logikken med det samme. Ligesom vi kan lave "==" for at se om 2 tal eller strings er ens (true eller false) kan vi også lave ting som at se om noget er større end ">" eller mindre end "<" noget andet.
Eksempel på en if sætning:

-
Som vist i if sætningen ovenfor kan vi kontrollere om et tal er større eller mindre end et andet.
i denne opgave skal vi lave videre på opgave 5 ved at tilføje logik som vist ovenfor til vores while loop.
- Udskift true i din while løkke med logik der holder styr på om din loop har talt til 10.000.
- Når din tæller når til 10.000 skal programmet stoppe.
-
-
Vi kan bruge vores loops til mange fantastiske ting, som ekselmpelthvis at holde vores program kærende ind til vi siger til den at den skal stoppe.
Dette kan vi eksempelthvis gøre ved at oprette vores egen variabel med datatypen boolean og søtte den til true.
Så længe den forbliver true vil programmet starte forfra, Når vi så vil have programmet til at stoppe skal vi ligesom med andre variabler ændre værdien til false.

Derefter kan vi fylde alt vores kode ind i loop'en.
-
Lav et program der kan læse input og stopper hvis den modtager en string der indeholder "exit".
Hvis den ikke indeholder "exit "skal den skrive "Tell me to exit please".
(Del 2 af opgaven kommer med det nye emne imorgen. )
-
-
-
Funktioner er en måde at samle vores kode og kalde den når vi har brug for det..
Det betyder også at vi kan kalde den samme kode flere gange uden at skrive det samme om og om igen.
Vi har allerede brugt funktioner uden at tænke over det.
Funktioner bliver kaldt med funktionens navn afsluttet med parantecer! .
Det vil sige at "Console.ReadLine()" og "Console.WriteLine()" er funktioner.
-
Når vi vil vil oprette en function skal vi først fortælle hvilken return type functionene har
MEN! det kommer vi tilbage til senere, på nuværende tidspunk skal vi bare skrive "void" for at indikere vi ikke vil returnere data.
efter return typen skal vi give vores funktion et navn. navnet bestemmer du men det er vigtigt at give den et navn der giver mening i forhold til funktionaliteten af functionen.
jeg vil oprette en funktion til at lave et regnestykke for mig. så jeg vælger at kalde min funktion "calc".
Eksempel: "void calc"
Derefter skal vi fortælle programmet at det er en funtion ved at tilføje parantecer.
Eksempel: "void calc()"
Derefter skal vi bestemme hvad kode der skal køres når vi kalder funktionen. Det gør vi ved at lave et sæt curly brackets hvor vi kan placere vores kode inden for.
Eksempel: "void calc() { }"
Når vi så vil kalde vores funtion skal vi bare skrive navnet på funktionen efterfulgt af parantecer og selvfølgelig semikolon til at slutte linjen.
Eksempel: "calc();"
Jeg har lavet et eksempel på en function og hvordan jeg kalder funktionen.

Læg mærke til at der er lavet et indryk når vi skal skrive kode inden i funktionen.
Indryk gør koden meget mere overskuelig så du hurtigt kan danne et overblik over hvilken kode høre til hvilken funktion.
Visual Studio skal nok hjælpe med at huske at lave indryk for dig.
-
I denne opgave skal vi arbejde videre med opgave 6 og tilføje funktionalitet til vores loop.
- Lav en funktion og giv den et navn.
(opret en tom funktion til at starte med og lav koden til udregninger bagefter)
- Når vi starter programmet skal den skrive valgmulighederne til brugeren og derefter vente på input
- Hvis vi skriver "1" ind i programmet skal den køre vores funktion .
- Funktionen skal kunne ligge 2 tal sammen og skrive resultatet ud, lige som i opgave 2.
- Når den er færdig med at køre funktionen skal den skrive valgmulighederne ud igen og spørge efter input.
- Programmen skal fortsat lukke hvis den modtager inputtet "exit".
-
-
Retur værdier bliver brugt til at sende "resultatet" af en funktion tilbage.
Så hvis man eksempelthvis har en funktion der regner noget meget komplekst ud som skal bruges et andet sted i programmet kan man bede den om at sende data tilbage til der hvor funktionene bliver kørt
.Eksempel:

Som man kan se i billedet ovenfor er void blevet udskiftet med int.
Det betyder at når man køre funktionene forventer den at der bliver lavet en return med data af typen int.
-
I denne opgave skal vi ændre vores regne funktion så den returnere resultatet af regnestykket og skriver resultatet uden for funktionen.
Vi skal også tilføje en regne funktion mere til at trække 2 tal fra hinanden som også skal returnere resultatet.
Det giver os mulighed for kun at have 1 Console.WriteLine() til at udskrive resultatet fra enten den ene eller den anden funktion alt efter hvad der bliver kørt.
hvis man vælger et menu punkt som ikke existere skal den skrive "Prøv en anden funktion."
- Ændre regne funktionene til at have en retur værdi.
- Ændre programmet så den skriver (Prøv en anden funktion) hvis kommandoen ikke existere.
- Sikre jer at der kun er 1 Console.WriteLine()til at udskrive resultatet fra funktionerne.
-
-
-
Når vi opretter en funktion kan vi vælge at lave den så den tager imod argumenter.
Eksempel: void plus(int tal)
Når vi gør det opretter vi en ny variabel der indeholder den data der bliver sendt når den køres. Variablen findes kan kun tilgåes inden for scopet af funktionen.
Med argumenter skal vi sende data til funktionen ved at ligge dem ind i paranteserne når vi køre funktionen.
Eksempel: plus(argument)
Det er vigtigt at i får øvet jer i at bruge både argumenter og retur værdier da det er noget i kommer til at bruge meget fremad.

-
Det er tid til at lave vores program til en funktionel lommeregner.
I den sidste del af opgave 6 skal vi have programmet rettet til igen og vi skal have mulighed for at gange og dividere også.
Brug ALT! hvad i har arbejdet med ind til videre sammen med argumenter til at løse opgaven.
- Vi skal have en seperat funktion til hver type regnestykke (plus, minus, gange, dividere).
- Vi skal kunne sende data fra ReadLine som argumenter til vores regne funktioner.
- Vi skal bruge den samme WriteLine til at udskrive resultaterne fra regnestykkerne.
Output eksempel:

-