Найдите в предложении самое короткое число - 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.

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

  1. Создается переменная c типа char, которая будет использоваться для чтения символа из ввода пользователя.
  2. Создается переменная s типа string, которая будет использоваться для хранения введенной строки.
  3. Создается переменная s1 типа string, которая будет использоваться для хранения самого короткого числа.
  4. Создается переменная i типа byte, которая будет использоваться для отслеживания количества введенных символов.
  5. Создается переменная j типа byte, которая будет использоваться для отслеживания количества введенных символов.
  6. Создается переменная mn типа byte, которая будет использоваться для хранения максимальной длины числа.
  7. Создается переменная ks типа string, которая будет использоваться для хранения самого короткого числа.
  8. В цикле repeat-until происходит чтение символа из ввода пользователя с помощью переменной c.
  9. Проверяется, является ли введенный символ цифрой (от '0' до '9').
  10. Если символ является цифрой, то он добавляется к переменной s и увеличивается значение переменной i на 1.
  11. Если символ не является цифрой или предыдущий символ был цифрой, то значение переменной i увеличивается на 1.
  12. Если введенная строка имеет длину меньше максимальной длины числа, то обновляется переменная mn и значение переменной ks становится равным введенной строке.
  13. После окончания цикла repeat-until выводится сообщение о том, было ли найдено число.
  14. Если переменная ks не равна пустой строке, то выводится сообщение о самом коротком числе.
  15. Выводится сообщение Нет чисел, если переменная ks равна пустой строке.
  16. Выводится сообщение Самое короткое число=, за которым следует значение переменной ks.
  17. Выводится сообщение readln, чтобы перейти на новую строку.

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


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

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

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