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

  • docx
  • 10.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала pr24Двумерные массивы.docx

Практическая работа. Обработка двумерных массивов Цель работы. Выполнив эту работу, Вы научитесь:

Ÿ  выполнять     формализацию     задачи,     сформулированной     в     терминах

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

Ÿ  объявлять в программе двумерный массив;

Ÿ  использовать оператор цикла for для организации циклов структуры «цикл в цикле»;

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

Порядок выполнения работы

1.       Выберите из табл. 2.18 задание в соответствии с номером варианта.

2.       Рассмотрите пример выполнения задания.

3.       Укажите исходные данные и результаты, которые должны быть получены.

4.       Выполните формализацию задачи, сформулировав ее в терминах требований по обработке двумерного массива.

5.       Подготовьте тестовый вариант расчетов. Выполните расчеты с помощью калькулятора для тестового варианта.

6.       Составьте алгоритм и программу решения задачи.

7.       Выполните ввод и отладку программы в среде программирования Turbo Pascal. Для проверки правильности работы программы используйте подготовленный тестовый вариант расчетов.

8.       Предъявите результаты расчетов преподавателю.

9.       Оформите отчет по работе в соответствии с заданными требованиями.

Требования к содержанию и оформлению отчета по работе

Отчет по работе выполняется письменно в тетради. Отчет должен содержать: тему работы и условие задачи; описание исходных данных и результатов; формализацию задачи; текст программы на языке Паскаль; тестовый вариант расчетов и результаты расчета по программе.


Пример выполнения задания

Задание. В двумерном массиве B, состоящем из N строк и M столбцов, находятся размеры начисленной заработной платы N работников предприятия за M месяцев, т. е. B[ I, K ] это заработная плата работника предприятия с номером I за месяц с номером K.

Составить программу, позволяющую выполнить:

Ÿ  ввести с клавиатуры количество работников и количество месяцев, а также размеры заработной платы, для ввода исходных размеров заработной платы использовать подпрограмму-процедуру;

Ÿ  определить наименьшую заработную плату за месяц с номером 1;

Исходные данные:

N количество работников предприятия (целое число);

M количество месяцев (целое число);

B[ I, K ] (I = 1, 2, 3,…, N; K = 1, 2, 3,…, M) – массив значений заработной платы (значения вещественного типа);

Требуется определить:

MIN – наименьшую заработную плату за месяц с номером 1 (число с дробной частью);

Формализация задачи

Значения заработной платы представляют собой конечный набор (N M значений) однотипных данных. Для их хранения можно использовать двумерный массив В, состоящий из N строк и M столбцов ( B [ 1, 1 ] – заработная плата работника номер 1 за первый месяц, B [ 1, 2 ] заработная плата работника номер 1 за второй месяц, B [ 2, 1 ] – заработная плата работника номер 2 за первый месяц и т.д.

Абстрагируясь от физического смысла значений элементов массива, сформулируем задачу обработки абстрактного двумерного массива B.

Задача. Для заданного двумерного массива B, состоящего из N строк и M

столбцов, выполнить:


Ÿ  ввести с клавиатуры количество строк и количество столбцов массива, а также значения элементов массива;

Ÿ  определить наименьшее значение среди элементов столбца с номером 1 (MIN).

Задача свелась к выполнению типовых операций с двумерным массивом

(см. табл. 2.12).

Тестовый вариант расчетов Исходные данные                                   Результаты


N = 4; M = 3

Массив B:


MIN   = 4000;


 

5000

7000

11000

8000

12000

13000

11000

4000

12000

4000

5000

5000

Алгоритм решения задачи

Определение наименьшего значения элементов первого столбца (MIN) выполняется попарным сравнением элементов, при этом второй индекс элементов массива будет неизменным и равным 1. Блок-схема алгоритма решения задачи показана на рис. 2.18.

Программа program Lab_4; var n, m, i, k : byte; min : real;

b : array [ 1 .. 10, 1 .. 10 ] of real; begin

Writeln ( ' Введите количество строк и столбцов в массиве В ' ); Readln ( n , m );

Writeln ( ' Вводите значения зарплат из массива B построчно ' ); for i := 1 to n do

for k := 1 to m do


Readln ( b[ i , k ] );

{поиск минимального значения в первом столбце массива В}

min := b [ 1 , 1 ]; for i  := 1 to n do

if min > b [ i , 1 ] then min := b [ i , 1 ];

Writeln ( ' Минимальная зарплата за первый месяц= ' , min : 8 : 2 ); end.

Ввод исходных данных и результат расчета для тестового варианта показан на рис. 2.17.

Рис. 2.17. Результат работы программы


 


Рис. 2.18. Блок-схема алгоритма решения задачи

 

 

Варианты заданий


Таблица 2.18


 


Ÿ  выполнить задание в соответствии с номером варианта;

Ÿ  провести расчёты для N=4, M=3 и следующих значений заработной платы:

Ü  номер месяца

 

 

 

Ý

номер работника

Вариант

Задание

1

Определить наибольшее значение заработной платы работника с

номером 2.

2

Определить среднюю заработную плату работника с номером N.

3

Определить наибольшее значение заработной платы за месяц с

номером 1.

4

Вывести на экран номера работников, заработная плата которых за

месяц с номером 1 составила больше 6000 руб.

5

Вывести на экран номера месяцев, заработная плата за которые у

работника с номером 1 составила меньше10000 руб.

6

Определить суммарную заработную плату за месяц с номером 1.

7

Определить суммарную заработную плату за месяц с номером М.

8

Определить количество месяцев, за каждый из которых заработная

плата работника с номером 1 составила больше 6000 руб.

9

Определить наименьшее значение заработной платы работника с

номером 1.

10

Определить количество работников, заработная плата которых за

месяц с номером 1 составила больше 6000 руб.

11

Определить среднее значение заработной платы за весь период

среди всех работников.

12

Определить наименьшее значение заработной платы работника с

номером N.

 

1

2

3

1

5000

7000

11000

2

8000

12000

13000

3

11000

4000

12000

4

4000

5000

5000

 

 


13

Определить наибольшее значение заработной платы за месяц с

номером М.

14

Определить наибольшее значение заработной платы работника с

номером 1.

15

Определить суммарную заработную плату за месяц с номером 1.

 


 

Посмотрите также