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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2013, 22:14   #1
qpuTuJlb
Пользователь
 
Аватар для qpuTuJlb
 
Регистрация: 31.03.2012
Сообщений: 67
По умолчанию Найти модуль суммы

Доброго времени суток, нужно найти модуль суммы в строке. Вроде бы все правильно сделал, а находит все равно только сумму без модуля.
Код:
var
i,sum:integer;
s:string;
begin
s:=Edit1.Text;
sum:=0;
for i:=1 to length(s) do begin
sum:=sum+strtoint(s[i]);
end;
Showmessage(inttostr(abs(sum)));
end;
qpuTuJlb вне форума Ответить с цитированием
Старый 20.05.2013, 22:24   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

И что по вашему это должно вернуть? Если в строке только цифры и вернет ваш модуль и без abs-а, если есть любой другой символ, то исключение будет
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 20.05.2013 в 22:28.
Аватар вне форума Ответить с цитированием
Старый 21.05.2013, 14:02   #3
superedward
Форумчанин
 
Аватар для superedward
 
Регистрация: 27.11.2012
Сообщений: 190
По умолчанию

Может, автор имел в виду сумму модулей:
Код:
var
i,sum:integer;
s:string;
begin
s:=Edit1.Text;
sum:=0;
for i:=1 to length(s) do begin
sum:=sum+Abs(StrToInt(s[i]));
end;
ShowMessage(IntToStr(sum));
end;
superedward вне форума Ответить с цитированием
Старый 21.05.2013, 14:04   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Мужики, ну чем abs от неотрицательного числа отличается просто от этого числа? Что в лоб, что по по лбу
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.05.2013, 14:09   #5
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

тогда уж так
Код:
var
  i, sum, L : integer;
  s : string;
begin
  s := Edit1.Text;
  sum := 0;
  L := Length(s);
  for i := 1 to L do
    sum := sum + StrToIntDef(s[i], 0);
  ShowMessage(IntToStr(sum));
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 21.05.2013, 14:53   #6
IliaIT
Форумчанин
 
Аватар для IliaIT
 
Регистрация: 17.03.2009
Сообщений: 977
По умолчанию

аватар прав.
вы гляньте как числа смотрятся в алгоритме, точнее берутся. один символ = одно число, а отрицательное это как минимум 2 символа. так что подход по меньшей мере странный для разрезания строки на числа.
так что тут всегда будут положительные числа или ошибка(исключение).
так что qpuTuJlb менять подход надо к числам и искать разделитель например пробел.
Интуитивно понятный интерфейс - это такой интерфейс, для работы с которым нужна недюжинная интуиция.
IliaIT вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача по Delphi 7: StringGrid с целыми числами, найти наибольшую суммы элементов столбцов или наибольшую суммы элементов строк Ard123 Помощь студентам 5 03.12.2012 01:10
Найти значение суммы night_Rain Паскаль, Turbo Pascal, PascalABC.NET 0 22.10.2012 17:56
Найти числа суммы Igor111 Помощь студентам 2 02.03.2010 21:56
Найти отношения суммы элементов главной диагонали и суммы элементов побочной диагонали квадратной матрицы Elmander Помощь студентам 2 21.06.2007 07:15