Формирование значений элементов массива случайным образом и с клавиатуры и вывод их на экран
Операции работы с двумерными массивами аналогичны операциям работы с одномерными массивами, нужно только не забывать о различиях между массивами. Обычно при работе с двумерными массивами используются вложенные циклы. Очень часто значения элементов массива вводятся с клавиатуры. Этот способ задания информации слишком трудоемок при работе с массивами больших размеров. Для отладки широкого класса алгоритмов такой ввод информации должен быть заменен на формирование элементов массива случайным образом. Для этого используют встроенные средства Турбо Паскаля, процедуру Randomize и функцию Random. Вы уже сталкивались с этими средствами. Сегодня же наша задача создать процедуры различного ввода элементов в массив и процедуру вывода элементов на экран. Приведем пример формирования массива случайным образом. Эта процедура должна принять входными параметрами массив, количество строк и столбцов, заданные пользователем с клавиатуры в основном разделе операторов. Так как наша процедура будет воздействовать на пустой исходный массив, то его мы должны передать по ссылке. Количество строк и столбцов достаточно передать копиями по значению.
Теперь, чтобы воспользоваться этой процедурой, достаточно вызвать ее в основном разделе программы, передав ей параметры. Рассмотрим процедуру вывода элементов массива на экран. Для того, чтобы наш массив при выводе выглядел удобно в виде таблицы, поставим при переходе к новой строке пустой оператор writeln и применим формат вывода элементов на экран (:5).
Задание. Наберите программу-шаблон для работы с двумерными массивами. Как вы уже знаете из предыдущей темы, она должна содержать две процедуры ввода и процедуру вывода элементов заданного массива. Основной раздел операторов должен содержать диалог с пользователем и защиту программы от ввода недопустимых значений для количества строк и столбцов. Сохраните файл в соответствующем каталоге на своей дискете, а листинг решенной задачи покажите учителю для оценки. Рассмотрите процедуру, решающую следующую задачу. Задача. Дана таблица действительных чисел. Сосчитайте сумму всех чисел в таблице.
Обратите внимание, что внутри цикла со счетчиком i организован цикл со счетчиком j. В результате суммируются в начале числа 1-й строки (i=1, при j=1, 2,..., m), затем суммируются числа 2-й строки (i=2, при j=1, 2,..., m) и т.д. В данной программе в теле одного цикла содержится другой цикл. Такие циклы, как Вы уже знаете, называются вложенными. Причем цикл со счетчиком i является внешним, а цикл со счетчиком j - внутренним. Не забывайте основное правило при написании вложенных циклов: последний оператор внутреннего цикла должен либо предшествовать, либо совпадать с последним оператором внешнего цикла. Вложенные циклы напоминают матрешек, вложенных одна в другую. Задание. Откройте файл программы-шаблона, сохраните его под другим (соответствующем задаче) именем и дополните текст программы функцией нахождения суммы элементов, правильно преобразовав в нее рассмотренную выше процедуру. Внесите в программу необходимые операторы и комментарии. Покажите учителю файл программы и листинг для оценки.
Задание. Ниже приведен фрагмент решения некоторой задачи. Внимательно рассмотрев решение, сформулируйте решаемую задачу и оформите по всем правилам, применив знания текущего занятия. Файл и листинг решенной задачи покажите учителю для оценки.
Работа с элементами массива. Для обработки двумерных массивов могут применяться методы решения задач, рассмотренные в теме "Одномерные массивы". Поскольку положение элемента в двумерном массиве описывается двумя индексами (первый - номер строки, второй - номер столбца), программы большинства задач строятся на основе вложенных циклов. Рассмотрите предложенные ниже методы решения некоторых типов задач. Постарайтесь ответить на поставленные вопросы. С возникшими затруднениями обращайтесь к учителю. Нахождение количества элементов с данным свойством Задачи на нахождение номеров элементов с заданными свойствами и на нахождение количества таких элементов во всем массиве останутся практически такими же. В них только добавится второй цикл или вывод двух индексов вместо одного. Задача 1. Найти максимальный элемент массива и его индексы. Так как элементы могут повторяться, то договоримся, что будем запоминать только индексы первого максимального элемента. Опишем процедуру, которой передается массив, и ее результатом является значение максимального элемента и индексы первой встречи такого значения.
Задача 2. Найти количество отрицательных элементов в каждой строке. Рассмотрим несколько способов решения этой задачи.
Способ 1 - количество элементов каждой строки хранить в одномерном массиве (Y) соответствующей размерности. Тогда можно описать такую процедуру:
Способ 2 - использовать счетчик, находить количество элементов строки и выводить значение на экран.
Вопрос. Сравните предложенные способы решения задачи. Какой способ Вам понравился больше и почему?
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|