Anhang: Ziffernsumme
Berechnet die Ziffernsumme einer Zahl.
Programm
var n, sum, digit;
begin
? n;
sum := 0;
while n > 0 do
begin
digit := n - (n / 10) * 10;
sum := sum + digit;
n := n / 10
end;
! sum
end.
Erklaerung
- Eingaben werden mit
?gelesen. - Ausgaben erfolgen ueber
!. - Alle Berechnungen sind ganzzahlig.
Details
- Mod 10 per n - (n/10)*10.
- Schleife endet bei n=0.
Beispiel
Eingabe:
472
Ausgabe:
13
Testfaelle
- 0 -> 0
- 999 -> 27
Ausfuehrung
Beispiel:
dotnet run --project src/Pl0.Cli -- examples/appendix/ziffernsumme/program.pl0
Tipp: Fuege --list-code hinzu, um den P-Code zu sehen. Fuege noch --wopcod hinzu, um zusaetzlich den Op-Code anzuzeigen.
P-Code anzeigen:
dotnet run --project src/Pl0.Cli -- examples/appendix/ziffernsumme/program.pl0 --list-code
P-Code mit Op-Codes anzeigen:
dotnet run --project src/Pl0.Cli -- examples/appendix/ziffernsumme/program.pl0 --list-code --wopcod