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

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

Задача

Практическое задание №27
Тема: Обработка массивов на языке Паскаль
1 уровень сложности
1. Написать программу, которая вводит массив из N целых чисел и выводит на экран этот же массив в прямом и обратном порядке. Протестировать программу на произвольных массивах, состоящих из 1 числа, из 5 чисел, из 10 чисел.
2. Написать программу, которая вводит массив из N целых чисел и выводит на экран номера отрицательных элементов и сами эти элементы. Протестировать программу для следующих массивов:
а) 3 5 -2 3 -2 0 -6 -8 1
б) -1 -2 -3 -4 0 -1 2 3
3. Написать программу, которая вводит массив из N целых чисел и выводит на экран элементы с чётными номерами. Протестировать программу на произвольных массивах размерностью 5 и 8 элементов.
4. Написать программу, которая вводит массив из N целых чисел и выводит на экран сам массив и сумму всех его элементов. Протестировать программу на следующих массивах:
а) 1 3 4 -2
б) 0 1 -2 10 11 12 -10 -3
в) 1 1 1 1 -1 -1 -1 -1
1.
program massiv_1;
const
n = 5;
var
a: array[1..n] of integer;
i: integer;
begin
for i := 1 to n do
read(a[i]);
for i := 1 to n do
write(a[i], ‘ ‘);//в прямом порядке
writeln;
for i := n downto 1 do
write(a[i], ‘ ‘)//в обратном порядке
end.
2.
program massiv_2;
const
n = 10;
var
a: array[1..n] of integer;
i: integer;
begin
for i := 1 to n do
read(a[i]);
writeln(‘i’:4,’a[i]’:8);
for i := 1 to n do
if a[i] < 0 then writeln(i:4,a[i]:8); end. 3. program massiv_3; const n = 10; var a: array[1..n] of integer; i: integer; begin for i := 1 to n do read(a[i]); writeln('i':4,'a[i]':8); for i := 1 to n do if i mod 2=0 then writeln(i:4,a[i]:8); end. 4. program massiv_4; const n = 10; var a: array[1..n] of integer; i, s: integer; begin for i := 1 to n do read(a[i]); s := 0; for i := 1 to n do begin write(a[i], ' '); s := s + a[i] end; writeln; writeln('Сумма элементов = ', s) end. 2 уровень сложности 1. Написать программу, которая запрашивает массив из N целых чисел, а затем складывает все элементы с нечётными номерами и все элементы с чётными номерами и выводит их суммы, а также сам исходный массив. Пример: Массив: 6 3 5 1 1 3 Суммы: 6+5+1=12 (элементы с нечётными номерами) и 3+1+3=7 (элементы с чётными номерами). Протестировать программу на приведённом выше примере, а также на двух других произвольных тестах. 2. Написать программу, которая вводит массив из N целых чисел и выводит на экран элементы с нечётными номерами в обратном порядке. Протестировать программу для следующих исходных данных: а) 1 3 5 6 8 9 б) -1 4 6 2 4 6 8 6 9 3. У прилавка магазина выстроилась очередь из N покупателей. Время обслуживания i-го покупателя равно ti. Определить время Ci пребывания i-го покупателя в очереди. Протестировать программу на следующих исходных данных: а) Номер покупателя – 5. Время обслуживания отдельных покупателей (в минутах): 1 1.5 2 1.5 2.5 3 1.5 1 б) Номер покупателя – 7. Время обслуживания отдельных покупателей (в минутах): 1 1.5 2 1.5 2.5 3 1.5 1 1. program massiv_1; const n = 10; var a: array[1..n] of integer; i, s1, s2: integer; begin for i := 1 to n do read(a[i]); s1 := 0; s2 := 0; writeln('Исходный массив'); for i := 1 to n do begin write(a[i], ' '); if i mod 2 = 0 then s1 := s1 + a[i] else s2 := s2 + a[i] end; writeln; writeln('Сумма элементов с четными номерами = ', s1); writeln('Сумма элементов с нечетными номерами = ', s2); end. 2. program massiv_2; const n = 10; var a: array[1..n] of integer; i: integer; begin for i := 1 to n do read(a[i]); writeln('Элементы с нечетными номерами в обратном порядке'); for i := n downto 1 do if i mod 2 < > 0 then write(a[i], ‘ ‘);
end.
3.
program massiv_3;
const
n = 10;
var
t: array[1..n] of real;
p: array[1..n] of integer;
c: real;
i, k: integer;
begin
writeln(‘Введи время обслуживания каждого покупателя’);
for i := 1 to n do
read(t[i]);
write(‘Введи номер покупателя’);
read(k);
c := 0;
for i := 1 to k do
c := c + t[i];
writeln(‘Покупатель с номером ‘, k, ‘ проведет в очереди ‘, c:6:2, ‘минут’)
end.
3 уровень сложности
1. Написать программу, которая в заданном одномерном массиве размерности N меняет местами соседние элементы, стоящие на чётных местах, с соседними элементами, стоящими на нечётных местах.
Пример:
Массив: 2 4 6 8 1 2
Результат: 4 2 8 6 2 1
Протестировать программу на приведённом выше примере, а также на двух других произвольных тестах.
2. Написать программу, которая вводит последовательность вещественных чисел, состоящую из N элементов, и определяет, является ли эта последовательность возрастающей. Разработать тесты для проверки правильности работы программы.
3. Дан целочисленный массив размерности N. Необходимо «сжать» массив, выбросив из него каждый второй элемент. Дополнительный массив использовать нельзя.
Пример
Исходный массив: 1 3 4 6 3 2
Результат: 1 4 3
Протестировать программу на приведённом выше примере, а также на двух других произвольных тестах.
1.
program massiv_1;
const
n = 10;
var
a: array[1..n] of integer;
i, c: integer;
begin
writeln(‘Введи массив целых чисел’);
for i := 1 to n do
read(a[i]);
writeln(‘Ввод исходного массива’);
for i := 1 to n do
write(a[i], ‘ ‘);
i := 2;
while i < = n do begin c := a[i - 1]; a[i - 1] := a[i]; a[i] := c; i := i + 2 end; writeln; writeln('вывод полученного массива'); for i := 1 to n do write(a[i], ' '); end. 2. program massiv_2; const n = 5; var a: array[1..n] of real; i: integer; f: boolean; begin for i := 1 to n do read(a[i]); f := true; for i := 2 to n do if a[i] < a[i - 1] then f := false; if f then writeln('Возрастающая') else writeln('Невозрастающая'); end. 3. program massiv_3; const n = 6; var a: array[1..n] of real; i, j: integer; begin for i := 1 to n do read(a[i]); writeln('Вывод исходного массива'); for i := 1 to n do write(a[i], ' '); writeln('Обнуление каждого второго элемента'); for i := 2 to n do if i mod 2 = 0 then a[i] := 0; i := 2; j := 3; while j < n do begin a[i] := a[j]; i := i + 1; j := j + 2 end; j := i - 1; writeln('Вывод полученного массива'); for i := 1 to j do write(a[i], ' '); end.

Подробный ответ

Для каждого пункта составим программу на Паскале, которая работает с одномерным массивом. В решениях используются стандартные циклы for и while, а также вывод результатов в удобном для проверки виде.

1. Вывод массива в прямом и обратном порядке:

program massiv_1;
const
  n = 5;
var
  a: array[1..n] of integer;
  i: integer;
begin
  for i := 1 to n do
    read(a[i]);
  for i := 1 to n do
    write(a[i], ‘ ‘);
  writeln;
  for i := n downto 1 do
    write(a[i], ‘ ‘);
end.

2. Вывод номеров отрицательных элементов и самих элементов:

program massiv_2;
const
  n = 10;
var
  a: array[1..n] of integer;
  i: integer;
begin
  for i := 1 to n do
    read(a[i]);
  writeln(‘i’:4, ‘a[i]’:8);
  for i := 1 to n do
    if a[i] < 0 then
      writeln(i:4, a[i]:8);
end.

3. Вывод элементов с чётными номерами:

program massiv_3;
const
  n = 10;
var
  a: array[1..n] of integer;
  i: integer;
begin
  for i := 1 to n do
    read(a[i]);
  writeln(‘i’:4, ‘a[i]’:8);
  for i := 1 to n do
    if i mod 2 = 0 then
      writeln(i:4, a[i]:8);
end.

4. Вывод массива и суммы его элементов:

program massiv_4;
const
  n = 10;
var
  a: array[1..n] of integer;
  i, s: integer;
begin
  for i := 1 to n do
    read(a[i]);
  s := 0;
  for i := 1 to n do
  begin
    write(a[i], ‘ ‘);
    s := s + a[i];
  end;
  writeln;
  writeln(‘Сумма элементов = ‘, s);
end.

5. Суммы элементов с нечётными и чётными номерами:

program massiv_1;
const
  n = 10;
var
  a: array[1..n] of integer;
  i, s1, s2: integer;
begin
  for i := 1 to n do
    read(a[i]);
  s1 := 0; s2 := 0;
  writeln(‘Исходный массив’);
  for i := 1 to n do
  begin
    write(a[i], ‘ ‘);
    if i mod 2 = 0 then s1 := s1 + a[i]
    else s2 := s2 + a[i];
  end;
  writeln;
  writeln(‘Сумма элементов с четными номерами = ‘, s1);
  writeln(‘Сумма элементов с нечетными номерами = ‘, s2);
end.

6. Элементы с нечётными номерами в обратном порядке:

program massiv_2;
const
  n = 10;
var
  a: array[1..n] of integer;
  i: integer;
begin
  for i := 1 to n do
    read(a[i]);
  writeln(‘Элементы с нечетными номерами в обратном порядке’);
  for i := n downto 1 do
    if i mod 2 <> 0 then write(a[i], ‘ ‘);
end.

7. Время пребывания покупателя в очереди:

program massiv_3;
const
  n = 10;
var
  t: array[1..n] of real;
  c: real;
  i, k: integer;
begin
  writeln(‘Введи время обслуживания каждого покупателя’);
  for i := 1 to n do
    read(t[i]);
  write(‘Введи номер покупателя’);
  read(k);
  c := 0;
  for i := 1 to k do
    c := c + t[i];
  writeln(‘Покупатель с номером ‘, k, ‘ проведет в очереди ‘, c:6:2, ‘ минут’);
end.

8. Обмен соседних элементов на чётных и нечётных местах:

program massiv_1;
const
  n = 10;
var
  a: array[1..n] of integer;
  i, c: integer;
begin
  writeln(‘Введи массив целых чисел’);
  for i := 1 to n do
    read(a[i]);
  writeln(‘Ввод исходного массива’);
  for i := 1 to n do
    write(a[i], ‘ ‘);
  i := 2;
  while i <= n do
  begin
    c := a[i — 1];
    a[i — 1] := a[i];
    a[i] := c;
    i := i + 2;
  end;
  writeln;
  writeln(‘вывод полученного массива’);
  for i := 1 to n do
    write(a[i], ‘ ‘);
end.

9. Проверка, является ли последовательность возрастающей:

program massiv_2;
const
  n = 5;
var
  a: array[1..n] of real;
  i: integer;
  f: boolean;
begin
  for i := 1 to n do
    read(a[i]);
  f := true;
  for i := 2 to n do
    if a[i] < a[i — 1] then f := false;
  if f then writeln(‘Возрастающая’)
  else writeln(‘Невозрастающая’);
end.

10. Сжатие массива без дополнительного массива:

program massiv_3;
const
  n = 6;
var
  a: array[1..n] of real;
  i, j: integer;
begin
  for i := 1 to n do
    read(a[i]);
  writeln(‘Вывод исходного массива’);
  for i := 1 to n do
    write(a[i], ‘ ‘);
  writeln(‘Обнуление каждого второго элемента’);
  for i := 2 to n do
    if i mod 2 = 0 then a[i] := 0;
  i := 2; j := 3;
  while j < n do
  begin
    a[i] := a[j];
    i := i + 1; j := j + 2;
  end;
  j := i — 1;
  writeln(‘Вывод полученного массива’);
  for i := 1 to j do
    write(a[i], ‘ ‘);
end.

Ответ

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



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