Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.07.2010, 12:21
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
Восклицание Как прибавить числа друг на друга

Как прибавить числа в строке друг на друга
например у нас есть строка в котором числа

123456789

а нам надо прибавить их друг на друга

1+2+3+4+5+6+7+8+9=45

как это можно сделать?
__________________
Нет ничего не возможного. Вопрос только во времени...
Ответить с цитированием
  #2  
Старый 18.07.2010, 12:25
ChinYan ChinYan вне форума
Тыкаю клавиши
 
Регистрация: 13.07.2009
Сообщения: 804
Версия Delphi:
Репутация: 48633
По умолчанию

Код:
function abc(s:string):integer;
var
i:integer;
 begin
for i:=1 to Length(s) do
 Result:=Result+StrToInt(s[i]);
end;

как-то так
Ответить с цитированием
  #3  
Старый 18.07.2010, 12:58
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
Восклицание

у меня ответ вместо 45 получаеться 1243021
__________________
Нет ничего не возможного. Вопрос только во времени...
Ответить с цитированием
  #4  
Старый 18.07.2010, 13:26
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Код:
function abc(s:string):integer;
var
i:integer;
 begin
 Result:=0;
for i:=1 to Length(s) do
 Result:=Result+StrToInt(s[i]);
end;
Ответить с цитированием
  #5  
Старый 20.07.2010, 13:09
Pigmalion Pigmalion вне форума
Прохожий
 
Регистрация: 01.07.2010
Сообщения: 20
Репутация: 10
По умолчанию

С десятичными уже не будет работать надо условие добавить что после 9 считывать i+1,и т.д.
Ответить с цитированием
  #6  
Старый 20.07.2010, 13:45
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Цитата:
Сообщение от Pigmalion
С десятичными уже не будет работать надо условие добавить что после 9 считывать i+1,и т.д.
Неужели?)
Тут же не сложение двух чисел, а сложение цифр числа.

В последнее время что-то зачастили безсмысленные посты...
Перед тем как набивать подобные посты, советую хотя бы разобратьтся в сути вопроса.
Ответить с цитированием
  #7  
Старый 20.07.2010, 14:17
Pigmalion Pigmalion вне форума
Прохожий
 
Регистрация: 01.07.2010
Сообщения: 20
Репутация: 10
По умолчанию

Цитата:
Сообщение от Electronic_Arts
Как прибавить числа в строке друг на друга
например у нас есть строка в котором числа

123456789

а нам надо прибавить их друг на друга

1+2+3+4+5+6+7+8+9=45

как это можно сделать?
По-моему здесь как раз числа,а не цифры.А лучше записывать с пробелами и сделать условие,считывания того,что находится после.

Цитата:
Сообщение от Konrad
В последнее время что-то зачастили безсмысленные посты...
Перед тем как набивать подобные посты, советую хотя бы разобратьтся в сути вопроса.
Ответить с цитированием
  #8  
Старый 20.07.2010, 15:46
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Можно и так поставить задачу, но найди тогда в строке
237345324578673476234632
число больше 9?
Ответить с цитированием
  #9  
Старый 20.07.2010, 22:01
Pigmalion Pigmalion вне форума
Прохожий
 
Регистрация: 01.07.2010
Сообщения: 20
Репутация: 10
По умолчанию

Про меньше 9:Это,если цифры идут последовательно,как и было указано в задаче.Сообщением выше написал,что разумнее вводить через пробел.
Ответить с цитированием
  #10  
Старый 21.07.2010, 10:23
Аватар для Thrasher
Thrasher Thrasher вне форума
Illuminati
 
Регистрация: 06.03.2008
Адрес: Крым, г. Симферополь
Сообщения: 348
Репутация: 8808
По умолчанию

Делаю по олд-скульному ))

Код:
function SumNumbers(S:String);
var Ch:char
I:byte;
begin
 Result:=0;
 For I:=1 to Length(S) do
   begin 
    Ch:=S[i];
    Result:=Result+Ord(Ch)-30; //(Конечно правильно Result:=Result+StrToInt(s[i]); но я предполагаю что в строке уже всё цыфры
   end;
end;
__________________
Хорошо написанная программа не требует документации
ICQ 9-184-668.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:59.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025