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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2009, 22:35   #11
Айдар
Форумчанин
 
Регистрация: 20.06.2009
Сообщений: 195
По умолчанию

__STDC__
Нету никаких пртензий, вот переписал твой код, ошибка
http://s52.radikal.ru/i136/0906/f6/b1d4464f733e.jpg
Айдар вне форума Ответить с цитированием
Старый 20.06.2009, 22:41   #12
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Цитата:
Сообщение от Айдар Посмотреть сообщение
вот переписал твой код, ошибка
http://s52.radikal.ru/i136/0906/f6/b1d4464f733e.jpg
уберите точку с запятой.. перед else ; не ставится =)
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 20.06.2009, 22:52   #13
Айдар
Форумчанин
 
Регистрация: 20.06.2009
Сообщений: 195
По умолчанию

ввожу 43 54 я пошел гулять (здесь всё спокойно считает=97)

ввожу это я пошёл в 6 и пришёл в 4 (выводит только 6, а надо 10)
Айдар вне форума Ответить с цитированием
Старый 20.06.2009, 22:53   #14
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

пробел ставьте в конце...

или исправить так
Код:
...
		if (s[i] in ['0'..'9']) then 
			tmp := tmp + s[i];
		if not(s[i] in ['0'..'9']) or (i = length(s)) then begin
			val(tmp,num);
...
Uguu~

Последний раз редактировалось __STDC__; 20.06.2009 в 22:56.
__STDC__ вне форума Ответить с цитированием
Старый 20.06.2009, 22:59   #15
Айдар
Форумчанин
 
Регистрация: 20.06.2009
Сообщений: 195
По умолчанию

Цитата:
var
s,tmp:string;
i,sum,num:byte;
cod:integer;
begin
readln(s);
sum := 0;
for i:=1 to length(s)+1 do begin
if (s[i] in ['0'..'9']) then
tmp := tmp + s[i]
else begin
val(tmp,num,cod);
sum := sum + num;
tmp := '';
end;
end;

writeln(sum);
readln;
end.
Подсказали что можно вот так ещё, а вообще с пробелом работает, спасибо вам.
Айдар вне форума Ответить с цитированием
Старый 20.06.2009, 23:23   #16
NSvirus
пропагандирую жизЪ
Форумчанин
 
Аватар для NSvirus
 
Регистрация: 19.03.2007
Сообщений: 950
По умолчанию

Цитата:
Сообщение от __STDC__ Посмотреть сообщение
или исправить так
Код:
...
		if (s[i] in ['0'..'9']) then 
			tmp := tmp + s[i];
		if not(s[i] in ['0'..'9']) or (i = length(s)) then begin
			val(tmp,num);
...
вот здесь не согласен. Допустим последняя цифра 4.
Потом идет проверка:
если символ 4 не 0..9 или i не последняя, то ...
символ 4 - цифра, поэтому val(...) работать не будет.
Тогда уж так:
Код:
if (i=length(s)) or (not(s[i] in ['0'..'9']))) then
Посторонним В.
NSvirus вне форума Ответить с цитированием
Старый 20.06.2009, 23:34   #17
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

not(s[i] in ['0'..'9']) or (i = length(s)) - все верно...

НЕ (4 в 0-9) ИЛИ (ТЕК. ПОЗ. = ДЛИНА)
Если символ НЕ последний - получаем
НЕ (ПРАВДА) ИЛИ (ЛОЖЬ) = ЛОЖЬ ИЛИ ЛОЖЬ = ЛОЖЬ
все нормально - символ цифра - условие не выполняется...
если символ последний
НЕ (ПРАВДА) ИЛИ (ПРАВДА) = ЛОЖЬ ИЛИ ПРАВДА = ПРАВДА
все ок, условие выполняется, т.к. символ последний - добавляем число к сумме...

(i=length(s)) or (not(s[i] in ['0'..'9']))) - Оо то же самое немного переписанное... вы думаете от этого что-то изменилось??
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 20.06.2009, 23:39   #18
NSvirus
пропагандирую жизЪ
Форумчанин
 
Аватар для NSvirus
 
Регистрация: 19.03.2007
Сообщений: 950
По умолчанию

Цитата:
Сообщение от __STDC__ Посмотреть сообщение
not(s[i] in ['0'..'9']) or (i = length(s)) - все верно...
ах да, мне показалось что эта скобка закрывается за выражение length(s). офтоп Ы))
з.ы: вот ты намудрил)
Посторонним В.

Последний раз редактировалось NSvirus; 20.06.2009 в 23:42.
NSvirus вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как подсчитать сумму цифр в столбце и вывести их в Edit MaxiMkaUA БД в Delphi 12 30.05.2009 11:04
Строки. Как вывести часть строки? Anfall Общие вопросы Delphi 7 26.02.2009 09:10
Найти сумму всех чисел из промежутка от А до В, кратных 8 и 16 nickky2 Паскаль, Turbo Pascal, PascalABC.NET 8 05.12.2008 13:27
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27
Найти сумму положительных нечетных чисел меньше 50 мандаринка Паскаль, Turbo Pascal, PascalABC.NET 8 22.12.2007 21:45