СДАМ ГИА: РЕШУ ЕГЭ
Образовательный портал для подготовки к экзаменам
Информатика
≡ информатика
сайты - меню - вход - новости


Задания
Версия для печати и копирования в MS Word
Задания Д19 C4 № 3113

На вход программе подается последовательность символов, среди которых встречаются и цифры. Ввод символов заканчивается точкой (в программе на языке Бейсик символы можно вводить по одному в строке, пока не будет введена точка). Требуется написать как можно более эффективную программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая составит из тех цифр, которые встречаются во входных данных, максимальное число. При составлении итогового числа каждая цифра может быть использована только один раз. Если во входных данных цифры не встречаются, то следует вывести "-1".

 

Например, пусть на вход подаются следующие символы:

14ф73п439.

 

В данном случае программа должна вывести

97431

Решение.

var

c : char;

a : array [0..9] of boolean;

i : integer;

f : boolean; {флаг, показывающий, что в строке нашлись цифры}

 

begin

 

for i := 0 to 9 do a [i] := false; {обнуляем массив}

f := false; {обнуляем флаг}

read (c);

 

while ( c <> '.' ) do {поиск окончания введённой строки}

begin

if (ord( c )-48) in [0..9] then

 

begin

a [(ord( c )-48)] := true; {отнимаем 48 для того, чтобы получить искомое число}

f := true

end;

 

read (c)

end;

 

 

for i := 9 downto 0 do

if a [i]=true then write (i); {выводим результат}

if not f then write ('-1') {проверка на то, нашлись ли цифры}

 

end.