Проверить строку на наличие чисел (0-9) - Free Pascal

Узнай цену своей работы

Формулировка задачи:

вроде все правильно пишу, до этого с VAL пробовал, ничего не помогает
var s,w:string;
n:byte;
j:boolean;
begin
writeln('Введите строку: ');
readln(s);
s:=s+' ';
n:=pos(' ',s);
while n<>0 do begin
w:=copy(s,1,n);
delete(s,1,n);
if (w[1] in ['0'..'9']) and (length(w)=1) then j:=true;
n:=pos(' ',s);
end;
if j=true then
writeln('В строке есть числа')
else
writeln('В строке нет чисел') ;
end.

Решение задачи: «Проверить строку на наличие чисел (0-9)»

textual
Листинг программы
var s,w:string;
n,j:byte;
begin
writeln('Введите строку: ');
readln(s);
s:=s+' ';
n:=pos(' ',s);
while n<>0 do begin
w:=copy(s,1,n);
delete(s,1,n);
if (w[1] in ['0'..'9']) and (length(w)=2) then j:=1;
n:=pos(' ',s);
end;
if j=1 then
writeln('В строке есть числа')
else
writeln('В строке нет чисел') ;
end.

Объяснение кода листинга программы

  1. Объявлены переменные: s, w (строки), n, j (байты).
  2. Выводится запрос на ввод строки.
  3. Введенная строка сохраняется в переменной s.
  4. Строка s дополняется пробелом в конце.
  5. Находится позиция первого пробела в строке s с помощью функции pos(' ', s).
  6. Пока позиция первого пробела в строке не равна 0, выполняются следующие действия:
    1. Формируется новая строка w, начиная с первого символа и заканчивая первым пробелом в исходной строке s.
    2. Исходная строка s изменяется, удаляются все символы от первого до следующего пробела.
    3. Проверяется, является ли второй символ в строке w числом от 0 до 9.
    4. Если условие выполняется, то значение переменной j устанавливается равным 1.
    5. Находится позиция следующего пробела в строке s.
  7. Если значение переменной j равно 1, то выводится сообщение В строке есть числа.
  8. Если значение переменной j не равно 1, то выводится сообщение В строке нет чисел.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5
Похожие ответы