Страница 1 из 1

Строки, Pascal

Добавлено: 19 сен 2008, 10:28
VistBacK
Помогите Пожалуйста Решить Одну Задачку в Паскале!!!Буду очень благодарен!!!
Вот собственно:
Дана строка, состоящая из цифр и букв. Сформировать другую строку,содеражащую только цифры предыдущей строки,в том же порядке.
S1:=`12ab4c8d3`
S2:=`12483`
Заранее СПАСИБО!

Re: Помогите Пожалуйста Решить Одну Задачку в Паскале!!!

Добавлено: 19 сен 2008, 10:40
demon416
как то так: (не проверял паскаля нет под рукой)

Код: Выделить всё

program test;

var
i: integer;
s1,s2 : string;

begin
s1:='12ab4c8d3';
s2:='';
for i:=1 to length(s1) do
case s1[i] of
'0' : s2:=s2+'0';
//тут аналогично другие цифры сделаеш
'9' : s2:=s2+'9';
end;
end.

Re: Помогите Пожалуйста Решить Одну Задачку в Паскале!!!

Добавлено: 19 сен 2008, 10:42
VistBacK
спасибо большое!А я думал тут как то через delete,с условием.

Re: Помогите Пожалуйста Решить Одну Задачку в Паскале!!!

Добавлено: 19 сен 2008, 10:54
demon416
вариантов куча этот просто самый наглядный :)

Re: Помогите Пожалуйста Решить Одну Задачку в Паскале!!!

Добавлено: 19 сен 2008, 10:58
Serge_Bliznykov
я бы предложил другой вариант, либо:

Код: Выделить всё

begin
  s1:='12ab4c8d3';
  s2:='';
  for i:=1 to length(s1) do
    if  (s1[i]>='0') and (s1[i]<='9') then s2:=s2+s1[i];
  WriteLn(s2);
end.
либо, через множества:

Код: Выделить всё

begin
  s1:='12ab4c8d3';
  s2:='';
  for i:=1 to length(s1) do
    if s1[i] in ['0'..'9'] then s2:=s2+s1[i];
  WriteLn(s2);
end.

Re: Помогите Пожалуйста Решить Одну Задачку в Паскале!!!

Добавлено: 19 сен 2008, 12:54
VistBacK
а можно все таки как нибудь с delete пожалуйста...=)

Re: Помогите Пожалуйста Решить Одну Задачку в Паскале!!!

Добавлено: 19 сен 2008, 13:25
demon416
а за чем?
нужно одной строкой обойтись?

Re: Помогите Пожалуйста Решить Одну Задачку в Паскале!!!

Добавлено: 19 сен 2008, 13:36
VistBacK
Ну как бы надо с делитом!=)всем большое спасибо за помощь!!!

Re: Строки, Pascal

Добавлено: 23 сен 2008, 11:39
BBB

Код: Выделить всё

S2 := S1;
for i:= Length (S2) downto 1 do begin
  if (NOT (S2 [i] in ['0'..'9'])) then
    Delete (S2, i, 1);
end;

Re: Строки, Pascal

Добавлено: 24 сен 2008, 08:40
Serge_Bliznykov
BBB, угу. всё хорошо. только господину VistBacK'у 5 дней назад уже помогли на другом форуме (он на нескольких форумах запостил одну и ту же просьбу...) (конкретно - здесь