[Pascal] Wczytywanie znak z konsoli

lutnia
Użytkownik
Użytkownik
Posty: 33
Rejestracja: 6 lis 2011, o 11:35
Płeć: Kobieta
Lokalizacja: Szczecin
Podziękował: 3 razy

[Pascal] Wczytywanie znak z konsoli

Post autor: lutnia »

Cześć, mam taki drobny problem. Nie wiem dlaczego, program w 61 linijce nie chce nic wczytywać. Po komunikacie z 60 pokazuje od razu komunikat z 62, potem po wpisaniu czegoś zamyka się. Patrzę się na to i nie widzę.

Kod: Zaznacz cały

program tablica;
uses crt;
var tab1:array[1..10,1..10] of integer;
    i,j,n,m,suma:integer;
    o:char;

procedure wczytaj;
var m,n,i,j:integer;
begin

    writeln('podaj liczbe wierszy i kolumn');
    readln(m,n);
    for i:=1 to m do
        begin
             writeln('podaj liczby w ',i,' wierszu');
             for j:=1 to n  do
             read(tab1[i,j]);
        end;
end;

procedure pisz;
var i,j,m,n,suma:integer;
begin
     writeln('---------------------');
     writeln;
     for i:=1 to m do
         begin
         suma:=0;
         for j:=1 to n do
         suma:=suma+tab1[i,j];
         write('suma w ',i,' wierszu wynosi: ',suma);
         writeln;
         end;
         readln;
         writeln;
         writeln;
end;

procedure pisz2;
var i,j,m,n,suma:integer;
begin
     writeln('----------------------');
     writeln;
     for j:=1 to n do
         begin
         suma:=0;
         for i:=1 to m do
         suma:=suma+tab1[i,j];
         write('suma w ',j,' kolumnie wynosi: ',suma);
         writeln;
         end;
         readln;
         writeln;

end;

BEGIN
    ClrScr;
    wczytaj;
    writeln('co chcesz sumowac, wiersze czy kolumny? w/k');
    readln(o);
    writeln('juz');
    if (o='w') or (o='W') then pisz;
    if (o='k') or (o='K') then pisz2;
    repeat until keypressed;
END.
Ostatnio zmieniony 9 kwie 2012, o 08:55 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
wawek91
Użytkownik
Użytkownik
Posty: 795
Rejestracja: 2 cze 2010, o 08:56
Płeć: Mężczyzna
Lokalizacja: Tarnów
Podziękował: 14 razy
Pomógł: 66 razy

[Pascal] Wczytywanie znak z konsoli

Post autor: wawek91 »

Całkiem możliwe, że coś już siedzi w buforze więc pasowałoby go wyczyścić przed wczytaniem czegoś z klawiatury, w C robiło się to za pomocą fflush(stdin) a odpowiednik w Pascalu to Flush(Output) podpunkt 13.
ODPOWIEDZ