Pseudocode in Informatik

Thoomse

Newbie
Registriert
Nov. 2005
Beiträge
2
Hallo...
Ich habe die Aufgabe einen Pseudocode zu schreiben...
Ich hab mir das so gedacht...
wäre cool wenn ihr mir da sagen könnt, ob dieser richtig ist...
Es handelt sich dabei um das alte Problem "Man hat Knoten udn sucht ein günstiges Verbindungsnetz"

hier meine Daten:

Der Algorithmus in Worten:
1. Verbinde 2 Orte durch die günstigste Verbindung
2. Aus den restlichen verbindungen die günstigste finden solange kein Kreis entsteht...
3. wieder 2.




Pseudocode:

Procedure Aufgabe13; ( In N : NetzT;
Out Ges.-Kosten : Zahl; )

Var Kosten: Integer;

Begin
Kosten:=0;

Loop Für alle (Symbol) Strecken von N do
Suche die guenstigste Strecke
Endloop;

Kosten=Kosten + guenstigste Strecke

While nicht alle Orte verbunden do
Suche die guenstigste Strecke ohne das Kreis entsteht;
Endwhile;

Kosten=Kosten + guenstigste Strecke;
Print „Das guenstigste Netz ist „+“Kosten“+teuer!“;

End;


Danke im Vorraus
MfG,
Thoomse
 
Thoomse schrieb:
Hallo...
Ich habe die Aufgabe einen Pseudocode zu schreiben...
Ich hab mir das so gedacht...
wäre cool wenn ihr mir da sagen könnt, ob dieser richtig ist...
Es handelt sich dabei um das alte Problem "Man hat Knoten udn sucht ein günstiges Verbindungsnetz"

hier meine Daten:

Der Algorithmus in Worten:
1. Verbinde 2 Orte durch die günstigste Verbindung
2. Aus den restlichen verbindungen die günstigste finden solange kein Kreis entsteht...
3. wieder 2.




Pseudocode:

Procedure Aufgabe13; ( In N : NetzT;
Out Ges.-Kosten : Zahl; )

Var Kosten: Integer;

Begin
Kosten:=0;

Loop Für alle (Symbol) Strecken von N do
Suche die guenstigste Strecke
Endloop;

Kosten=Kosten + guenstigste Strecke

While nicht alle Orte verbunden do
Suche die guenstigste Strecke ohne das Kreis entsteht;
Endwhile;

Kosten=Kosten + guenstigste Strecke;
Print „Das guenstigste Netz ist „+“Kosten“+teuer!“;

End;


Danke im Vorraus
MfG,
Thoomse

Hy,

bin zwar kein Crack im Code schreiben, aber das dürfte niemals stimmen:

Kosten=Kosten + guenstigste Strecke

Die Variable "Kosten" darf nur einmal als Kosten deklariert sein, ansonsten kannst du ja nicht zum festen Wert einfach was dazuaddieren. Also meiner Meinung nach müsste dann das so aussehen:
Kosten = Kosten1 + guenstigste Strecke

War aber nur ne Anregung. Muss nicht stimmen ...
 
nene ... das stimmt schon ...
weil man will ja diesen "Counter" immer um eine neue Strecke erhöhen damit man später das günstigste Gesemtstreckennetz hat ... das is also richtig ...
ich bin mir nur nich vom Layout und dem Aufbau so sicher...
kennt jemand da nen Crack den man fragen könnte?

MfG,
Thoomse
 
Also das sieht nicht richtig aus.

Beispiel: Berechnung der Fakultät in Pseudocode:
Code:
program fakultaet
begin
   input n;
   f :=1;
   
   if n= 0 then output f;
   else
        for i=1 to n do
             f:= f * i;
             output f;
        end;
    end;
end;
 
Hallo Thoomse,

die wesentlichen und interessanten Punkten sind nur in allgemeinen Worten beschrieben.
D.h. wie finde ich eine Verbindung und wie wird sie bewertet.

Ausserdem ist das Kriterium das ein Ort verbunden ist, doch auch nicht eindeutig für die zweite While Schleife. Es gibt sicher Pfade die sich überlappen.

D.h. Du wirst nicht alle Pfade abgesucht haben und damit eventuell auch nicht die günstigste Strecke gefunden haben.

Diese doppelte Aufsummierung der Variable Kosten, kann so auch nicht stimmen, da Du zweimal die günstigste Strecke addierst.

Ich würde mir da eher eine Liste oder ein Array vorstellen in der alle Pfade mit den entsprechenden Kosten enthalten sind. Und daraus wird dann am Schluss der günstigste Pfad ausgewählt.

D.h. das ist ein erster Ansatz, von der Lösung bist Du aber noch ein ganzes Stück entfernt.

MfG

Arnd
 
Zurück
Oben