Дополнительное задание 1 Параграф 24 ГДЗ Семакин 8 класс (Информатика)

ЕК ЦОР: Часть2, глава 6, § 40. ЦОР № 8 Практическое задание №25 Тема: Программирование циклов и ветвлений на Паскале. Алгоритм Евклида 1 уровень сложности 1.



Решение задачи: ЕК ЦОР: Часть2, глава 6, § 40. ЦОР № 8 Практическое задание №25 Тема: Программирование циклов и ветвлений на Паскале. Алгоритм Евклида 1 уровень сложности 1.Решение задачи: ЕК ЦОР: Часть2, глава 6, § 40. ЦОР № 8 Практическое задание №25 Тема: Программирование циклов и ветвлений на Паскале. Алгоритм Евклида 1 уровень сложности 1.Решение задачи: ЕК ЦОР: Часть2, глава 6, § 40. ЦОР № 8 Практическое задание №25 Тема: Программирование циклов и ветвлений на Паскале. Алгоритм Евклида 1 уровень сложности 1.Решение задачи: ЕК ЦОР: Часть2, глава 6, § 40. ЦОР № 8 Практическое задание №25 Тема: Программирование циклов и ветвлений на Паскале. Алгоритм Евклида 1 уровень сложности 1.Решение задачи: ЕК ЦОР: Часть2, глава 6, § 40. ЦОР № 8 Практическое задание №25 Тема: Программирование циклов и ветвлений на Паскале. Алгоритм Евклида 1 уровень сложности 1.

Ниже вариант решения задания из учебника Семакин, Залогова 8 класс, Просвещение:

ЕК ЦОР: Часть2, глава 6, § 40. ЦОР № 8

Практическое задание №25

Тема: Программирование циклов и ветвлений на Паскале.

Алгоритм Евклида

1 уровень сложности

1. Набрать и отладить программу нахождения наибольшего общего делителя и протестировать её на следующих исходных данных:

а) a=40 b=64

б) a=32 b=16

в) a=12 b=20

г) a=5 b=12

2. Составить на языке Паскаль программу, которая запрашивает с клавиатуры N целых чисел и считает, сколько из них положительных, сколько отрицательных и сколько нулей. Разработать для программы не менее двух тестов и доказать правильность её работы.

3. Написать программу, которая выводит на экран все двухзначные числа, делящиеся на 3 или на 5 (использовать операции целочисленного деления div или mod).

1.

program task_1;

var

M, N: integer;

begin

write(taskВведи M и N > > task);

readln(M, N);

while M N do

if M > N then M := M - N

else N := N - M;

writeln(taskНОД=task, M)

end.

2.

program task_2;

var

i, a, k1, k2, k0, n: integer;

begin

k1 := 0; k2 := 0;k0 := 0;

write(taskВведи количество чиселtask);

readln(n);

for i := 1 to n do

begin

write(taskВведи число:task);

readln(a);

if a > 0 then k1 := k1 + 1

else if a

else k0 := k0 + 1

end;

writeln(taskПоложительных > > task, k1, task Отрицательных > > task, k2, task Количество нулей > > task, k0)

end.

3.

program task_3;

var

i: integer;

begin

for i := 10 to 99 do

if (i mod 3 = 0) or (i mod 5 = 0) then write(i, task task)

end.

2 уровень сложности

1. Составить программу нахождения наименьшего общего кратного (НОК) двух чисел m и n, используя формулу n*m=НОД(n,m)*НОК(n,m). Разработать тесты для проверки правильности работы программы.

2. Проверить, являются ли два числа a и b взаимно простыми. Два числа называются взаимно простыми, если их наибольший общий делитель равен 1. Протестировать программу для следующих исходных данных:

а) a=5 b=95

б) a=3 b=100

в) a=11 b=98

3. Написать программу сокращения дроби , где N – целое, M – натуральное число. Использовать алгоритм Евклида. Разработать тесты для проверки правильности работы программы.

1.

program task_1;

var

m, n, p, d: integer;

begin

write(taskВведи M, N > > task);

readln(m, n);

p := m * n;

while m n do //определение НОД

if m > n then m := m - n

else n := n - m;

d := m;//НОД

writeln(taskНОK =task, p div d)

end.

1) 10, 30

2) 40, 16

3) 15, 80

2.

program task_2;

var

a, b: integer;

begin

write(taskВведи a и b > > task);

readln(a, b);

while a b do

if a > b then a := a - b

else b := b - a;

if a = 1 then writeln(taskЧисла взаимно простыеtask)

else writeln(taskЧисла не взаимно простыеtask);

end.

3.

program task_3;

var

M, N, a, b, c: integer;

begin

write(taskВведи M и N > > task);

readln(M, N);

a := M; b := N;

while M N do

if M > N then M := M - N

else N := N - M;

c := M;

writeln(taskСокращенная дробь > task, a / c, task/task, b / c)

end.

1) 5 15

2) 24 4

3) 21 43

3 уровень сложности

1. Составить на языке Паскаль программу нахождения наибольшего общего делителя трёх чисел, используя следующую формулу: НОД(a,b,c)=НОД(НОД(a,b),c). Протестировать программу на следующих исходных данных:

а) a=40 b=64 c=120

б) a=32 b=45 c=60

в) a=11 b=220 c=33

г) a=175 b=1025 c=600

2. Написать программу, запрашивающую с клавиатуры целые числа и определяющую максимальное и минимальное из них. Окончание ввода – число 0. Протестировать программу для последовательности: -3 5 6 -11 24 -1 0.

3. Составить программу для графического изображения делимости чисел от 1 до N (N – исходное данное). В каждой строке надо выводить число и столько плюсов, сколько делителей у этого числа. Например, если исходное данное число равно 4, то на экране должно быть выведено:

1+

2++

3++

4+++

1.

program task_1;

var

a, b, c, d: integer;

begin

write(taskВведи a, b, c > > task);

readln(a, b, c);

while a b do

if a > b then a := a - b

else b := b - a;

d := a;//НОД a, b

while d c do

if d > c then d := d - c

else c := c - d;

writeln(taskНОД =task, d)//НОД a, b, c

end.

2.

program task_2;

var

a, max, min: integer;

begin

write(taskВведи число > > task);

readln(a);

max := a; min := a;

while a 0 do

begin

if a > max then max := a;

if a

write(taskВведи число > > task);

readln(a);

end;

writeln(taskmax=task, max, task min=task, min)

end.

3.

program task_3;

var

n, j, i: integer;

begin

writeln(taskвведите числоtask);

readln(n);

for i := 1 to n do

begin

write(i);

for j := 1 to n do

if (i mod j = 0) then

write(task+task);

writeln;

end;

end.