Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal] Задача про матрицу


Автор: rcapdart 17.12.2008, 22:13
Код

program labrab6;
uses crt;
label pechat,preobr,characteristic,menu;
type matr = array[1..10,1..10] of integer;
bi = array[1..10] of integer;

var a,b:matr;
 maxel,min,i,j,p,d,m,n,c,z,y:integer;
 max: bi;
 f:text;
 stroka,txtfile:string;
 txt,character:boolean;
begin
 clrscr;
 stroka:='';
 txt:=false;
 menu:clrscr;
 writeln('1. ‚ў®¤ ¬ ваЁжл б Є« ўЁ вгал');
 writeln('2. ‚ў®¤ ¬ ваЁжл Ё§ д ©« ');
 writeln('3. ‚лзЁб«Ґ­ЁҐ е а ЄвҐаЁбвЁЄЁ ');
 writeln('4. ЏаҐ®Ўа §®ў ­ЁҐ ¬ ваЁжл');
 writeln('5. ЏҐз вм ¬ ваЁжл');
 writeln('6. ‚л室');
 writeln;
 readln(c);
 clrscr;
 if c=1 then
  begin
   writeln;
   writeln('N=');
   readln(n);
   for i:=1 to n do
   begin
    for j:=1 to n do
    begin
     write('a[',i,',',j,']= ');
     readln(a[i,j]);
    end;
   end;
  txt:=true;
  writeln('Complete!');
  readln;
  goto menu;
  end;
{-----------------------------------------}
if c=2 then
begin
writeln('Write the file name');
readln(txtfile);
assign(f,txtfile);
reset(f);
readln(f,n);
for i:=1 to n do
begin
    for j:=1 to n do
    read(f,a[i,j]);
end;
close(f);
txt:=true;
writeln('Txt file "',txtfile, '" was readen =) ');
readln;
goto menu;
end;
{-----------------------------------------}

if c=3 then begin

 z:=1;


 for j:=1 to n do
 begin;
 min:=a[1,j];
   for i:=1 to n do
   Begin
   if (a[i,j]<min ) then
   min:=a[i,j]
   End;
   max[z]:=min;
   z:=z+1;

 end;


 maxel:=max[1];
 for z:=1 to n do
 begin
 if maxel<max[z] then maxel:=max[z];
 end;
 writeln('MAX final= ',maxel);
  if maxel<0 then
  begin
   writeln('(= (= (= All WORK =) =) =)');
 character:=true;
 end
 else writeln('HET!!! =(');
 readln;
 goto menu;
 end;

{-----------------------------------------}

if c= 4 then
begin


z:=1;
d:=1 ;
y:=0;
   For i:=n downto 1 do
   Begin;
      For j:=1 to n do
      Begin
      y:=A[j,i];
      B[d,z]:= y;
      writeln(b[d,z]);
      z:=z+1;
      end;
   d:=d+1;
   End;
 writeln('___')  ;
 min:=0;

 for i:=1 to n do
 begin
  for j:=1 to n do
  begin
  min:=b[i,j];
  a[i,j]:= min;
  writeln(a[i,j]);
  end;
 end;
readln;
goto menu;
end;
{-----------------------------------------}

if c=5 then begin
if txt=true then
begin
i:=1;
while i<=n do
begin
for J:=1 to n do
write(a[i,j],' ');
writeln(' ');
inc(i);
end;
end;
readln;
goto menu;
end;


end.




Вообщем прога должна повернуть матрицу на 90 градусов против часовой стрелки.  Всё работает, но когда я ввожу матрицу (из файла не работает =) , но суть не в этом). Проблема в повороте. Он когда её поворачивает (это где с=4) почему то теряет пол матрицы =( Помогите... ПОЖАЛУЙСТА

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)