МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
УПРАВЛЕНИЕ ОБРАЗОВАНИЯ МОГИЛЕВСКОГО ОБЛАСТНОГО ИСПОЛНИТЕЛЬНОГО КОМИТЕТА
УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ
«МОГИЛЕВСКИЙ ГОСУДАРСТВЕННЫЙ ПОЛИТЕХНИЧЕСКИЙ КОЛЛЕДЖ»
Дисциплина Основы алгоритмизации
и программирования
УТВЕРЖДАЮ
Зам.директора по УР
________М.М. Федоськова
__06.01.2015
Лабораторная работа № 5
РАЗРАБОТКА, ОТЛАДКА И ИСПЫТАНИЕ ПРОСТЫХ ЦИКЛИЧЕСКИХ
АЛГОРИТМОВ И ПРОГРАММ ОБРАБОТКИ МАССИВОВ С ИЗВЕСТНЫМ
ЧИСЛОМ ПОВТОРЕНИЙ
МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ
Разработали преподаватели
Сергиенко О.В.
Пикулина А.Н.
2015
Обсуждено и одобрено
на заседании цикловой комиссии
спецдисциплин специальности
«Программное обеспечение
информационных технологий»
Протокол № 5 от 06.01.2015
1 Цель работы
1.1 Формирование умений разрабатывать простые циклические алгоритмы и программы обработки массивов с известным числом повторений, осуществлять их отладку испытание.
2 Методическое обеспечение
2.1 Методические рекомендации по выполнению лабораторной работы
2.2 Персональный компьютер IBM PC
3 Последовательность выполнения работы
3.1 Ознакомится с теоретическим материалом по обработке элементов массивов.
3.2 Выполнить индивидуальное задание.
3.3 Оформить отчет.
3.4 Составить ответы на контрольные вопросы.
4 Теоретическое обоснование
4.1 Понятие массива
Массив - упорядоченные данные одного типа.
Массивом часто обозначают характеристики объектов одного типа, имеющих одинаковые единицы измерения. Массив состоит из элементов, имеющих порядковые номера, т. е. элементы массива упорядочены. Таким образом, если объекты одного типа обозначить именем, например "A", то элементы объекта будут A[1], A[2] и т. д. В квадратных скобках указан номер элемента.
Порядковый номер элемента массива, обычно не несет никакой информации о значении элемента, а показывает расположение элемента среди других.
К элементам массива можно обращаться только по их номеру (индексу). Значения элементам массива присваиваются также как и другим переменным с учетом типа массива. Если элементы массива имеют один индекс, то массив называется одномерным или линейным, либо массив – вектор.
4.2 Одномерные массивы
Линейным массивом можно обозначить, например, оценки учеников класса. Каждая оценка является значением элемента массива оценок "A" и имеет порядковый номер (индекс).
Можно создать массив фамилий "S" учеников класса. Значением элемента массива будет фамилия ученика, а индексом - порядковый номер по списку. Пусть дан список фамилий учеников и их оценки:
Таблица 1 – Данные об учениках
N |
Фамилии |
Оценки |
1 |
Иванов |
5 |
2 |
Петров |
4 |
3 |
Сидоров |
5 |
4 |
Титов |
4 |
… |
… |
… |
30 |
Якупов |
4 |
Описание массивов: Var A: array[ 1. . 30 ] of byte;
S: array[ 1. . 30 ] of string;
{или} SO: array[ 1. . 30 ] of string[12];
Присвоение значений элементам массива:
"A" - A[1]:= 5; A[2]:= 4; и т. д.
"S " - S[1]:= 'Иванов'; S[2]:= 'Петров'; и т. д.
Приведем таблицу обозначений и соответствия элементам массива, их значений и индексов:
Таблица 2- Элементы массива
Номер элемента (индекс) |
1 |
2 |
3 |
4 |
i |
30 |
Элементы массива S Значения элементов |
S[1] Иванов |
S[2] Петров |
S[3] Сидоров |
S[4] Титов |
… |
S[30] Якупов |
Элементы массива А Значения элементов |
A[1] 5 |
A[2] 4 |
A[3] 5 |
A[4] 5 |
… |
A[30] 4 |
Рассмотрим некоторые приемы обработки массивов.
Для обработки всех элементов массива обычно применяется цикл For. Его параметр, например i используется для указания номера элемента массива. А так как i последовательно изменяется, на каждом шаге цикла он будет указывать на новый элемент.
Присвоим случайные значения в диапазоне от -30 до +40 ста элементам массива "R":
Randomize; for i:= 1 to 100 Do R[i]:= - 30 + Random(71);
Присвоим значения семи элементам массива "A" оператором Readln:
For i:= 1 to 7 Do
begin
Write( ' Введите A[ ' , i , ' ] = ' );
Readln( A [ i ] )
end;
В цикле удобно определять сумму элементов массива, наибольший (наименьший) элемент и создавать новые массивы, удовлетворяющие некоторому условию, например:
s:= 0;
for i:= 1 to 100 do s:= s + a[i]; { s - сумма элементов массива }
max:= a[1];
for i:= 1 to 100 do { поиск наибольшего элемента a[j] }
if a[i] > max then
begin
max:= a[i]; j:= i
end;
j:= 0; k:= 0;
for i:=1 to 100 do {создание новых массивов с элементами: b[j] >=0, c[k] <0}
if a[i] >= 0 then
begin
j:= j+1; b[j]:= a[i]
end
else
begin
k:= k+1; c[k]:= a[i]
end;
