Выполнить преобразование записи в число - 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.
Объяснение кода листинга программы
- В начале кода подключается библиотека Crt.
- Объявляются переменные: str - строка, lot - множество символов, i - байт, sim - символ, flag - булево значение.
- Выполняется очистка экрана ClrScr.
- Создается множество символов lot, которое содержит символы от '0' до '9'.
- Создается символ sim, которым будет заменяться последний символ вводимой строки.
- Выводится сообщение 'Введите строку: ' для ввода строки пользователем.
- Считывается введенная строка с помощью функции Readln.
- Запускается цикл for, который будет выполняться до тех пор, пока текущий символ в строке не станет символом '0' или '.' (то есть до тех пор, пока не будет удален последний символ или пока не будет введена строка, заканчивающаяся на '.').
- Внутри цикла проверяется, является ли текущий символ в строке одним из символов множества lot. Если да, то этот символ удаляется из строки, а цикл прерывается.
- Если после удаления последнего символа в строке остается меньше символов, чем было указано в переменной i, то переменная i сбрасывается на 2, а флаг flag устанавливается в значение true.
- Запускается цикл While, который будет выполняться до тех пор, пока текущий символ в строке не станет символом '0' или '.' (то есть до тех пор, пока не будет удален последний символ или пока не будет введена строка, заканчивающаяся на '.').
- Внутри цикла проверяется, является ли текущий символ в строке символом '0'. Если да, то переменная i сбрасывается на 2, а флаг flag устанавливается в значение true.
- Если после удаления последнего символа в строке остается меньше символов, чем было указано в переменной i, то переменная i сбрасывается на 2.
- Если символ '0' был заменен символом '.' и флаг flag равен true, то удаляется последний символ в строке.
- Выводится преобразованная строка.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д