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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 30.04.2007, 12:39   #1
Irochka
Новичок
Джуниор
 
Регистрация: 30.04.2007
Сообщений: 2
По умолчанию Помогите с решением задачи (Паскаль)

Собственно вот условие задачи :

Задана квадратная матрица порядка 2n. Найти минимальный и максимальный элементы в каждом блоке матрицы размера n x n и заменить их на -7 и 7 соответственно. Вывести на печать блок, в котором эти числа стоят ближе друг к другу, чем в других блоках матрицы.

В школе информатики у нас не было вообще, но послупила в институт и началось... Первую часть программы я еще кое-как пыталась сделать, но ко второй даже примерно не знаю как подступиться Помогите пожалуйста, буду вечно благодарна.
Irochka вне форума
Старый 01.05.2007, 10:34   #2
Сильванович Михаил
Студент
Форумчанин
 
Регистрация: 10.11.2006
Сообщений: 196
По умолчанию

Код:
const
 n = 3;

type
  MyRec = record
   i,min,max: integer;
  end;

var
 i,j: integer;
 f: text;
 min,max: integer;
 tr: MyRec;
 arr: array[1..n,1..n] of integer;

procedure ReadData;
begin
 for i:=1 to n do
  for j:=1 to n do
  begin
   Write('BBEDuTE 3HA4EHuE )JIEMEHTA #',(i-1)*n+j);
   Readln(arr[i,j]);
  end;
end;

procedure ChangeIt;
begin
 min:=1;
 max:=1;
 for i:=1 to n do
 begin
  if i>1 then
  begin
   arr[i-1,min]:=-7;
   arr[i-1,max]:=7;
  end;
  if i=2 then
  begin
   tr.i:=1;
   tr.max:=max;
   tr.min:=min;
  end else if (i>2)and(Abs(tr.max-tr.min)>Abs(max-min)) then
  begin
   tr.i:=i-1;
   tr.max:=max;
   tr.min:=min;
  end;
  for j:=1 to n do
  begin
   if arr[i,min]>arr[i,j] then min:=j;
   if arr[i,max]<arr[i,j] then max:=j;
  end;
 end;
 arr[i,min]:=-7;
 arr[i,max]:=7;
 if (Abs(tr.max-tr.min)>Abs(max-min)) then
 begin
  tr.i:=i;
  tr.max:=max;
  tr.min:=min;
 end;
end;

procedure WriteResult;
begin
 Assign(f,'PRN');
 ReWrite(f);
 for j:=1 to n do Writeln(f,arr[tr.i,j]);
 Close(f);
 Writeln('PE3yJIbTAT IIODAH HA IIe4aTb!');
 Readln;
end;

begin
 ReadData;
 ChangeIt;
 WriteResult;
end.
з.Ы. Извиняюсь, за ошибку в предыдущем варианте.
Visita Interiorem Terrae Rectificando Operae Lapidem...

Последний раз редактировалось Сильванович Михаил; 01.05.2007 в 11:21. Причина: Фактическая ошибка
Сильванович Михаил вне форума
Старый 01.05.2007, 11:07   #3
Irochka
Новичок
Джуниор
 
Регистрация: 30.04.2007
Сообщений: 2
По умолчанию

Спасибо большое!
Irochka вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с решением задачи! Anuta Общие вопросы Delphi 4 26.06.2008 20:26
Помогите с решением задачи, плиз!(легкая) alpha256 Помощь студентам 1 31.05.2008 22:35
Помогите, пожалуйста, с решением задачи Knight_Maggot Помощь студентам 3 26.10.2007 10:46
Помогите с решением задачи Ga-sergey Помощь студентам 4 11.03.2007 11:13
Помогите с решением задачи!Please! Инзия Помощь студентам 3 11.03.2007 07:50