Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Задача на Pascal (легкая)

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Задача на Pascal (легкая)
Имя
Сообщение << Старые топики   Новые топики >>
Задача на 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
Post #: 1
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);
Post #: 2
RE: Задача на Pascal (легкая) - 2008-05-11 10:37:34.156666   
BlackDoor

Сообщений: 200
Оценки: 0
Присоединился: 2007-02-16 06:55:09.780000
Спасибо огромное!!!
Post #: 3
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.
Post #: 4
RE: Задача на Pascal (легкая) - 2008-05-11 11:02:33.683333   
Sunzer

Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666
В первом ответе не было ввода с клавы и прочей байды :)
Post #: 5
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 если нет ошибки, т.е. если у вас в строке чистое число)
Post #: 6
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 и в д.р. есть поддержка.
Post #: 7
RE: Задача на Pascal (легкая) - 2008-05-12 15:04:36.523333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
ord( s ) - ord( '0' ); вместо всяких strtoint
Post #: 8
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.
Post #: 9
RE: Задача на Pascal (легкая) - 2008-05-12 18:11:17.473333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Не надо ничего никуда сдвигать. Я иду прямо по строке и складываю нужные цифры ;). Можно несколько ускорить процесс, (если заранее известно, что не будет переполнения), считая сколько цифр в числе и вычитая n * ord( '0' ) из результата.
Post #: 10
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Задача на Pascal (легкая)







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.