1-11 класс
  • 1-11 класс
  • 1 класс
  • 2 класс
  • 3 класс
  • 4 класс
  • 5 класс
  • 6 класс
  • 7 класс
  • 8 класс
  • 9 класс
  • 10 класс
  • 11 класс
Выберите класс
Предметы
Семакин
Дополнительное задание Параграф 21 ГДЗ Семакин 9 класс (Информатика)
Семакин, Залогова
9 класс
Класс
9
Предмет
Информатика
Автор
Семакин, Залогова

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

Задача

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

  1. Написать программу, которая запрашивает массив размерности $$N$$ и выводит на экран сам массив, а также наибольший и наименьший элементы массива. Протестировать программу на массивах размерностью 5 и 10 элементов.
  2. Написать программу, которая запрашивает массив из $$N$$ элементов, а затем делит все элементы массива на минимальный элемент. Протестировать программу на массивах размерностью 5 и 10 элементов.
  3. Написать программу, которая запрашивает массив из $$N$$ элементов и увеличивает все элементы массива на максимальный элемент. Протестировать программу на массивах размерностью 8 и 10 элементов.

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

  1. Написать программу, которая вводит массив из $$N$$ вещественных чисел, а затем меняет местами наибольший и наименьший элементы массива. Протестировать программу на трёх произвольных тестах.
  2. Дан одномерный массив $$A[N]$$ ($$N=2k$$). Найти $$\max(a_2,a_4,\ldots,a_{2k})+\min(a_1,a_3,\ldots,a_{2k-1})$$. Разработать для программы проверочные тесты и доказать правильность её работы.
  3. Дан одномерный массив $$A[N]$$. Удвоить минимальный элемент массива и уменьшить в два раза максимальный элемент массива. Протестировать программу на следующих исходных данных:
    а) 3 5 7 2 1 9 -3
    б) -4 7 8 2 3 7 2 3 5 1.

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

  1. Дан массив действительных чисел $$A[N]$$. Найти $$\max(a_1+a_{2n},a_2+a_{2n-1},\ldots,a_n+a_{n+1})$$. Протестировать программу на массивах размерностью 9 и 12 элементов.
  2. Дан массив действительных чисел $$B[N]$$. Требуется умножить все его элементы на квадрат минимального элемента, если $$a_k$$ 0, и на квадрат максимального элемента, если $$a_k<0$$ ($$1$$ $$k$$ $$N$$).
    Пример. Массив: 2 3 5 -4 -2 4 5.
    Протестировать программу на приведённом выше примере и на двух других произвольных тестах.
  3. Дана последовательность из $$N$$ различных чисел. Найти сумму её членов, расположенных между максимальным и минимальным элементами (в сумму включить и оба эти числа).
Подробный ответ

Для каждого пункта составим программу на Pascal. Сначала находим нужный элемент массива: минимальный, максимальный или оба сразу, а затем выполняем требуемое преобразование.

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[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, ‘, минимальный элемент = ‘, 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. Меняем местами наибольший и наименьший элементы массива.

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. Для массива $$A[N]$$, где $$N=2k$$, находим $$\max(a_2,a_4,\dots,a_{2k})+\min(a_1,a_3,\dots,a_{2k-1})$$.

program mas_2;
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. В условии есть ошибка с индексами. Скорее всего, требуется найти максимальную сумму двух рядом стоящих элементов.

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. Для примера из задания исходный массив должен быть таким: $$2, 3, 5, 4, -2, 4, 5$$. Тогда $$\min=-2$$, $$\max=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.

Ответ

Приведены готовые программы для всех пунктов задания.

Иллюстрация к решению «Дополнительное задание Параграф 21 ГДЗ Семакин 9 класс (Информатика)», 1
Иллюстрация к решению «Дополнительное задание Параграф 21 ГДЗ Семакин 9 класс (Информатика)», 3
Иллюстрация к решению «Дополнительное задание Параграф 21 ГДЗ Семакин 9 класс (Информатика)», 5



Общая оценка
4.3 / 5
Другие учебники
Другие предметы