Показать сообщение отдельно
Старый 23.12.2011, 21:32   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Ol'ga Посмотреть сообщение
помогите мне исправить ошибки и как мне сумму вычислить??
Помогаю. Исправил. Вот так (выход я сделал по Esc):
Код:
uses crt;
type
 matrix=array[1..10,1..10] of integer;
var
 a:matrix;
 i,j,n,x,y:byte;
 Sum:Word;
 ch:char;

procedure vvod(var ma:matrix; n:integer);
var i,j:integer;
begin
 for i:=1 to n do
  for j:=1 to n do
   ma[i,j]:=random(10);
end;

procedure print(ma:matrix; n:integer);
var i,j:integer;
begin
 clrscr;
 for i:=1 to n do
  begin
   for j:=1 to n do
    write(ma[i,j]:2);
   writeln;
  end;
 writeln;
end;

Procedure Calc_Sum;
var xs,ys:byte;
begin
 if (x mod 2)=0 then
  begin
   xs:=x;
   ys:=y;
   gotoxy(1,n+1);
   Sum:=Sum+a[y,(x div 2)];
   write('Sum= ',Sum:3);
   x:=xs;
   y:=ys;
   gotoxy(x,y);
  end;
end;

BEGIN
 clrscr;
 x:=1;
 y:=1;
 write('vvedite razmer kvadratnoy matrix: ');
 readln(n);
 if n>10 then n:=10;
 vvod(a,n);
 print(a,n);
 Sum:=0;
 gotoxy(1,n+1);
 write('Sum= ',Sum:3);
 gotoxy(1,1);
 x:=1;
 y:=1;
 while true do
  begin
   ch:=readkey;
   if ch=#27 then exit;
   if (ch=#77) and (x<2*n) then
    begin
     x:=x+1;
     gotoxy(x,y);
     Calc_Sum;
    end;
   if (ch=#75) and (x>1) then
    begin
     x:=x-1;
     gotoxy(x,y);
     Calc_Sum;
    end;
   if (ch=#72) and (y>1) then
    begin
     y:=y-1;
     gotoxy(x,y);
     Calc_Sum;
    end;
   if (ch=#80) and (y<n) then
    begin
     y:=y+1;
     gotoxy(x,y);
     Calc_Sum;
    end;
  end;
END.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070