Найдите в предложении самое короткое число - Turbo Pascal
Формулировка задачи:
помогите пожалуйста сделать
Задание 8
Введите в ЭВМ предложение длиной не более 80 символов, содержащее числа и слова без разделения их пробелами. Найдите в нем самое короткое число. Выведите на экран это число и его длину.
Решение задачи: «Найдите в предложении самое короткое число»
textual
Листинг программы
uses crt; var c:char; s,s1,ks:string; i,j,mn:byte; begin clrscr; writeln('Введите предложение, содержаще числа и слова без пробелов, не более 80 символов'); i:=0; s:=''; repeat c:=readkey; if c in ['A'..'Z','a'..'z','А'..'п','р'..'ё','0'..'9'] then begin write(c); s:=s+c; i:=i+1 end; if(c=#13)or(i=80) then writeln until(c=#13)or(i=80); i:=1; mn:=255; ks:=''; while i<=length(s) do if(s[i] in ['0'..'9'])and((i=1)or not(s[i-1]in ['0'..'9'])) then begin s1:=''; j:=i; while(j<=length(s))and(s[j] in ['0'..'9']) do begin s1:=s1+s[j]; j:=j+1 end; if length(s1)<mn then begin mn:=length(s1); ks:=s1 end; i:=i+length(s1) end else i:=i+1; if ks='' then write('Нет чисел') else write('Самое короткое число=',ks); readln end.
Объяснение кода листинга программы
- Создается переменная
c
типаchar
, которая будет использоваться для чтения символа из ввода пользователя. - Создается переменная
s
типаstring
, которая будет использоваться для хранения введенной строки. - Создается переменная
s1
типаstring
, которая будет использоваться для хранения самого короткого числа. - Создается переменная
i
типаbyte
, которая будет использоваться для отслеживания количества введенных символов. - Создается переменная
j
типаbyte
, которая будет использоваться для отслеживания количества введенных символов. - Создается переменная
mn
типаbyte
, которая будет использоваться для хранения максимальной длины числа. - Создается переменная
ks
типаstring
, которая будет использоваться для хранения самого короткого числа. - В цикле
repeat-until
происходит чтение символа из ввода пользователя с помощью переменнойc
. - Проверяется, является ли введенный символ цифрой (от '0' до '9').
- Если символ является цифрой, то он добавляется к переменной
s
и увеличивается значение переменнойi
на 1. - Если символ не является цифрой или предыдущий символ был цифрой, то значение переменной
i
увеличивается на 1. - Если введенная строка имеет длину меньше максимальной длины числа, то обновляется переменная
mn
и значение переменнойks
становится равным введенной строке. - После окончания цикла
repeat-until
выводится сообщение о том, было ли найдено число. - Если переменная
ks
не равна пустой строке, то выводится сообщение о самом коротком числе. - Выводится сообщение
Нет чисел
, если переменнаяks
равна пустой строке. - Выводится сообщение
Самое короткое число=
, за которым следует значение переменнойks
. - Выводится сообщение
readln
, чтобы перейти на новую строку.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д