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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2010, 11:32   #1
De_Kurlzz
 
Регистрация: 02.05.2010
Сообщений: 8
По умолчанию Подсчитать разность положительных чисел (Delphi)

Нужна помощь.
В программе как одно из действий требуется подсчитать разность положительных чисел, никак не пойму как это правильно реализовать, ведь по моему нужно, чтобы было так:
числа: -1 1 1 1 0
результат должен быть: -1 (т.к. 1-1-1)
однако получается: -3 (-1-1-1)
и я хз, как сделать, чтоб всё правильно считалось
Код:
procedure TForm2.Button6Click(Sender: TObject);
var
a,i,o,p:integer;
begin
o:=0;
p:=0;
a:= Form2.ListBox1.Count - 1;
for i:=0 to a do
if (strtoint(Form2.ListBox1.Items[i]) < 0) then
o:=o+1
else
if (strtoint(Form2.ListBox1.Items[i]) > 0) then
p:=p-strtoint(Form2.ListBox1.Items[i]);
label4.caption:=inttostr(o);
label5.caption:=inttostr(p);
end;
если нужен будет исходник, скажите
De_Kurlzz вне форума Ответить с цитированием
Старый 20.06.2010, 11:39   #2
mMAg
Форумчанин
 
Аватар для mMAg
 
Регистрация: 11.08.2009
Сообщений: 433
По умолчанию

Заведи переменную типа Boolean и присвой ей значение true. Она будет служить идентификатором начала выражения, составленного из положительных чисел. Как только найдётся первое значение >0, присвой ей значение false и p:=p+strtoint(Form2.ListBox1.Items[i]);
В обратном случае p:=p-strtoint(Form2.ListBox1.Items[i]);

Что-то типа такого получится:
Код:
var first : Boolean;

first := true;
for i:=0 to a do
if (strtoint(Form2.ListBox1.Items[i]) < 0) then
o:=o+1
else
if (strtoint(Form2.ListBox1.Items[i]) > 0) then
if first then
begin
p:=p+strtoint(Form2.ListBox1.Items[i]);
first := false
end
else
p:=p-strtoint(Form2.ListBox1.Items[i]);
mMAg вне форума Ответить с цитированием
Старый 20.06.2010, 11:49   #3
De_Kurlzz
 
Регистрация: 02.05.2010
Сообщений: 8
По умолчанию

спасибо большое!
De_Kurlzz вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разность чисел MadMike_TSPU Паскаль, Turbo Pascal, PascalABC.NET 1 29.05.2010 10:55
разность чисел Михаил2261 Microsoft Office Excel 0 06.05.2010 18:35
В массиве A, состоящем из 10 элементов, подсчитать количество положительных элементов Alex61 Помощь студентам 5 16.05.2009 23:06
Подсчитать количество положительных элементов в маcсиве ELL Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 14.02.2009 22:44