Permalänk
Medlem

Hjälp med pseudokod

Hej alla!
Jag har, med Er hjälp här på Sweclockers, lyckats bygga ett program till min skoluppgift. Jag har kommit så långt att källkoden och analysdelen blev godkänd, dock så blev inte pseudokoden godkänd.
Så här ser min kod ut

#include <iostream> #include <climits> using namespace std; int main(int argc, char *argv[]) { int max = INT_MIN; int nMax = INT_MIN; int sum = 0; int antal = 0; int inp = 0; cout << "Skriv in tal" << endl; while (true) { cin >> inp; if (inp == 0) { break; } if (inp > max) { nMax=max; max = inp; } if (inp > nMax && inp < max) { nMax = inp; } { } sum += inp; antal++; } cout << "Summa: " << sum << endl; cout << "Medelvärde: " << (double)sum/(double)antal << endl; cout << "Störst tal: " << max << endl; cout << "Näst störst tal: " << nMax << endl; ("PAUSE"); }

Min pseudokod ser ut så här,

Skriv in talen: Skriv in tal Läs in: Siffrorna 2 3 4 5 6 0 Räkna ut: Summan, medelvärdet, största talet, näst största talet Resultatet: Summa: 20 Medelvärde: 4 Störst tal: 6 Näst största tal: 5 Efter det: Det står nu att man skall trycka ned valfri tangent för att fortsätta, och när man gör det så avslutas programmet.

Är det någon som har något förslag eller tips på hur jag ska kunna förbättra pseudokoden?

Som alltid är jag väldigt tacksam för svar

Med vänliga hälsningar Adde

Permalänk
Medlem

Det du skrivit där är ju inte riktigt någon pseudokod. Tänk mer att du beskriver hur programmet jobbar. T.ex loopa igenom, om värdet är xxx, så y osv.Typ det du skrivit i kod men neddummat.

Skickades från m.sweclockers.com

Permalänk
Medlem
Skrivet av Kiane:

Det du skrivit där är ju inte riktigt någon pseudokod. Tänk mer att du beskriver hur programmet jobbar. T.ex loopa igenom, om värdet är xxx, så y osv.Typ det du skrivit i kod men neddummat.

Skickades från m.sweclockers.com

Tack för svaret...
Har du några andra tips?
Jag har sökt runt lite på nätet efter ord som man ska använda men jag kan inte hitta någon lista, du råkar inte veta någon sådan sida?
Jag är väldigt väldigt okunnig om programmering.
Tack än en gång för svaret.
Med vänliga hälsningar

Permalänk
Medlem
Skrivet av adde_84:

Tack för svaret...
Har du några andra tips?
Jag har sökt runt lite på nätet efter ord som man ska använda men jag kan inte hitta någon lista, du råkar inte veta någon sådan sida?
Jag är väldigt väldigt okunnig om programmering.
Tack än en gång för svaret.
Med vänliga hälsningar

Läs: http://en.wikipedia.org/wiki/Pseudocode

Permalänk
Medlem

Tack så mycket!
Jag kan inte engelska men jag ska försöka mig på det

Permalänk
Medlem
Skrivet av adde_84:

Tack så mycket!
Jag kan inte engelska men jag ska försöka mig på det

Borde inte din lärare ha gått igenom hur pseudokod bör utformas? Du kan tänka pseudokod som ett slags "universellt språk", d.v.s. även om jag inte är speciellt insatt i C++, Java eller vad det nu kan vara så skall jag fortfarande förstå grundprinciperna med programmet genom att läsa pseudokoden. Mer invecklat så följer inte pseudokod någon egentlig syntax, därav finns det ingen vedertagen standard för hur psuedokod ska skrivas. Men en generell regel är som sagt att en person som är inte nödvändingtvis har programmerat inom ett visst språk fortfarande skall kunna förstå vad programmet gör m.h.a. pseudokoden. Bäst är dock att titta på enkla program inom det språk du känner dig bekväm med och sedan se hur psuedokoden har skrivits. Man får inte ut speciellt mycket av att endast läsa en Wikipediartikel.

Hoppas du blev lite klokare,
RedRetro

Visa signatur

Citera för svar!

Stationär: Fractal Design Define R6 | Asus Z370-P | Intel i7 8700k @ 3.7 Ghz | Corsair Vengeance LPX 32GB CL15 @ 3000 Mhz | Asus STRIX GTX960 4GB | Fractal Design Celsius S24 | 5 TB HDD | 250GB SSD (Samsung 850 EVO), 128GB SSD (Crucial M4) | Corsair HX 850W | W10
Bärbar: Sony Vaio Pro 13.3" | i7-4500U | 8GB RAM | 256GB SSD | Ubuntu

Permalänk
Medlem
Skrivet av adde_84:

Tack så mycket!
Jag kan inte engelska men jag ska försöka mig på det

Det du bör lära dig för att vara självgående på Internet är :
Engelska och Sökning på sökmotorer.
Då hade detta varit ett ickeproblem.

http://sv.wikipedia.org/wiki/Pseudokod
https://www.flashback.org/t590327
http://www.kursnavet.se/kurser/Programmering A-C/htm/10_flodesscheman/10_skissa_koden.html
http://dator8.info/1/2012/03/Introduktion-till-pseudokod.html

Ja, det finns hur mycket som helst även på Svenska om man bara vet HUR man ska SÖKA efter det.

Permalänk
Medlem

Man tackar och bockar
Nu ska jag se vad jag kan skapa.
Ha en bra kväll alla

Permalänk
Medlem

Hejsan alla igen!!!
Efter många timmars arbete så byggde jag ihop denna pseudokod

Uppmana användaren att mata in tal ( cout << "Skriv in tal" << endl )
Hämta in tal från användaren; 2 3 4 5 6 0 ( cin >> inp; )
Räkna ut den hela summan av talen, medelvärdet, största talet, näst största talet
Meddela på skärmen;
Summa : 20 ( cout << "Summa: " << sum << endl )
Medelvärde:4 (cout << "Medelvärde: " << (double)sum/(double)antal << endl;)
Största tal: 6 ( cout << "Störst tal: " << max << endl;)
Näst största tal; 5 ( cout << "Näst störst tal: " << nMax << endl;)
Användaren avslutar programmet med valfri tangent

men denna blev inte godkänd med motiveringen "inga funktioner i lösningen"

Skulle någon vänlig kunnig själ kunna hjälpa mig med detta? Jag har arbetat med denna uppgift i en månad nu och ja, jag vet inte vad mer jag ska göra...

Permalänk
Medlem

Det bästa är om du frågar din lärare vad det är som fattas. Jag kan tänka mig att ditt protokoll är för löst specificerat; du skriver aldrig hur du räknar ut medelvärdet, bara att man gör det.

Du kan skippa värdena du stoppar in ("Summa: 20" t ex), då det inte säger något om HUR summan har räknats ut. Bättre att skriva något i stil med

summa = 0 för varje tal i inmatning: summa = summa + tal

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Teknocide:

Det bästa är om du frågar din lärare vad det är som fattas. Jag kan tänka mig att ditt protokoll är för löst specificerat; du skriver aldrig hur du räknar ut medelvärdet, bara att man gör det.

Du kan skippa värdena du stoppar in ("Summa: 20" t ex), då det inte säger något om HUR summan har räknats ut. Bättre att skriva något i stil med

summa = 0 för varje tal i inmatning: summa = summa + tal

Jo, men det är så himla segt att få svar. Det tar ungefär 3 dagar mellan mailen... zzz
Tack så jättemycket för tipset..
Du råkar inte ha något mera tips på lager?
Tack igen

Permalänk
Medlem
Skrivet av adde_84:

Hejsan alla igen!!!
Efter många timmars arbete så byggde jag ihop denna pseudokod

Uppmana användaren att mata in tal ( cout << "Skriv in tal" << endl )
Hämta in tal från användaren; 2 3 4 5 6 0 ( cin >> inp; )
Räkna ut den hela summan av talen, medelvärdet, största talet, näst största talet
Meddela på skärmen;
Summa : 20 ( cout << "Summa: " << sum << endl )
Medelvärde:4 (cout << "Medelvärde: " << (double)sum/(double)antal << endl;)
Största tal: 6 ( cout << "Störst tal: " << max << endl;)
Näst största tal; 5 ( cout << "Näst störst tal: " << nMax << endl;)
Användaren avslutar programmet med valfri tangent

men denna blev inte godkänd med motiveringen "inga funktioner i lösningen"

Skulle någon vänlig kunnig själ kunna hjälpa mig med detta? Jag har arbetat med denna uppgift i en månad nu och ja, jag vet inte vad mer jag ska göra...

Fast nu har du ju inte riktigt skrivit pseudokod, iaf inte på ett sätt som din lärare önskar. Återigen, tänk pseudokod som ett "universellt programmeringsspråk". Det du har skrivit nu är att jämställa med kommentarer. Tar och plockar in en definition av vad psuedokod är från Wikipedia:

Skrivet av Wikipedia:

Pseudocode is a compact and informal high-level description of a computer programming algorithm. It represents the code and may look similar to the code or code constructs, but it isn't actual code. It is a representation of the code or code construct.

Här har du även ett exempel på hur psuedokod KAN se ut (även det taget från Wikipedia):

void function fizzbuzz For (i = 1; i<=100; i++) { set print_number to true; If i is divisible by 3 print "Fizz"; set print_number to false; If i is divisible by 5 print "Buzz"; set print_number to false; If print_number, print i; print a newline; }

Som du ser är psuedokod väldigt enkelt att förstå tack vare att onödiga detaljer utelämnats. Notera även att pseudokoden är väldigt lik vanlig programkod, till skillnad från den "pseudokod" du skrivit.

Hoppas det hjälpte dig på vägen!

Visa signatur

Citera för svar!

Stationär: Fractal Design Define R6 | Asus Z370-P | Intel i7 8700k @ 3.7 Ghz | Corsair Vengeance LPX 32GB CL15 @ 3000 Mhz | Asus STRIX GTX960 4GB | Fractal Design Celsius S24 | 5 TB HDD | 250GB SSD (Samsung 850 EVO), 128GB SSD (Crucial M4) | Corsair HX 850W | W10
Bärbar: Sony Vaio Pro 13.3" | i7-4500U | 8GB RAM | 256GB SSD | Ubuntu

Permalänk
Medlem
Skrivet av RedRetro:

Fast nu har du ju inte riktigt skrivit pseudokod, iaf inte på ett sätt som din lärare önskar. Återigen, tänk pseudokod som ett "universellt programmeringsspråk". Det du har skrivit nu är att jämställa med kommentarer. Tar och plockar in en definition av vad psuedokod är från Wikipedia:

Här har du även ett exempel på hur psuedokod KAN se ut (även det taget från Wikipedia):

void function fizzbuzz For (i = 1; i<=100; i++) { set print_number to true; If i is divisible by 3 print "Fizz"; set print_number to false; If i is divisible by 5 print "Buzz"; set print_number to false; If print_number, print i; print a newline; }

Som du ser är psuedokod väldigt enkelt att förstå tack vare att onödiga detaljer utelämnats. Notera även att pseudokoden är väldigt lik vanlig programkod, till skillnad från den "pseudokod" du skrivit.

Hoppas det hjälpte dig på vägen!

Tack så mycket
Jag ska se om jag kan få ihop något! Jag har så svårt med det här ämnet.