- •Часть 1
- •4 Требование к отчету Отчет о проделанной работе должен содержать:
- •5 Теоретические положения
- •5.1 Элементы языка
- •5.1.1 Алфавит языка
- •5.1.2 Идентификаторы
- •5.1.3. Константы
- •5.1.4 Выражения
- •5.3 Структура программы
- •5.3.1 Заголовок программы
- •5.3.2 Блок описаний
- •5.3.3 Раздел действий (операторов).
- •5.4 Комментарии
- •5.5 Оператор присваивания
- •5.6 Процедура ввода информации
- •5.7 Процедура вывода информации на печать
- •6 Методические рекомендации
- •7 Контрольные вопросы
- •Приложение а
- •Приложение б Сообщения об ошибках.
- •Библиография
- •Методические указания к лабораторной работе
- •4. Требование к отчету Отчет о проделанной работе должен содержать:
- •5 Теоретические положения
- •5.1 Логические выражения
- •5.2 Составной оператор
- •5.3 Оператор if
- •6 Методические рекомендации
- •7. Контрольные вопросы
- •Приложение
- •Библиография
- •1 Цель работы
- •3 Порядок выполнения работы
- •4 Требования к отчету
- •5 Общие положения
- •5.1 Алгоритмы циклической структуры
- •5.2 Оператор цикла с параметром
- •5.3 Цикл с предпроверкой условия
- •5.4 Цикл с постпроверкой условия
- •6 Методические указания к выполнению работы
- •7 Контрольные вопросы
- •1 Цель работы
- •2 Задачи работы
- •3 Порядок выполнения работы
- •4 Отчет о проделанной работе должен содержать
- •5 Теоретические положения
- •5.1 Общие сведения о массивах
- •5.2 Одномерные массивы
- •5.3 Примеры основных типов задач с использованием одномерных массивов
- •5.3.1 Нахождение суммы элементов массива
- •5.3.2 Нахождение наибольшего элемента в массиве
- •5.3.3 Нахождение количества элементов массива, удовлетворяющих некоторому условию
- •5.3.4 Сортировка массива по возрастанию
- •5.4 Двумерные массивы
- •5.5 Примеры задач с использованием двумерных массивов
- •5.5.1 Нахождение наибольшего элемента в заданной строке матрицы
- •5.5.2 Нахождение элементов массива, удовлетворяющих определенному условию
- •5.5.3 Нахождение сумм элементов строк матрицы
- •6 Методические рекомендации к выполнению работы
- •7 Контрольные вопросы
- •Библиография
- •Приложение а Варианты заданий на тему «Одномерные массивы»
- •Приложение в Варианты заданий на тему «Двумерные массивы»
- •Методические указания к лабораторной работе
- •Использование строковых переменных в среде программирования Pascal
- •4 Отчет о проделанной работе должен содержать
- •5 Теоретические положения
- •5.1 Описание переменных строкового типа
- •5.2 Процедуры и функции по работе со строками
- •5.3 Некоторые алгоритмы решения задач с использованием строковых переменных
- •6 Контрольные вопросы
- •Библиография
- •Приложение а Варианты заданий для выполнения
- •4 Требования к отчету
- •5 Основные положения
- •Результаты работы Pascal-программы
- •Система тестов
- •Система тестов
- •6 Задачи для самостоятельного решения
- •Библиография
- •Приложение а
- •Приложение б
- •Приложение в
- •6 Задачи для самостоятельного решения
- •Система тестов
- •6 Задачи для самостоятельного решения
- •Библиография
5.3.4 Сортировка массива по возрастанию
Известны результаты соревнования 9 участников по стрельбе. Расположить данные результаты в порядке возрастания набранных при стрельбе очков.
Алгоритм решения данной задачи является наиболее сложным из приведенных выше примеров и требует использования вложенных циклов.
Один из способов сортировки массивов заключается в следующем. Сначала первый элемент массива в цикле сравнивается по очереди со всеми оставшимися элементами. Если очередной элемент массива меньше по величине, чем первый, то эти элементы переставляются местами. Сравнение продолжается далее уже для обновленного первого элемента. В результате окончания данного цикла будет найден и установлен на первое место самый наименьший элемент массива. Далее продолжается аналогичный процесс уже для оставшихся элементов массива, т.е. второй элемент сравнивается со всеми остальными и, при необходимости, переставляется с ними местами. После определения и установки второго элемента массива, данный процесс продолжается для третьего элемента, четвертого элемента и т.д. Алгоритм завершается, когда сравниваются и упорядочиваются предпоследний и последний из оставшихся элементов массива.
Программа реализации изложенного алгоритма может иметь следующий вид:
Program pr4;
Type STREL=array[1..9]of integer;
Var rez:strel;
i,j,s:integer;
Begin
For i:=1 to 9 do
begin
writeln(‘Введите результаты ’,i,’-го участника’);
readln(rez[i]);
end;
for i:=1 to 8 do
for j:=i+1 to 9 do
if rez[i]>rez[j] then
begin
s:=rez[j];
rez[j]:=rez[i];
rez[i]:=s;
end;
writeln(‘Отсортированные по возрастанию результаты:’);
for i:=1 to 9 do write (rez[i]:5,’ ‘);
end.
Здесь STREL – тип массива результатов стрельбы участников, rez[i] – переменная для описания результатов i-го участника (i меняется от 1 до 9). Вспомогательная переменная s используется при перестановке местами элементов массива.
5.4 Двумерные массивы
Массив, для задания элементов которого требуется использовать два индекса, называется двумерным. Примеры двумерных массивов: места в зрительном зале театра, где каждое место характеризуется номером ряда и номером кресла в ряду; таблица результатов спортивного чемпионата, где все команды характеризуется результатом игры с каждым из соперников и др.
Двумерные массивы, в которых диапазоны индексов начинаются с 1, также называются иногда матрицами. Размерность каждой матрицы определяется как MxN, где М – число строк в матрице, N – число столбцов.
Например, задана матрица А размерностью 3х4 следующего вида:
А=
Здесь элемент A[2,1]=5, A[1,2]=-7, A[3,2]=5, A[3,3]=-8. Первый индекс элемента двумерного массива задает номер строки матрицы, в которой расположен элемент, второй индекс – номер столбца.
Если число строк матрицы равняется числу столбцов, то матрицы данного типа называются квадратными. Элементы квадратной матрицы вида B[1,1], B[2,2], B[3,3]… составляют главную диагональ матрицы. Иногда вводят понятие побочной диагонали квадратной матрицы для элементов вида B[1,N], B[2,N-1], B[3,N-2]…B[N,1], где N – число строк (столбцов) матрицы.
Описание типов двумерных массивов в языке Pascal осуществляется аналогично описанию типов одномерных массивов с добавлением диапазона изменения второго индекса.
Примеры:
TYPE MATR=[1..4,1..5] OF INTEGER;
TYPE B=[2..9,0..6] OF REAL;
TYPE C=ARRAY[-1..4,-1..4] OF CHAR.
Также допускается указание имени другого типа массива в качестве типа элементов массива, например:
TYPE VEC=ARRAY[1..4] OF REAL;
MAS=ARRAY[1..5] OF VEC.
В результате приведенного выше описания тип массива MAS будет объявлен как тип двумерного массива, первый индекс которого будет меняться от 1 до 5, а второй индекс – от 1 до 4, т.е. размерность массива составит 5х4 элементов.
При вводе и выводе элементов двумерных массивов используются вложенные циклы, в которых внешний оператор цикла, как правило, задает изменение строк массива, внутренний оператор цикла – изменение столбцов.