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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2020, 19:50   #1
ncuxuatop
Новичок
Джуниор
 
Регистрация: 03.06.2019
Сообщений: 3
По умолчанию Сумма положительных числе в Memo

Доброго времени. Стоит такая задача:

Текстовый файл содержит целые положительные и отрицательные
числа.
Ввести целое число. Вывести строки, длина которых больше или равна этому числу.
Найти сумму всех положительных и всех отрицательных чисел.

Первый пункт я сделал. А вот со вторым у меня возникают трудности, конкретно если я пытаюсь посчитать сумму положительных или отрицательных чисел. Если я считаю просто сумму всех чисел, то все отлично считается. Прошу подсказать, где я свернул не туда. Код фрагмента программы и саму программу прикладываю:
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
i, result: integer;
begin
Memo3.Text := StringReplace(Memo1.Text, #13#10, #32, [rfReplaceAll]);
Memo3.Text := StringReplace(Memo1.Text, #32, #13#10, [rfReplaceAll]);
Result := 0;
for i := 0 to memo3.Lines.Count - 1 do
if strtoint(memo3.Lines.strings[i])>=0 then
Inc(Result, StrToInt(Memo3.Lines.Strings[i]));
LabelP.Caption:=(('Сумма положительных чисел '+ IntToStr(Result)));
end;
Вложения
Тип файла: zip Текст часть 1.zip (213.3 Кб, 3 просмотров)
ncuxuatop вне форума Ответить с цитированием
Старый 23.05.2020, 12:32   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Код:
Memo3.Text := StringReplace(Memo1.Text, #13#10, #32, [rfReplaceAll]); //Сначала избавимся от лишних переносов
memo3.text:=stringreplace(memo3.text, #32#32, #32, [rfreplaceall]); // теперь в ИСПРАВЛЕННОМ от лишних (дублированных) пробелов
Memo3.Text := StringReplace(Memo3.Text, #32, #13#10, [rfReplaceAll]); //Затем заменим все пробелы переносами т.е. одна строка - одно число
Код:
s:=Memo1.Text;
s:=stringreplace(s, ...);
...
memo3.text:=s;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 23.05.2020, 14:43   #3
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,219
По умолчанию

Можно было бы обойтись без замен переводов строк:
Код:
for i := 0 to memo3.Lines.Count - 1 do begin
  s:=trim(memo3.Lines.strings[i]);
  if (s<>'') and (strtoint(s)>0) then
    Inc(Result, StrToInt(s);
Arigato вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбрать из диапазона положительных и отрицательных числе ближайшее число к 0. Goodrich Microsoft Office Excel 2 06.02.2017 09:28
Сумма числе в одной ячейке s00r Microsoft Office Excel 6 10.03.2014 21:17
Сумма цифр в числе. mirqa Помощь студентам 0 13.06.2012 14:43
Сумма положительных элементов Serjant0007 Общие вопросы C/C++ 1 31.03.2012 16:31
Сумма положительных эл-тов в матрице Student_1 Паскаль, Turbo Pascal, PascalABC.NET 3 25.12.2010 20:03