2016-09-27, 12:14
  #1
Medlem
Tjenare, har nyligen börjat en kurs inom informationsteknologi. Har hållit på i 2 veckor nu, så nu har vi börjat med lite svårare saker. Till denna uppgift fick vi en pdf fil där vi fick läsa på om Algoritmer, läste allt och skulle börja med första uppgiften men har redan kört fast Vet inte alls vad jag ska göra

Uppgiften är:

Skriv en algoritm i form av pseudokod som multiplicerar de första elva heltalen och skriver ut produkten. Din algoritm skall alltså beräkna 1 * 2 * 3 * 4 * ... * 10 * 11 och ge resultatet som output.


Någon som kan hjälpa mig att förstå detta??
Citera
2016-09-27, 13:06
  #2
Medlem
Citat:
Ursprungligen postat av Benna1
Tjenare, har nyligen börjat en kurs inom informationsteknologi. Har hållit på i 2 veckor nu, så nu har vi börjat med lite svårare saker. Till denna uppgift fick vi en pdf fil där vi fick läsa på om Algoritmer, läste allt och skulle börja med första uppgiften men har redan kört fast Vet inte alls vad jag ska göra

Uppgiften är:

Skriv en algoritm i form av pseudokod som multiplicerar de första elva heltalen och skriver ut produkten. Din algoritm skall alltså beräkna 1 * 2 * 3 * 4 * ... * 10 * 11 och ge resultatet som output.


Någon som kan hjälpa mig att förstå detta??

Lättast är väl att använda en loop i stil med
sum = 1;
for(i = 1; i<12; i++) {
sum *= i;
}

Du vill ju i princip multiplicera 1 med 1,2,3,4,5,6,7,8,9,10,11
Finns många fler sätt att göra detta på, jag ser inget fel med att skriva
int n,n1...n11 = 1,2...11
result = n*n1...*n11
__________________
Senast redigerad av Oscillation 2016-09-27 kl. 13:16.
Citera
2016-09-29, 13:13
  #3
Moderator
Neksnors avatar
Du ska på ett ganska generellt men otvetydigt sätt beskriva hur man gör.
Ex:
Skriv ut talet X, som är Y!, där Y är ett positivt heltal. ( https://sv.wikipedia.org/wiki/Fakultet_(matematik) )
Om Y = 1 så är Y! = 1, annars är Y! = Y * (Y-1)!
Låt Y = 11.
Citera
2016-09-29, 18:28
  #4
Medlem
christerys avatar
Citat:
Ursprungligen postat av Neksnor
Du ska på ett ganska generellt men otvetydigt sätt beskriva hur man gör.
Ex:
Skriv ut talet X, som är Y!, där Y är ett positivt heltal. ( https://sv.wikipedia.org/wiki/Fakultet_(matematik) )
Om Y = 1 så är Y! = 1, annars är Y! = Y * (Y-1)!
Låt Y = 11.
Skulle inte jag kalla en vettig pseudokod.

Mer att man beskriver vad man vill göra.

[PHP]I=1
summa = 1
så länge I är mindre eller lika med 11 så
låt summa vara summa plus i*summa
öka I med ett
Skriv ut summa[/PHP]

Men det finns inte nån vedertagen standard för pseudokod vad jag vet.
Citera
2016-09-29, 20:46
  #5
Medlem
MeanMEs avatar
Citat:
Ursprungligen postat av christery
Skulle inte jag kalla en vettig pseudokod.

Mer att man beskriver vad man vill göra.

[PHP]I=1
summa = 1
så länge I är mindre eller lika med 11 så
låt summa vara summa plus i*summa
öka I med ett
Skriv ut summa[/PHP]

Men det finns inte nån vedertagen standard för pseudokod vad jag vet.
Du har rätt i att det inte finns någon standard.
Vad det handlar om är ju att du beskriver koden för en annan person som skall skriva den eller förstå vad du avser. Börjar man blanda in en massa syntax tycker jag man lika gärna kan skriva ut den helt. Ditt exempel är är bra tycker jag.
Citera
2016-09-29, 22:59
  #6
Moderator
vhes avatar
Inte ens en Microsofthatare som jag tycker att C# & .NET är pseudokod...

C#, VB.NET och .NET Framework --> Övriga utvecklingsfrågor
/Moderator
Citera
2016-09-29, 23:43
  #7
Moderator
Neksnors avatar
Citat:
Ursprungligen postat av christery
Skulle inte jag kalla en vettig pseudokod.

Mer att man beskriver vad man vill göra.

[PHP]I=1
summa = 1
så länge I är mindre eller lika med 11 så
låt summa vara summa plus i*summa
öka I med ett
Skriv ut summa[/PHP]

Men det finns inte nån vedertagen standard för pseudokod vad jag vet.
Jag beskriver ju vad som ska göras, fast på ett ganska deklarativt sätt. Håller med om att ditt exempel ärbar, men det är lite kodskadat att indentera pseudokod.
Citera
2016-09-30, 00:09
  #8
Medlem
christerys avatar
Citat:
Ursprungligen postat av Neksnor
Jag beskriver ju vad som ska göras, fast på ett ganska deklarativt sätt. Håller med om att ditt exempel ärbar, men det är lite kodskadat att indentera pseudokod.
Hehe, indenteringen var mer för att slippa klura på vad "så" skulle avsluta med.
Har sett många varianter och att försöka få till det har jag inte lyckats med.

Vad avslutar man en så-sats med... jag kanske bara är fantasilös men indenteringen funkar för mig.
Slut så skulle vara ett alternativ, men det känns inte rätt.
Citera
2016-09-30, 00:32
  #9
Moderator
Neksnors avatar
Citat:
Ursprungligen postat av christery
Hehe, indenteringen var mer för att slippa klura på vad "så" skulle avsluta med.
Har sett många varianter och att försöka få till det har jag inte lyckats med.

Vad avslutar man en så-sats med... jag kanske bara är fantasilös men indenteringen funkar för mig.
Slut så skulle vara ett alternativ, men det känns inte rätt.
Vanlig radbrytning?
Kod:
I=1
summa = 1 
Så länge I är mindre eller lika med 11, låt summa vara summa plus i*summa. Öka sedan I med 1. 
Skriv ut summa.
Citera
2016-09-30, 05:01
  #10
Medlem
christerys avatar
Citat:
Ursprungligen postat av Neksnor
Vanlig radbrytning?
Kod:
I=1
summa = 1 
Så länge I är mindre eller lika med 11, låt summa vara summa plus i*summa. Öka sedan I med 1. 
Skriv ut summa.
Tja, varför inte. Men då jag har ibland använt pseudokoden som kommentarer (dom går in först och sen skriver jag koden) så blir koden lite märklig om man kör oneliners.

Dvs jag lägger in pseudokoden först. (mycket förenklat)

//Låt X vara 1
// Låt Y vara 2
// Addera X och Y och skriv ut svaret

Sen är det bara fylla på med kod.

int X=1; //Låt X vara 1
int Y=2; // Låt Y vara 2
printf("%i", X+Y); // Addera X och Y och skriv ut svaret

Och vips har man

[PHP]
#include <stdio.h>

int main(void) {
int X=1; //Låt X vara 1
int Y=2; // Låt Y vara 2
printf("%i", X+Y); // Addera X och Y och skriv ut svaret
return 0;
}
[/PHP]
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in