Найдите в предложении самое короткое число - Turbo Pascal

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

помогите пожалуйста сделать Задание 8 Введите в ЭВМ предложение длиной не более 80 символов, содержащее числа и слова без разделения их пробелами. Найдите в нем самое короткое число. Выведите на экран это число и его длину.

Код к задаче: «Найдите в предложении самое короткое число - Turbo Pascal»

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.

12   голосов, оценка 4.000 из 5


СОХРАНИТЬ ССЫЛКУ