Перейти к содержанию
MediaSchool

Решение задач на ввод и вывод массивов

Раздел «Алгоритмы обработки массивов». Практическая работа по теме «Алгоритмы обработки массивов». КТП составлено по действующей официальной программе Республики Беларусь.

Открыт · Видео · Презентация · Методичка

Сначала — короткое объяснение

Ввод и вывод элементов массива

Короткое объяснение ввода и вывода элементов одномерного массива с помощью циклов в PascalABC.NET, порядка обхода и совпадения границ цикла с индексами массива.

На YouTube

Конспект урока

Язык примеров

Содержание урока адаптируется под выбранный язык

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

Пять команд read ещё можно написать вручную. Но хороший алгоритм должен одинаково работать и для пяти, и для пятисот элементов. Повторяющееся действие поручим циклу.

Цель урока: ввести и вывести все элементы массива циклом, согласовав границы цикла с границами массива.

Как цикл проходит по массиву

Для array[1..5] переменная i последовательно принимает значения 1, 2, 3, 4, 5.

ШагiВыполняемая команда
11read(a[1])
22read(a[2])
33read(a[3])
44read(a[4])
55read(a[5])

Полная программа

Предскажите результат для ввода 4 8 1 6 9.

program ArrayInputOutput;
var
  a: array[1..5] of integer;
  i: integer;
begin
  for i := 1 to 5 do
    read(a[i]);

  for i := 1 to 5 do
    write(a[i], ' ');
end.

Программа выведет 4 8 1 6 9: оба цикла обходят элементы в одном порядке.

Сделаем ввод понятнее

for i := 1 to 5 do
begin
  write('a[', i, '] = ');
  readln(a[i]);
end;

Подсказка не изменяет алгоритм, но показывает пользователю, какой элемент вводится сейчас.

Практическая работа

  1. Введите массив 7 2 9 4 1.
  2. Выведите весь массив.
  3. Измените второй цикл так, чтобы вывести только элементы с индексами 2, 3 и 4.
  4. Сохраните программу и приложите контрольный вывод.

Для пункта 3 ожидается: 2 9 4.

Диагностика: найдите первый неверный шаг

Фрагмент A

for i := 0 to 5 do
  read(a[i]);

Ошибка возникает уже при i=0: элемента a[0] нет.

Фрагмент B

for i := 1 to 6 do
  write(a[i]);

Первые пять шагов допустимы, шестой обращается к несуществующему a[6].

Задача с другими границами

Дан b: array[3..7] of integer.

  • цикл ввода: for i := 3 to 7 do read(b[i]);;
  • цикл вывода имеет те же границы;
  • каждый цикл выполняется 5 раз.

Самопроверка

Для c: array[-2..2] of integer ответьте:

  1. Какие значения принимает индекс?
  2. Сколько элементов в массиве?
  3. Какими должны быть границы полного цикла?

Ключ: −2, −1, 0, 1, 2; пять элементов; от −2 до 2.

Источник программы курса: учебная программа Республики Беларусь.

Скачать и открыть

Материалы урока

2 материала

Подготовка к уроку

2 материала

От сообщества

Материалы сообщества2

Дополнения от учителей к этому уроку. Проверены модерацией, но не являются редакционным контентом MediaSchool.

Поделиться материалом

Показано 2 из 2 · сначала новые

Все материалы урока

Комментарии

Войдите, чтобы оставлять комментарии.

Пока нет комментариев. Будьте первым!