Задача на Pascal (легкая)
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Задача на Pascal (легкая) - 2008-05-11 07:57:20.830000
|
|
|
BlackDoor
Сообщений: 200
Оценки: 0
Присоединился: 2007-02-16 06:55:09.780000
|
Помогите пожалуйста решить простенькую задачу на Паскале. Дело в том, что сегодня вечером ее нужно сдать, а я с Паскалем ниогда не встречался, только на C/C++ кое-что понимаю… Вот собственно сама задача: Строки вводятся с клавиатуры… Даны 2 строки по 4 символа состоящие из цифр… Склеить 2 строки, перевести полученную строку в число и посчитать сумму цифр… icq: 480934134, Заплачу 3 WMZ
|
|
|
RE: Задача на Pascal (легкая) - 2008-05-11 09:27:01.520000
|
|
|
sergeiprog
Сообщений: 302
Оценки: 0
Присоединился: 2007-04-24 10:02:27.956666
|
Ну че тут решать. У тебя две строки s1 и s2; //Клеишь s1:=s1+s2; потом is:=strtoint(s1);//число ic:=0;//сумма цифр for i:=1 to Length(s1) do ic:=ic+strtoint(s1);
|
|
|
RE: Задача на Pascal (легкая) - 2008-05-11 10:37:34.156666
|
|
|
BlackDoor
Сообщений: 200
Оценки: 0
Присоединился: 2007-02-16 06:55:09.780000
|
Спасибо огромное!!!
|
|
|
RE: Задача на Pascal (легкая) - 2008-05-11 11:01:43.930000
|
|
|
Sunzer
Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666
|
program fff; var s1,s2:string; Result,i:integer; begin Result:=0; ReadLn(s1); ReadLn(s2); s1:=s1+s2; for i:=1 to Length(s1) do Result:=Result+StrToInt(s1); WriteLn(Result); end.
|
|
|
RE: Задача на Pascal (легкая) - 2008-05-11 11:02:33.683333
|
|
|
Sunzer
Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666
|
В первом ответе не было ввода с клавы и прочей байды :)
|
|
|
RE: Задача на Pascal (легкая) - 2008-05-11 11:57:54.966666
|
|
|
gotoxardas
Сообщений: 842
Оценки: 0
Присоединился: 2007-05-25 08:15:21.840000
|
quote:
Result:=Result+StrToInt(s1); Первый раз вижу что бы паскаль потдерживал функцию StrToInt. Это по-моему дельфийская фича. В паскале надо юзать val(st, int, code), где st- строка, int - целое число, code - код возврата( будет возвращать значение = 0 если нет ошибки, т.е. если у вас в строке чистое число)
|
|
|
RE: Задача на Pascal (легкая) - 2008-05-11 12:01:54.720000
|
|
|
sergeiprog
Сообщений: 302
Оценки: 0
Присоединился: 2007-04-24 10:02:27.956666
|
quote:
ORIGINAL: gotoxardas quote:
Result:=Result+StrToInt(s1); Первый раз вижу что бы паскаль потдерживал функцию StrToInt. Это по-моему дельфийская фича. В паскале надо юзать val(st, int, code), где st- строка, int - целое число, code - код возврата( будет возвращать значение = 0 если нет ошибки, т.е. если у вас в строке чистое число) Ну это в Turbo Pascal, а Borland Pascal и в д.р. есть поддержка.
|
|
|
RE: Задача на Pascal (легкая) - 2008-05-12 15:04:36.523333
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
ord( s ) - ord( '0' ); вместо всяких strtoint
|
|
|
RE: Задача на Pascal (легкая) - 2008-05-12 15:19:56.513333
|
|
|
Andrey1.1
Сообщений: 86
Оценки: 0
Присоединился: 2004-12-01 18:42:36
|
quote:
ORIGINAL: _SaZ_ ord( s ) - ord( '0' ); вместо всяких strtoint При этом стоит заметить, что это надо делать для каждого чара, не забывая сдвигать аккумулятор.
for i := 1 to length(s) do begin
acc := acc * 10; //сдвиг влево на один разряд
acc := acc + ord(s[i]) - $30;
end;
quote:
ORIGINAL: gotoxardas Первый раз вижу что бы паскаль потдерживал функцию StrToInt >> Uses SysUtils; quote:
ORIGINAL: sergeiprog Ну это в Turbo Pascal, а Borland Pascal и в д.р. есть поддержка. Опять же, только при наличии подключенного модуля SysUtils.
|
|
|
RE: Задача на Pascal (легкая) - 2008-05-12 18:11:17.473333
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Не надо ничего никуда сдвигать. Я иду прямо по строке и складываю нужные цифры ;). Можно несколько ускорить процесс, (если заранее известно, что не будет переполнения), считая сколько цифр в числе и вычитая n * ord( '0' ) из результата.
|
|
|
|
|