Anhang: Ziffernanzahl
Zaehlt die Ziffern einer Zahl.
Programm
var n, c;
begin
? n;
if n = 0 then
c := 1;
if n # 0 then
begin
c := 0;
while n > 0 do
begin
n := n / 10;
c := c + 1
end
end;
! c
end.
Erklaerung
- Eingaben werden mit
?gelesen. - Ausgaben erfolgen ueber
!. - Alle Berechnungen sind ganzzahlig.
Details
- Sonderfall n=0 ergibt 1 Ziffer.
- Schleife zaehlt durch Division.
Beispiel
Eingabe:
1005
Ausgabe:
4
Testfaelle
- 0 -> 1
- 42 -> 2
Ausfuehrung
Beispiel:
dotnet run --project src/Pl0.Cli -- examples/appendix/ziffernanzahl/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/ziffernanzahl/program.pl0 --list-code
P-Code mit Op-Codes anzeigen:
dotnet run --project src/Pl0.Cli -- examples/appendix/ziffernanzahl/program.pl0 --list-code --wopcod