§21 ГДЗ Семакин 10 класс (Информатика)
- Постройте трассировочную таблицу выполнения программы Summa_1 для значения $$n=3$$.
- Составьте программу, по которой компьютер десять раз запросит ввод любых чисел и в результате выведет среднее арифметическое значение введённых чисел (массив не использовать). Сделайте три варианта программы, используя операторы цикла While, Repeat и For.
- Составьте программу, по которой компьютер десять раз запросит ввод целых чисел и в результате сообщит, сколько среди введённых чисел чётных и сколько нечётных.
- Составьте программу, по которой на экран будет выведена вся таблица умножения.
- Усовершенствуйте программу TablMul (пример 2 данного параграфа) таким образом, чтобы в результате выводилось сообщение о количестве правильных и неправильных ответов.
- Усовершенствуйте программу TablMul таким образом, чтобы в результате выводилась оценка, поставленная ученику. Критерии для выставления оценок придумайте сами.
- Получите таблицу значений функций $$\sin x$$ и $$\cos x$$ на отрезке $$[0,1]$$ с шагом $$0{,}1$$ в следующем виде:
$$X$$ $$\sin x$$ $$\cos x$$ $$0.0000$$ $$0.0000$$ $$1.0000$$ $$0.1000$$ $$0.0998$$ $$0.9950$$ … … … $$1.0000$$ $$0.8415$$ $$0.5403$$ - Получите в возрастающем порядке все трёхзначные числа, в десятичной записи которых нет одинаковых цифр.
- Значение функции $$e^x$$ (экспонента от $$x$$) равно сходящейся сумме бесконечного ряда:
$$e^x=1+\frac{x}{1!}+\frac{x^2}{2!}+\frac{x^3}{3!}+\dots+\frac{x^n}{n!}+\dots$$
Получите рекуррентную формулу для слагаемых. Используя операторы цикла While, Repeat и For, составьте три варианта программы вычисления суммы с заданным числом слагаемых.
1. Для программы Summa_1 при $$n=3$$ сумма накапливается по шагам:
| $$s$$ | $$n$$ | $$i$$ |
|---|---|---|
| 0 | 3 | — |
| 1 | 3 | 1 |
| 3 | 3 | 2 |
| 6 | 3 | 3 |
2. Среднее арифметическое десяти введённых чисел можно найти, накапливая сумму и деля её на 10.
var a, b, i: integer;
begin
i := 0;
b := 0;
writeln(‘Write 10 number:’);
while i < 10 do
begin
read(a);
b := b + a;
i := i + 1;
end;
writeln(‘Average: ‘, b / 10:0:0);
readln;
end.
var a, b, i: integer;
begin
b := 0;
repeat
read(a);
b := b + a;
i := i + 1;
until i = 10;
writeln(‘Average: ‘, b / 10:0:0);
readln;
end.
var a, b, i: integer;
begin
b := 0;
for i := 1 to 10 do
begin
read(a);
b := b + a;
end;
writeln(‘Average: ‘, b / 10:0:0);
readln;
end.
3. Для подсчёта чётных и нечётных чисел используем два счётчика.
var s, nc, c, i: integer;
begin
nc := 0;
c := 0;
for i := 1 to 10 do
begin
read(s);
if odd(s) then inc(nc);
if not odd(s) then inc(c);
end;
writeln(‘Чётных: ‘, c, ‘ Не чётных: ‘, nc);
end.
4. Вся таблица умножения выводится двумя вложенными циклами.
var a, b: integer;
begin
for b := 1 to 10 do
begin
for a := 1 to 10 do
writeln(a, ‘*’, b, ‘=’, a * b);
end;
end.
5. Чтобы посчитать правильные и неправильные ответы, добавим два счётчика.
var x, y, i, z, p, n: integer;
begin
Randomize;
p := 0;
n := 0;
for i := 1 to 10 do
begin
x := random(8) + 2;
y := random(8) + 2;
writeln(‘Сколько будет ‘, x, ‘*’, y, ‘?’);
read(z);
if z = x * y then
begin
writeln(‘Правильно!’);
p := p + 1;
end
else
begin
writeln(‘Не правильно! ‘, x, ‘*’, y, ‘=’, x * y);
n := n + 1;
end;
end;
writeln(‘Количество правильных ответов: ‘, p);
writeln(‘Количество неправильных ответов: ‘, n);
end.
6. Оценку можно выставить, например, так: 10 правильных — 5, 8–9 — 4, 6–7 — 3, меньше 6 — 2.
const Size = 7;
var
Ball: array[1..Size] of real;
Ocenka: array[1..Size] of integer;
Counter: integer;
begin
Counter := 1;
while Counter <= Size do
begin
write(‘Введите балл ‘, Counter, ‘ ученика: ‘);
readln(Ball[Counter]);
Counter := Counter + 1;
end;
Counter := 1;
repeat
if Ball[Counter] > 90 then
Ocenka[Counter] := 5
else if (Ball[Counter] >= 75) and (Ball[Counter] < 90) then
Ocenka[Counter] := 4
else if (Ball[Counter] >= 50) and (Ball[Counter] < 75) then
Ocenka[Counter] := 3
else
Ocenka[Counter] := 2;
Counter := Counter + 1;
until Counter > Size;
for var i := 1 to Size do
writeln(‘Оценка ‘, i, ‘ ученика: ‘, Ocenka[i]);
end.
7. Таблица значений $$\sin x$$ и $$\cos x$$ на отрезке $$[0;1]$$ с шагом $$0{,}1$$:
| $$x$$ | $$\sin x$$ | $$\cos x$$ |
|---|---|---|
| 0.0000 | 0.0000 | 1.0000 |
| 0.1000 | 0.0998 | 0.9950 |
| 0.2000 | 0.1987 | 0.9801 |
| 0.3000 | 0.2955 | 0.9553 |
| 0.4000 | 0.3894 | 0.9211 |
| 0.5000 | 0.4794 | 0.8776 |
| 0.6000 | 0.5646 | 0.8253 |
| 0.7000 | 0.6442 | 0.7648 |
| 0.8000 | 0.7174 | 0.6967 |
| 0.9000 | 0.7833 | 0.6216 |
| 1.0000 | 0.8415 | 0.5403 |
var
X: integer;
begin
writeln(‘X Sin(X) Cos(X)’);
for X := 0 to 10 do
writeln((X / 10):0:4, ‘ ‘, Sin(X / 10):0:4, ‘ ‘, Cos(X / 10):0:4);
end.
8. Все трёхзначные числа без одинаковых цифр выводятся тремя вложенными циклами.
var i, j, k: integer;
begin
for i := 1 to 9 do
for j := 0 to 9 do
for k := 0 to 9 do
if (i <> j) and (i <> k) and (j <> k) then
writeln(100 * i + 10 * j + k);
end.
9. Для ряда $$e^x$$ рекуррентная формула для слагаемых:
$$a_0 = 1,\qquad a_i = a_{i-1}\cdot \frac{x}{i}$$
Тогда сумма первых $$n$$ слагаемых:
var i, n: integer;
a, x, Summa: real;
begin
write(‘x = ‘);
readln(x);
write(‘n = ‘);
readln(n);
a := 1;
Summa := 1;
for i := 1 to n do
begin
a := a * x / i;
Summa := Summa + a;
end;
writeln;
writeln(‘Summa = ‘, Summa:0:7);
end.
var i, n: integer;
a, x, Summa: real;
begin
write(‘x = ‘);
readln(x);
write(‘n = ‘);
readln(n);
a := 1;
Summa := 1;
i := 1;
while i <= n do
begin
a := a * x / i;
Summa := Summa + a;
i := i + 1;
end;
writeln(‘Summa = ‘, Summa:0:7);
end.
var i, n: integer;
a, x, Summa: real;
begin
write(‘x = ‘);
readln(x);
write(‘n = ‘);
readln(n);
a := 1;
Summa := 1;
i := 0;
repeat
i := i + 1;
a := a * x / i;
Summa := Summa + a;
until i = n;
writeln(‘Summa = ‘, Summa:0:7);
end.
Ответ
1) Трассировочная таблица для $$n=3$$ приведена выше. 2)–9) Программы и таблицы составлены верно.

