neuling1
Goto Top

Aktivitätsdiagramm in PowerShell programmieren

Hallo zusammen,

als aller erstes möchte ich mich gerne bei euch vorstellen.
Mein Name ist Manu, bin 23 Jahre alt und befindet mich nun im letzten Ausbildungslehrjahr von meiner Ausbildung zum Fachinformatiker Systemintegration.

Im Moment sollen wir ein Aktivitätsdiagramm in PowerShell umsetzen. Und genau hier beginnt das Problem.
Leider bin ich im programmieren nicht er der Beste und komm bei dieser Aufgabe nicht weiter.
Im Anhang findet ihr eine Abbildung zu dem was wir programmieren sollen. Ich bin der Meinung, dass ich mit einer If Schleife arbeiten muss aber verstehe nicht wie genau ich vorgehen muss.

neu

Mein bisher "programmiertes" Programm sieht so aus:

$Plikand = Read-host "Geben Sie einen Multiplikand ein"  
$Plikator =Read-Host "Geben Sie einen Multiplikator ein"  
$Ergebnis = $Plikator * $Plikand 
$i = 0

If($Ergebnis)
{
   $Ergebnis -eq $i 
}
elseif($Ergebnis + 1)
{
    $NeuesErgebnis = $Ergebnis +1
}
elseif($NeuesErgebnis)
{
    write-host "$NeuesErgebnis"  
}

Ich vermute mal, dass das wenig Sinn macht :D Vielleicht kann mir der ein oder andere helfen..

Danke!!

Lg

Content-Key: 605705

Url: https://administrator.de/contentid/605705

Printed on: April 18, 2024 at 08:04 o'clock

Member: NordicMike
NordicMike Sep 18, 2020 updated at 08:25:06 (UTC)
Goto Top
Du musst noch den Ausgabeparameter Produkt = 0 setzen:
Ergebnis = 0
oder besser man nimmt die Namen, wie sie vorgegeben sind, also:
Produkt = 0

den ersten decisionPoint kannst du mit einer while schleife machen:
while i < absolutwert(Multiplikant) {
   if Multiplikant >= 0 { Produkt = Produkt + Multiplikator }  //das ist der zweite decisionPoint)
   else 
   { Produkt = Produkt - Multiplikator }
   i = i + 1
}
// weiter gehts mit wenn false war:
Produkt
goto Anfang
Member: erikro
erikro Sep 20, 2020 at 14:17:14 (UTC)
Goto Top
Moin,

Du hast die Aufgabe falsch verstanden. Du sollst die Multiplikation als fortgesetzte Addition händisch ausprogrammieren. Typisch deutsch, um den Leuten Schleifen beizubringen. face-wink Die richtige Schleife wäre while oder for.

Liebe Grüße

Erik
Member: Neuling1
Neuling1 Sep 25, 2020 at 10:34:58 (UTC)
Goto Top
Vielen Dank schon einmal für deine Hilfe.

Ich glaube langsam auch, dass ich die Aufgabe nicht richtig verstehe.

Ist aber das hier dann richtig?

while i < absolutwert(Multiplikant) {
if Multiplikant >= 0 { Produkt = Produkt + Multiplikator } das ist der zweite decisionPoint)
else
{ Produkt = Produkt - Multiplikator }
i = i + 1
}
weiter gehts mit wenn false war:
Produkt
goto Anfang

Komm hier leider einfach nicht weiter
Member: erikro
erikro Sep 25, 2020 updated at 14:02:59 (UTC)
Goto Top
Moin,
Zitat von @Neuling1:
Ist aber das hier dann richtig?

Fast. face-wink


while i < absolutwert(Multiplikant) {

Das geht so in der PS nicht.

if Multiplikant >= 0 { Produkt = Produkt + Multiplikator } #das ist der zweite decisionPoint)

Falsch. Wenn der Multiplikant 0 ist, dann ist auch das Produkt 0. face-wink

else
{ Produkt = Produkt - Multiplikator }
i = i + 1
}
// weiter gehts mit wenn false war:
Produkt
goto Anfang

Never goto! Goto ist pfui! face-wink Und was willst Du auch am Anfang?

[int32]$multiplikant = read-host "Bitte geben Sie eine Multiplikanten ein."  
[int32]$multiplikator = read-host "Bitte geben Sie eine Multiplikator ein."  
[int32]$i = [math]::abs($multiplikator) # So gibt man in PS den absoluten Wert aus.
[int32]$produkt = 0

if ($multiplikator -eq 0) {
# Die wichtigsten Vergleichsoperatoren in der PS sind -lt, -gt, -le, -ge und -eq

    $produkt = 0

}
else {

    while($i -gt 0) {
         
        if($multiplikator -gt 0) {

              $produkt = $produkt + $multiplikant

        }
        else {

             $produkt = $produkt - $multiplikant

        }
        $i = $i - 1

    }

}
write-host $produkt

hth

Erik

<edit>Datentypen bei den Zahlen ergänzt, da sonst evtl. die Vergleiche schief gehen.</edit>
Member: Neuling1
Neuling1 Sep 25, 2020 at 14:35:14 (UTC)
Goto Top
Danke erstmal für die Hilfe!
Member: NordicMike
NordicMike Sep 28, 2020 at 07:00:43 (UTC)
Goto Top
while i < absolutwert(Multiplikant) {
Das geht so in der PS nicht.
Das war auch nur symbolisch gemeint, weil es auch so genau so auf dem Blatt steht.

Und was willst Du auch am Anfang?
Das hat so ausgesehen, als ob unten eine Linie weiter geht und oben wieder ankommt, also ein loop. Das kommt davon, wenn man die Aufgabe nicht komplett abfotografiert. :c)