Выполнить преобразование записи в число - Turbo Pascal

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

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

Пусть входной поток литер содержит по крайней мере одну цифру. Считая первую из них началом записи числа (целого или вещественного с фиксированной точкой), выполнить преобразование этой записи в число

Решение задачи: «Выполнить преобразование записи в число»

textual
Листинг программы
uses  Crt;
var   str : string;
      lot : set of char;
      i   : byte;
      sim : char;
      flag : boolean;
    
BEGIN
     ClrScr;
     lot:=['0'..'9'];
     sim:='.';
     Write('Введите строку: ');
     Readln(str);
     for i:=1 to length(str) do
         if ((str[i] in lot) and (i<>0)) then
         begin
              delete(str, 1, i-1);
              break;
         end;
     i:= 2;
     flag:= false;
     While ((str[i] in lot) or ((str[i]=sim) and (flag=false))) do
     begin
          if (str[i]=sim) then flag:= true;
          Inc(i);
     end;
     if str[i-1]=sim then
        delete(str, i-1, (length(str)-(i-2)))
     else delete(str, i, (length(str)-(i-1)));
     Writeln(str);
END.

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

  1. В начале кода подключается библиотека Crt.
  2. Объявляются переменные: str - строка, lot - множество символов, i - байт, sim - символ, flag - булево значение.
  3. Выполняется очистка экрана ClrScr.
  4. Создается множество символов lot, которое содержит символы от '0' до '9'.
  5. Создается символ sim, которым будет заменяться последний символ вводимой строки.
  6. Выводится сообщение 'Введите строку: ' для ввода строки пользователем.
  7. Считывается введенная строка с помощью функции Readln.
  8. Запускается цикл for, который будет выполняться до тех пор, пока текущий символ в строке не станет символом '0' или '.' (то есть до тех пор, пока не будет удален последний символ или пока не будет введена строка, заканчивающаяся на '.').
  9. Внутри цикла проверяется, является ли текущий символ в строке одним из символов множества lot. Если да, то этот символ удаляется из строки, а цикл прерывается.
  10. Если после удаления последнего символа в строке остается меньше символов, чем было указано в переменной i, то переменная i сбрасывается на 2, а флаг flag устанавливается в значение true.
  11. Запускается цикл While, который будет выполняться до тех пор, пока текущий символ в строке не станет символом '0' или '.' (то есть до тех пор, пока не будет удален последний символ или пока не будет введена строка, заканчивающаяся на '.').
  12. Внутри цикла проверяется, является ли текущий символ в строке символом '0'. Если да, то переменная i сбрасывается на 2, а флаг flag устанавливается в значение true.
  13. Если после удаления последнего символа в строке остается меньше символов, чем было указано в переменной i, то переменная i сбрасывается на 2.
  14. Если символ '0' был заменен символом '.' и флаг flag равен true, то удаляется последний символ в строке.
  15. Выводится преобразованная строка.
  16. Конец программы.

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


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

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

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