Решение 50 типовых задач по программированию на языке Pascal Дата размещения сборника в сети


Данил Душистов: «Решение 50 типовых задач по программированию на языке Pascal»


Download 1.52 Mb.
Pdf ko'rish
bet56/77
Sana03.02.2023
Hajmi1.52 Mb.
#1152062
TuriРешение
1   ...   52   53   54   55   56   57   58   59   ...   77
Bog'liq
Задачи на Pascal

Данил Душистов: «Решение 50 типовых задач по программированию на языке Pascal» 
51 
9.
while a <> 0 do begin 
10.
if a mod 2 = 0 then prod := prod * a; 
11.
read(a) 
12.
end; 
13.
if prod <> 1 then writeln(prod) else writeln('
No such ele-
ments!') 
14.
end. 
Задача № 41. Вывести на экран произведение двузначных элементов последова-
тельности натуральных чисел, которые делятся на заданное число 
Формулировка. Дано натуральное число n, а затем последовательность натуральных чисел, 
ограниченная вводом нуля. Вывести на экран произведение двузначных элементов этой последова-
тельности, которые делятся на n
Решение. Задача очень похожа на предыдущую, только в этот раз нам необходимо проверять 
делимость не на 2 (это было условие четности), а на n. К тому же, мы должны рассматривать только 
двузначные члены. Для выявления двузначного числа мы, однако, не будем считать его разрядность 
и сравнивать ее с двойкой, а воспользуемся тем, что любое двузначное число больше 9 и меньше 
100. 
В связи с этим условие поиска члена последовательности, отвечающего заданным критериям, 
будет выглядеть так: (a > 9) and (a < 100) and (a mod n = 0)
Напомним, что and – это конъюнкция, причем наше выражение содержит три конъюнктивных 
члена, так как операция применяется дважды. Оно истинно тогда и только тогда, когда истинны все 
три члена, и ложно во всех остальных случаях. При этом конъюнктивные члены стоят в скобках, 
так как логические операции в языке Pascal имеют больший приоритет, чем операции сравнения и 
арифметические операции. То есть, если опустить скобки, то Pascal, вычисляя значение слева 
направо, выполнит сначала операции 9 and a100 and a и т. д., что в корне неправильно. 
Код: 
1.
program ProductOfReqNums; 
2.
3.
var 
4.
a, n, prod: word; 
5.
6.
begin 
7.
readln(n); 
8.
read(a); 
9.
prod := 1; 
10.
while a <> 0 do begin 
11.
if (a > 0) and (a < 100) and (a mod n = 0) then prod := 
prod * a; 
12.
read(a) 
13.
end; 
14.
if prod <> 1 then writeln(prod) else writeln('
No such ele-
ments!') 
15.
end. 

Download 1.52 Mb.

Do'stlaringiz bilan baham:
1   ...   52   53   54   55   56   57   58   59   ...   77




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling