Выполнить преобразование записи в число - 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, то удаляется последний символ в строке.
- Выводится преобразованная строка.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д