Inlägg

Inlägg som erikasthlm95 har skrivit i forumet
Av erikasthlm95

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

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])); } } }

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.

Av erikasthlm95

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?

Av erikasthlm95

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].

Av erikasthlm95

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

Av erikasthlm95

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

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?

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?

Av erikasthlm95

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

Av erikasthlm95

perfekt, tack!!

Skrivet av Kommenterande 2:

Som jag tolkar det, ska programmets utskrift se ut ungefär så här.

Del 1

Det hemliga talet är 39. (programmet avslutas utan att användaren skriver in något)

Del 2

Gissa ett tal. 59 (gissning som skrivs in av användaren) Du gissade för högt! Talet var 39. (programmet avslutas)

Del 3

Gissa ett tal. 59 (gissning som skrivs in av användaren) Du gissade för högt! 19 (gissning som skrivs in av användaren) Du gissade för lågt! 45 (gissning som skrivs in av användaren) Du gissade för högt! 39 (gissning som skrivs in av användaren) Du gissade rätt! (programmet avslutas)

Av erikasthlm95

Så det slutgiltiga programresultatet ska alltså först be användaren gissa heltal och få tillbaka resultat (if/else) korrekt eller försök igen? Inte om den ska gissa lägre eller högre som i uppgift 3? I uppgift 2 får man tillbaka om det är korrekt eller inte (man har alltså 1 chans på 100 att gissa rätt utan några vidare ledtrådar?)

Skrivet av kwame:

Nja, skillnaden mellan uppgift 2 och 3 är snarare att i uppgift 2 så sker allting EN gång och i uppgift 3 skall det upprepas tills att man får samma tal. Vad är det i uppgift 3 som gör att allt upprepas? Jo, det är while-loopen.

Det krävs heller inte att du ber om input fler gånger (vilket du i uppgift 3 gör innuti dina if-else, nu räcker det med att du enbart skriver ut informationen)

dvs:
be om input
jämför input med hemliga talet (if-else, dvs "villkorssatser") och skriv ut relevant information
avsluta programmet.

Av erikasthlm95

Om jag tar med villkorssatser blir det ju som uppgift 3 i mitt huvud? Hur hade koden sett ut i uppgift 2 om du skrev ut den på ren svenska, alltså inte programspråk?

Skrivet av erikasthlm95:

Sorry, men hur menar du? Vad mer vill han att koden ska innehålla? Så jag förstår

Av erikasthlm95

Sorry, men hur menar du? Vad mer vill han att koden ska innehålla? Så jag förstår

Skrivet av kwame:

Saknas villkorssatser som jämför och skriver ut relevant information.

Av erikasthlm95

Random randomerare = new Random(); int slump_tal = randomerare.Next(1, 101); Console.WriteLine("Välkommen, gissa ett heltal"); string str = Console.ReadLine();

är det här korrekt för uppgift 2?

Av erikasthlm95
Skrivet av smurfzg:

Du har gjort uppgift 3. I uppgift 2 skulle man få gissa en gång, i uppgift 3 ska while loopen läggas till och man ska få gissa tills man har gissat rätt. Du får ta bort lite kod för att lösa uppgift 2

Jag förstår inte riktigt skillnaderna mellan uppgift 2 och 3. Under uppgift två; ska användaren mata in ett tal för att sen få reda på om det är rätt eller fel? Alltså korrekt eller inte? eller ska man få 1 gissning och om det är fel så stängs programmet, men om man har rätt så får man ett meddelande om det?

I upggift 3 (som jag alltså har gjort när jag trodde det var uppgift 2) ska alltså användaren mata in tal och få reda på om det är för högt eller för lågt (som jag gjort)?

Av erikasthlm95

Tack för svar alla!

Fick programmet att köras så som jag ville men tänkte mest om koden såg bra ut. Ska ta bort den sista ReadLine.

Vad ska jag göra i uppgift 3? Det här var uppgift 2 och jag förstår inte riktigt skillnaden...

Skrivet av Kommenterande 2:

Om du vill veta om koden ser bra ut, brukar det bästa sättet vara att provköra programmet. Jag har markerat en rad i programmet som jag undrar över:

Random randomerare = new Random(); int slump_tal = randomerare.Next(1, 101); Console.WriteLine("Gissa ett heltal"); string str = Console.ReadLine(); int tal = Convert.ToInt32(str); while (tal != slump_tal) { if (tal < slump_tal) { Console.WriteLine("Gissa högre!"); str = Console.ReadLine(); tal = Convert.ToInt32(str); } else if (tal > slump_tal) { Console.WriteLine("Gissa lägre!"); str = Console.ReadLine(); tal = Convert.ToInt32(str); } } if (tal == slump_tal) { Console.WriteLine("Woho, du gissade rätt!"); } Console.ReadLine(); 👈 ??? } } }

Kan du förklara vad som händer på den markerade raden? Vad händer med det som användaren skriver in i det steget?

Du har förmodligen inte lärt dig hur man ska söka efter rätt svar för att det inte ska ta för lång tid. Så här sökte jag:

Gissa ett heltal 50 Gissa lägre! 25 Gissa lägre! 12 Gissa högre! 18 Gissa högre! 22 Gissa lägre! 20 Woho, du gissade rätt!

Av erikasthlm95

God kväll! Jag har kommit fram till följande kod till uppgift 2. Ser det bra ut? Vad ska jag annars tänka på?

Random randomerare = new Random();
int slump_tal = randomerare.Next(1, 101);
Console.WriteLine("Gissa ett heltal");

string str = Console.ReadLine();

int tal = Convert.ToInt32(str);
while (tal != slump_tal)
{
if (tal < slump_tal)
{
Console.WriteLine("Gissa högre!");
str = Console.ReadLine();
tal = Convert.ToInt32(str);
}
else if (tal > slump_tal)
{
Console.WriteLine("Gissa lägre!");
str = Console.ReadLine();
tal = Convert.ToInt32(str);
}
}

if (tal == slump_tal)
{
Console.WriteLine("Woho, du gissade rätt!");

}
Console.ReadLine();

}
}
}

Av erikasthlm95

Tack, korrigerade

Skrivet av Kommenterande 2:

Varför har du int number; på första raden? Du initierar ett heltal men använder det inte till något. De andra raderna ser bra ut.

Av erikasthlm95

int number;
Random randomerare = new Random();
int slump_tal = randomerare.Next(1, 101);

Console.WriteLine("Det slumpade talet är: " + slump_tal);

Jag löste det! Nu kommer jag kunna sova inatt, tack så jättemycket. Började för några dagar sedan, det är en helt ny värld.
Tack för tålamod med mig, känner mig som en dum blondin

Skrivet av evil penguin:

Console.ReadLine() låter som något som du lär behöva när användaren ska mata in ett värde i del 2, men än så länge är det nog bara Console.WriteLine(...) som behövs

Av erikasthlm95

Nu är det inte rätt självklart men något åt det här hållet?...

int number;
Random randomerare = new Random();
int slump_tal = randomerare.Next(1, 101);

Console.WriteLine("Det slumpade talet är: ");
number = Console.ReadLine();

Skrivet av evil penguin:

Console.WriteLine låter som ett utmärkt val för att göra utskriften.

Du vill nog inte anropa slump_tal (som är ett heltal bara) utan snarare skicka slump_tal till Console.WriteLine (som skriver ut saker).