Permalänk
Medlem

Programering C#

Hej vet inte riktigt om jag skriver i rätt forum men hoppas på det bästa.

jag har en uppgift i skolan om programering i C# , enkelt beskrivet så ska jag göra en array och kunna söka i den ,lägga till 5 grejer sedan rensa dom. ryggsäcken har ni säkert hört talas om. det enda jag inte får ihop är hur man tilldelar värden till en array i en switch sats. jag vill ju få så i första valet av switch satsen så lägger du till värden till arrayn med en Console.ReadLine. men får inte ihop det .

string[] miNarray = new string[5];

switch (menyVal)
{
case 1:
//kodblock för inmattning av värden

Console.Write("Lägg till ditt föremål ");

break;

länkar bara en del av koden men hoppas ni förstår vad jag frågar efter !. tack

Permalänk
Inaktiv

Nej. Vi har inte hört talas om ryggsäcken, men för någon som kan programmera är det garanterat busenkelt.

Du kan tilldela värden i en array i en switchsats på precis samma sätt som om du var i en vanlig funktion, i en if-sats eller vilken annan stans som helst i koden.

Är menyVal något i stil med "lägg till", "ta bort", "visa vad som finns" och "läskback" eller vad tänker du?

Kan du förklara vad du behöver hjälp med, eller minst vad problemet kan tänka sig vara kan du nog få mer hjälp. Extra bonus om du inte kan förklara vad det är du inte förstår!

Permalänk
Medlem

Funderar på vad det är för ryggsäck du pratar om!

Permalänk
Medlem

haha okej ryggsäcken.. ska göra en enkel meny med
1:lägga till föremål (strings) ex ordet fågel
2: skriva vilka värden du har, som jag gjort med en foreach
3: rensa innehållet i ryggsäcken
4: enkelt söka efter orden du lagt till som jag gjort med en for sats.
5: avsluta programmet som jag avänder en bool loop till.

men ska skriver arrayn utanför bool loopen och switch satsen. string[] miNarray = new string[5];
sen för att ge arrayn värden. ska jag då gå in i 1 på swtich satsen sedan skriva vilket ord jag vill ha i arrayn som ex fågel. det jag inte förstår är hur jag matar in värdena i arrayn .

vill inte riktigt skicka hela koden pga av säkert många andra som också har liknade uppgift så folk inte bara kopierar. men om ni inte förstår så kan jag väl det, sedan ta bort inlägget i värsta fall

Permalänk
Medlem

Ska du inte läsa in Console.Readline INNAN switchsatsen?

Visa signatur

Ryzen 9 5950X, 32GB 3600MHz CL16, SN850 500GB SN750 2TB, B550 ROG, 3090 24 GB
Har haft dessa GPUer: Tseng ET6000, Matrox M3D, 3DFX Voodoo 1-3, nVidia Riva 128, TNT, TNT2, Geforce 256 SDR+DDR, Geforce 2mx, 3, GT 8600m, GTX460 SLI, GTX580, GTX670 SLI, 1080 ti, 2080 ti, 3090 AMD Radeon 9200, 4850 CF, 6950@70, 6870 CF, 7850 CF, R9 390, R9 Nano, Vega 64, RX 6800 XT
Lista beg. priser GPUer ESD for dummies

Permalänk
Medlem

lägga till värden i en array är inte svårare än att tilldela en variabel ett värde.

T.ex.

string[] minArray = new string[5];
minArray[0] = "mittVärde";

Lägger till en sträng i första elementet av en array. 0'an specificerar vilken plats/vilket element i arrayen du vill jobba med, och 0 är alltid första elementet i en array.
Det finns fler sätt att lägga värden i en array, men detta är det enklaste sättet att lägga till ett specifikt värde på specifik plats.

https://www.tutorialspoint.com/csharp/csharp_arrays.htm

Permalänk
Medlem

nae efter som jag går in i swtichsatsen sedan ska ska skriva dom värderna jag vill ha sedan loopar den om så jag kan göra menyvalet igen och antigen lägga till flera värden eller gå till 2 för att se vilka värden jag laggt till.

Permalänk
Medlem

@elBenko: jo så kan ja väl göra men då när jag ska lägga till nästa värde så kommer de väl bara överskriva det och inte lägga till flera eller har jag fel

Permalänk
Medlem

string[] miNarray = new string[5];

// loop
bool köRs = true;
while (köRs)
{

// Menyn
Console.WriteLine("\n\t[1]Lägg till ett föremål ");
Console.WriteLine("\n\t[2]Skriv ut innehållet ");
Console.WriteLine("\n\t[3]Rensa ryggsäcken");
Console.WriteLine("\n\t[4]Sök i ryggsäcken ");
Console.WriteLine("\n\t[5]Avsluta ");

// convert Menyval till switch satsen
int menyVal = Convert.ToInt32(Console.ReadLine());

switch (menyVal)
{
case 1:
//kodblock för inmattning av värden

Console.Write("Lägg till ditt föremål ");

break;

så här se det ut.. jag vill allså i menyVal 1 lägga till värden till arrayn upp till 5 sty.

Permalänk
Medlem

@anon81912: Visste inte om att man kunde svara , första gången jag gjort en inlägg på denna sida!

Permalänk
Inaktiv

@Tjerna: Det första du borde göra när du skriver ett program är inte att skriva kod. Du borde försöka förenkla problemet och skriva text som löser problemet.

Du hade kunnat börja med:

1. Det skall finnas ett antal val, med en beskrivning och som utför en viss funktion.
2. Valen ska listas.
3. Användaren ska välja ett visst val.
4. Repetera tills användaren valt valet "Avsluta"

Val "Lägg till":
Lägg till i listan:
Läs in en sträng
Spara strängen i listan

...
...

Val "Avlsuta":
Avlsuta programmet

Kan du göra detta, utan att skriva kod, så ska det nog inte vara några problem att ställa specifika frågor som du inte förstår så kan någon här förklara det i detalj. Många här hade säkerligen kunnat lösa din uppgift och förklara varje liten bit in i minsta detalj, men det hade kanske tagit 45 minuter eller något sådant, så om du inte orkar anstränga dig ordentligt tror jag ingen annan vill göra det för din skull.

Permalänk
Medlem
Skrivet av Tjerna:

@elBenko: jo så kan ja väl göra men då när jag ska lägga till nästa värde så kommer de väl bara överskriva det och inte lägga till flera eller har jag fel

Detta löser du t.ex. genom att fråga användaren hur många grejer han vill lägga in, och sen använder dig av en for-loop. Finns lite olika sätt man kan lösa det på, men när man jobbar med arrayer så brukar man nästan alltid använda sig av loopar för att leta/spara/ta bort värden.

Permalänk
Medlem

Ha en räknare som håller koll på vilket index du ska lägga in nästa "sak" i.

1. Starta räknare på 0
2. När användaren lägger in en sak i ryggsäcken lägger du det på räknarens index miNarray[räknare] = "saken".
3. Inkrementera räknaren så att nästa sak hamnar på nästa plats.

Sen får du ju hålla koll på index så att en användare inte försöker lägga till utanför arrayens storlek.

Och snälla byt från svenska och försök följa C# naming conventions. Man brukar inte camel casea sista bokstaven i ett ord utan starten på varje nytt ord, alltså minArray eller myArray.

Permalänk
Medlem
Skrivet av anon81912:

@Tjerna: Det första du borde göra när du skriver ett program är inte att skriva kod. Du borde försöka förenkla problemet och skriva text som löser problemet.

Du hade kunnat börja med:

1. Det skall finnas ett antal val, med en beskrivning och som utför en viss funktion.
2. Valen ska listas.
3. Användaren ska välja ett visst val.
4. Repetera tills användaren valt valet "Avsluta"

Val "Lägg till":
Lägg till i listan:
Läs in en sträng
Spara strängen i listan

...
...

Val "Avlsuta":
Avlsuta programmet

Kan du göra detta, utan att skriva kod, så ska det nog inte vara några problem att ställa specifika frågor som du inte förstår så kan någon här förklara det i detalj. Många här hade säkerligen kunnat lösa din uppgift och förklara varje liten bit in i minsta detalj, men det hade kanske tagit 45 minuter eller något sådant, så om du inte orkar anstränga dig ordentligt tror jag ingen annan vill göra det för din skull.

@Tjerna Det här är bra tips!

Jag brukar tycka att det är en bra idé att ha ett sånt upplägg och att även skriva koden på motsvarande vis, så att varje "uppgift" blir en egen funktion/metod. På så vis blir koden nästintill läsbar på samma vis som designdokumentet.

Permalänk
Medlem

JAg förstår inte alla som kommer hit med skoluppgifter och ställer helt triviala frågor.

Har ni inga föreläsningar? Inga lärarledda lektioner / labbar? Ingen kurslitteratur?

Det känns som att ni istället går direkt på uppgiften och bara försöker läsa på / göra minsta möjliga för att lösa den?

Att tilldela ett värde till en position i en array borde man rimligtvis ha lärt sig / gått igenom / gjort innan man öht börjar på ”uppgiften”?

Permalänk
Medlem
Skrivet av BasseBaba:

JAg förstår inte alla som kommer hit med skoluppgifter och ställer helt triviala frågor.

Har ni inga föreläsningar? Inga lärarledda lektioner / labbar? Ingen kurslitteratur?

Det känns som att ni istället går direkt på uppgiften och bara försöker läsa på / göra minsta möjliga för att lösa den?

Att tilldela ett värde till en position i en array borde man rimligtvis ha lärt sig / gått igenom / gjort innan man öht börjar på ”uppgiften”?

Högskolan jag pluggade på ändrade metodik lite då och då. När jag läste mina kurser var det som du säger, att man har föreläsningar och labbar. D.v.s. mycket schemalagd tid där skolan engagerar sig i din inlärning. Något år bytte de till något de kallade "learning by doing", vilket i praktiken blev "trial and error". Detta innebar att den schemalagda tiden minimerades. Det var ett fåtal föreläsningar och inga lärar-ledda labbar. Istället uppmuntrades studenterna att sätta sig in i litteraturen och uppgifterna på "egen tid" och lära sig genom att pröva sig fram. För oss studenter var det uppenbart att upplägget sög, och jag hoppas att de ändrade det igen efter att jag slutat.

Permalänk
Medlem

@anon81912: hhaah, har redan skrivit flödeschema o Pseudokod , tyckte fråga var enkel.. har en lista full med vektorer, hur anväder jag en sträng för att söka igenom dom jag har. tydligen räcker inte det för vissa , fick dock svar av många andra som lyckades lista ut min krångliga fråga , så kasnke ligger på din sida.

Permalänk
Medlem

@Sebbepojken: är fortfarande samma tyvärr