home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / das_buch / einfuehr / for4.pas < prev    next >
Pascal/Delphi Source File  |  1993-06-07  |  2KB  |  51 lines

  1. PROGRAM BinToDez1;      { Rechnet eine Dualzahl in eine Dezimalzahl um }
  2.  
  3. USES Crt;                             { Die Unit CRT darf nicht fehlen }
  4.  
  5. CONST
  6.      Basis   = 2;                              { Basis des Dualsystems }
  7.  
  8. VAR
  9.      Binaer  : STRING;        { Variable zur Aufnahme des Binärstrings }
  10.      Dezimal : INTEGER;                      { enthält die Dezimalzahl }
  11.      I, L    : INTEGER;                 { Stringlänge und Laufvariable }
  12.      Potenz  : INTEGER;       { enthält die größtmögliche Zweierpotenz }
  13.  
  14. FUNCTION Pow(A : INTEGER) : INTEGER;
  15. VAR
  16.      J, Hoch : INTEGER;
  17.  
  18. BEGIN
  19.      Hoch := 1;
  20.      FOR J := 1 TO A DO
  21.           Hoch := Hoch * Basis;
  22.      Pow := Hoch;
  23. END;
  24.  
  25.  
  26. BEGIN
  27.      ClrScr;                                      { Bildschirm löschen }
  28.      Write('Bitte geben Sie eine Dualzahl ein: ');
  29.      ReadLn(Binaer);
  30.  
  31.      Dezimal := 0;                    { dezimalen Wert auf Null setzen }
  32.      L := Length(Binaer);                      { Stringlänge ermitteln }
  33.      FOR I := 1 TO L DO
  34.      BEGIN
  35.           IF (Binaer[I] <> '0') AND (Binaer[I] <> '1') THEN  { GÜLTIG? }
  36.           BEGIN                       { Nein => Fehlermeldung ausgeben }
  37.                WriteLn(^J^J, 'Fehler in der Binärzahl!');
  38.                Exit;                        { und Programm beenden ... }
  39.           END
  40.           ELSE BEGIN
  41.                Potenz := Pow (L-I);
  42.                Dezimal := Dezimal + Potenz * (Ord(Binaer[I])-Ord('0'));
  43.           END;
  44.      END;
  45.      WriteLn('Die Dualzahl ', Binaer, ' lautet dezimal: ', Dezimal);
  46.      ReadKey;
  47. END.
  48.  
  49.  
  50.  
  51.