|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Заменить элементы матрицы нулями
Помогите сделать программу, если можно , хотел бы получить подробный код или архив с программой.
Задание: Все элементы с наибольшими значениями в матрице 9х9 замените нулями, если эти элементы не принадлежат первой и последней строкам. Среда программирования: Delphi 7 |
#2
|
|||
|
|||
Что значит "элементы с наибольшими значениями"? Max(Aij)?
|
#3
|
|||
|
|||
я уточнил этот вопрос, нужно заменить первые 10 элементов с наибольшими значениями
|
#4
|
|||
|
|||
Еще раз. Что такое "элемент с наибольшим значением"?
Дай строгое определение. В т.ч. области, в которой он наибольший. Опять же, "первые 10" первые в какой области? В строке, в колонке, во всей матрице. И что делать если их всего меньше 10 или больше. Учитесь правильной постановке задач. |
#5
|
|||
|
|||
От максимального значения , 10 элементов по убывающей (включительно наибольшее значение) , во всей матрице 9х9, если их меньше, то выводить на экран сообщение "Не хватает элементов для выполнения задачи"
|
#6
|
|||
|
|||
Ну, полный код писать лень.
Так что я тебе собственно функции напишу, а уж визуальную обвязку сделаешь сам. Код:
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; ЗЫ. Там где-то в начале было что-то про исключение 1й и последний строк из замены. Если это нужно, то тогда строка 17 должна выглядеть так: Код:
For J := 2 To 8 Do Последний раз редактировалось lmikle, 16.02.2019 в 06:23. |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
somepower (16.02.2019)
|
#7
|
|||
|
|||
Понял, спасибо
|