1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

3-eck rahmen

Dieses Thema im Forum "Pascal" wurde erstellt von TheFlame, 26. September 2007.

  1. TheFlame

    TheFlame New Member

    Hy!
    ich erhalte morgen einen riesen rüffel,wenn ich diese aufgabe nicht habe,also vielleicht ist jemand so lieb und hilft mir...:)
    dieser code produziert ein normales 3-eck mit sternchen,ich sollte jetzt aber nur den Rahmen des 3-ecks haben...

    code:


    procedure flaecheGleichschenkligesDreieck;
    var
    anzLeer:integer;
    anzSterne:integer;
    anzZeilen:integer;
    i:integer;
    j:integer;
    k:integer;
    l:integer;

    begin
    wiederholen:=true;
    writeln('Programmverlassen mit -1');
    while wiederholen do begin
    write('Gib die Seitenlänge ein: ');
    readln(anzZeilen);
    anzLeer:=anzZeilen;
    anzSterne:=1;
    if anzZeilen=-1 then
    wiederholen:=false;
    for i:=1 to anzZeilen do begin
    for j:=1 to anzLeer do
    write(' ');
    for k:=1 to anzSterne do
    write(' *');
    writeln;
    anzSterne:=anzSterne +1;
    anzLeer:=anzLeer -1;
    end;
    end;
    end;
  2. Hermann Döppes

    Hermann Döppes New Member

    Ich sitze hier gerade an einem Rechner ohne jegliches Werkzeug, aber soweit ich deinen Code:
    Code:
    procedure flaecheGleichschenkligesDreieck;
    var
      anzLeer:integer;
      anzSterne:integer;
      anzZeilen:integer;
      i:integer;
      j:integer;
      k:integer;
      l:integer;
    begin
      wiederholen:=true;
      writeln('Programmverlassen mit -1');
      while wiederholen do begin
        write('Gib die Seitenlänge ein: ');
        readln(anzZeilen);
        anzLeer:=anzZeilen;
        anzSterne:=1;
        if anzZeilen=-1 then
        wiederholen:=false;
        for i:=1 to anzZeilen do begin
          for j:=1 to anzLeer do
            write('*');
          for k:=1 to anzSterne do
            write('*');
          writeln;
          anzSterne:=anzSterne +1;
          anzLeer:=anzLeer -1;
       end;
      end;
    end;
    verstanden habe, müsste die neue Version so aussehen:
    Code:
    procedure rahmenGleichschenkligesDreieck;
    var
      anzLeer:integer;
      anzSterne:integer;
      anzZeilen:integer;
      i:integer;
      j:integer;
      k:integer;
      l:integer;
      c: char; // Der Buchstabe, zum Malen der Begrenzung
    begin
      wiederholen:=true;
      c := '+'; // Ränder werden mit Plussen gemalt
      writeln('Programmverlassen mit -1');
      while wiederholen do begin
        write('Gib die Seitenlänge ein: ');
        readln(anzZeilen);
        anzLeer:=anzZeilen;
        anzSterne:=1;
        if anzZeilen=-1 then
        wiederholen:=false;
        for j:=1 to anzLeer do
          write(' ');
        for k:=1 to anzSterne do
          write(c);
        writeln;
        for i:=3 to anzZeilen do begin
          for j:=1 to anzLeer do
            write(' ');
          write(c);
          for k:=3 to anzSterne do
            write(' ');
          write(c);
          writeln;
          anzSterne:=anzSterne +1;
          anzLeer:=anzLeer -1;
        end;
        for j:=1 to anzLeer do
          write(' ');
        for k:=1 to anzSterne do
          write(c);
        writeln;
      end;
    end;