Сравнение введённого и данного текста - Free Pascal

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

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

Определить совпадает ли введённый текст(числовой) с каким либо отрезком последовательности целых чисел 0,1,2... пример:3, 678,101112

Решение задачи: «Сравнение введённого и данного текста»

textual
Листинг программы
const NY: array [Boolean] of String[3] = ('НЕ ','');
var
  s: String;
  i, j, k, p, q: Integer;
begin
  repeat
    Write('Цифры: '); ReadLn(s);
    i:=Length(s); while (i>0) and (s[i] in ['0'..'9']) do Dec(i);
    if (i=0) and (Length(s)>1) then Break
    else WriteLn('*** Ошибочный ввод. Повторите...');
  until False;
  for j:=1 to Length(s) div 2 do
    if Length(s) mod j=0 then begin
      Val(Copy(s,1,j),q,k); i:=1+j;
      while i+j-1<=Length(s) do begin
        p:=q; Val(Copy(s,i,j),q,k);
        if q-p<>1 then Break;
        Inc(i,j);
      end;
      if i+j-1>Length(s) then Break;
    end;
  WriteLn(NY[i+j-1>Length(s)],'совпадает');
end.

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

  1. Объявлены следующие переменные: — s: String; — i, j, k, p, q: Integer; — NY: array [Boolean] of String[3] = ('НЕ ','');
  2. В цикле repeat осуществляется ввод строки s с помощью функции ReadLn и проверка корректности ввода. Если введенная строка некорректна, выводится сообщение об ошибке и цикл повторяется. Если строка корректна, цикл завершается.
  3. В цикле for j:=1 to Length(s) div 2 do осуществляется проверка на четность длины строки s. Если длина строки нечетная, то цикл выполняется.
  4. Внутри цикла for осуществляется проверка совпадения четных подстрок s. Для этого используется функция Val для преобразования подстроки в число и проверки его на равенство предыдущему числу. Если числа не совпадают, цикл прерывается.
  5. Если все четные подстроки совпадают, то выводится сообщение о совпадении.
  6. Код не обрабатывает ситуацию, когда строка s пустая или содержит только пробелы.

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


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

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

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