Entwickler-Ecke

Free Pascal - Pythagoras


Horadim - Sa 10.10.20 21:40
Titel: Pythagoras
Nabend

Ich hab die Aufgabe den Satz des Pythagoras in Pascal zu programmieren.

Könnte mir jemand einen Tipp geben wie ich das am besten mache.

Finde keinen Einstieg.

Gegeben a, b, c Integer.

Vielen Dank.


Th69 - So 11.10.20 07:47

Hallo und :welcome:

ich nehme mal an, du sollst aus 2 Eingaben (z.B. a und b) die dritte Seite (hier die Hypotenuse c) berechnen.
Lies also diese 2 Werte ein, berechne den dritten Wert und gib ihn dann aus.


Gausi - So 11.10.20 10:29

Hallo und :welcome: auch von mir!

Das sieht mir nach einem der aller-aller-ersten Programmieraufgaben aus. An welcher Stelle kommst du denn nicht weiter? Allgemeine Programmlogik, oder hängt es einfach an der Berechnung der Wurzel? Dafür gibt es den Befehl sqrt.


Horadim - So 11.10.20 11:06

Guten Morgen.

Erstmal danke für die Rückmeldung.
Also das ich sqr für die Berechnung einsetze weiß ich. Denke bei mir hängt es an der Programmier Logik. Vielleicht denke ich auch zu viel.
Ich wollte erstmal bestimmen das a und b nicht größer sein darf als c. Dann wollte ich die einzelnen Werte berechnen. Und natürlich ausgeben der Ergebnisse.
Aber irgendwie mag das Pascal nicht.

Mfg


Moderiert von user profile iconTh69: Beitragsformatierung überarbeitet.


Th69 - So 11.10.20 12:05

Dann zeige mal deinen Code und beschreibe, was nicht funktioniert (Fehlermeldung o.ä.).


Horadim - So 11.10.20 13:49

Ich hoffe das geht so .


Gausi - So 11.10.20 14:11

Ok, das sieht so aus, als wolltest du auch im Programm entscheiden, welche Seite fehlt, und diese dann berechnen wollen. Die fehlende Seite soll anscheinend durch Eingabe von "0" (oder kleiner) eingegeben werden. Kann man machen, wenn man das dem User erklärt. ;-)

Da gibt es dann ein Problem bei dieser Abfrage:


Delphi-Quelltext
1:
2:
if (a>c) or (b>c) then
  writeln ('falscheEingabe');


Denn wenn c berechnet werden soll (und deswegen als 0 angegeben wird), dann kommt immer eine "falsche Eingabe". An der Stelle müsstest du also als zusätzliche Bedingung einbauen, dass (c >= 0) ist, denn nur dann kann es zu Problemen führen, wenn a oder b noch größer sind. :idea:

Als nächstes muss in Pascal jeder Befehl mit einem Semikolon abgeschlossen werden - es sei denn, es folgt direkt ein else. D.h. bei dieser Zeile (z.B.)

Delphi-Quelltext
1:
c:= sqrt(sqr(a)+sqr(b))                    

muss entweder ein ; ans Ende, oder ein else. Das geht hier beides - überleg mal, was das dann jeweils für den Programmablauf bedeutet. ;-)

Und als letztes: Zähl mal die begin und end. Das passt aktuell nicht.


ub60 - So 11.10.20 15:14

Und noch 2 Hinweise:

ub60


Horadim - So 11.10.20 15:24

Vielen Dank für die Tips .

Ihr habt mir wirklich geholfen.

Danke


Th69 - Mo 12.10.20 08:38

Demnächst bitte den Code direkt hier posten (in Code/Delphi-Tags) anstatt als Anhang (den dann jeder Leser erst herunterladen muß).