PROGRAM rechnung(input,output);

{Programm zum Drucken einer Rechnung mit veraenderlicher Breite}

CONST breite1= 5;
      breite2=13;
      breite3= 8;
          dst= 2;

VAR i,breite,hbreite:integer;
    menge,epreis,betrag,summe:real;

BEGIN
{Einzelpreis einlesen}
  write('geben Sie den Einzelpreis ein ');
  readln(epreis);

{Menge einlesen}
  write('geben Sie die Menge ein ');
  readln(menge);

{Berechnungen}
  betrag:=menge*epreis;
  summe:=betrag;

{Kopf drucken}
  writeln;writeln;
  writeln('Menge':breite1,'Einzelpreis':breite2,'Betrag':breite3);
  breite:=breite1+breite2+breite3;
  FOR i:=1 TO breite DO write('-');
  writeln;

{Rechnung drucken}
  writeln(menge:breite1:dst,epreis:breite2:dst,betrag:breite3:dst);
  hbreite:=breite1+breite2;
  FOR i:=1 TO hbreite DO write(' ');
  FOR i:=1 TO breite3 DO write('-');
  writeln;
  FOR i:=1 TO breite1 DO write(' ');
  writeln('Endsumme':breite2,summe:breite3:DST);
  FOR i:=1 TO hbreite DO write(' ');
  FOR i:=1 TO breite3 DO write('=');
  writeln
END.