Вариант 3 Контрольная работа 5 ГДЗ Самостоятельные и контрольные работы Босова 8 класс (Информатика)
1. Составьте программу вычисления значения у = х^6 рациональным способом, т. е. за минимальное количество операций; х — произвольное натуральное число, не превышающее 5.
var
x,y: integer;
begin
write(‘x = ‘);
readln(x);
y:=sqr(x);
y:=sqr(y);
y:=y*sqr(x);
writeln(‘y = ‘,y)
end.
Окно вывода:
x = 3
y = 729
Python
x=int(input())
print(x,’в шестой степени =’,x**6)
2. Составьте программу вычисления значения выражения mах(х + у, х • у) + 2.
var
x, y, max: integer;
begin
write(‘x,y > > ‘);
readln(x, y);
if (x * y) > (x + y) then max := x * y
else max := x + y;
writeln(‘max + 2 = ‘,max + 2)
end.
Окно вывода:
x,y > > 2 2
max + 2 = 6
x,y > > 5 6
max + 2 = 32
Python
x,y=map(int,input().split())
if (x*y) > (x+y):max=x*y
else:max=x+y
print(‘max+2 = ‘,max+2)
3. Составьте программу нахождения суммы всех натуральных чисел из диапазона от А до В, включая А и В, кратных 5 и 13 (А и В вводятся с клавиатуры).
var
a, b, s, i: integer;
begin
write(‘a,b > > ‘);
readln(a, b);
s := 0;
for i := a to b do
if (i mod 5 = 0) and (i mod 13 = 0)
then s := s + i;
writeln(‘s = ‘, s)
end.
Окно вывода:
a,b > > 2 100
s = 65
Python
a,b=map(int,input().split())
s=0
for i in range (a,b+1):
if i%5==0 and i%13==0: s+=i
print(‘s=’, s)
Выполнение
1. Чтобы вычислить $$y=x^6$$ рационально, удобно сначала возвести число в квадрат, затем ещё раз в квадрат и умножить на $$x^2$$:
var
x, y: integer;
begin
write(‘x = ‘);
readln(x);
y := sqr(x);
y := sqr(y);
y := y * sqr(x);
writeln(‘y = ‘, y)
end.
Пример работы программы при $$x=3$$:
$$3^6 = 729$$
Python
x = int(input())
print(x, ‘в шестой степени =’, x ** 6)
2. Сначала находим большее из двух чисел $$x+y$$ и $$x \cdot y$$, затем прибавляем 2:
var
x, y, max: integer;
begin
write(‘x,y >> ‘);
readln(x, y);
if (x * y) > (x + y) then max := x * y
else max := x + y;
writeln(‘max + 2 = ‘, max + 2)
end.
Проверка:
при $$x=2$$, $$y=2$$ получаем $$\max(2+2, 2\cdot2)+2 = \max(4,4)+2 = 6$$;
при $$x=5$$, $$y=6$$ получаем $$\max(5+6, 5\cdot6)+2 = \max(11,30)+2 = 32$$.
Python
x, y = map(int, input().split())
if (x * y) > (x + y):
max = x * y
else:
max = x + y
print(‘max + 2 = ‘, max + 2)
3. Нужно просуммировать все числа на отрезке от $$A$$ до $$B$$, которые кратны и $$5$$, и $$13$$. Такие числа кратны $$65$$, поэтому можно проверять условие $$i \bmod 5 = 0$$ и $$i \bmod 13 = 0$$:
var
a, b, s, i: integer;
begin
write(‘a,b >> ‘);
readln(a, b);
s := 0;
for i := a to b do
if (i mod 5 = 0) and (i mod 13 = 0)
then s := s + i;
writeln(‘s = ‘, s)
end.
Для $$A=2$$ и $$B=100$$ подходят числа $$65$$, поэтому сумма равна $$65$$.
Python
a, b = map(int, input().split())
s = 0
for i in range(a, b + 1):
if i % 5 == 0 and i % 13 == 0:
s += i
print(‘s =’, s)