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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2018, 15:49   #1
kostya_hor
Пользователь
 
Регистрация: 23.05.2018
Сообщений: 58
По умолчанию Сложение чисел

у меня есть 10 Edit-тов и мне нужно сложить числа которые там нахотятся,такой вариант конечно слишком длинный и он не работает,вылезает ошибка
Код:
var
a,b,c,d,f,g,i,k,l,j:integer;
n:Real;
begin
a:=StrToInt(Edit2.Text);  // Ввод данных     #1
b:=StrToInt(Edit12.Text);  // Ввод данных     #2
c:=StrToInt(Edit13.Text);  // Ввод данных     #3
d:=StrToInt(Edit14.Text);  // Ввод данных     #4
i:=StrToInt(Edit15.Text);  // Ввод данных     #5
f:=StrToInt(Edit16.Text);  // Ввод данных     #6
g:=StrToInt(Edit17.Text);  // Ввод данных     #7
j:=StrToInt(Edit18.Text);  // Ввод данных     #8
k:=StrToInt(Edit19.Text);  // Ввод данных     #9
l:=StrToInt(Edit20.Text);  // Ввод данных     #10
n:=a+b+c+d+j+f+g+i+k+l;
Edit22.Text:=FloatToStr(n);
end;
и еще такую штуку надо сделать,если в нескольких Edit число больше 200,то выводится количество этих Edit
Изображения
Тип файла: png Безымянный.png (17.4 Кб, 117 просмотров)
kostya_hor вне форума Ответить с цитированием
Старый 21.11.2018, 15:53   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Ну так используйте StrToFloat, настраивайте едиты на ввод интов... смотря что надо.
p51x вне форума Ответить с цитированием
Старый 21.11.2018, 16:00   #3
kostya_hor
Пользователь
 
Регистрация: 23.05.2018
Сообщений: 58
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
смотря что надо.
Код:
просто сложить числа 
все работает спасибо 
var
a,b,c,d,f,g,i,k,l,j,n:real;
begin
a:=StrToFloat(Edit2.Text);  // Ââîä äàííûõ     #1
b:=StrToFloat(Edit12.Text);  // Ââîä äàííûõ     #2
c:=StrToFloat(Edit13.Text);  // Ââîä äàííûõ     #3
d:=StrToFloat(Edit14.Text);  // Ââîä äàííûõ     #4
i:=StrToFloat(Edit15.Text);  // Ââîä äàííûõ     #5
f:=StrToFloat(Edit16.Text);  // Ââîä äàííûõ     #6
g:=StrToFloat(Edit17.Text);  // Ââîä äàííûõ     #7
j:=StrToFloat(Edit18.Text);  // Ââîä äàííûõ     #8
k:=StrToFloat(Edit19.Text);  // Ââîä äàííûõ     #9
l:=StrToFloat(Edit20.Text);  // Ââîä äàííûõ     #10
n:=a+b+c+d+j+f+g+i+k+l;
Edit22.Text:=FloatToStr(n);
end;
kostya_hor вне форума Ответить с цитированием
Старый 21.11.2018, 16:11   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от kostya_hor Посмотреть сообщение
у меня есть 10 Edit-тов
не очень продуктивно вручную записывать все эти эдиты.
Хотя, конечно, можно и так.

я бы предложил использовать либо StringGrid + цикл
либо дать нужным Edit'ам одинаковый префикс (приставку) в имени
и тогда элементарно перебрать все компоненты в цикле:
Код:
  sum := 0.0;
  count200 :=0;
  for i := 0 to ComponentCount - 1 do
    if Components[i] is TEdit then 
         if Copy(Components[i].Name,1,7)='sumedit' then begin
           try
              f := StrToFloat(TEdit(Components[i]).Text);
              if f>200 then inc(count200);
              sum := sum + f
           except
           end;
         end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.11.2018, 16:40   #5
kostya_hor
Пользователь
 
Регистрация: 23.05.2018
Сообщений: 58
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
не очень продуктивно вручную записывать все эти эдиты.
а как сложить количество Edit-ов если число в их превышает 150
kostya_hor вне форума Ответить с цитированием
Старый 21.11.2018, 16:43   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от kostya_hor Посмотреть сообщение
а как сложить количество Edit-ов если число в их превышает 150
что такое - "сложить количество" ?
Подсчитать, сколько Edit содержит число более 150 ?

так в моём примере подсчитывается количество Edit, содержащих числа больше 200
точно так же можно подсчитать количество Edit, которые содержат число больше 150
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.11.2018, 16:51   #7
kostya_hor
Пользователь
 
Регистрация: 23.05.2018
Сообщений: 58
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
что такое - "сложить количество" ?
Смотрите у меня есть 10 Edit
Edit1-----169
Edit2-----287
Edit3-----150
Edit4-----345
Edit5-----150
Edit6-----134
Edit7-----98
Edit8-----155
Edit9-----130
Edit10-----70

и получается что тут 4 Edit-а в которых число больше 150
kostya_hor вне форума Ответить с цитированием
Старый 21.11.2018, 16:53   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Вон же код выше. Обартите внимание на count200 и иф.
p51x вне форума Ответить с цитированием
Старый 21.11.2018, 17:06   #9
kostya_hor
Пользователь
 
Регистрация: 23.05.2018
Сообщений: 58
По умолчанию

Скорее всего я делаю что-то не так
у меня на форме вопще 20 Edit,да знаю можно через StringGrid,но мне надо так
и мне нужно сложить другие 10 Edit,а мне выводит 0
Код:
procedure TForm3.Button6Click(Sender: TObject);
var
 count150,i:Integer;
 sum,f:Real;
 begin
 sum:= 0.0;
  count150 :=0;
  for i := 0 to ComponentCount - 1 do
    if Components[i] is TEdit then
         if Copy(Components[i].Name,1,7)='sumedit' then
         begin
           try
              f := StrToFloat(TEdit(Components[i]).Text);
              if f>150 then inc(count150);
              sum := sum + f
           except
           end;
         end;
         Edit21.Text:=FloatToStr(sum);
 end;
end.
kostya_hor вне форума Ответить с цитированием
Старый 21.11.2018, 17:08   #10
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
либо дать нужным Edit'ам одинаковый префикс (приставку) в имени
и тогда элементарно перебрать все компоненты в цикле:
Читайте посты, а не тупо копипасьте. Вы даже код не помотрели, а то увидели б сравнение части имени.
p51x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сложение чисел глючит newerow1989 Общие вопросы Delphi 4 30.08.2015 17:31
Сложение двух десятичных положительных чисел. целых чисел))) PEro_man Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 01.12.2010 12:40
Сложение длинных чисел C++ LaDark Общие вопросы C/C++ 0 15.11.2010 18:56
сложение чисел s2dentishe Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 14.06.2010 21:33
С# Сложение больших чисел SL1CK Помощь студентам 4 23.11.2009 21:07