Главная страница
Навигация по странице:

  • Порядок выполнения работы: Повторить теоретический раздел. Решить задачи (задания 1-9) Краткая теория

  • Матрица

  • Описание массива в разделе переменных: const

  • «Красивый» вывод элементов двумерного массива m x n: Следующий фрагмент программы выводит на экран значения элементов массива по строкам

  • Номер станции 1-й день 2-й день 3-й день

  • Объявление двумерного массива: var

  • Задание 2.

  • Главная диагональ квадратной матрицы n x n

  • Побочная диагональ квадратной матрицы n x n

  • Главная диагональ матрицы в Паскаль имеет формулу: i=j Побочная диагональ матрицы в Паскаль имеет формулу

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


    Скачать 0.56 Mb.
    НазваниеФормирование и обработка двумерных массивов
    Дата16.03.2023
    Размер0.56 Mb.
    Формат файлаdocx
    Имя файлаPrakticheskaya_rabota_10_Paskal_-_dvumernye_massivy.docx
    ТипПрактическая работа
    #994553

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

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

    Цель работы: получить навыки программирования работы с двумерными массивами

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

    1. Повторить теоретический раздел.

    2. Решить задачи (задания 1-9)


    Краткая теория

    Двумерный массив в Pascal


    Матрица или двумерный массив – это прямоугольная таблица чисел (или других элементов одного типа). Каждый элемент матрицы имеет два индекса (номер строки и номер столбца).



    Исходные данные для решения многих задач можно представить в табличной форме:

    Таблица результатов производственной деятельности нескольких филиалов фирмы может быть представлена так:

    zavod1: array [1..4] of integer;

    zavod2: array [1..4] of integer;

    zavod3: array [1..4] of integer;

    Или в виде двумерного массива так:

    Объявление двумерного массива:

    var A: array[1..3,1..4] of integer;

    Описание, ввод и вывод элементов двумерного массива


    Варианты описания двумерного массива

    1. Описание массива в разделе переменных:

      const N = 3;

      M = 4;

      var A: array[1..N,1..M] of integer;

    2. Описание массива через раздел type:

    const

    M=10;

    N=5;

    type

    matrix=array [1..M, 1..N] of integer;

    var A: matrix;

    Ввод двумерного массива m x n с клавиатуры:



    for i:=1 to N do

    for j:=1 to M do begin

    write('A[',i,',',j,']=');

    read ( A[i,j] );

    end;

    Заполнение случайными числами:



    «Красивый» вывод элементов двумерного массива m x n:

    Следующий фрагмент программы выводит на экран значения элементов массива по строкам:


    1

    2

    3

    4

    5

    for i:=1 to N do begin

    for j:=1 to M do

    write ( A[i,j]:5 );

    writeln;

    end;


    Рассмотрим следующую задачу: Получены значения температуры воздуха за 4 дня с трех метеостанций, расположенных в разных регионах страны:

    Номер станции

    1-й день

    2-й день

    3-й день

    4-й день

    1

    -8

    -14

    -19

    -18

    2

    25

    28

    26

    20

    3

    11

    18

    20

    25

    Т.е. запись показаний в двумерном массиве выглядела бы так:

    t[1,1]:=-8;

    t[1,2]:=-14;

    t[1,3]:=-19;

    t[1,4]:=-18;

    t[2,1]:=25;

    t[2,2]:=28;

    t[2,3]:=26;

    t[2,4]:=20;

    t[3,1]:=11;

    t[3,2]:=18;

    t[3,3]:=20;

    t[3,4]:=25;

    Объявление двумерного массива:

    var t: array [1..3, 1..4] of integer;


    Задание 1: Необходимо:

    1. Распечатать температуру на 2-й метеостанции за 4-й день и на 3-й метеостанции за 1-й день.

    2. Распечатать показания термометров всех метеостанций за 2-й день.

    3. Определить среднюю температуру на 3-й метеостанции.

    4. Распечатать, в какие дни и на каких метеостанциях температура была в диапазоне 24-26 градусов тепла.

    Задание 2. Найти сумму элементов массива (прямоугольной таблицы) размером [m x n]

    Задание 3. Найти максимальный элемент массива размером [m x n]

    Задание 4.
    Найти сумму всех элементов массива (переменная sum) 5 x 4, а также сумму элементов, составляющих столбцы таблицы (двумерного массива). Для хранения сумм столбцов чисел использовать одномерный массив (s).

    Задание 5.
    Найти сумму элементов двумерного массива [m x n] по строкам:

    2 8 1 9 : sum = 20

    3 1 7 2 : sum = 13

    4 5 6 2 : sum = 17


    Главная и побочная диагональ при работе с двумерными матрицами в Pascal

    Главная диагональ квадратной матрицы n x n (т.е. той, у которой количество строк равно количеству столбцов) проходит с верхнего левого угла матрицы (элемент 1,1) до правого нижнего угла матрицы (элемент n,n).

    Побочная диагональ квадратной матрицы n x n проходит с нижнего левого угла матрицы (элемент n,1) до правого верхнего угла матрицы (элемент 1,n).

    Формулу поиска элементов диагоналей проще всего искать, нарисовав элементы матрицы:

    1,1

    1,2

    1,3

    1,4

    2,1

    2,2

    2,3

    2,4

    3,1

    3,2

    3,3

    3,4

    4,1

    4,2

    4,3

    4,4

     
    Учитывая, что первая цифра в программе будет соответствовать счетчику i, а вторая — счетчику j, то из таблицы можно вывести формулы:

    Главная диагональ матрицы в Паскаль имеет формулу:
    i=j
    Побочная диагональ матрицы в Паскаль имеет формулу:
    n=i+j-1 (или j=n-i+1)

    где n — размерность квадратной матрицы

    Пример: Вывести на экран сначала главную диагональ квадратной матрицы из N строк и N столбцов, а затем ее побочную диагональ.

    Решение:


    Задание 6:
    Найти отдельно сумму элементов главной и побочной диагонали квадратной матрицы

    1 7 3 7

    2 1 8 3

    5 7 6 4

    8 2 3 1

    -------

    sum1 = 9

    sum2 = 30
    Задание 7: Сформировать матрицу размерностью n. Вывести ее на экран. Затем преобразовать ее, заменив необходимые элементы на 0:


    Задание 8: Сформировать матрицу размерностью n. Вывести ее на экран. Затем преобразовать ее, заменив необходимые элементы на 0:

    Задание 9: Сформировать матрицу размерностью n. Вывести ее на экран. Затем преобразовать ее, заменив необходимые элементы на 0:



    Задание 9: Составить программу, позволяющую с помощью датчика случайных чисел сформировать матрицу размерностью N. Определить:

     минимальный элемент, лежащий ниже побочной диагонали;

     произведение ненулевых элементов последней строки.


    написать администратору сайта