Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2008, 17:52   #1
ViNcHeStEr
Delphi
Форумчанин
 
Регистрация: 12.06.2008
Сообщений: 137
По умолчанию Задача. Массив.

Задана матрица К(8,8). Поменять местами элементы строки с максимальной суммой элементов и элементы второго столбца.
===========
Наверное я много чего лишнего написал в программе, но вот что я сделал (делал в консольном Дельфи):

program m1;

{$APPTYPE CONSOLE}

uses
SysUtils;
const
n=8;
type
mas=array[1..n,1..n] of integer;
mas2=array[1..n] of integer;
var
m:mas;
m2:mas2;
i,j,k,a,b:integer;
procedure rand;
begin
randomize;
for i:=1 to n do begin
for j:=1 to n do begin
m[i,j]:=random(10);
write(m[i,j]);
end;
writeln;
end;
end;
procedure vivod;
begin
for i:=1 to n do begin
for j:=1 to n do begin
write(m[i,j]);
end;
writeln;
end;
end;
procedure summa;
begin
for i:=1 to n do begin
a:=0;
for j:=1 to n do begin
a:=a+m[i,j];
end;
writeln('Summa ',i,' stroki= ',a);
writeln;
end;
vivod;
end;
procedure sort;
begin
for i:=1 to n-1 do begin
a:=0;
b:=0;
for j:=1 to n do begin
m2[i]:=m2[i]+m[i,j];
end;
end;
end;
procedure sort2;
begin
for i:=1 to n-1 do begin
for j:=1 to n do begin
if m2[i]>m2[i+1] then
begin
b:=m[i,j];
m[i,j]:=m[i+1,j];
m[i+1,j]:=b;
end;
end
end;
vivod;
end;
procedure vivodM2;
begin
for i:=1 to n do begin
writeln(m2[i]);
end;
end;
begin
rand;
writeln;
summa;
writeln;
sort;
writeln;
vivodM2;
writeln;
sort2;
readln;
end.
ViNcHeStEr вне форума Ответить с цитированием
Старый 14.06.2008, 23:09   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Написано много лишнего, а то что не лишнее, неправильно.
Вот переделал, старался сохранить Ваш стиль.
Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

const n=8;
type
mas=array[1..n,1..n] of integer;
var
m:mas;
k:integer;

procedure Vvod;
var i,j:integer;
begin
randomize;
for i:=1 to n do 
    begin
      for j:=1 to n do
        begin
		      m[i,j]:=random(10);
    		  write(m[i,j]:3);
    		end;
      writeln;
	  end;
end;	

procedure summa(var imax:integer);
var i,j,max,a:integer;
begin
max:=0;imax:=1;
for i:=1 to n do
   begin
     a:=0;
     for j:=1 to n do
	     begin
         a:=a+m[i,j];
    	 end;
     if a>max then
        begin
          max:=a;
          imax:=i;
		    end;
   end;
writeln('Max summa v stroke ',imax);
end;
procedure sort(imax:integer;var m:mas);
var i,x:integer;
begin
for i:=1 to n do
   begin
     x:=m[imax,i];
	   m[imax,i]:=m[i,2];
	   m[i,2]:=x;
   end;
end;

procedure vivod;
var i,j:integer;
begin
for i:=1 to n do
   begin
     for j:=1 to n do
	   write(m[i,j]:3);
     writeln;
   end;
end;

begin
Vvod;
writeln;
summa(k);
writeln;
sort(k,m);
writeln;
vivod;
readln;
end.
puporev вне форума Ответить с цитированием
Старый 15.06.2008, 15:17   #3
ViNcHeStEr
Delphi
Форумчанин
 
Регистрация: 12.06.2008
Сообщений: 137
По умолчанию

Спасибо большое!!!
ViNcHeStEr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на массив Юрии Александрович Паскаль, Turbo Pascal, PascalABC.NET 5 08.12.2007 15:32
Задача на массив. ErMaKiim Помощь студентам 2 29.11.2007 19:42
задача на массив строк hijack Помощь студентам 0 26.11.2007 23:10
Задача на одномерный массив AliVe Помощь студентам 1 19.11.2007 21:35
Паскаль. задача на массив narkozz Паскаль, Turbo Pascal, PascalABC.NET 3 23.05.2007 20:48