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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2017, 12:08   #1
Саня Новиков
Пользователь
 
Регистрация: 18.11.2017
Сообщений: 12
Восклицание Как доработать код?Работа с матрицами

Следующие задание: дана действительная матрица 8*5 найти для каждой строки элементы с наибольшим значением и подсчитать их количество.
Начало:
Код:
var
  A: array[1..10, 1..10] of integer;
  i, j, M, N: byte;
  MaxElem: integer;

begin
  write('M = ');
  readln(M);
  write('N = ');
  readln(N);
  { Формируем и выводим матрицу: }
  randomize;
  writeln('Случайная матрица ', M, 'x', N, ':');
  for i := 1 to M do begin
    for j := 1 to N do begin
      a[i, j] := -100 + random(200);
      write(a[i, j]:4)
    end;
    writeln
  end;
  writeln;
  writeln('Максимальный элемент в каждой строке:');
  for i := 1 to M do begin
    { Начальное значение максимального элемента 
     равно первому элементу строки (j = 1): }
    MaxElem := a[i, 1];
    for j := 2 to N do { Проверяем остальные элементы строки: j = 2, 3, ..., N }
      { Если a[i,j] больше максимума, то новым максимумом становится a[i,j] }
      if a[i, j] > MaxElem then MaxElem := a[i, j];
    writeln(i, '-я строка: максимальный элемент = ', MaxElem)
  end;
  readln
end.
не понимаю,как теперь сделать так, чтобы считало количество таких элементов

Последний раз редактировалось Саня Новиков; 18.11.2017 в 13:02.
Саня Новиков вне форума Ответить с цитированием
Старый 18.11.2017, 12:22   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Если это - assembler, то я - троллейбус. Мне по простоте душевной кажется - Паскаль.
Цитата:
подсчитать их количество
. Кого - количество ? Элементов с наибольшим значением в каждой строке? Так их будет ровно столько, сколько и самих строк.

Последний раз редактировалось digitalis; 18.11.2017 в 12:26.
digitalis вне форума Ответить с цитированием
Старый 18.11.2017, 12:27   #3
Саня Новиков
Пользователь
 
Регистрация: 18.11.2017
Сообщений: 12
По умолчанию

Не особо разбираюсь в этом
Саня Новиков вне форума Ответить с цитированием
Старый 18.11.2017, 12:28   #4
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Саня привет!

Попробуй сохранить значения строчных максимумов в отдельный массив "b[1..10]".
А потом, организовав ещё один цикл, просто будешь сравнивать
"b[i]" c "a[i, j]". Если совпало -> строковый счётчик +1.
В принципе, счётчики тоже можно хранить в массиве "S[1..10]= 0", - этом случае (если совпал максимум в строке) ты просто будешь: "S[i]=S[i]+1"

Саня скажи мне, почему у тебя в коде встречается одновременно и "MinElem" и "MaxElem"?
(ведь в задаче чётко сказано: искать максимальный)

Чей это код, Саня?

p.s.: прочитай мой пост 3-ри раза. С первого раза ты просто половину информации не воспримешь (по себе сужу).
ura_111 вне форума Ответить с цитированием
Старый 18.11.2017, 12:32   #5
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Цитата:
Не особо разбираюсь в этом
Тогда, может, другим чем заняться - в менеджеры, что ли? На фига тебе Паскаль - для диплома что ль? Дать преподу пятихатку, и зачет в кармане.
Менеджер с дипломом, но с вакуумом в бошке - плохо, но еще не край. А вот не дай бог - врач
digitalis вне форума Ответить с цитированием
Старый 18.11.2017, 12:35   #6
Саня Новиков
Пользователь
 
Регистрация: 18.11.2017
Сообщений: 12
По умолчанию

код с друзьями написали, min это с варианта кого-то из них
Как хотя бы приблизительно будет выглядеть код?
Первый раз работаю с матрицами(
Саня Новиков вне форума Ответить с цитированием
Старый 18.11.2017, 12:38   #7
Саня Новиков
Пользователь
 
Регистрация: 18.11.2017
Сообщений: 12
Радость

Цитата:
Сообщение от digitalis Посмотреть сообщение
Тогда, может, другим чем заняться - в менеджеры, что ли? На фига тебе Паскаль - для диплома что ль? Дать преподу пятихатку, и зачет в кармане.
Менеджер с дипломом, но с вакуумом в бошке - плохо, но еще не край. А вот не дай бог - врач
Я первокурсик, этого в моей дальнейшей профессии точно не будет
Саня Новиков вне форума Ответить с цитированием
Старый 18.11.2017, 12:46   #8
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Саня, хрень какая-то: я заменил на максимальный, но мне вывело что-то не то:

2.jpg


Сань, ты программу вообще запускал у себя?
ura_111 вне форума Ответить с цитированием
Старый 18.11.2017, 12:50   #9
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Для этого прогу и запускать не стоило - и так видно, что знак < нужно перевернуть другим концом
Код:
if a[i, j] < MaxElem then MaxElem := a[i, j];
digitalis вне форума Ответить с цитированием
Старый 18.11.2017, 12:56   #10
Саня Новиков
Пользователь
 
Регистрация: 18.11.2017
Сообщений: 12
По умолчанию

Вот у друга также считало, но ему и нужно было это, а я теперь не знаю, как мне переделать,хотя делали вместе
Пишет, что макс.эл, но выводит все равно отрицательные, еще задание, там как бы не сказано, что именно положительные значения, просто наибольшие, а может это одно и то же, я хз, у некоторых в задании так сказано либо положительные,либо отрицательные
Саня Новиков вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как можно доработать код?Не проходите мимо. bars.iwan Помощь студентам 2 23.12.2011 20:31
Доработать код ferrum88 Помощь студентам 0 23.11.2010 20:14
Есть код VBA для эксель, не знаю как доработать.... minimobi Microsoft Office Excel 1 06.10.2009 01:21
Доработать код Микки Microsoft Office Excel 7 31.03.2009 13:12
Как доработать код ? zander Microsoft Office Excel 3 04.03.2009 20:22