Gör ett sorterings-test baserat på pseudokod (C++)
Senast redigerat
Hej, har fått i uppgift att skriva kod i C++ baserat på pseudokod. Pseudokoden ska vara ett test för att se huruvida nummer i en textfil är sorterade (i storleksordning). Jag försöker läsa med hjälp av en header-fil och en main-fil läsa in och testa om en fil med några nummer är sorterade, men jag har kört fast och vet inte hur jag ska komma vidare härifrån. Jag är framför allt osäker på hur man använder en textfil som input-argument, jag har försökt göra det på egen hand genom att googla men det fungerar inte.
Pseudokoden ser ut såhär:
Algoritm 1: Avgör om en fil med värden är sorterad
indata: Ett filnamn
utdata: Sant eller falskt beroende på om filen är sorterad.
a = readValue(A)
medan notEndOf File(A)
b = readValue(A)
om a > b
returnera false
a = b
returnera true
Header-fil med själva funktionen:
#include <iostream>
#include <fstream>
using namespace std;
ifstream sortFile;
//Vill ha en filström som inargument/invariabel:
bool sortTest(ifstream&)
{
//deklaration av variabler:
int talA, talB;
sortFile >> talA;
while (!sortFile.eof()){
sortFile >> talB;
if (talA > talB)
{
return false;
}
talA = talB;
}
return true;
}
Int main-funktion:
#include <fstream>
#include <iostream>
#include "sortTest.h"
using namespace std;
int main()
{
ifstream inFile;
inFile.open("sortText.txt");
sortTest(inFile);
return 0;
}
Tala gärna om vad som inte fungerar också, annars är det svårt att ge någon hjälp. Men det mest uppenbara är att du har return true;
i din while-loop, så loopen avslutas efter första varvet.
Sen brukar man inte implementera funktioner så där i header-filer, det normala är att deklarera funktionen i header-filen men definiera den i en .cpp-fil. Se t.ex. learncpp.
Tala gärna om vad som inte fungerar också, annars är det svårt att ge någon hjälp. Men det mest uppenbara är att du har return true;
i din while-loop, så loopen avslutas efter första varvet.
Sen brukar man inte implementera funktioner så där i header-filer, det normala är att deklarera funktionen i header-filen men definiera den i en .cpp-fil. Se t.ex. learncpp.
Hej, jag uppdaterade precis mitt inlägg när du postade ditt inlägg. Problemet har någonting med filströmmarna, att läsa från en textfil. Men jag fixade return true;
Jag vet dock inte om det är fel i funktionen eller i mainfilen.
Hej, jag uppdaterade precis mitt inlägg när du postade ditt inlägg. Problemet har någonting med filströmmarna, att läsa från en textfil. Men jag fixade return true;
Jag vet dock inte om det är fel i funktionen eller i mainfilen.
Du kollar aldrig om du faktiskt lyckades öppna filen, så det kan kanske vara bra att göra. Se t.ex. learncpp för hur man normalt brukar öppna en fil och läsa från den.
Om problemet är att programmet inte lyckas öppna filen så beror det troligtvis på att filen ligger på fel ställe. När du bara anger namnet på den så är det en relativ sökväg, så filen måste ligga i samma mapp som ditt program körs från (vilket kanske inte är samma mapp som din kod ligger i).
Copyright © 1999–2023 Geeks AB. Allt innehåll tillhör Geeks AB.
Citering är tillåten om källan anges.