Missa inte Amazon Prime Day i Dagens fynd
Permalänk

Programmering 1, C#, Vektorer

Hej! Nybörjare, behöver tips och råd ang en uppgift jag har just nu om vektorer. Fattar jag rätt eller cyklar jag? Koden kompileras som jag vill men fattar jag frågorna rätt? Ser det rent och snyggt ut?

Du ska nu skapa en vektor med plats för tio positioner och som lagrar heltal.

int[] lista = new int[10]; int i, summa = 0; // läs in 10 heltal

Denna uppgift bygger vidare på föregående uppgift.Du ska nu fylla vektorn med tal.Detta ska ske med hjälp av en for-loop och genom att användaren får skriva in dessa värden.

namespace vektor2 { class Program { static void Main(string[] args) { int[] lista = new int[10]; int i, summa = 0; // läs in 10 heltal for (i = 0; i < 10; i++) { Console.WriteLine("ange ett heltal: "); lista[i] = Convert.ToInt32(Console.ReadLine());

Tack för din tid

Permalänk

Nästa fråga lyder;

Denna uppgift bygger vidare på föregående uppgift. Deklarera en variabel med ett heltal.Skriv ut alla värden ur vektorn med en loop. Om något tal i vektorn är lika med heltalet i den nya variabeln så ska detta uppmärksammas.

Känner mig trög nu men uppgiften är att man ska få ut summan av alla 10 inmatade heltal? Vad innebär sista meningen?

Permalänk
Medlem

Det är inte summan som jag förstår det, utan varje nuffra i vektorn/arrayen, om sedan en eller flera nuffror råkar matcha ditt utvalda heltal så ska du skriva ut det, i fönstret.

Mitt tal är 11

Array

0 7 4 11 5

Utskrift

0 7 4 11 (Woooh!) 5

Permalänk
Hedersmedlem
Skrivet av erikasthlm95:

Nästa fråga lyder;

Denna uppgift bygger vidare på föregående uppgift. Deklarera en variabel med ett heltal.Skriv ut alla värden ur vektorn med en loop. Om något tal i vektorn är lika med heltalet i den nya variabeln så ska detta uppmärksammas.

Känner mig trög nu men uppgiften är att man ska få ut summan av alla 10 inmatade heltal? Vad innebär sista meningen?

Jag tolkar det som att du ska skriva ut värdena ett och ett, men om något värde matchar det speciella talet så ska det highlightas på något sätt. Man skulle tex kunna skriva ut det som *37* eller liknande.

Din inmatning ser lite shaky ut. Vad händer om du skriver abc istället för ett tal?

Visa signatur

Använd gilla för att markera nyttiga inlägg!

Permalänk
Medlem
Skrivet av erikasthlm95:

Nästa fråga lyder;

Denna uppgift bygger vidare på föregående uppgift. Deklarera en variabel med ett heltal.Skriv ut alla värden ur vektorn med en loop. Om något tal i vektorn är lika med heltalet i den nya variabeln så ska detta uppmärksammas.

Känner mig trög nu men uppgiften är att man ska få ut summan av alla 10 inmatade heltal? Vad innebär sista meningen?

Står ingenting i uppgiften om några summor. Jag vet inte var du fick den idén från?
Du har en vektor med en massa heltal i. Du har en variabel med heltal i. Finns det heltalet i vektorn? Isåfall, gör något lämpligt.

Permalänk

class Program { static void Main(string[] args) { int[] lista = new int[10]; int i, summa = 0; // läs in 10 heltal for (i = 0; i < 10; i++) { Console.WriteLine("ange ett heltal: "); lista[i] = Convert.ToInt32(Console.ReadLine()); } // summerar talen i = 0; for (i = 0; i < 10; i++) summa = summa + lista[i]; Console.WriteLine("Summan av de 10 talen =" + summa); } } }

såhär på 3 frågan...? Är jag inne på rätt spår?

Permalänk
Medlem

Angående denna rad:

lista[i] = Convert.ToInt32(Console.ReadLine());

Det kanske är överkurs, men testa gärna att skriva in något annat än tal, typ ett par bokstäver och se vad som händer

Permalänk
Hedersmedlem
Skrivet av erikasthlm95:

class Program { static void Main(string[] args) { int[] lista = new int[10]; int i, summa = 0; // läs in 10 heltal for (i = 0; i < 10; i++) { Console.WriteLine("ange ett heltal: "); lista[i] = Convert.ToInt32(Console.ReadLine()); } // summerar talen i = 0; for (i = 0; i < 10; i++) summa = summa + lista[i]; Console.WriteLine("Summan av de 10 talen =" + summa); } } }

såhär på 3 frågan...? Är jag inne på rätt spår?

Nej. Du ska inte räkna ut summan.

Visa signatur

Använd gilla för att markera nyttiga inlägg!

Permalänk

Fick upp era svar nu. Känner att jag verkligen är ute och cyklar

Permalänk

Okej, börjar om. Som svar på första frågan, är det en bra början?

int[] lista = new int[10]; int i, summa = 0; // läs in 10 heltal

Permalänk
Medlem
Skrivet av erikasthlm95:

Fick upp era svar nu. Känner att jag verkligen är ute och cyklar

Ta bort summaberäkningen i din sista loop och skriv istället ut lista[i] till skärm. En if-sats brukar vara lämplig att använda när man skall jämföra grejer, så använd det för varje tal i listan och skriv ut ett extra tecken om ditt utvalda tal matchar det i lista[i].

Permalänk

Sorry, hänger inte alls med.
Ska jag kasta hela min kod?

Skrivet av Dalton Sleeper:

Ta bort summaberäkningen i din sista loop och skriv istället ut lista[i] till skärm. En if-sats brukar vara lämplig att använda när man skall jämföra grejer, så använd det för varje tal i listan och skriv ut ett extra tecken om ditt utvalda tal matchar det i lista[i].

Permalänk

Så jag ska tilldela 10 olika värden, användaren ska skriva in och matchar dom värdet med ett befintligt ska man få ett textmeddelande? Skriver jag abc så kraschar hela programmet.

Skrivet av giplet:

Jag tolkar det som att du ska skriva ut värdena ett och ett, men om något värde matchar det speciella talet så ska det highlightas på något sätt. Man skulle tex kunna skriva ut det som *37* eller liknande.

Din inmatning ser lite shaky ut. Vad händer om du skriver abc istället för ett tal?

Permalänk
Medlem
Skrivet av erikasthlm95:

Sorry, hänger inte alls med.
Ska jag kasta hela min kod?

Nej, din kod är bra såhär långt. Själva summeringen behövdes inte, så det har jag tagit bort.
De du nu behöver är att deklarera en variabel (ett heltal) t.ex int mittHeltal = 5;

Nu skall du med en ny for-loop skriva ut alla värdena från din lista, samtidigt som du skall jämföra dom med mittHeltal -> är något av talen i listan samma som mittHeltal så skall du skiva ut det, t.ex: "Vi har två tal som matchar." eller vad som helst.

class Program { static void Main(string[] args) { int[] lista = new int[10]; int i, summa = 0; // läs in 10 heltal for (i = 0; i < 10; i++) { Console.WriteLine("ange ett heltal: "); lista[i] = Convert.ToInt32(Console.ReadLine()); } } }

Visa signatur

10700K | NVIDIA RTX 3080

Permalänk
Medlem
Skrivet av erikasthlm95:

Sorry, hänger inte alls med.
Ska jag kasta hela min kod?

Nej då, behåll allt utom summaraderna, där du nu beräknar summan kan du istället skriva ut dina tal (lista[i]) med Console.WriteLine(). Börja med det så du får ut siffrorna i fönstret.

Permalänk
Medlem

Programmering innebär huvudvärk, särskilt i början. Ta det cool lugnt och läs igenom allting noga. Kan vara nyttigt att skriva ned det på papper eller prata högt om det också!

Permalänk

Menar du såhär? Får upp felmeddelande när jag kompilerar då

class Program { static void Main(string[] args) { int[] lista = new int[10]; int i, summa = 0; // läs in 10 heltal for (i = 0; i < 10; i++) { Console.WriteLine("ange ett heltal: "); lista[i] = Convert.ToInt32(Console.ReadLine()); } Console.WriteLine((lista[i])); } } }

Skrivet av Dalton Sleeper:

Nej då, behåll allt utom summaraderna, där du nu beräknar summan kan du istället skriva ut dina tal (lista[i]) med Console.WriteLine(). Börja med det så du får ut siffrorna i fönstret.

Permalänk

Vart ska jag få in int mittHeltal någonstans?

Permalänk
Medlem

Tänkte mer såhär, du måste ha en loop (med ett stegrande heltal) för att skriva ut alla tal i listan.

class Program { static void Main(string[] args) { int[] lista = new int[10]; int i; // läs in 10 heltal for (i = 0; i < 10; i++) { Console.WriteLine("ange ett heltal: "); lista[i] = Convert.ToInt32(Console.ReadLine()); } // skriv ut 10 heltal for (i = 0; i < 10; i++) { int ettTaliListan = lista[i] Console.WriteLine(ettTaliListan); // här kan vi jämföra tal från listan // } } }

Permalänk
Medlem
Skrivet av erikasthlm95:

Menar du såhär? Får upp felmeddelande när jag kompilerar då

class Program { static void Main(string[] args) { int[] lista = new int[10]; int i, summa = 0; // läs in 10 heltal for (i = 0; i < 10; i++) { Console.WriteLine("ange ett heltal: "); lista[i] = Convert.ToInt32(Console.ReadLine()); } Console.WriteLine((lista[i])); } } }

Det är en } för mycket i slutet.

mittHeltal kan du deklarera i början samtidigt som du deklarerar variabeln i.
Du behöver ha en ny for-loop när du skriver ut Console.WriteLine(lista[i]); för att den skall iterera igenom hela listan.

Visa signatur

10700K | NVIDIA RTX 3080

Permalänk
Skrivet av kwame:

Det är en } för mycket i slutet.

I ett tidigare inlägg finns det en namespace-rad med en { så jag misstänker att det klippts bort några rader i början och att antalet } därför blir rätt.

Man måste ha using System; i början för annars klagar kompilatorn på att Console.ReadLine och Console.WriteLine inte går att hitta, men using-raden kanske också har trillat bort i början av koden?

Jag har gjort några små justeringar så att programmet går att kompilera och så har jag lagt in kommentarer som jag tycker att du ska titta på.

using System; // Den här raden har jag lagt till. class Program { static void Main(string[] args) { int[] lista = new int[10]; int i, summa = 0; // Tänk på att summa inte används någonstans så det är onödigt att deklarera summa. Min kompilator spottar ur sig en varning: Program.cs(8,11): warning CS0219: The variable `summa' is assigned but its value is never used // läs in 10 heltal for (i = 0; i < 10; i++) // Jag skulle ha deklarerat i på den här raden, inte på raden ovanför. { Console.WriteLine("ange ett heltal: "); lista[i] = Convert.ToInt32(Console.ReadLine()); } Console.WriteLine((lista[i])); // Varför blir det System.IndexOutOfRangeException här? Vad har i för värde när programmet kommer till den här raden? } } // Här tog jag bort en }.