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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2013, 22:44   #1
Ann2807
Пользователь
 
Регистрация: 08.09.2012
Сообщений: 41
По умолчанию Дан двумерный массив. В каждой строке замените знак максимального по модулю элемента на противоположный.

Здравствуйте. Помогите, пожалуйста, написать код к задаче. С процедурами, обязательно

Паскаль АВС

Дан двумерный массив. В каждой строке замените знак максимального
по модулю элемента на противоположный.

Наработки есть. Сомнения по поводу того, как реализовать поиск максимального по модулю элемента в каждой строке и как процедуры организовать

Код:
Program Zamena;
const N_max=100;M_max=100;
type TMyArray=Array[1..N_max, 1..M_max] of Integer;
var A:TMyArray;
n, m, t: Integer;
procedure Zapolnenie(v, w: integer; var X :TMyArray);
var i, j:integer;
begin
	For i:=1 to n do
		For j:=1 to m do
 X[i, j]:=random(20)-10;
 end;
 Procedure Poisk;
 var i, j, n1_max: integer;
 begin
 	for i:=1 to n do readln(a[i,j]);
 	begin
	 n1_max:=1;
	for i:=2 to n do
	          if a[i,j]<a[n1_max] then  n1_max:=i;

 for j:=1 to m do readln(b[i]);
	{ Пусть первый элемент максимальный }
	 m1_max:=1;
	for j:=2 to m do
	          if b[j]<b[m1_max] then  m1_max:=j;
	          
  Procedure Zapolnenie
  Procedure Poisk
  Procedure Vivod

Последний раз редактировалось Stilet; 02.03.2013 в 23:19.
Ann2807 вне форума Ответить с цитированием
Старый 02.03.2013, 23:24   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Находит номер элемента:
Код:
Function Poisk(n:integer;):Integer;
var i:byte;
begin Result:=Low(a);
 for i:=Low(a)+1 to High(a) do if abs(a[i,n])>abs(a[Result,n]) then Result:=i;
end;
Ну и дальше:
Код:
...
 k:=Poisk(номер строки);
 a[k]:=-a[k];
...
В цикле.
Идея понятна?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.03.2013, 19:42   #3
Ann2807
Пользователь
 
Регистрация: 08.09.2012
Сообщений: 41
По умолчанию

Спасибо, сдала, вот так написала.

Код:
Program Zamena;
const N_max=100;M_max=100;
type TMyArray=Array[1..N_max, 1..M_max] of Integer;
var A:TMyArray;
n, m, t: Integer;

procedure Zapolnenie(var a:TMyArray);
var i, j:byte;
result: integer;
begin
	For i:=1 to n do
	For j:=1 to m do
                a[i, j]:=random(20)-10;
                
end;
 
Procedure Poisk( var a:TMyArray);
var i,j: byte;
max1, n_max1:integer;
begin
for i:=1 to n do begin
     max1:=a[i, 1];
     n_max1:=1;
     for j:=2 to m do
              if a[i, j]>max1 then begin max1:=a[i, j]; n_max1:=j; end;
     a[i, n_max1]:= -a[i, n_max1];
     writeln('максимальный элемент в ', i, ' -й строке ', max1);
     writeln('номер максимального элемента в ', i, ' -й строке ', n_max1);
                  end;
end;

 Procedure Vivod ( var a:TMyArray);
 var i,j:byte;
 n_max1: integer;
 begin
   for i:=1 to n do
begin
		for j:=1 to m do  write(a[i,j], '  ');
		writeln;
	end;

 end;
begin
     Writeln ('введите количество строк и столбцов матрицы');
     Readln (n,m);
     Zapolnenie(a);
     Poisk(a);
     Vivod(a);
    
  
end.
Ann2807 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
дан двумерный массив размером 5*6, заполненный случайным образом 1. заменить максимальный элемент каждой строки на противоположный Иляна Паскаль, Turbo Pascal, PascalABC.NET 1 20.01.2013 18:29
дан массив целых чисел.Найти номер максимального элемента массива Assembler Napo Помощь студентам 0 02.11.2012 22:29
Матрица.сменить знак максимального по модулю элемента на противоположный Яна Николаевна Паскаль, Turbo Pascal, PascalABC.NET 5 01.06.2011 16:09
В матрице в каждой строке найти сумму N Элементов расположенных после максимального элемента этой строки lexflax Паскаль, Turbo Pascal, PascalABC.NET 0 20.04.2011 14:41
Заменить максимальный по модулю элемент каждой строки на противоположный по знаку bestlover Помощь студентам 7 06.04.2009 18:06