§22 ГДЗ Семакин 10 класс (Информатика)
2. Вычислите количество точек с целочисленными координатами, попадающих в круг радиуса R (R > 0) с центром в начале координат.
3. Старинная задача. Сколько можно купить быков, коров и телят на 100 руб., если в сумме должно быть куплено 100 голов скота, а цена быка — 10 руб., цена коровы — 5 руб., цена теленка — 0,5 руб.?
4. Чем отличается итерационный цикл от цикла с заданным числом повторений?
5. Почему для программирования итерационных циклов не используется оператор цикла с параметром?
6. Запрограммируйте итерационный цикл вычисления функции ех (см. задание 9 из § 21) с точностью е. Сделайте два варианта программы: с циклами While и Repeat. Выполните вычисления для е = 10^-6, х = 2 и сопоставьте полученный результат со значением стандартной функции ехр (х).
7. Составьте программу определения количества четных и нечетных цифр в записи данного натурального числа.
8. Составьте программу определения наибольшей цифры в записи данного натурального числа.
1. Переберём все натуральные числа $$X, Y, Z$$ от 1 до 10 и проверим равенство $$X^2 + Y^2 = Z^2$$. Подходящие тройки:
$$3^2 + 4^2 = 5^2,$$
$$4^2 + 3^2 = 5^2.$$
2. Количество точек с целочисленными координатами внутри круга радиуса $$R$$ с центром в начале координат находим полным перебором всех целых $$x$$ и $$y$$ от $$-R$$ до $$R$$. Точка подходит, если $$x^2 + y^2 \le R^2$$.
3. Пусть куплено $$b$$ быков, $$k$$ коров и $$t$$ телят. Тогда составим систему:
$$ \begin{cases} b+k+t=100,\\ 10b+5k+0.5t=100. \end{cases} $$
Умножим второе уравнение на 2:
$$20b+10k+t=200.$$
Вычтем из него первое уравнение:
$$19b+9k=100.$$
Подбором получаем $$b=1$$, $$k=9$$, тогда $$t=100-1-9=90$$.
4. Итерационный цикл отличается от цикла с заданным числом повторений тем, что заранее неизвестно, сколько раз он выполнится: повторения продолжаются до выполнения некоторого условия.
5. Оператор цикла с параметром не используют, потому что в итерационных циклах число повторений заранее неизвестно, а цикл с параметром рассчитан на заранее заданное количество шагов.
6. Для вычисления $$e^x$$ используем ряд:
$$ e^x = 1 + \frac{x}{1!} + \frac{x^2}{2!} + \frac{x^3}{3!} + \cdots $$
Слагаемые считаем до тех пор, пока очередной член ряда не станет меньше $$\varepsilon$$. Для $$\varepsilon = 10^{-6}$$ и $$x=2$$ получаем значение, совпадающее со стандартной функцией $$\operatorname{exp}(2)$$ с высокой точностью.
program Test;
const
e=0.000001;
x=2;
var
a,y:real;
i:integer;
begin
writeln(‘exp(x)=’,exp(x):10:6);
y:=1;
a:=1;
i:=1;
while a>e do
begin
a:=a*x/i;
y:=y+a;
inc(i);
end;
writeln(‘while =’,y:10:6);
y:=1;
a:=1;
i:=1;
repeat
a:=a*x/i;
y:=y+a;
inc(i);
until a<=e;
writeln(‘repeat=’,y:10:6);
end.
7. При просмотре цифр числа справа налево считаем количество чётных и нечётных цифр отдельно.
program Test;
var a,c,n: longint;
begin
readln(a);
c:=0; n:=0;
while a>0 do
begin
if a mod 10 <> 0 then
if odd(a mod 10) then inc(n) else inc(c);
a:=a div 10;
end;
writeln(‘Чётных: ‘,c);
writeln(‘Нечётных: ‘,n);
end.
8. Чтобы найти наибольшую цифру, последовательно сравниваем текущую максимальную цифру с каждой цифрой числа.
program Test;
var x,y: integer;
begin
write(‘x = ‘);
readln(x);
y:=0;
while abs(x)>0 do
begin
if abs(x mod 10)>y then
y:=abs(x mod 10);
x:=x div 10;
end;
writeln(‘Наибольшая цифра числа = ‘, y);
end.
Ответ
1) $$X=3, Y=4, Z=5$$ и $$X=4, Y=3, Z=5$$.
2) Количество точек определяется перебором всех целых $$x$$ и $$y$$ из $$[-R;R]$$ по условию $$x^2+y^2\le R^2$$.
3) $$1$$ бык, $$9$$ коров, $$90$$ телят.
4) Итерационный цикл выполняется заранее неизвестное число раз.
5) Потому что цикл с параметром рассчитан на заранее известное число повторений.
6) Программа приведена выше; для $$x=2$$ значение совпадает с $$\operatorname{exp}(2)$$.
7) Программа приведена выше.
8) Программа приведена выше.