Avatar billede emil123 Juniormester
21. april 2022 - 10:36 Der er 8 kommentarer

Arrays opgave

Hjælp Hjælp

Lav et program der finder gennemsnittet af en række temperaturer målt over en 7 dages periode. Brug array som vist ovenfor.

Avanceret! Brug evt. to Arrays. Ét til temperaturen og ét til ugedagenes navne. Så kan du udskrive ugedag og temperatur sammen.

Jeg kan simpelt hen ikke vikle mit hoved omkring det her. Jeg har ondt i hovedet. Please hjælp
Avatar billede michael_stim Ekspert
21. april 2022 - 10:51 #1
Lyder ellers som en rimelig overkommelig opgave.

Taget fra internet og ikke testet:

using System;

class Avg
{
    public static void Main()
    {
        int[] arr = { 1, 2, 6, 2, 18, 7, 9 };
       
        int i=0;
        int sum = 0;
        float average = 0.0F;
       
        for (i = 0; i < arr.Length; i++)
        {
            sum += arr[i];
        }

        average = (float)sum / arr.Length;
       
        Console.WriteLine("Average of Array elements: "+ average);
    }
}
Avatar billede michael_stim Ekspert
21. april 2022 - 11:07 #2
Og i opgave 2, laver du bare en array mere og udskriver dem i din loop (OBS, kræver at de er lige lange):
string[] arr2 = {"mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag", "søndag"};

og i dit loop:
Console.WriteLine(arr2[i] + ", " + arr[i] + " grader \n");
Avatar billede emil123 Juniormester
21. april 2022 - 11:10 #3
Tak og ja det er en overkommelig opgave men min logiske hjerne fungere som lort og pis så selv sådan nogle overkommelige opgaver kan jeg ikke døje med hvis jeg ikke får det forklaret godt, og det failer min lærer i
Avatar billede arne_v Ekspert
21. april 2022 - 15:20 #4
Kunne du løse opgaven som matematik opgave på papir?

I.s.f. at se på det som:

opgave beskrivelse -> C# program

så se på det som:

opgave beskrivelse -> papir løsning -> C# program
Avatar billede arne_v Ekspert
21. april 2022 - 15:30 #5
#1

Jeg ved ikke hvor du har fundet den kode snippet. Den virker fint men jeg tror ikke at forfatteren er erfaren med C#. Det er ikke idiomatisk C#.

Bare nogle små stilistiske forskelle;


using System;

public class Avg
{
    public static void Main(string[] args)
    {
        int[] data = { 1, 2, 6, 2, 18, 7, 9 };
        int sum = 0;
        for (int i = 0; i < data.Length; i++)
        {
            sum += data[i];
        }
        double average = (double)sum / data.Length;
        Console.WriteLine("Average of Array elements: {0:F2}", average);
    }
}


Selvfølgelig kan opgaven også løses med LINQ, men det er næppe hvad der er ideen.


using System;
using System.Linq;

public class Avg
{
    public static void Main(string[] args)
    {
        int[] data = { 1, 2, 6, 2, 18, 7, 9 };
        Console.WriteLine("Average of Array elements: {0:F2}", data.Average());
    }
}
Avatar billede michael_stim Ekspert
21. april 2022 - 15:41 #6
#5
Det første og bedste der dukkede op, og har aldrig siddet med C#, så du har uden tvivl ret. Men så er der plads til forbedring af kode hos opretter :-D
Avatar billede arne_v Ekspert
21. april 2022 - 17:14 #7
#6

Der er et gammelt ordsprog som siger at Fortran programmører kan programmere i Fortran i ethvert sprog. Man kan tit se hvis kode er skrevet af en som er vant til at bruge et andet sprog.
Avatar billede arne_v Ekspert
21. april 2022 - 17:16 #8
emil>

Du behøver ikke at bekymre dig om hvorvidt din kode er typisk C# stil - hvis din kode virker så er opgaven løst OK.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester