Eksamenssett logo
eksamenssett.noTren målrettet
  • Ungdomsskole/VGS
  • Høyskole
  • Ressurser
  • Skolenyttig
  • Forum
eksamenssett.noTren målrettet

Komplett samling av eksamensoppgaver og løsninger for norsk skole.

Om ossFAQPersonvernVilkårAngrerettKontakt

© 2025 Eksamenssett.no · Alle rettigheter forbeholdt

Innholdet er utviklet med AI-verktøy og kvalitetssikres kontinuerlig. Slik jobber vi med kvalitet →

Eksamenssett.no eies og drives av Studenthjelp Privatundervisning AS

Eksamenssett logo
eksamenssett.noTren målrettet
  • Ungdomsskole/VGS
  • Høyskole
  • Ressurser
  • Skolenyttig
  • Forum
eksamenssett.noTren målrettet

Komplett samling av eksamensoppgaver og løsninger for norsk skole.

Om ossFAQPersonvernVilkårAngrerettKontakt

© 2025 Eksamenssett.no · Alle rettigheter forbeholdt

Innholdet er utviklet med AI-verktøy og kvalitetssikres kontinuerlig. Slik jobber vi med kvalitet →

Eksamenssett.no eies og drives av Studenthjelp Privatundervisning AS

Eksamenssett logo
eksamenssett.noTren målrettet
  • Ungdomsskole/VGS
  • Høyskole
  • Ressurser
  • Skolenyttig
  • Forum
eksamenssett.noTren målrettet

Komplett samling av eksamensoppgaver og løsninger for norsk skole.

Om ossFAQPersonvernVilkårAngrerettKontakt

© 2025 Eksamenssett.no · Alle rettigheter forbeholdt

Innholdet er utviklet med AI-verktøy og kvalitetssikres kontinuerlig. Slik jobber vi med kvalitet →

Eksamenssett.no eies og drives av Studenthjelp Privatundervisning AS

Eksamenssett logo
eksamenssett.noTren målrettet
  • Ungdomsskole/VGS
  • Høyskole
  • Ressurser
  • Skolenyttig
  • Forum
eksamenssett.noTren målrettet

Komplett samling av eksamensoppgaver og løsninger for norsk skole.

Om ossFAQPersonvernVilkårAngrerettKontakt

© 2025 Eksamenssett.no · Alle rettigheter forbeholdt

Innholdet er utviklet med AI-verktøy og kvalitetssikres kontinuerlig. Slik jobber vi med kvalitet →

Eksamenssett.no eies og drives av Studenthjelp Privatundervisning AS

Eksamenssett logo
eksamenssett.noTren målrettet
  • Ungdomsskole/VGS
  • Høyskole
  • Ressurser
  • Skolenyttig
  • Forum
  1. Hjem
  2. Informasjonsteknologi
  3. IT 2 – C#
  4. Løsning Vår 2025
VG3

Løsningsforslag Informasjonsteknologi IT 2 – C#Vår 2025

Se eksamensoppgaven
Vår 2024Eldre
Om løsningsforslaget: Dette er veiledende løsningsforslag laget av eksamenssett.no. Oppgavene på IT 2-eksamen varierer, men vi gir her tips, strategier og eksempelkode for de vanligste oppgavetypene. Husk at det finnes mange gode måter å løse oppgavene på.

Løsningsforslag – IT 2 C# Vår 2025

Eksamen: REA3049-CS | Semester: Vår 2025 | Varighet: 5 timer

Oppgave 1–5: Interaksjonsoppgaver (anbefalt tid: 1 time)

Oppgavetyper: Kortsvar, flervalg, kodefullføring, modellering og implementasjon.
Tips til interaksjonsoppgavene:
  • Les koden nøye: Spor gjennom koden linje for linje. Pass på typer og casting.
  • Forstå datastrukturer: List<T>, Dictionary<K,V> og arrays er sentrale i C#.
  • Flytdiagram: Bruk standard symboler – oval (start/slutt), rektangel (prosess), rombe (vilkår).
  • Tilgangsnivåer: Forstå public, private og protected.

Eksempel: Spore gjennom kode

static List<int> Behandle(List<int> liste)
{
    List<int> resultat = new List<int>();
    foreach (int element in liste)
    {
        if (element % 2 == 0)
            resultat.Add(element * 2);
        else
            resultat.Add(element + 1);
    }
    return resultat;
}

List<int> tall = new List<int> { 3, 8, 5, 2 };
Console.WriteLine(string.Join(", ", Behandle(tall)));
// Svar: 4, 16, 6, 4

Eksempel: LINQ-spørringer

using System.Linq;

List<int> tall = new List<int> { 12, 5, 8, 130, 44 };

var storeTall = tall.Where(t => t > 10).ToList();
// Resultat: [12, 130, 44]

var gjennomsnitt = tall.Average();
// Resultat: 39.8

var sortert = tall.OrderByDescending(t => t).ToList();
// Resultat: [130, 44, 12, 8, 5]

Oppgave 6: Objektorientert utvikling (anbefalt tid: 1 time)

Oppgavetype: Lag klassediagram, implementer klasser, skriv testprogram og håndter unntak.
Tips til OOP-oppgaven:
  • Klassediagram: Vis egenskaper med typer og tilgangsnivå (+/-).
  • Properties: Bruk get/set-properties for innkapsling.
  • ToString(): Override ToString() for lesbar utskrift.
  • Exceptions: Bruk throw og try/catch for feilhåndtering.
Eksempel: Biblioteksystem
class Bok
{
    public string Tittel { get; set; }
    public string Forfatter { get; set; }
    public string Isbn { get; set; }
    public bool ErUtlant { get; private set; }

    public Bok(string tittel, string forfatter, string isbn)
    {
        Tittel = tittel;
        Forfatter = forfatter;
        Isbn = isbn;
        ErUtlant = false;
    }

    public void LanUt()
    {
        if (ErUtlant)
            throw new InvalidOperationException($"Boken '{Tittel}' er allerede utlånt.");
        ErUtlant = true;
    }

    public void LeverTilbake()
    {
        if (!ErUtlant)
            throw new InvalidOperationException($"Boken '{Tittel}' er ikke utlånt.");
        ErUtlant = false;
    }

    public override string ToString()
    {
        string status = ErUtlant ? "utlånt" : "tilgjengelig";
        return $"{Tittel} av {Forfatter} ({status})";
    }
}


class Laner
{
    public int LanerId { get; set; }
    public string Navn { get; set; }
    public List<Bok> LanteBoker { get; set; }

    public Laner(int lanerId, string navn)
    {
        LanerId = lanerId;
        Navn = navn;
        LanteBoker = new List<Bok>();
    }

    public void LanBok(Bok bok)
    {
        bok.LanUt();
        LanteBoker.Add(bok);
    }

    public void LeverTilbakeBok(Bok bok)
    {
        if (!LanteBoker.Contains(bok))
            throw new InvalidOperationException($"{Navn} har ikke lånt '{bok.Tittel}'.");
        bok.LeverTilbake();
        LanteBoker.Remove(bok);
    }

    public override string ToString()
    {
        return $"{Navn} (ID: {LanerId}), {LanteBoker.Count} bøker lånt";
    }
}
Testprogram:
Bok bok1 = new Bok("Sofies verden", "Jostein Gaarder", "978-82-252-1591-5");
Laner laner = new Laner(1, "Emma Hansen");

laner.LanBok(bok1);
Console.WriteLine(bok1);  // Sofies verden av Jostein Gaarder (utlånt)

try
{
    laner.LanBok(bok1);
}
catch (InvalidOperationException e)
{
    Console.WriteLine($"Feil: {e.Message}");
}

Oppgave 7: Drøfting/etikk (anbefalt tid: 30 minutter)

Tips: Strukturer med innledning → argumenter med eksempler → konklusjon. Ca. 600 tegn.

Oppgave 8: Datasett (anbefalt tid: 1 time)

Oppgavetype: Les inn data fra CSV/JSON, bearbeid og presenter med tabeller og diagrammer.
Eksempel: Lese og bearbeide CSV-data
using System.IO;

static List<Dictionary<string, string>> LesCsv(string filnavn)
{
    var data = new List<Dictionary<string, string>>();
    string[] linjer = File.ReadAllLines(filnavn);
    string[] header = linjer[0].Split(';');

    for (int i = 1; i < linjer.Length; i++)
    {
        string[] verdier = linjer[i].Split(';');
        var rad = new Dictionary<string, string>();
        for (int j = 0; j < header.Length; j++)
        {
            rad[header[j]] = verdier[j];
        }
        data.Add(rad);
    }
    return data;
}

static void VisTabell(List<Dictionary<string, string>> data, string felt)
{
    var sortert = data.OrderByDescending(r => double.Parse(r[felt])).ToList();
    Console.WriteLine($"{"Navn",-25} {felt,10}");
    Console.WriteLine(new string('-', 37));
    foreach (var rad in sortert.Take(10))
    {
        Console.WriteLine($"{rad["Navn"],-25} {double.Parse(rad[felt]),10:F1}");
    }
}

Oppgave 9: Implementasjonsoppgave (anbefalt tid: 1 time 30 min)

Tips: Planlegg klassene først. Bruk properties og LINQ. Test underveis.
Mønster: Register med fillagring
using System.Text.Json;

class Register<T>
{
    private string filnavn;
    public List<T> Elementer { get; set; }

    public Register(string filnavn)
    {
        this.filnavn = filnavn;
        LastFraFil();
    }

    public void LastFraFil()
    {
        try
        {
            string json = File.ReadAllText(filnavn);
            Elementer = JsonSerializer.Deserialize<List<T>>(json);
        }
        catch
        {
            Elementer = new List<T>();
        }
    }

    public void LagreTilFil()
    {
        var options = new JsonSerializerOptions { WriteIndented = true };
        string json = JsonSerializer.Serialize(Elementer, options);
        File.WriteAllText(filnavn, json);
    }

    public void LeggTil(T element)
    {
        Elementer.Add(element);
    }
}
Generelle eksamenstips – IT 2 C#:
  • Bruk alle 5 timene – fordel tiden etter anbefalt tidsbruk per seksjon.
  • Start med oppgavene du er mest trygg på for å sikre poeng.
  • Bruk properties (get/set) for innkapsling av data.
  • Bruk try/catch og throw for feilhåndtering.
  • Override ToString() i klasser for lesbar utskrift.
  • Bruk LINQ (Where, Select, OrderBy) for databehandling.
  • Kommenter koden din – det hjelper sensor å forstå tankegangen.
Eldre løsning
Vår 2024

Alle løsningsforslag for IT 2 – C#

Vår 2025Vår 2024
Se eksamensoppgaven
eksamenssett.noTren målrettet

Komplett samling av eksamensoppgaver og løsninger for norsk skole.

Om ossFAQPersonvernVilkårAngrerettKontakt

© 2025 Eksamenssett.no · Alle rettigheter forbeholdt

Innholdet er utviklet med AI-verktøy og kvalitetssikres kontinuerlig. Slik jobber vi med kvalitet →

Eksamenssett.no eies og drives av Studenthjelp Privatundervisning AS