Задания к лабораторной работе.
Лабораторная работа № 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!