AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programm für Octalzahlen in Dezimalzahlen

Ein Thema von SirMaurice · begonnen am 7. Dez 2018 · letzter Beitrag vom 11. Dez 2018
 
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#8

AW: Programm für Octalzahlen in Dezimalzahlen

  Alt 9. Dez 2018, 19:01
Die Rückwärtszählung war in der Aufgabe enthalten.
Na dann mal die Basisfunktion mit korrekter Implementation Deiner Methode. Ich habe Position in Potenz umbenannt, weil das die adäquate Bezeichnung ist und nicht so irreführend wie Positiion.
Delphi-Quellcode:
{-----------------------------------------------------------}
function oct2dec(const os: string): cardinal;
  {-Umwandlung des Strings os, der eine Oktalzahl enthält, in eine Dezimalzahl}
var
  Ergebnis, Potenz: cardinal;
  i: integer;
  d: byte;
  c: char;
begin
  Potenz := 1;
  Ergebnis := 0;
  for i:=length(os) downto 1 do begin
    {Umwandlung nächste Oktalziffer in Dezimalvariable d}
    c := os[i];
    if c in ['0'..'7'] then d := ord(c)-ord('0')
    else begin
      {Fehlerbehandlung: hier}
      ShowMessage(c+' ist keine gültige Oktalziffer');
    end;
    {Aufsummieren}
    Ergebnis := Ergebnis + Potenz*d;
    {nächste Achter-Potenz}
    Potenz := Potenz*8;
  end;
  oct2dec := Ergebnis;
end;
Dies kannst Du in Dein Programm einbauen und rufst die Funktion zB mit dez := oct2dec(EOct.Text) auf.

Hier noch Tip, der wichtiger ist als schöne Formatierung (die nicht vor Logik-Fehlen schützt): Versuche die Berechungen von der Oberfläche/Eingabe/Ausgabe zu trennen. Dann ist die Routine allgemein einsetzbar und hängt nicht von Deinen Editfeldern ab (in der Funktion oben sollte man deshalb besser einen Fehlercode liefern oder ein Exception werfen.)

Geändert von gammatester ( 9. Dez 2018 um 19:22 Uhr) Grund: 9 -> 7
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz