Помогите, пожалуйста! Мне надо подробное решение.На вход программе подается последовательность символов, заканчивающаяся точкой. Требуется написать программу, которая определяет, есть ли в этой последовательности десятичные циф...

Помогите, пожалуйста! Мне надо подробное решение. На вход программе подается последовательность символов, заканчивающаяся точкой. Требуется написать программу, которая определяет, есть ли в этой последовательности десятичные цифры, и выводит наибольшее число, которое можно составить из этих цифр. Ведущих нулей в числе быть не должно (за исключением числа 0, запись которого содержит ровно одну цифру). Если цифр нет, программа должна вывести на экран слово «Нет», а если есть – слово «Да» и в следующей строчке искомое число. Например, если исходная последовательность была такая: Day 10, mice 8: "Year" 7 is a mistake 91. то результат должен быть следующий: Да 987110  
Гость
Ответ(ы) на вопрос:
Гость
var   str, num: string; begin   readln(str); //str := 'Day 10, mice 8: "Year" 7 is a mistake 91.';   foreach c: char in str do     if (Char.IsDigit(c)) then       num += c;   for j: byte := 1 to length(num) - 2 do     for i: byte := 1 to length(num) - 1 do       if (num[i] < num[i + 1]) then       begin         str[1] := num[i];         num[i] := num[i + 1];         num[i + 1] := str[1];       end;   if (Integer.Parse(num) > 0) then   begin     while (num[num.Length - 1] = '0') do       num.Remove(num.Length - 1);     writeln('Да' + #13 + num);   end   else     writeln('Нет'); end.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы