Задания к лабораторной работе.

Лабораторная работа № 4

 

Программирование с использованием массивов

 

Теоретическая часть

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

Перед использованием в программе массив, как и любая переменная, должен быть объявлен в разделе объявления переменных. В общем виде объявление массива выглядит так:

Имя: array [нижний_индекс..верхний_индекс]of тип;

где

· Имя — имя переменной-массива;

· array — ключевое слово, обозначающее, что переменная является массивом;

· нижний_индекс и верхний_индекс — целые числа, определяющие диапазон изменения индексов (номеров) элементов массива и, неявно, количество элементов (размер) массива;

· тип — тип элементов массива.

Примеры объявления массивов:

temp: array[1..31] ofreal;

koef: array[0..2] ofinteger;

При объявлении массива удобно использовать именованные константы, которые объявляются в разделе описания констант. Например, информацию о размерности массива можно объявить так:

Const

NT=18; SN=25;

Var

team: array[1..NT] ofreal;

Чтобы в программе использовать элемент массива, надо указать имя массива и номер элемента (индекс), заключив его в квадратные скобки. Индекс может быть константой или выражением целого типа. Например: temp[i], koef[2], name[n+l] и т. д.

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

Var

     massiv: array[1..10] ofinteger;

Begin

           for i:=1 to 10 do

           begin

                  write(‘Введите элемент ‘,i);

                 readln(massiv[i]);

            end;

Для вывода значений элементов массива, также может использоваться оператор for.

Помимо одномерных массивов в программах могут использоваться двумерные массивы.

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

Имя: array[НижняяГраницаИндекса1..ВерхняяГраницаИндекса1,

НижняяГраницаИндекса2..ВерхняяГраницаИндекса2]of Тип;

где НижняяГраницаИндекса1, ВерхняяГраницаИндекса1, НижняяГраницаИндекса2, ВерхняяГраницаИндекса2 — целые константы, определяющие диапазоны изменения индексов и, следовательно, число элементов массива. Остальные элементы описания имеют тот же смысл, что и для одномерных массивов.

Двумерные массивы удобно интерпретировать в виде прямоугольных матриц размерностью N x M, где N – число строк матрицы, а M – число столбцов. Например, описание двумерного массива натуральных чисел размера N х М может быть задано следующей строкой:

Var massiv: array[1..N, 1..M] of integer;

Положение каждого элемента массива massiv[i,j] определяется значением строки i и столбца j соответствующей матрицы.

П р и м е р 1. Дана матрица N x M, состоящая из натуральных чисел. Найти в ней наименьший элемент и определить его местоположение в матрице. Если таких элементов несколько, то определить их количество.

Блок-схема алгоритма решения представлена на рис. 1.

Рис. 1

Текст программы:

Program matrica;

        constt=20; s=20;

         var  A: array [1..t, 1..s] of integer; {двумерный массив для матрицы}

                  n, m : integer;                       {число строк и столбцов матрицы}

                  min : integer;                        {значение минимального элемента}

                  im, jm : integer;                   {индексы минимального элемента}

                  i, j : integer;                          {индексы текущего элемента}

                  k : integer;                             {количество минимальных элементов}

     begin

             write(‘Число строк n=’); readln(n);

              write(‘Число столбцов m=’); readln(m);

               for i:=1 to n do

               begin

                    write(‘Введите через пробел ‘,m,’чисел’);

                       for j:=1 to m do

                         read(A[i,j])

                end

          min:=A[1,1]; im:=1; jm:=1; k:=0;

          for i:=1 to n do        

               for j:=1 to m do

               if min>A[i,j] then

                  begin

                           k:=1; im:=i; jm:=j;

                           min:=A[i,j]

                  end  

                else

                      if min=A[i,j] then k:=k+1;

            if k=1 then writeln(‘В матрице 1 мин. элемент ‘,min, ‘в строке’,im,’и столбце’,jm)

                        elsewriteln(‘В матрице ‘,k,’минимальных элементов ‘,min)

     end.

 

 

Практическая часть

2. 1. Ознакомиться с описанием лабораторной работы и по указанию преподавателя запустить систему программирования Turbo Pascal.

2. 2. Для каждого из заданий составить блок-схему алгоритма решения и текст программы в рабочей тетради и предъявить их преподавателю. Для пояснения исходных данных, результатов и основных операций текст программы сопровождать комментариями.

2. 3. Набрать текст программы, сохранить его в рабочем каталоге и выполнить компиляцию программы.

2. 4. Устранить синтаксические ошибки, подобрать исходные данные и запустить программу на выполнение. Результаты зафиксировать в отчете в рабочей тетради.

2. 5. Аккуратно оформить отчет по лабораторной работе и предъявить его преподавателю. В отчете по каждому заданию должны быть отражены следующие пункты:

1. БСА алгоритма.

2. Исходный текст программы с комментариями.

3. Результаты отладки.

4. Результаты решения.

Задания к лабораторной работе.

1. Дан массив чисел. Найти в нем наибольший элемент и поставить его первым. Преобразованный массив вывести на экран.

2. Дан массив чисел. Написать программу, которая определяет, сколько раз введенное с клавиатуры число встречается в массиве.

3. Дана матрица чисел A(N,M). Написать программу, которая определяет номер строки, в которой сумма элементов матрицы минимальна.

4. Написать программу, которая в матрице чисел A(N,M) находит все элементы, превышающие по абсолютной величине заданное число B. Подсчитать число таких элементов и записать их в массив C.


Дата добавления: 2018-05-13; просмотров: 275; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!