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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2015, 19:25   #1
Rayhorn
Новичок
Джуниор
 
Регистрация: 22.03.2015
Сообщений: 1
Лампочка Как правильно реализовать ошибку в программе...

Вот код суммы эл-тов>10 динамического массива который находится в stringgrid
Код:
sum:=0;
      SetLength(a,n);
      for i:=1 to n do
        a[i-1]:=StrToFloat(strgrds.cells[i,1]);
      for i:=0 to n-1 do
        if a[i]>10 then sum:=sum+a[i];
      vis1;
      Form2.Ilabel1.Caption:='Сумма >10';
      Form2.Iedit1.Text:=FloatToStr(sum)
и вот допустим если в массиве нет эл-тов >10, я хочу что бы высветилась ошибка "Нет эл-тов > 10"
MessageDlg('Нет чисел >10',mtWarning,[mbOK],0);
как это правильно реализовть?
Rayhorn вне форума Ответить с цитированием
Старый 22.03.2015, 22:43   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Код:
for i:=0 to n-1 do
        if a[i]>10 then sum:=sum+a[i];
Код:
k:=0;
for i:=0 to n-1 do
        if a[i]>10 then begin sum:=sum+a[i]; inc(k) end;
if k=0 then ShowMessage('Нет элементов больше 10')
else ....
p.s. в данном случае избыточно подсчитывается количество подходящих элементов.
Если нужно просто проверить факт наличия таких чисел, то можно обойтись и булевской переменной
Код:
isFoundMore10 := false;
for i:=0 to n-1 do
        if a[i]>10 then begin
            sum:=sum+a[i];
            isFoundMore10 := true;
        end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.03.2015, 22:48   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Можно вообще без вспомогательных переменных, поскольку сумма положительных чисел
Код:
sum:=0;
for i:=0 to n-1 do if a[i]>10 then sum:=sum+a[i];
if sum=0 then сообщение
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 22.03.2015, 22:55   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Можно вообще без вспомогательных переменных, поскольку сумма положительных чисел
точно так!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Многопоточность... как правильно реализовать? FleXik Общие вопросы Delphi 10 02.06.2014 20:56
Выдает ошибку в программе,что не правильно я прописал. spectrum988 Помощь студентам 3 28.10.2013 10:00
Как правильно реализовать запрос Gulnur10 Помощь студентам 1 10.05.2013 12:59
Как правильно реализовать? Bright-rider Общие вопросы Delphi 3 18.10.2010 18:27
Как правильно реализовать тег SeRhy HTML и CSS 0 18.08.2008 18:00