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

Решение #1

Изображение ЕК ЦОР: Часть 2, заключение, §6.1, ЦОР №6Практическое задание №30Тема: Поиск наибольшего и наименьшего элемента в массиве1 уровень сложности1. Написать...
Дополнительное изображение
Дополнительное изображение
Дополнительное изображение
Дополнительное изображение
Дополнительное изображение
Дополнительное изображение
Загрузка...

Рассмотрим вариант решения задания из учебника Семакин, Залогова 9 класс, Просвещение:
ЕК ЦОР: Часть 2, заключение, §6.1, ЦОР №6
Практическое задание №30
Тема: Поиск наибольшего и наименьшего элемента в массиве
1 уровень сложности
1. Написать программу, которая запрашивает массив размерности N и выводит на экран сам массив, а также наибольший и наименьший элементы массива. Протестировать программу на массивах размерностью 5 и 10 элементов.
2. Написать программу, которая запрашивает массив из N элементов, а затем делит все элементы массива на минимальный элемент. Протестировать программу на массивах размерностью 5 и 10 элементов.
3. Написать программу, которая запрашивает массив из N элементов и увеличивает все элементы массива на максимальный элемент. Протестировать программу на массивах размерностью 8 и 10 элементов.
1.
program mas_1;
const
n = 10;
var
a: array[1..n] of integer;
max, min, i: integer;
begin
writeln('Ввод массива');
randomize;
for i := 1 to n do
begin
a[i] := random(20) + 5;
write(a[i], ' ')
end;
writeln;
min := a[1]; max := a[i];
for i := 2 to n do
begin
if max < a[i] then
max := a[i];
if min > a[i] then
min := a[i];
end;
writeln('Максимальны элемент = ', max, ', минимальный элемент = ', min)
end.
2.
program mas_2;
const
n = 10;
var
a: array[1..n] of real;
min: real;
i: integer;
begin
writeln('Ввод массива');
randomize;
for i := 1 to n do
begin
a[i] := random * 20;
write(a[i]:4:2, ' ')
end;
writeln;
min := a[1];
for i := 2 to n do
if min > a[i] then
min := a[i];
writeln('Вывод обработанного массива');
for i := 1 to n do
begin
a[i] := a[i] / min;
write(a[i]:4:2, ' ')
end;
end.
3.
program mas_3;
const
n = 10;
var
a: array[1..n] of integer;
max,i: integer;
begin
writeln('Ввод массива');
for i := 1 to n do
read(a[i]);
max := a[1];
for i := 2 to n do
if max < a[i] then
max := a[i];
writeln('Вывод обработанного массива');
for i := 1 to n do
begin
a[i] := a[i]*max;
write(a[i]:4, ' ')
end;
end.
2 уровень сложности
1. Написать программу, которая вводит массив из N вещественных чисел, а затем меняет местами наибольший и наименьший элементы массива. Протестировать программу на трёх произвольных тестах.
2. Дан одномерный массив A[N] (N=2k).
Найти max(a2,a4,….a2k)+min(a1,a3,…a2k-1). Разработать для программы проверочные тесты и доказать правильность её работы.
3. Дан одномерный массив A[N]. Удвоить минимальный элемент массива и уменьшить в два раза максимальный элемент массива. Протестировать программу на следующих исходных данных:
а) 3 5 7 2 1 9 -3
б) -4 7 8 2 3 7 2 3 5
1.
program mas_1;
const
n = 10;
var
a: array[1..n] of real;
max, min: real;
i, imax, imin: integer;
begin
writeln('Ввод массива');
randomize;
for i := 1 to n do
begin
a[i] := random * 20;
write(a[i]:4:2, ' ')
end;
max := a[1]; imax := 1;
min := a[1]; imin := 1;
for i := 2 to n do
begin
if max < a[i] then
begin
max := a[i]; imax := i
end;
if min > a[i] then
begin
min := a[i]; imin := i
end;
end;
a[imin] := max; a[imax] := min;//обмен значений
writeln('Вывод обработанного массива');
for i := 1 to n do
write(a[i]:4:2, ' ')
end.
2.
program mas_1;
const
k = 5;
var
a: array[1..k * 2] of integer;
max, min, i: integer;
begin
writeln('Ввод массива');
randomize;
for i := 1 to k * 2 do
begin
a[i] := random(20) + 5;
write(a[i]:4, ' ')
end;
max := a[2]; min := a[1];
i := 4;
while i <= 2 * k do
begin
if max < a[i] then max := a[i];
if min > a[i - 1] then min := a[i - 1];
i := i + 2
end;
writeln;
writeln('max=', max, ' min=', min);
writeln('Сумма = ', max + min)
end.
3.
program mas_3;
const
n = 9;
var
a: array[1..n] of integer;
max, min, i: integer;
begin
writeln('Ввод элементов массива');
for i := 1 to n do
read(a[i]);
max := a[1]; min := a[1];
for i := 2 to n do
begin
if max < a[i] then max := a[i];
if min > a[i] then min := a[i];
end;
writeln;
writeln('max/2=', max / 2:4:2, ' min*2=', min * 2);
end.
3 уровень сложности
1. Дан массив действительных чисел A[N].
Найти max(a1+a2n, a2+a2n-1,…,an+an+1). Протестировать программу на массивах размерностью 9 и 12 элементов.
2. Дан массив действительных чисел B[N]. Требуется умножить все его элементы на квадрат минимального элемента, если ak 0 и на квадрат максимального элемента, если ak<0 (1 k N).
Пример
Массив: 2 3 5 -4 -2 4 5 (5 – максимальный элемент, -2 – минимальный)
Результат: 8 12 20 -100 -50 16 20
Протестировать программу на приведённом выше примере и на двух других произвольных тестах.
3. Дана последовательность из N различных чисел. Найти сумму её членов, расположенных между максимальным и минимальным элементами (в сумму включить и оба эти числа).
1.
В задании ошибка с индексами элементов. Скорей всего, предполагается найти максимальную сумму двух рядом стоящих элементов.
program max_1;
const
n = 12;
var
a: array [1..n] of real;
i: integer;
max: real;
begin
randomize;
for i := 1 to n do
begin
a[i] := random * 10;
write(a[i]:4:2, ' ')
end;
max := a[1] + a[2];
for i := 2 to n - 1 do
if max < a[i] + a[i + 1] then
max := a[i] + a[i + 1];
writeln;
writeln('', max:4:2);
end.
2.
Для получения приведенного в задании результата в исходном массиве не должно быть -4, т.к. минимальный элемент -2.
Вводите массив: 2 3 5 4 -2 4 5, и получите приведенный результат.
program max_2;
const
n = 7;
var
a: array [1..n] of real;
i: integer;
max, min: real;
begin
writeln('ввод массива');
for i := 1 to n do
read(a[i]);
max := a[1]; min := a[1];
for i := 2 to n do
begin
if max < a[i] then
max := a[i];
if min > a[i] then
min := a[i]
end;
writeln('max=', max:4:2, ' min=', min:4:2);
for i := 1 to n do
begin
if a[i] >= 0 then
a[i] := a[i] * sqr(min)
else
a[i] := a[i] * sqr(max);
write(a[i]:4:2, ' ');
end;
end.
3.
program max_3;
const
n = 10;
var
a: array [1..n] of integer;
i, max, min, imax, imin, s, c, b: integer;
begin
writeln('ввод массива');
for i := 1 to n do
read(a[i]);
max := a[1]; min := a[1];
imax := 1; imin := 1;
for i := 2 to n do
begin
if max < a[i] then
begin
max := a[i]; imax := i
end;
if min > a[i] then
begin
min := a[i]; imin := i
end;
end;
writeln;
writeln('max=', max, ' min=', min);
if imax > imin then
begin
c := imin; b := imax
end
else
begin
c := imax; b := imin
end;
s:=0;
for i := c to b do
s := s + a[i];
writeln('s=', s);
end.
ЕК ЦОР: Часть 2, заключение, §6.1, ЦОР №7
Программа-конструктор алгоритмов.
*Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания.
*размещая тексты в комментариях ниже, вы автоматически соглашаетесь с пользовательским соглашением