Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.02.2019, 08:39
somepower somepower вне форума
Прохожий
 
Регистрация: 14.02.2019
Сообщения: 8
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Заменить элементы матрицы нулями

Помогите сделать программу, если можно , хотел бы получить подробный код или архив с программой.
Задание:
Все элементы с наибольшими значениями в матрице 9х9 замените нулями, если эти элементы не принадлежат первой и последней строкам.
Среда программирования: Delphi 7
Ответить с цитированием
  #2  
Старый 15.02.2019, 12:54
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Что значит "элементы с наибольшими значениями"? Max(Aij)?
Ответить с цитированием
  #3  
Старый 15.02.2019, 14:38
somepower somepower вне форума
Прохожий
 
Регистрация: 14.02.2019
Сообщения: 8
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

я уточнил этот вопрос, нужно заменить первые 10 элементов с наибольшими значениями
Ответить с цитированием
  #4  
Старый 15.02.2019, 22:41
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Еще раз. Что такое "элемент с наибольшим значением"?
Дай строгое определение. В т.ч. области, в которой он наибольший.
Опять же, "первые 10" первые в какой области? В строке, в колонке, во всей матрице. И что делать если их всего меньше 10 или больше.

Учитесь правильной постановке задач.
Ответить с цитированием
  #5  
Старый 16.02.2019, 03:02
somepower somepower вне форума
Прохожий
 
Регистрация: 14.02.2019
Сообщения: 8
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

От максимального значения , 10 элементов по убывающей (включительно наибольшее значение) , во всей матрице 9х9, если их меньше, то выводить на экран сообщение "Не хватает элементов для выполнения задачи"
Ответить с цитированием
  #6  
Старый 16.02.2019, 06:17
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, полный код писать лень.
Так что я тебе собственно функции напишу, а уж визуальную обвязку сделаешь сам.
Код:
type
  TMatrixIndex = record
    C, R : Integer;
  end;

var
  A : Array [1..9,1..9] Of Integer;

// возвращает координаты макс элемента
function GetMaxElementCR : TMatrixIndex
var
  I, J : Integer;
begin
  Result.C := 1;
  Result.R := 1;
  For I := 1 To 9 Do
    For J := 1 To 9 Do
      If A[I,J] > A[Result.C,Result.R] Then
        Begin
           Result.C := I;
           Result.R := J;
        End;
end;

// Делает 10 замен макс элемента на 0
function ReplaceMaxbyZero : Boolean;
var
  I : Integer;
  Idx : TMatrixIndex;
begin
  Result := True;
  For I := 1 To 10 Do
    Begin
      Idx := GetMaxElementCR;
      Result := A[Idx.C,Idx.R] > 0;
      If Result 
        Then  A[Idx.C,Idx.R] := 0
        Else Break;
    End;
end;
Функция ReplaceMaxbyZero вернет True если были сделаны все 10 замен или False, если меньше.

ЗЫ. Там где-то в начале было что-то про исключение 1й и последний строк из замены. Если это нужно, то тогда строка 17 должна выглядеть так:
Код:
    For J := 2 To 8 Do

Последний раз редактировалось lmikle, 16.02.2019 в 06:23.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
somepower (16.02.2019)
  #7  
Старый 16.02.2019, 06:51
somepower somepower вне форума
Прохожий
 
Регистрация: 14.02.2019
Сообщения: 8
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Понял, спасибо
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:18.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter