mozok.click » Інформатика » Обработка двумерных массивов данных
Інформація про новину
  • Переглядів: 1503
  • Автор: admin
  • Дата: 2-10-2017, 17:25
2-10-2017, 17:25

Обработка двумерных массивов данных

Категорія: Інформатика

К типовым задачам обработки двумерных массивов относятся задачи на нахождение сумм и количеств значений элементов в строках или столбцах по заданным условиям. Вычисления осуществляются с помощью типовых алгоритмов работы с массивами, особенность которых заключается в использовании вложенных циклов.

добавление значений элементов двумерного массива

Представьте, что вы управляете фирмой по продаже телефонов и вам нужно проанализировать динамику продаж по таблице. Если вас интересует суммарный объем продаж за январь, то нужно сложить элементы первого столбца массива Tabl1. Чтобы найти общее количество проданных телефонов марки Samsung, надо вычислить сумму элементов второй строки массива. Если же нужно найти общее количество проданных телефонов всех марок за первый квартал года, то следует вычислить сумму всех элементов массива.

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

Найти сумму элементов третьей строки массива Tabl[1..4, 1..6] of Integer.

 



Найти сумму элементов в каждой строке массива Tabl[1..4, 1..6]:

Найти сумму всех элементов массива Tabl[1..4, 1..6]:

Найти сумму элементов главной диагонали массива Tabl[1..4, 1..6]:

Поиск в двумерном массиве элементов с заданным свойством

К задачам на поиск элементов с заданным свойством относятся задачи на определение количества элементов в строке (столбце), удовлетворяющие определенному условию, определение наибольшего элемента в строке (столбце) и др.


Найти количество четных элементов в каждом столбце массива

Найти в каждой строке массива Tabl[1..4, 1..6] количество элементов, превышающих среднее арифметическое всех элементов массива.

Заполнить одномерный массив В[1..6] значениями максимальных элементов столбцов массива Tabl[1..4, 1..6].

Таким образом, обработка данных осуществляется путем применения типовых алгоритмов обработки одномерных массивов к строкам или столбцам двумерного массива.

Вопросы для самопроверки

1. Запишите оператор для вычисления суммы элементов первой строки массива Mas[1..5, 1..5].

2. Запишите оператор для вычисления суммы элементов главной диагонали массива Mas[1..5, 1..5].

3. Запишите фрагмент программного кода для замены нулями четных элементов массива Mas[1..5, 1..5].

4. Найдите максимальный элемент второго столбца массива A[1..4, 1..5].

5. Дан целочисленный массив A[1..4, 1..5]. Напишите фрагмент программного кода, реализующий создание одномерного массива В[1..5], элементы которого являются суммами столбцов массива А.

6. В 5 городов отправили вагоны с 10 различными видами товаров. Составьте программу для вычисления общей массы продукции, отправленной в каждый город, и общей массы продукции каждого вида.

Упражнение 39

Заполнить двумерный массив А[1..6, 1..7] случайными целыми числами из диапазона [-50,50]. Определить: а) сумму элементов k-й строки; б) средние арифметические значения элементов каждой строки;

в) максимальные значения для каждого столбца; г) количество положительных элементов k-й строки.

1) Создайте новый проект. Разработайте интерфейс программы (см. рисунок). Для таблицы StringGrid1 задайте значения свойств ColCount = 8, RowCount = 7.

Опишите массив А как глобальный: var Forml: TForml;

A: array[1..6, 1..7] of Integer;

В процедуре обработки события OnCreate для формы запрограммируйте: вывод заголовков строк и столбцов таблицы StringGrid1; заполнение массива А случайными целыми числами из диапазона [-50,50] и вывод значений элементов в таблицу StringGridl.

2) В процедуре обработки события onclick для кнопки Сумма элементов строки запрограммируйте: ввод номера строки k из текстового поля Editl; нахождение суммы k-й строки; вывод значения суммы из текстового поля Edit2.

3) Создайте процедуру обработки события onclick для кнопки Средние арифм. по строкам. Проанализируйте, какие действия выполняются для каждой строки.

4) Создайте процедуру обработки события onclick для кнопки Максимальные в столбцах.

5) Создайте процедуру обработки события onclick для кнопки Положительных в строке. Номер строки задается в поле Edit5.

6) Проверьте работу программы. Сохраните проект в папке Упражнение 39. Завершите работу за компьютером.

Компьютерное тестирование

Выполните тестовое задание 39 с автоматической проверкой на сайте interactive.ranok.com.ua.

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

Составление и выполнение алгоритма поиска значений в таблице в среде программирования

Задание: создать проект для решения задачи.

Дана таблица результатов школьного математического турнира, в котором участвовало 5 команд. Определить команду-победительницу и призеров турнира.

Оборудование: компьютер с установленной средой программирования Lazarus.

Ход работы

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

I. Расположение элементов управления на форме

1. Создайте новый проект. Измените значение свойства Caption формы (рис. 1).

2. Разработайте интерфейс программы. Возможный вид окна программы приведен на рис. 1. Компонент StringGrid предназначен для вывода турнирной таблицы; компонент Memo — для вывода массива рейтинга; компонент ListBox — для вывода списка призеров.

3. Настройте свойства элементов управления (см. рис. 1). Параметру StringGrid1.Options.goEditing задайте значение True.


II. Разработка программного кода

4. Опишите глобальный двумерный массив Tur: array[1..5, 1..6] of Integer для сохранения турнирной таблицы.

5. В процедуре обработки события OnCreate для формы запишите операторы для вывода заголовков строк и столбцов таблицы StringGrid1. Заголовку шестого столбца задайте значение Сумма.

6. В процедуре обработки события onclick для кнопки Занести баллы в массив запишите программный код, реализующий чтение значений из таблицы StringGrid1 и присваивание этих значений элементам массива Tur.

7. Вычислите сумму баллов каждой команды-участницы. Для этого в процедуре обработки события onclick для кнопки Найти сумму баллов команд запишите операторы для заполнения шестого столбца таблицы.

Алгоритм сложения элементов массива по строкам: для каждого значения индекса i значение суммы обнуляется, затем к значению суммы добавляются элементы i-й строки с первого по пятый. Полученное значение присваивается шестому элементу i-й строки.

8. Определите рейтинг команд и расположите их номера по убыванию суммы баллов. Наибольшая сумма баллов, которую может получить каждая команда в ходе турнира, равна 8 (четыре победы). Поэтому процедура добавления к массиву Memo1.Lines[k] номеров команд по убыванию суммы баллов может быть следующей:

9. В процедуре обработки события onclick для кнопки Определить победителей запрограммируйте вывод трех первых элементов массива Memo1.Lines[k] как номеров команд-призеров турнира.

Ill. Тестирование проекта

10. Проверьте правильность работы программы, заполнив турнирную таблицу так, как показано на рис. 2.

Числа в таблице означают: 2 — выигрыш,

1 — ничья, 0 — проигрыш.

11. Проверьте работу программы, запуская проект на выполнение для различных вариантов заполнения турнирной таблицы.

12. Сохраните проект в папке Практическая работа 13. Завершите работу за компьютером.

Сделайте вывод: как применять алгоритмы поиска значений в массиве для решения задач.

 

Это материал из учебника Информатика 9 класс Бондаренко

 






^