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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2011, 14:54   #1
Light!
 
Регистрация: 27.04.2011
Сообщений: 6
Вопрос Матрицы: поиск максимумов, преобразования - Задача по Pascal ABC

Собственно задача:
Ввести матрицы и . В матрицах найти максимумы, которые вывести. Преобразовать каждую матрицу, уменьшив её положительные элементы на значение максимума другой матрицы. Исходные и преобразованные матрицы вывести на экран. (При решении реализовать процедуры ввода и вывода массивов: Vvod2m(A,N,M,Name), Vivod2m(A,N,M,Name) и Zamena(A,N,M,Vichet) – уменьшение положительных элементов матрицы на величину Vichet, а также функцию Maximum(A,N,M):<тип массива> – поиск максимума)


Моя прога:
Код:
program L2;
uses crt;
const MaxRazm = 10;
type T1m=array[1..sqr(MaxRazm)] of integer;
     T2m=array[1..MaxRazm,1..MaxRazm] of integer;
     TName=string[5];
var X1,X2,X3:T2m;
    Y:T1m;
    N1,N2,N3,Ny:byte;
    max1,max2,max3,MinOfMax,MaxOfMax:integer;
/// ввод двумерного массива ///
procedure Vvod2m(var A:T2m; var N:byte; const Name:TName);
var i,j:byte;
begin
  writeLn('вводите массив ', Name,':');
  write('размерность массива N=');
  readLn(N);
  for i:=1 to N do
    for j:=1 to N do
      begin
        write(Name,'[',i,',',j,']=');
        readLn(A[i,j]);
      end;
end;

/// вывод двумерного массива ///
procedure Vivod2m(const A:T2m; const N:byte; const Name:TName);
var i,j:byte;
begin
  writeLn('выводим массив ', Name,':');
  for i:=1 to N do
    begin
      for j:=1 to N do
        write(A[i,j]:5);
      writeLn;
    end;
end;

/// поиск максимума в двумерном массиве ///
function Maximum(const A:T2m; N,M:byte):integer;
var max:integer;
    i,j:byte;
begin
  max:=A[1,1];
  for i:=1 to N do
    for j:=1 to M do
      if A[i,j]>max then
        max:=A[i,j];
  Maximum:=max;
end;


/// уменьшение положительных элементов на значение максимума другой матрицы ///




????? (




/// вывод одномерного массива ///
procedure Vivod1m(const A:T1m; const N:byte; const Name:TName);
var i:byte;
begin
  writeLn('Выводим одномерный массив ', Name,':');
  for i:=1 to N do
    write(A[i]:5);
  writeLn;
end;

begin
  /// вводим массивы ///
  Vvod2m(X1,N1,'X1');
  Vvod2m(X2,N2,'X2');
  Vvod2m(X3,N3,'X3');

  /// выводим массивы до преобразования ///
  /// ищем максимумы в массивах ///
  Vivod2m(X1,N1,'X1');
  max1:=Maximum(X1,N1,N1);
  writeLn('max1=',max1);
  Vivod2m(X2,N2,'X2');
  max2:=Maximum(X2,N2,N2);
  writeLn('max2=',max2);
  Vivod2m(X3,N3,'X3');
  max3:=Maximum(X3,N3,N3);
  writeLn('max3=',max3);
end.
Максимумы находятся) Помогите завершить прогу и, если можно, то по подробнее объяснить, что и как =)



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 28.04.2011 в 12:32.
Light! вне форума Ответить с цитированием
Старый 30.04.2011, 00:08   #2
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

ну я кода не читал: чтоб уменшыть пол. елементы матрицы на максимальный елемент другой пишем вот такое:
Код:
for i:=1 to n do
if a[i]>0 then a[i]:=a[i]-max
вот собственно все
Pein95 вне форума Ответить с цитированием
Старый 05.05.2011, 23:15   #3
Light!
 
Регистрация: 27.04.2011
Сообщений: 6
По умолчанию

Спасибо, но помоги вставить это в прогу, у меня не получается
Light! вне форума Ответить с цитированием
Старый 06.05.2011, 12:09   #4
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Цитата:
Спасибо, но помоги вставить это в прогу, у меня не получается
Делаешь процедуру, в ней прогоняешь цикл по массивам уменьшая их, все просто.

Но что-то мне подсказывает, что программка не самописная, а просто скопипащена откуда-то, и попыток разобраться в ней не было даже предпринято.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 11.05.2011, 15:30   #5
Light!
 
Регистрация: 27.04.2011
Сообщений: 6
По умолчанию

Прога действительно не самописная. Попыток разобраться в ней было не мало. И все же прошу вас помочь с завершением программы
Light! вне форума Ответить с цитированием
Старый 11.05.2011, 16:32   #6
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Тебе надо добавить процедуру Zamena(A,N,M,Vichet), в которую подавать соответствующие параметры.
Ну и в процедуре прогон по матрице (А), которую передал в процедуру, с изменением значения элементов на, опять же, переданное значение (Vichet).
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 13.05.2011, 19:29   #7
Light!
 
Регистрация: 27.04.2011
Сообщений: 6
По умолчанию

Vanta11a
не разобрался
объясни подробнее пожалуйста
Light! вне форума Ответить с цитированием
Старый 17.05.2011, 21:18   #8
Light!
 
Регистрация: 27.04.2011
Сообщений: 6
По умолчанию

Народ помогите пожалуйста сделать программу, мне до четверга нужно
Light! вне форума Ответить с цитированием
Старый 25.05.2011, 13:17   #9
Light!
 
Регистрация: 27.04.2011
Сообщений: 6
По умолчанию

Все, млять, сам сделал -_-
Light! вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск строк матрицы с одинаковыми суммами. Pascal fr330n Помощь студентам 1 06.01.2011 01:52
Простенькая задача на Pascal ABC. alexaZ Помощь студентам 1 22.11.2010 18:14
Очень сложная задача на Pascal ABC! d00ker Помощь студентам 8 11.02.2009 22:02