Да здравствуют массивы ConfNina's Блог / 17.09.2016 Одними из важных тем школьного курса информатики являются темы, связанные с изучением массива - пронумерованной последовательности величин одинакового типа, обозначенной одним именем. Важность темы связана с ее прикладным характером. С массивами учащиеся встречаются, например, на уроках физики (температура воздуха в сентябре), химии (таблица Менделеева), математики (таблица умножения) и т.д. В практической деятельности в виде таблицы, например, может быть представлено расписание движения автобусов, расписание уроков, список подарков родственникам к Новому году и др. Проблемы изучения массивов поднимались на Галактике. Выделялись разные аспекты. Обратим здесь внимание на содержательную формулировку таких задач и некоторые моменты при выборе метода решения.Практическая значимость массивов, необходимость установления межпредметных связей информатики с другими учебными предметами, с жизнью, наводят на мысль о необходимости рассмотрения содержательных задач, где идёт речь о конкретных учебных и жизненных ситуациях, где не фигурирует массив, как таковой, где учащиеся должны сами его увидеть, ввести переменную и оперировать с ней.При этом важно делать акцент на оптимальное решение задачи, которое, в частности, может быть основано на идее: получи решение за один просмотр массива. Суть идеи заключается в отказе от работы с несколькими командами повторения, как это практикуют некоторые педагоги и, соответственно, учащиеся, организуя цикл для ввода элементов массива и отдельный цикл для просмотра элементов. Совмещение таких действий в одном цикле оптимизирует алгоритм и более приближает его к реальной ситуации: в жизни мы стараемся действовать именно так в условиях цейтнота времени.Кроме того, такие задачи носят игровой характер и могут решаться под девизами: "Получи быстрое решение", "Экономь время" и т.д.Пример 1. Кто отсутствует?В школу прибыла делегация иностранных гостей. После общих мероприятий должна состояться встреча гостей со школьниками. Гости пригласили на встречу по одному учащемуся из 1-го, 2-го, 3-го, ... 11-го классов. Дирекции это было сделать сложно, так как все учащиеся школы были достойны присутствия на подобной встрече. Всё же выбор был сделан. Участники встречи определены.До начала встречи остаётся одна минута. Хозяева нервничают: вместо 11 школьников они видят только 10. Нужно оперативно выяснить, из какого класса не пришел ученик на встречу.Напишите программу, которая запрашивает номер класса у каждого присутствующего ученика и затем выдаёт номер класса отсутствующего ученика.Решение.Дано: n[1:10] - номера классов прибывших на встречу учениковНайти: k - номер класса отсутствующего ученикаПри: все n[i] - различные натуральные числа от 1 до 11.Метод: Если бы на встречу прибыли все учащиеся, то можно было бы весь коллектив из 11 школьников задать в виде одного числа - суммы номеров классов:1 + 2 + 3 + ...+ 11 = 66.Комментарий. Здесь интересно обсудить методы быстрого вычисления суммы; в данном случае лучше использовать попарное симметрическое суммирование первого и последнего числа, 2-го и предпоследнего и т.д.: (1+11)+(2+10)+(3+9)+(4+8)+(5+7)+6=12х5+6=66.Если не придет один ученик (то есть в массиве 1, 2, 3, ..., 11 не окажется одного элемента), то номер класса можно найти путем вычитания суммы номеров классов пришедших учащихся из числа 66: k=66 - S, где S = n[1]+n[2]+...+n[10].Здесь есть поле деятельности и для сильных учащихся: например, реализация условия "При" (проверка, что действительно не пришло более одного ученика из одного и того же класса), обобщение задачи, то есть переформулировка и решение не для 11-ти, а для m элементов массива.Пример 2. Кто получит подарок?Накануне Нового года в школу пришла посылка и письмо следующего содержания: "Это новогодний подарок ученику 5-го класса - первому по списку в классном журнале мальчику".Напишите программу, которая вводит пол учеников и выводит номер ученика, который получит подарок.РешениеДано: n - количество учащихся, Pol[1:n] - пол ученика (m - мужской, f - женский).Найти: k - номер ученика, который получит подарок.Метод: Будем считать, что в классе есть хотя бы один мальчик (в этом случае количество учеников в классе можно не вводить).Тогда будем просматривать каждую строчку в списке учеников в журнале до тех пор, пока не встретим первого мальчика.Обсудите возможные риски, или поручите решение этой проблемы сильным учащимся. Далее рассмотрите вариант решения задачи, если посылка попала в женскую гимназию, где нет мальчиков. В последнем варианте уже следует вводить количество учеников в классе и, если пришлось просмотреть весь список, вывести сообщение, что "невозможно передать подарок по назначению". Дальнейшая работа над программой: - в посылке оказалось два подарка для первого по списку мальчика и первой по списку девочки;- подарок (или подарки) предназначается для последнего по списку мальчика;- для второго по списку мальчика;- работа с фамилиями учащихся и т.д.Задача 3. Числовая спиральРоботу дано задание переместиться по спирали: вначале слева направо, а в каждой следующей строке изменять направление движения на противоположное, при этом помечать каждую позицию очередным натуральным числом. Напишите программу с результатами выполненного роботом задания. От учащихся требуется внимательное рассмотрение чисел в каждой строке таблицы и обнаружение двух различных формул для вывода чисел в четной и нечетной строках:Дальнейшее развитие задачи: использование цвета при выводе чисел (случайный цвет для каждого числа; конкретный цвет для четных и нечетных строк); иной вид змейки (например, по столбцам или диагоналям); работа со случайными числами и т.д.Многие идеи о задачах с массивами можно почерпнуть отсюда. Здесь материал структурирован, содержит примеры.Вообще говоря, тема "Массивы" неисчерпаема, недаром известный математик Кнут, который написал несколько прекрасных книг об искусстве программирования, один из томов посвятил именно алгоритмам поиска и сортировки массивов. Статьи о массивах на Галактике:О. Мурина. Ассоциации: доступно о непонятномА. Шугай. От серьёзности к игре. Pascal массивы методика программирование