- •Содержание
- •1Алгоритмы линейных структур
- •2 Циклы
- •Введение
- •1 Алгоритмы линейных структур
- •1.1 Этапы разработки программы
- •1.2 Основные понятия
- •1.3 Основная структура программы
- •1.4 Алфавит языка
- •1.5 Идентификаторы
- •1.6 Константы
- •1.7 Понятие переменной Типы
- •1.8 Оператор присваивания Арифметические выражения
- •1.9 Операторы ввода и вывода информации
- •1.10 Практические задачи
- •1.11 Примеры решения задач
- •2 Циклы
- •2.1 Цикл с предусловием
- •Цикл с постусловием
- •Цикл со счетчиком
- •2.2 Задачи
- •2.3 Примеры
- •3 Немного об алгоритмах Алгоритм Кнута - Морриса - Пратта
- •Алгоритм Бойера – Мура
- •Алгоритм Рабина
- •Алгоритмы сортировки
- •Метод пузырька.
- •Сортировка выбором
- •Метод Шелла
- •Метод Хoopа
- •3.1 Разветвляющиеся алгоритмы
- •3.2 Задачи Свойства и виды треугольников (задачи 1-4)
- •Свойства и виды четырехугольников (задачи 5, 6)
- •Каким будет значение переменной а после выполнения фрагмента программы с составным оператором?
- •4 Массивы
- •4.1 Объявление массива
- •4.2 Действия над массивами
- •4.3 Вывод массива
- •4.4 Ввод массива
- •4.5 Сортировка массива
- •4.6 Поиск в массиве
- •4.7 Поиск минимального (максимального) элемента массива
- •4.8 Многомерные массивы
- •4.9 Ошибки при использовании массивов
- •4.10 Практические задачи
- •5 Множества
- •5.1 Описание типа множество
- •5.2 Операции над множествами
- •5.3 Группы операций
- •5.4 Упражнения
- •5.5 Задачи Тема: Множества
- •6 Записи
- •6.1 Понятие записи
- •6.2 Оператор присоединения With ... Do
- •6.3 Вариантные записи
- •6.4 Работа с файлами записей
- •6.5 Задачи
- •7 Файлы
- •7.1 Работа с файлами
- •7.2 Текстовые файлы
- •7.3 Типизированные файлы
- •7.4 Нетипизированные файлы
- •7.5 Задачи
- •8 Графика
- •8.1 Графика в Турбо Паскале
- •8.2 Базовые процедуры и функции
- •Процедуры модуля Graph
- •Функции модуля Graph
- •8.3 Экран и окно в графическом режиме
- •8.4 Вывод простейших фигур
- •8.5 Графические процедуры
- •8.6 Построение прямоугольников
- •8.7 Построение многоугольников
- •8.8 Построение дуг и окружностей
- •8.9 Работа с текстом
- •8.10 Построение графиков функций
- •8.11 Циклы в графике. Построение случайных процессов
- •8.12 Создание иллюзии движения
- •Задания
- •Контрольные тесты
- •1. Программирование алгоритмов линейных структур
- •2. Программирование алгоритмов разветвляющейся структуры
- •3. Программирование алгоритмов циклических структур
- •4. Массивы
- •5. Множества
- •6. Записи
- •7. Файлы
- •8. Графика
4 Массивы
Массив-это структура данных, которую можно рассматривать как набор переменных одинакового типа, имеющих общее имя. Массивы удобно использовать для хранения однородной по составу информации, например элементов таблиц, коэффициентов уравнений, матриц.
4.1 Объявление массива
Перед использованием массив, как и любая переменная, должен быть объявлен в разделе объявления переменных. В общем виде объявление массива выглядит так:
Имя:array[нижний индекс..верхний индекс] of тип;
где
Имя-имя переменной-массива;
array- ключевое слово, обозначающее, что переменная является массивом;
нижний индекс и верхний индекс- целые числа, определяющие диапазон изменения индексов(номеров) элементов массива и, неявно, количество элементов массива;
Тип-тип элементов массива.
Примеры объявления массивов:
Temper:array[1..31] of real;
Koef:array[0..2] of integer;
Name:array[1..30] of string;
При объявлении массива удобно использовать именованные константы. Именованная константа объявляется в разделе описания констант, который располагают перед разделом объявления переменных. Начинается раздел объявления констант словом const.
Например, массив названий команд чемпионата по футболу можно объявить так:
const
nt=18; (число команд)
sn=25; (предельная длина названия команды)
var team:array[1..nt] of string[sn];
Чтобы в программе использовать элемент массива надо указать имя массива и номер элемента(индекс), заключив его в квадратные скобки. Индекс может быть константой или выражением целого типа.
Например:
Team[1]:=zenit;
D:=koef[1]*koef[1]-4*koef[2]*koef[1]:
Readln(name[n+1]);
Writeln(temper[i]);
4.2 Действия над массивами
К типичным действиям над массивами относятся следующие:
вывод массива;
ввод массива;
сортировка массива;
поиск в массиве заданного злемента;
поиск в массиве максимального или минимального элемента.
4.3 Вывод массива
Под выводом массива понимается вывод на экран значений элементов массива. Если в программе необходимо вывести значения всех элементов массива, то для этого удобно использовать инструкцию for, переменная-счетчик, которой может быть использован как индекс элемента массива.
Пример:
program days:
var day: array[1..7] of string[11];
i: integer;
begin
day[1]:=’понедельник’;
day[2]:=’вторник’;
day[3]:=’среда’;
day[4]:=’четверг’;
day[5]:=’пятница’;
day[6]:=’суббота’;
day[7]:=’воскресенье’;
for i:=1 to 7 do
writeln (i ,’ ’,day[i]);
end.
4.4 Ввод массива
Под вводом массива понимается ввод значений элементов массива. Как и вывод массива, ввод удобно реализовать при помощи инструкции for. Чтобы пользователь программы знал, ввода какого элемента массива ожидает программа, следует организовать вывод подсказок перед вводом очередного элемента массива. В подсказке обычно указывают индекс элемента массива.
Пример:
program midtemp;
var day: array[1..7] of string[11]; (название дней недели)
i: integer;
temper: array[1..7] of real; (температура)
sum: real; (сумма температур за неделю)
sredn:real; (средняя температура за неделю)
begin
day[1]:=’понедельник’;
day[2]:=’вторник’;
day[3]:=’среда’;
day[4]:=’четверг’;
day[5]:=’пятница’;
day[6]:=’суббота’;
day[7]:=’воскресенье’;
writeln(‘задайте температуру воздуха за неделю’);
for i:=1 to 7 do
begin
writeln (day[i],’->’);
readln(temper[i]);
end;
(вычисление средней температуры за неделю);
sum:=0;
for i:=1 to 7 do
sum:=sum+temper[i];
sredn:=sum/7;
writeln (‘средняя температура за неделю:’, sredn:6:2);
readln;
end.