1. Moment01 - Introduktion

Detta moment handlar om att vi skall få en fungerande miljö som vi sedan skall använda under kursen. När vi har en fungerande miljö så skall vi göra en uppgift där vi fräschar upp minnet när det gäller programmering. Uppgiften är en typisk uppgift som skulle kunna finnas i kursen Programmering01. Syftet med uppgiften är att komma igång med programmeringstänket igen, att repetera koder som du glömt av, och att skapa en gemensam plattform att gå vidare med eller att få tid att mappa över kunskapen från ett annat programmeringsspråk till C#. Att genomföra uppgiften kan ta olika lång tid beroende på förkunskaper och vilket språk du kommer ifrån.

Vårt huvudspråk i denna kurs kommer vara C# som är ett objektorienterat programmeringsspråk som är en del av .NET-plattformen. C# är utvecklat av Microsoft för programvarutveckling främst i windowsmiljö.

1.1 Installera grundmiljön

Eftersom vi jobbar i Windowsmiljö så är det enkelt för oss att använda oss av Microsofts produkter. Visual Studio Community är Microsofts IDE som är fokuserad på utveckling inom .NET. När du har laddat ner installationsfilen och vill installera programmet så räcker det att ange att du vill installera .NET desktop development för det som vi skall göra i denna kursen. Att välja att installera fler paket gör bara att installationen tar mer plats på din hårddisk.

När installationen är färdig så är det dags att skriva dina första applikationer.

1.1.1 Säkerhetskopiering

Alla dina projekt kommer att lägga sig på datorn och det är ditt ansvar att hitta en lösning så att dessa projekt säkerhetskopieras och inte försvinner. Mitt tips är att flyttar in dem i någon molntjänst. Du bör vara van vid att jobba i google Drive, så mitt förslag är att installera desktopapplikationen så att du fysiskt kan lägga filer och projekt i din dator och att de automatiskt synkas mot molnet. Alternativa tjänster är iCloud, Dropbox och OneDrive.

Här finns en länk till kunskapsdokument: Google Drive om du vill ha hjälp att sätta upp en bra miljö.

Tänk på att alltid hålla filer och projekt säkerhetskopierade, det kan aldrig vara lärarens problem att datorn kraschar och att projektet försvinner dagarna före en deadline. Behåll också alla filer och projekt tills du har fått ett betyg på kursen. Sedan är det alltid elever som hör av sig när de har börjat på högskola och frågar om jag har kvar deras inlämning från den och den kursen. Jag sparar ingenting, men det är enkelt att spara det du själv har skapat.

1.2 Repetition

I detta moment skall vi lära oss grundläggande programmering i C#, vi skall ta det viktigaste vi lärde oss från kursen Programmering 1 och översätta dessa kunskaper till programmeringsspråket C#. Har du redan använt dig av programmeringsspråket c# så blir detta en bra repetition. Eftersom det är dumt att inte använda bra material så kommer vi i denna del använda oss av progsharp.se och ta del av text, videotutorials samt de övningar som finns där.

Oberoende av vilket programmeringsspråk du använt i Programmering 1 så skall det inte vara allt för svårt att ta in det nya programmeringsspråket. Har du tidigare läst Java eller C++ så kommer övergången vara extra enkel. Har du läst JavaScript eller PHP så kommer du märka att C# är ett mycket mer styrt språk där du bl.a. tvingas deklarera din variabler innan du arbetar med dem.

Repetitionsmomentet innehåller alla kontrollstrukturer från kursen Programmering01 som du behöver ha koll på innan vi går vidare. Det kan vara så att någon del inte har haft fokus på sig och då behöver du kanske lägga lite mer tid på denna del. Det viktigaste just nu är att du kommer igång med uppgifterna och åter kommer in i programmeringen.

1.2.1 Tips från coachen

Jag kommer inte tala om exakt hur du skall jobba under detta moment men jag kommer plocka fram några uppgifter som jag vill att du löser. Exakt hur du lägger upp varje del är upp till dig. Kanske lär du dig bäst genom att läsa text, se en inspelad tutorial, läsa kodexempel eller testa dig fram på en given övning? Välj det sätt som passar dig bäst.

Det jag vill är att du genomför inlämningsuppgiften innan vi är klara med momentet, det är den jag vill se inlämnad.

1.3 Material

Följande material rekommenderar jag att du jobbar med.

OBS: Du känner bäst din egna förmåga, jobba inte med de delar som du redan behärskar men om du senare får problem med någon specifik kontrollstruktur så vet du alltid vart du kan vända dig för att läsa mer. Du avgör själv om du vill göra någon av uppgifterna som är kopplade till varje del.

Alla exempel som jag länkar här nedan kommer från ProgSharp.se och där använder författaren svenska variabelnamn, jag rekommenderar er dock att försöka använda engelska variabelnamn så långt det är möjligt.

1.3.1 Grundstruktur i C# och utskrifter

Vi börjar från grunden för att förstår hur vi skall jobba i C#.
Kapitel 2 - Hello World, utmatning och programstruktur

1.3.2 Inmatning och variabler

Detta avsnitt handlar om hur datatyper fungerar i C# och du får också testa att mata in och skriva ut i konsollen. Lägg extra fokus på hur inmatning av tal går till.
Kapitel 3 - Inmatning, variabler och konvertering

1.3.3 Villkor

Selektioner/villkor (if-satser och switch) i C# fungerar på samma sätt som det programmeringsspråk som du är van vid sedan tidigare.
Kapitel 4 - Val med if och switch

1.3.4 Repetitionssatser

Iterationer/repetitionssatser (for- och whileloopar) i C# fungerar på samma sätt som det programmeringsspråk som du är van vid sedan tidigare.
Kapitel 5 - Upprepning med loopar

1.3.5 Array

Att jobba med arrayer är viktigt inom databehandling, vi kommer senare i denna kursen kika på olika typer av samlingar som förenklat beter sig som en dynamisk array (en array som kan förändras i storlek).
Kapitel 6 - Array

För den som redan nu vill kika lite på samlingstypen List så finns information här. List en samlingsklass som enklast beskrivs som en dynamisk array, den kan alltså förändras i storlek, vilket i många fall är smidigare än en fast storlek som en array har.

1.3.6 Metoder

Metoder använder vi för att enklare kunna återanvända kod och slippa ha kod som breder ut sig och blir allt för stor och svår att hantera. Metoder och funktioner är samma sak det har bara olika namn i olika programmeringsspråk.
Kapitel 7 - Metoder

1.3.7 Läsa och skriva till fil

Denna del är inte obligatorisk men för den eleven som vill ha en lite större utmaning så är det ett naturligt steg att ta. Vi skall kika på hur man skriver till och läser från en fil.

Kodexempel: läsa och skriva till fil

Klicka för att visa koden!

Här följer ett kodexempel på hur vi kan skriva till och läsa från fil.

Exempelkod

1.4 Uppgift: Bankapplikation

Gör ett bankkonto-program där du från meny kan välja

  1. Insättning
  2. Uttag
  3. Visa saldo
  4. Avsluta programmet

Följande gäller angående programmet

  • Sätt saldot vid start till 1000:-.
  • Programmet skall ge användaren chans att göra upprepade val under en och samma körning.
  • Självklart kan du inte kunna ta ut mer pengar än det finns på kontot.

Kodexempel: programloop

Klicka för att visa koden!

Här följer ett kodexempel för att skapa en programloop som gör att vi kan välja olika delprogram och sedan avsluta vår applikation på ett kontrollerat sätt.

Exempelkod

1.4.1 Extra

För den som vill utmana sig lite extra finns följande funktionalitet att addera till sin applikation.

  • Lagra alla transaktioner i en array så att du räknar ut aktuellt saldo mha en metod.
  • Redovisa alla tal med två decimaler. Tillåt insättning och uttag av decimaltal.
  • Bygg in funktionalitet för att kunna skriva en händelse till varje transaktion så att det går att få ut en lista på alla transaktioner.
  • Bygg in hantering för att ta hand om alla felinmatningar. Felsökning och olika variabeltyper
  • Lagra transaktioner till fil och läs in dem från fil för att kunna komma tillbaka till det saldo som fanns på kontot när du senast avslutade applikationen. TIPS: Fundera på hur du skall jobba med fil och/eller arrayer för att inte tappa data.

Kodexempel: felhantering

Klicka för att visa koden!

Här följer ett exempel för hur man kan bygga in skydd mot programkörningfel, vilket innebär att användaren matar in ett värde som inte förväntas.

Exempelkod

Kodexempel: split med delimiter

Klicka för att visa koden!

Att läsa in från fil finns det tidigare exempel på, här visar jag också hur man kan läsa in data från fil och splitta upp denna i olika delar. Tänk att varje rad i filen innehåller info om beloppet, en kort information i form av en text och sedan ett datum. Denna informationen skrivs i filen på följande sätt 1000|Kontot skapades|2018-09-07 08:49:15 där pipe(|) används som delimiter (avdelare).

I exempelkoden nedan visar jag hur metoden för att läsa in filen och dela upp den i tre listor fungerar, dessa tre listor skall vi sedan använda för att jobba med applikationen.

Exempelkod

I exemplet visar jag bara de globala variablerna och metoden för att läsa in filen till listorna.

Uppgift

För att vara klar med detta moment skall följande saker vara klara!

  1. Du skall ha en fungerande installation på din dator.
  2. Du skall ha en implementerad plan för hur du backar upp de filer du jobbar med.
  3. Bankapplikationen skall vara genomförd, med en kort utvärdering av arbetet som en kommentar först i din kod. Din programfil skall vara upplagd i Vklass för avsedd uppgift.