2 svar
1264 visningar
lagamba 132
Postad: 24 feb 2023 14:48

Pseudokod

Kändes för enkelt för att vara sant..har jag förstått detta med pseudokod rätt?

{
Random random = new Random();
bool playAgain = true;
int min = 1;
int max = 100;
int guess;
int number;
int guesses;
String responce;

while (playAgain)
{

guess = 0;
guesses = 0;
responce = "";
number = random.Next(min, max + 1);

do//frågar användaren om en gissning på det hemliga talet
{
guesses++;
Console.WriteLine("Kan du gissa vilket det slumpmässiga talet är? Skriv in ett tal mellan " + min + " - " + max + " : ");
guess = Convert.ToInt32(Console.ReadLine());

if (guess > number)//om talet är högre än hemliga talet
{
Console.WriteLine(guess + " Nära fångar ingen hare, talet var för högt. Gissa igen.");//visa detta meddelande
}
else if (guess < number)//om talet är lägre än hemliga talet
{
Console.WriteLine(guess + " Nästan där, talet var för lågt, gissa igen.");//visa detta meddelande
}
}
while (guess != number);//fortsätter tills korrekt tal gissats
Console.WriteLine("Number: " + number);
Console.WriteLine("Grattis du lyckades ju gissa rätt!");
Console.WriteLine("Gissningar: " + guesses);

Console.WriteLine("Vill du gissa igen?");
responce = Console.ReadLine();
responce = responce.ToUpper();

if (responce == "J")
{
playAgain = true;
}
if (responce == "N")
{
playAgain = false;
}
}

Console.WriteLine("Tack för din medverkan!");

Console.ReadKey();
}


Ny slumptal
Spela igen = om sant
minsta tal = 1
högsta tal = 100
gissning
tal
gissningar
svar

upprepa medan
gissning = 0
gissningar = 0
svar = ””
tal = slumpmässigt mellan 1-100
Gör
gissningar
ber användaren gissa ett tal
låter användaren skriva in ett tal

om gissningen är högre än slumptalet
ber användaren gissa igen
om gissningen är lägre än slumptalet
ber användaren gissa igen
fortsätt medens korrekt tal gissats

Skriver ut gissad tal
Skriver ut Grattis vid korrekt gissat tal
Skriver ut antal gissningar
Frågar om användaren vill gissa igen
läser in svar
om svar = J
spelar igen
Om svar = N
visar text ”Tack för medverkan”

Tegelhus 227
Postad: 25 feb 2023 22:52

Rekommenderar knappen "Infoga programmeringskod" i editorn, indenteringen behålls då och det blir mycket mer lättläst för oss när vi ska se koden (det blir väldigt jobbigt att läsa koden annars):

{
  Random random = new Random();
  bool playAgain = true;
  int min = 1;
  int max = 100;
  int guess;
  int number;
  int guesses;
  String responce;

  while (playAgain) {

    guess = 0;
    guesses = 0;
    responce = "";
    number = random.Next(min, max + 1);

    do //frågar användaren om en gissning på det hemliga talet
    {
      guesses++;
      Console.WriteLine("Kan du gissa vilket det slumpmässiga talet är? Skriv in ett tal mellan " + min + " - " + max + " : ");
      guess = Convert.ToInt32(Console.ReadLine());

      if (guess > number) //om talet är högre än hemliga talet
      {
        Console.WriteLine(guess + " Nära fångar ingen hare, talet var för högt. Gissa igen."); //visa detta meddelande
      } else if (guess < number) //om talet är lägre än hemliga talet
      {
        Console.WriteLine(guess + " Nästan där, talet var för lågt, gissa igen."); //visa detta meddelande
      }
    }
    while (guess != number); //fortsätter tills korrekt tal gissats
    Console.WriteLine("Number: " + number);
    Console.WriteLine("Grattis du lyckades ju gissa rätt!");
    Console.WriteLine("Gissningar: " + guesses);

    Console.WriteLine("Vill du gissa igen?");
    responce = Console.ReadLine();
    responce = responce.ToUpper();

    if (responce == "J") {
      playAgain = true;
    }
    if (responce == "N") {
      playAgain = false;
    }
  }

  Console.WriteLine("Tack för din medverkan!");

  Console.ReadKey();
}

 

Med det sagt, det viktiga med att komma ihåg med pseudokod är att det inte finns några riktiga regler på samma sätt som med faktisk kod, du har ganska fria tyglar. Det viktiga är bara att det är tydligt och lättförståeligt vad som händer. Däremot kan det vara bra att ta lite inspiration av hur man skriver vanlig kod, till exempel kan indentering göra det mycket mer lättläst, och det är viktigt att ändå ha en konsekvent stil för hur man väljer att strukturera saker och ting.

Och lite mer konkret, rader som

gissning
tal
gissningar
svar

hade du lika gärna kunnat skippa. I C# måste du ju deklarera variablerna för att de "ska finnas". Men i pseudokod finns ju inga såna krav eftersom det inte är lika strikt och bara behöver kunna förstås av en människa. Du behöver alltså inte vara riktigt lika detaljerad i din pseudokod som i din faktiska kod, utan du vill nog vara lite mer översiktlig och abstrakt.

lagamba 132
Postad: 28 feb 2023 22:30

Tack snälla för en väl utformad förklaring, ska göra om den lite.

Svara
Close