Дана символьная строка, содержащая цифры от 0 до 9, объединенные в слова, разделенные между собой одним или несколькими пробелами. Рассматривая слова как числа, определить самое маленькое число — Pascal(Паскаль)

uses crt;
const ds=['0'..'9',' '];//допустимые символы для ввода
var s,s1:string;
    mn,c,a:integer;
    k,i:byte;
begin
clrscr;
repeat
k:=0;
writeln('Введите слова из цифр, разделенные пробелами:');
readln(s);
for i:=1 to length(s) do
if not(s[i] in ds) then k:=1;//если есть не цифры и не пробелы
if k=1 then writeln('Неверный ввод, повторите');
until k=0;
s:=s+' ';//добавим пробел в конец
while pos('  ',s)>0 do//удалим лишние, если 2 рядлм(в апострофах по 2 пробела, не 1)
delete(s,pos('  ',s),1);
if s[i]=' ' then delete(s,i,1);//если первый пробел, удалим
s1:=copy(s,1,pos(' ',s)-1);//копируем первое слово, пока оно минимум
val(s1,mn,c);//преобразуем в число
delete(s,1,pos(' ',s));//удалим его
while pos(' ',s)>0 do//пока есть пробелы
 begin
  s1:=copy(s,1,pos(' ',s)-1);//копируем первое по ходу слово до пробела
  val(s1,a,c);
  if a<mn then mn:=a;//если меньше мин, это будет пока минимумум
  delete(s,1,pos(' ',s));//удалим его с пробелом, следующее первое
 end;
write('Минимальное число=',mn);
readln
end.

Leave a Comment

+ 2 = 8