IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Цифры в строке
18192123
сообщение 8.01.2007 11:25
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Нужно преобразовать строку таким образом, чтобы цифры каждого слова были перенесены в начало слова, изменив порядок следования цифр в слове на обратный.

Слова разделены пробелами. Работать только с length, ord, chr. Предполагается, что в слове встречаются и символы и цифры. Отсюда вопрос - а как отличить цифры от символов в слове?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 3)
volvo
сообщение 8.01.2007 11:28
Сообщение #2


Гость






Цитата
а как отличить цифры от символов в слове?
blink.gif
SL := slovo(s, i);
for j := 1 to length(SL) do
if SL[j] in ['0' .. '9'] then { цифра }
else { буква }
 К началу страницы 
+ Ответить 
18192123
сообщение 8.01.2007 12:31
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


И снова я что-то упустила....

uses crt;

function Slovo(s:string;n:integer):string;
const lim =[' ',',','!'];
var ss:string;
k,c,i:integer;
begin
ss:=''; c:=1; k:=1;
while k<=length(s) do begin
while not(s[k] in lim) and (k<=length(s)) do begin
if c=n then ss:=ss+s[k];
inc (k); end;
inc ( c );
while (s[k] in lim) and (k<=length(s)) do inc (k);
end;
Slovo:=ss;
end;

var
s, sl : string;
i, j, pos : integer;


begin
clrscr;
writeln (' vvedite stroky, sostoayschyu iz 4isel i simvolov' );
readln (s);
pos := 1;
while slovo (s, i ) <> '' do
begin
sl := slovo (s, i);
for j := 1 to length (sl) do
if sl[j] in ['0'..'9'] then
begin
sl[pos] := sl[j];
inc (pos);
end;
end;
writeln (' rezyltat: ');
writeln (s);
readkey;
end.




Предположим, что теперь у меня всё цифры в начале слова, но за ними ещё буквы, как тогда записать цифры в обратном порядке?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 8.01.2007 12:51
Сообщение #4


Гость






i := 1;
new_s := ''; { <--- Здесь будет храниться результат }
while slovo (s, i ) <> '' do begin
sl := slovo (s, i); { <--- Берем очередное слово }
new_sl := ''; { <--- Это - для преобразованного слова }

{ Сначала проходим по всем цифрам от конца слова к началу }
for j := length(sl) downto 1 do
if sl[j] in ['0'..'9'] then new_sl := new_sl + sl[j];

{ А теперь - по всем буквам, от начала к концу }
for j := 1 to length(sl) do
if not(sl[j] in ['0'..'9']) then new_sl := new_sl + sl[j];

{ Добавляем преобразованное слово к строке - результату }
new_s := new_s + new_sl + ' ';

inc(i); { <--- и переходим к следующему слову }
end;

writeln (' rezyltat: ');
writeln (new_s); { <--- Печатаем результат }
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.07.2025 19:10
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"