Announcement

Collapse
No announcement yet.

Programmende???

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Programmende???

    Hallo,
    ich möchte eine Klasse für Matrixoperationen
    realisieren. Bei der Methode für die Eingabe über die Konsole
    werden 2 Schleifen ausgeführt. Sobald
    die erste Textausgabe ausgeführt wird,
    wird die Schleife anscheined abgebrochen und das Programm verlassen.
    Kann jemand den Fehler finden und erklären?
    die eingabe-methode:
    <pre>
    procedure matrix.Read_cons();
    var
    i,j:integer;
    begin
    writeln('Eingabe der ' + string(m) + ' zu ' + string(n) + ' Matrix! ');
    readln;
    for i := 0 to m do
    for j := 0 to n do begin
    write('['+string(i+1)+','+string(j+1)+']: ');
    readln(elem[i,j]);
    end
    end;
    </pre>

    Das Hauptprogramm
    ----------------------
    <pre>
    var
    nn,nm:integer;
    mat:matrix;
    begin
    writeln('m?');readln(nm);
    writeln('n?');readln(nn);

    mat := matrix.create(nm,nn);

    mat.Read_cons;
    mat.ausg_cons;

    readln;

    end.
    </pre>

    Thx Ralf

  • #2
    Hi Ralf,<br>
    Dein String-Cast ist falsch und wirst mit einer Exception rausgeworfen.<br>
    Um eine Integerzahl in einen String zu wandeln nimmst Du die Fktn "IntToStr(i+1)" <br>
    Dann klappt´s. <br>
    <br>
    Gruß<br>
    Andr&#233

    Comment


    • #3
      Ok, es geht!
      Thx

      Ral

      Comment


      • #4
        Noch der Hinweis (zumindest in C ist es so) bei einer Matrix von n mal m, werden n mal n Elemente angelegt. Dies sind jeweils die Elemente 0 bis n-1 und 0 bis m-1.

        Grüße Joche

        Comment


        • #5
          Hallo,<BR>
          bei Ausgaben über die Console (oder Textdatei) brauchst Du Zahlen gar nicht explizit in Strings umwandeln. Das würde es auch tun:<BR>
          write('[',i+1,',',j+1,']: ');<BR>
          Schöne Grüße,<BR>
          Marku

          Comment


          • #6
            zu Jochen:
            Hast Recht.
            im kontruktor wird daher n u. m
            um eins runtergezählt bevor die
            grösse des Arrays bestimmt wird

            Comment

            Working...
            X