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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.05.2014, 15:28
aneckin aneckin вне форума
Прохожий
 
Регистрация: 19.05.2014
Сообщения: 1
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Cумма максимальных элементов всех строк треугольной матрицы!

Здравствуйте! Помогите найти ошибку в моем коде: программа создает треугольную матрицу из числа строк,которое вводим с клавиатуры. Затем нужно найти сумму максимальных элементов с каждой строки,и вывести это число. Программа работает,но неверно вычисляет сумму.. Не могу разобраться почему.. Помогите исправить ошибку..
Вложения
Тип файла: rar лаб.rar (23.3 Кбайт, 28 просмотров)
Ответить с цитированием
  #2  
Старый 20.05.2014, 06:36
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,052
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ошибка тут:
Код:
procedure summa_maxim_elementov();
var max_el,summa, i, j : Integer;

begin
    max_el := 0;   // <-- Ошибка!!!
    summa := 0;
    for i := Low(B) to High(B)  do
    begin

      for j := Low(B) to i do
      begin

        if(B[i,j] > max_el)  then
        begin
        max_el := B[i,j];
        end;

      end;
      summa := (summa + max_el);
    end;

Ты очищаешь найденное макс. значение только раз, перед поиском и сумированием. Пусть в первой строке макс. значение 6, а во второй - 4. Но все значения второй строки у тебя меньше, чем уже найденный макс из первой строки. Соответсвенно, вместо макс. знаяения второй строки у тебя в переменной max_el будет 6, а не 4. Т.е. тебе надо очищать значение этой переменной на каждой итерайии внешнего цикла.

ЗЫ. Вообще, обычно при поиске макс/мин берут значение первого элемента массива, а сам цикл начинают со второго элемента. Особенно это полезно, когда ты заранее не знаешь диапазон значений.

ЗЗЫ. В архиве не обязательно было паковать экзешник, а код можно было выложить в тебе сообщения, он не такой большой.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter