![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Readln(x);. 1) видим, что в последней строке выводятся на экран переменные a и b, поэтому сначала нужно определитьСтр 1 из 10Следующая ⇒
Begin a: = 0; b: = 0; Readln(x); while x > 0 do begin y: = x mod 10; if y > 3 then a: = a + 1; if y < 8 then b: = b + 1; x: = x div 10 End; Writeln(a); Writeln(b) End. Решение: 1) видим, что в последней строке выводятся на экран переменные a и b, поэтому сначала нужно определить, что они обозначают в программе 2) перед началом цикла переменные a и b обнуляются 3) на каждом шаге цикла при выполнении некоторых условий переменные a и b увеличиваются на 1, то есть представляют собой счётчики 4) увеличение переменных зависит от значения y = x mod 10, то есть от последней цифры числа 5) если последняя цифра числа больше 3, увеличивается счётчик a, если меньше 8 – счётчик b; 6) в конце каждого шага цикла операция x: =x div 10 отсекает последнюю цифру в десятичной записи числа 7) цикл заканчивается, когда перестаёт выполняться условие x > 0, то есть, когда все цифры исходного числа отброшены 8) таким образом, делаем вывод: после завершения цикла в переменной a находится количество цифр, больших 3, в десятичной записи числа, а в переменной b – количество цифр, меньших 8 9) если было выведено 4 и 2, то в числе 4 цифры больше 3 и 2 цифры меньше 8 10) так как число пятизначное, есть 4 + 2 – 5 = одна цифра, которая больше 3 и меньше 8 одновременно; она должна быть минимальной, поэтому эта цифра 4 11) для того чтобы число было минимальным, ещё одна цифра должна быть минимальной и меньшей 3 – это старшая 1, и три цифры минимальные из цифр, больших или равных 8, то есть три цифры 8 12) ответ: 14888. Ещё пример задания: P-05. Ниже записан алгоритм. Сколько существует таких чисел var x, a, b: integer; Begin readln(x); a: =0; b: =0; while x> 0 do begin a: =a + 1; b: =b + (x mod 10); x: =x div 10; End;
|