Program Stroki;
{Задание: Найти группы цифр в строке и при том такие, чтоб они начинались
и кончались одной и той же цифрой}
Var
Stroka_Vvoda: String; {переменная ввода строки}
Stroka_Rew: String;
i: Byte;
Rew: Boolean;
Begin
{Обнуление}
Stroka_Rew[0]:=#0;
Rew:=False;
{Выводим запрос на ввод строки}
Write('Введите строку: ');
{Ждем ввода пользователем строки}
ReadLn(Stroka_Vvoda);
{Просматриваем введенную строчку}
For i:=1 to Length(Stroka_Vvoda) do
{Если введены цифры}
If (Ord(Stroka_Vvoda)>47) and (Ord(Stroka_Vvoda)<58) then
Begin
Rew:=True;
{Записываем в строку решения данную цифру}
Stroka_Rew:=Stroka_Rew+Stroka_Vvoda;
End
Else
{Если символ не цифра}
If Rew=True then
Begin
{если были цифры}
If Stroka_Rew[1]=Stroka_Rew[Length(Stroka_Rew)] then
WriteLn('Условие выполнено: ', Stroka_Rew);
Rew:=False;
Stroka_Rew[0]:=#0;
End;
ReadLn;
End.
строки
например я ввожу: fdw32423f3524gf43224g5g5g65g65656h65h4666hs
32423
43224
65656
Цитата:
вывести те которые равны 1 и последней цифры
вообще нерусская какая-то. Объясни задание по человечески ;)
Короче мне найти группы цифр в строке и при том такие чтоб они начинались и кончались одной и той жей цифрой.
например: fref343f54f535g365gh56h7h67j645346j87kk9up
из этой строки должны получиться следующие группы:343
535
645346
вот и всё.
Вот код программы:
У меня вопрос по твоей программе.
Почему ты строку ввода сравниваешь именно с такими цифрами:
Цитата:
If (Ord(Stroka_Vvoda)>47) and (Ord(Stroka_Vvoda)<58) then
а ты посмотри на функцию ord. решение подсказывать не буду, сам покопайся :)
If (Ord(Stroka_Vvoda)>47) and (Ord(Stroka_Vvoda)<58) then
он проверяет:если строка ввода > 47 то принимает значение true,а если строка ввода <58 то принимает значение false.Почему именно такие цифры на проверке?
If (Ord(Stroka_Vvoda)>47) and (Ord(Stroka_Vvoda)<58) then
он проверяет:если строка ввода > 47 то принимает значение true,а если строка ввода <58 то принимает значение false.Почему именно такие цифры на проверке?
Код:
Program Kodirovka;
Var
i: Byte;
Begin
For i:=48 to 57 do
WriteLn(Chr(i));
ReadLn;
End.
Var
i: Byte;
Begin
For i:=48 to 57 do
WriteLn(Chr(i));
ReadLn;
End.
Стало яснее?
Если что пиши...
Конечно ясно.Могли б сразу сказать что с 48 до 57 это с 0 до 9.Яж не знал поэтому и спрашивал.