• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pascal problem

Object Storage Arubacloud
0 głosów
142 wizyt
pytanie zadane 14 stycznia 2017 w Inne języki przez AndekQR Użytkownik (880 p.)
edycja 14 stycznia 2017 przez AndekQR
Ktoś może mi powiedzieć dlaczego ta procedura nie wykonuje się, choć zostaje wywołana? Bez żadnego komunikatu o błędzie.

procedure trans(var A,B:TMatrix; lw,lk:integer);
var i,j:integer;
begin
writeln('tran');
for i:=0 to lw-1 do
  for j:=0 to lk-1 do
B[j][i]:=A[i][j];
WriteMatrix(lw,lk,B);
end;
komentarz 14 stycznia 2017 przez mbabane Szeryf (79,280 p.)

Mozesz bardziej sprecyzowac "nie wykonuje sie" - masz na mysli ze kod sie nie kompiluje? Czy moze, ze sie kompiluje ale na ekranie nic nie widac?

Jesli to drugie to sprawdz procedure WriteMatrix() bo zdaje sie ze to ona odpowiada ze wyswietlenie wyniku.

komentarz 14 stycznia 2017 przez AndekQR Użytkownik (880 p.)

Na ekranie nic nie widać. Z procedurą WriteMatrix jest wszystko w porządku wywołana osobno wykonuje się. W procedurze trans nawet nie wyświetla się komunikat tran (z linijki writeln('tran');)

Cały kod:

program MatrixLib;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type
 TMatrix = array of array of real;
procedure NewMatrix(N, M:integer; var T:TMatrix);
begin
 SetLength(T, N, M);
end;
procedure DelMatrix(N, M:integer; var T:TMatrix);
begin
 SetLength(T, 0, 0);
end;
procedure RndMatrix(N, M:integer; var T:TMatrix);
var
 i, j:integer;
begin
for i := 0 to N-1 do
 for j := 0 to M-1 do T[i, j] := random(101)/100;
end;
procedure ReadMatrix(N, M:integer; var T:TMatrix);
var
 i, j:integer;
begin
for i := 0 to N-1 do
 for j := 0 to M-1 do begin
 write('Element ', i, 'x', j, ': '); readln(T[i, j]);
 end;
end;





procedure WriteMatrix(N, M:integer; var T:TMatrix);
var
 i, j:integer;
begin
for i := 0 to N-1 do
 for j := 0 to M-1 do
 writeln('Element ', i, 'x', j, ': ', T[i, j]:3:2);
 readln;
end;




function SumMatrix(N, M:integer; T1, T2:TMatrix):TMatrix;
var
 S:TMatrix;
 i, j:integer;
begin
 NewMatrix(N, M, S);
for i := 0 to N-1 do
 for j := 0 to M-1 do
 S[i, j] := T1[i, j] + T2[i, j];
 SumMatrix := S;
end;
function SubMatrix(N, M:integer; T1, T2:TMatrix):TMatrix;
var
 S:TMatrix;
 i, j:integer;
begin
 NewMatrix(N, M, S);
for i := 0 to N-1 do
 for j := 0 to M-1 do
 S[i, j] := T1[i, j] - T2[i, j];
 SubMatrix := S;
end;

procedure trans(var A,B:TMatrix; lw,lk:integer);
var i,j:integer;
begin
writeln('tran');
for i:=0 to lw do
  for j:=0 to lk do
    B[i][j]:=A[j][i];
WriteMatrix(2,2,B);
end;



var
 A, B, C:TMatrix;
begin
 NewMatrix(2, 2, A);
 NewMatrix(2, 2, B);
 NewMatrix(2, 2, C);
 ReadMatrix(2, 2, A);
 trans(A, B, 2, 2);



end.

 

1
komentarz 14 stycznia 2017 przez mbabane Szeryf (79,280 p.)
mozliwe ze gdzies wychodzisz po za zakres tablicy

edit

a chyba juz wiem gdzie, w tej procedurze, ktora Ci nie dziala w petlach for daj lw-1 i lk-1 - tak to jest to bo testowalem
komentarz 15 stycznia 2017 przez AndekQR Użytkownik (880 p.)
Działa, dziękuje za pomoc.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 247 wizyt
pytanie zadane 31 maja 2018 w Inne języki przez DragonCoder Nałogowiec (36,500 p.)
0 głosów
0 odpowiedzi 1,027 wizyt
pytanie zadane 2 grudnia 2017 w Inne języki przez DragonCoder Nałogowiec (36,500 p.)
0 głosów
1 odpowiedź 287 wizyt
pytanie zadane 27 listopada 2016 w Inne języki przez Wiciorny Ekspert (269,710 p.)

92,556 zapytań

141,403 odpowiedzi

319,559 komentarzy

61,942 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...