Bruno Mars Skrevet 13. januar 2009 Del Skrevet 13. januar 2009 Trenger litt hjelp. (Skole)oppgaven sier: Gå ut ifra at du har en array som for eksempel er definert som følger: int[] tall = { 34, 53, 2, 3, 34, 26, 26, 85, 3, 4, 98, 2, 12 }; Oppgaver: - Skriv ut array - skriv ut array baklengs - skriv ut annet hvert tall - skriv ut tallene som er mindre enn 10 - skriv ut alle partall - sum av alle tallene - antall negative tall - gjenomsnittet av tallene - det minste tallet - sum av alle partall Har da laget en dropdownlist (med AutoPostBack) og en label. Så langt funker den første oppgaven og sum av alle tall. using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class ArrayTall : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void ddlTall_SelectedIndexChanged(object sender, EventArgs e) { int[] tall = { 34, 53, 2, 3, 34, 26, 26, 85, 3, 4, 98, 2, 12 }; if (ddlTall.SelectedItem.Value == "1") { for (int i = 0; i < tall.Length; i++) { labTall.Text += tall[i] + ", "; } } else if (ddlTall.SelectedItem.Value == "2") { } else if (ddlTall.SelectedItem.Value == "3") { } else if (ddlTall.SelectedItem.Value == "4") { } else if (ddlTall.SelectedItem.Value == "5") { } else if (ddlTall.SelectedItem.Value == "6") { int sum = 0; foreach (int tallAar in tall) { sum += tallAar; } labTall.Text = "Summen av tallene er " + sum + "."; } else if (ddlTall.SelectedItem.Value == "7") { } else if (ddlTall.SelectedItem.Value == "8") { } else if (ddlTall.SelectedItem.Value == "9") { } else if (ddlTall.SelectedItem.Value == "10") { } } } Dere trenger jo ikke å hjelpe meg med alt, men litt hjelp på veien hadde hjulet. Lenke til kommentar
GeirGrusom Skrevet 14. januar 2009 Del Skrevet 14. januar 2009 For å finne ut om et tall er partall kan du bruke to metoder: - Modulo Hvis du deler et tall på to, men ikke får noen rest, er tallet et partall bool is_partall = (tall % 2) == 0; - Bit Hvis det minst signifikante bittet ikke er satt, er tallet et partall bool is_partall = (tall & 1) == 0; Lenke til kommentar
The Jackal Skrevet 14. januar 2009 Del Skrevet 14. januar 2009 uten å si akkurat hva du kan løse med denne, så kan en teller i en for-løkke inkrementeres med mer enn 1 av gangen, altså noe slikt: for(int i=0;i<20;i+=3) { //code } Lenke til kommentar
Jakko90 Skrevet 14. januar 2009 Del Skrevet 14. januar 2009 Har løst oppgaven for deg her: sing System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btnA_Click(object sender, EventArgs e) { int[] tall = { 34, 53, 2, 3, 34, 26, 26, 85, 3, 4, 98, 2, 12 }; for (int i = 0; i < tall.Length; i++) { labMelding.Text += tall + "<br/>"; } } protected void btnB_Click(object sender, EventArgs e) { int[] tall = { 34, 53, 2, 3, 34, 26, 26, 85, 3, 4, 98, 2, 12 }; for (int j = 12; j >= 0; j--) { labMelding.Text += tall[j] + "<br/>"; } } protected void btnC_Click(object sender, EventArgs e) { int[] tall = { 34, 53, 2, 3, 34, 26, 26, 85, 3, 4, 98, 2, 12 }; for (int k = 0; k < tall.Length;k+=2) { labMelding.Text += tall[k] + "<br/>"; } } protected void btnD_Click(object sender, EventArgs e) { int[] tall = { 34, 53, 2, 3, 34, 26, 26, 85, 3, 4, 98, 2, 12 }; for (int m = 0; m < tall.Length;m++) if (tall[m]<10) { labMelding.Text += tall[m] + "<br/>"; } } protected void btnE_Click(object sender, EventArgs e) { int[] tall = { 34, 53, 2, 3, 34, 26, 26, 85, 3, 4, 98, 2, 12 }; for (int n = 0; n < tall.Length;n++) if (tall[n]%2==0) { labMelding.Text += tall[n] + "<br/>"; } } } --------------------------------------------------------------------------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btnA_Click(object sender, EventArgs e) { int[] tall = { 34, 53, 2, 3, 34, 26, 26, 85, 3, 4, 98, 2, 12 }; int sum = 0; for (int i = 0; i < tall.Length; i++) { sum += tall; } labMelding.Text = "Summen av tallene er " + sum + "<br/>"; } protected void btnB_Click(object sender, EventArgs e) { int[] tall = { 34, 53, 2, 3, 34, 26, 26, 85, 3, 4, 98, 2, 12 }; int antall = 0; for (int a = 0; a < tall.Length; a++) { if (tall[a] < 0) { antall += 1; } } labMelding.Text = "Antall negative tall er " + antall + "<br/>"; } protected void btnC_Click(object sender, EventArgs e) { int[] tall = { 34, 53, 2, 3, 34, 26, 26, 85, 3, 4, 98, 2, 12 }; int snitt = 0; for (int b = 0; b < tall.Length; b++) { snitt += tall; } snitt /= tall.Length; labMelding.Text = "Gjennomsnittet er " + snitt + "<br/>"; } protected void btnD_Click(object sender, EventArgs e) { int[] tall = { 34, 53, 2, 3, 34, 26, 26, 85, 3, 4, 98, 2, 12 }; int lav = 1000; for (int c = 0; c < tall.Length; c++) if (lav > tall[c]) { lav = tall[c]; } labMelding.Text = "Laveste tall er " + lav + "<br/>"; } protected void btnE_Click(object sender, EventArgs e) { int[] tall = { 34, 53, 2, 3, 34, 26, 26, 85, 3, 4, 98, 2, 12 }; int summen = 0; for (int d = 0; d < tall.Length; d++) { if (tall[d]%2==0) summen += tall[d]; } labMelding.Text = "Summen av tallene er " + summen + "<br/>"; } } Håper det hjelper! Lenke til kommentar
Bruno Mars Skrevet 14. januar 2009 Forfatter Del Skrevet 14. januar 2009 Vet det med modulo, GeirGrusom. Men jeg greier ikke helt å få det til i denne koden. Har gjort det før med valgsettninger. Hva er det du sikter til The Jackal? Prøver koden og får ut "18". Hva er det svaret på? Takk for hjelp så langt. Lenke til kommentar
Bruno Mars Skrevet 14. januar 2009 Forfatter Del Skrevet 14. januar 2009 Wow, takk for hjelpen jakko90! Skal bruke det du har skrevet som hjelp, slik at jeg lærer noe også. Noe av koden virker litt tungvint, dog. Denne settningen trenger man jo bare å skrive en gang, ikke til hver oppgave: int[] tall = { 34, 53, 2, 3, 34, 26, 26, 85, 3, 4, 98, 2, 12 };. Lenke til kommentar
The Jackal Skrevet 14. januar 2009 Del Skrevet 14. januar 2009 Wow, takk for hjelpen jakko90! Skal bruke det du har skrevet som hjelp, slik at jeg lærer noe også. Noe av koden virker litt tungvint, dog. Denne settningen trenger man jo bare å skrive en gang, ikke til hver oppgave: int[] tall = { 34, 53, 2, 3, 34, 26, 26, 85, 3, 4, 98, 2, 12 };. Koden min skriver ikke ut noe som helst. "i" derimot økes med 3 hver gang istedetfor 1. Ville bare gjøre deg oppmerksom på at det er mulig. Med litt endringer, så kan du løse annenhvert tall og motsatt rekkefølge. Du har forøvrig helt rett angående at jakko90 sin kode er litt tungvint:) Lenke til kommentar
Jakko90 Skrevet 14. januar 2009 Del Skrevet 14. januar 2009 Wow, takk for hjelpen jakko90! Skal bruke det du har skrevet som hjelp, slik at jeg lærer noe også. Noe av koden virker litt tungvint, dog. Denne settningen trenger man jo bare å skrive en gang, ikke til hver oppgave: int[] tall = { 34, 53, 2, 3, 34, 26, 26, 85, 3, 4, 98, 2, 12 };. Koden min skriver ikke ut noe som helst. "i" derimot økes med 3 hver gang istedetfor 1. Ville bare gjøre deg oppmerksom på at det er mulig. Med litt endringer, så kan du løse annenhvert tall og motsatt rekkefølge. Du har forøvrig helt rett angående at jakko90 sin kode er litt tungvint:) hehe, copy paste er ikke så tungvint, men jo, kan jo smelle inn "arrayen" på "public partial class" Lenke til kommentar
The Jackal Skrevet 14. januar 2009 Del Skrevet 14. januar 2009 Ved hjelp av LINQ (.NET 3.5), så ser dette slik ut: int[] tall = { 34, 53, 2, 3, 34, 26, 26, 85, 3, 4, 98, 2, 12 }; //- Skriv ut array foreach(int i in tall) Console.WriteLine(i); //- skriv ut array baklengs foreach(int i in tall.Reverse()) Console.WriteLine(i); //- skriv ut annet hvert tall foreach (int i in tall.Where((element, index) => index % 2 == 0)) Console.WriteLine(i); //- skriv ut tallene som er mindre enn 10 foreach (int i in tall.Where((element) => element < 10)) Console.WriteLine(i); //- skriv ut alle partall foreach (int i in tall.Where((element) => element % 2 == 0)) Console.WriteLine(i); //- sum av alle tallene Console.WriteLine(tall.Sum()); //- antall negative tall Console.WriteLine(tall.Where((element) => element < 0).Count()); //- gjenomsnittet av tallene Console.WriteLine(tall.Average()); //- det minste tallet Console.WriteLine(tall.Min()); //- sum av alle partall Console.WriteLine(tall.Where((element) => element % 2 == 0).Sum()); Som du ser, så finnes det ganske mange måter å gjøre ting på Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå