Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ замена цифры пробелом

Автор: 18192123 10.01.2007 23:54

Подскажите пожалуйста, как заменить цифру соответствующим ей количеством пробелов?

Автор: volvo 10.01.2007 23:59

Вот так, например:

...
s := '1a2a3a4a';
s1 := '';

for i := 1 to length(s) do
if s[i] in ['0' .. '9'] then
for j := 1 to ord(s[i]) - ord('0') do s1 := s1 + ' '
else s1 := s1 + s[i];

writeln(s1);
...


Автор: 18192123 11.01.2007 0:08

Цитата(volvo @ 10.01.2007 19:59) *

...

for j := 1 to ord(s[i]) - ord('0') do s1 := s1 + ' '
...




А как понять эту строчку?

Автор: volvo 11.01.2007 0:18

Тебе же надо заменить на соответствующее цифре количество пробелов? А в строке хранятся символы, а не численные представления цифр... Вот эта строка и вычисляет число по его символу: число "ноль" должно соответствовать символу "0", поэтому берем порядковый номер символа, представляющего число и отнимаем от него порядковый номер символа "0" - получаем само число...

Автор: 18192123 11.01.2007 0:22

Цитата(volvo @ 10.01.2007 20:18) *

Тебе же надо заменить на соответствующее цифре количество пробелов? А в строке хранятся символы, а не численные представления цифр... Вот эта строка и вычисляет число по его символу: число "ноль" должно соответствовать символу "0", поэтому берем порядковый номер символа, представляющего число и отнимаем от него порядковый номер символа "0" - получаем само число...

теперь ясно.