- •Основные понятия языка программирования паскаль
- •Структурное программирование
- •Основные символы языка
- •Элементы языка
- •Интегрированная среда turbo pascal
- •Структура программы в turbo pascal
- •Определение типов
- •Операторы в программе
- •Операторные скобки
- •Операторы ввода
- •Оператор присваивания
- •Оператор условного перехода
- •Оперетор безусловного перехода
- •Организация циклов
- •Использование операторов условного и безусловного перехода
- •Цикл с параметром
- •Цикл с предусловием - цикл while
- •Цикл с постусловием - цикл repeat
- •Оператор выбора варианта
- •Концепция типов данных
- •Стандартные простые типы Целый тип
- •Операции над данными целого типа:
- •Действительный тип
- •Операции над данными действительного типа:
- •Логический тип
- •Символьный тип
- •Символьные строковые константы
- •Нестандартные простые типы (определяемые пользователем)
- •Перечисляемый тип
- •Ограниченный тип (диапазон, интервал)
- •Процедуры и функции
- •Описание процедур
- •Стандартные процедуры
- •Описание функций
- •Стандартные функции
- •Итерация и рекурсия
- •Побочный эффект рекурсии
- •Предварительное описание (ссылки вперед)
- •Регулярные типы Одномерный массив
- •Алгоритмы сортировки массивов
- •1. Метод пузырька (метод обменной сортировки с выбором)
- •Многомерные массивы
- •Упакованные массивы
- •Множественные типы
- •Свойства множеств
- •Операции над множествами
- •Комбинированные типы Описание записей и действия с ними
- •Оператор присоединения.
- •Записи с вариантами
- •Типизированная константа
- •Простая типизированная константа
- •Структурированная (сложная) типизированная константа Типизированная константа массива
- •Типизированная константа записи
- •Типизированная константа множества.
- •Преобразование типов
- •Неявные преобразования типов
- •Использование стандартных функций для преобразования
- •Явные преобразования типов
- •Эквивалентность типов
- •Совместимость типов
- •Файловые типы
- •Определение файлового типа
- •Структура файла
- •Имя файла
- •Описание файлового типа
- •Файловая переменная
- •Операции над файлами
- •Типизированные файлы
- •Ссылочные типы (указатели) Статические и динамические переменные
- •Ссылочные типы (указатели)
- •Удаление узла из стека:
- •Человек
- •Человек
- •Вставка
- •Динамические переменные
- •Процедуры создания и удаления динамических переменных
- •Динамические списковые структуры
- •Однонаправленные списки
- •Двунаправленные списки
- •Очереди
- •Деревья
- •Модульная система turbo pascal
- •Uses mod 1, mod 2, mod 3; (подключение трех модулей) Общая структура модуля
- •Использование идентификаторов модуля
- •Использование модуля в программе
- •Компиляция модулей
- •Системный файл turbo.Tpl
- •Стандартные модули
- •Модуль crt
- •Модуль dos
- •Модуль printer
- •Модуль overlay
- •Модуль string
- •Процедуры модуля graph
- •Графические процедуры
- •Координаты. Окна. Страницы
- •Линии и точки
- •Многоугольники
- •Дуги,окружности, эллипсы
Регулярные типы Одномерный массив
Массив – это упорядоченный набор однотипных элементов. Под массивом понимается конечная совокупность данных одного типа, упорядоченных по значениям индекса. Каждый элемент массив обозначается именем массива и индексом. Индекс заключается в квадратные скобки.
Если в программе используется массив, он должен быть описан в разделе типов или в разделе переменных.
Описание в разделе переменных:
Var имя массива: Array [тип индекса] of тип элемента;
Тип индекса может быть любым простым типом, кроме Real и Integer (Boolean, Char, перечислимый, ограниченный).
Тип элементов массива – это базовый тип, из которого составлен массив. Это может быть любой простой или сложный тип – вообще любой допустимый в языке программирования Паскаль.
Var A: Array [1..5] of Real;
Это массив из пяти действительных чисел: А[1], А[2], А[3], А[4], А[5].
Обычно нумерация начинается с единицы и заканчивается каким-нибудь положительным числом. Однако это совсем не обязательно.
Пример: Var B: Array [1582..1994] of Integer;
Var C: Array [-754..-1] of Integer;
(это, например, население за какие-то годы нашей эры и до нашей эры).
Массив латинских букв: (можно посчитать частоту появления в тексте):
Var Lat: Array [‘A’..’Z’] of Integer;
Массив t0C воздуха на островах:
Type Остров = (Gaiti, Sumatra, Taimir);
Var T: Array [Остров] of Real;
Поскольку тип индекса не может быть стандартным целым или действительным типом, нельзя делать следующие описания массива:
Var А: Array [5] of Real;
Var А: Array[Integer] of Real;
Пример:
Var
Massiv: Array [1..N] of Real;
Year: Array [янв..дек] of Integer;
Если несколько массивов имеют одинаковый тип индексов и одинаковый базовый тип, то допускается в описание объединять массивы в список:
Var А, В, С: Array[1..50] of Real;
Здесь объявлено списком три массива действительных чисел, каждый из которых содержит по 50 элементов:
А[1], A[2],… A[50].
B[1], B[2],… B[50].
C[1], C[2],… C[50].
В качестве индекса может использоваться. выражение, частным случаем которого является константа или переменная. Элемент массива можно называть переменной с индексом. В отличие от нее переменная без индекса называется простой переменной.
Элементы массива записываются в разделе операторов как идентификатор с индексом в квадратных скобках.
B[5]:=B[3]-1;
Sum:=Sum-C[K];
P1:=A[2*3+1];
Для ввода и вывода числовых значений элементов массива используются циклы.
Пример:
For I:=1 to 9 do
Read(A[I]);
Это ввод 9-ти значений элементов массива А.
For I:=1 to 9 do
Writeln(A[I]);
Это их вывод.
Пример: Вычислить сумму 15-ти целых чисел.
Program Sum;
Var X: Array [1..15] of Integer;
I: 1..15;
Sum: Integer;
Begin
Sum:=0;
For I:=1 to 15 do
Begin
Read(X[I]);
Sum:=Sum+X[I];
End;
End.
В языке программирования Паскаль помимо явного описания массивов в разделе переменных есть другая форма описания, состоящая из двух этапов. Сначала в разделе описания типов Type указывается тип массива, затем в разделе описания переменных Var перечисляются массивы, относящиеся к донному типу.
Type имя типа = Array [тип индекса] of тип элементов массива;
Var имя массива: имя типа;
Пример: Программа с двумя процедурами: одна – для ввода элементов массива, другая для вычисления суммы и произведения элементов.
Program TI4;
Type Massiv = Array [1..20] of Real;
Var A, B: Massiv;
Sum, Pr: Real;
Procedure Vvod (N:Integer; Var X:Massiv);
Var I: Integer;
Begin
Writeln(‘Ввод’);
For I:=1 to N do Read(X[I]);
End;
Procedure Summa (N:Integer; Var X:Massiv; Var Sum, Pr: Real);
Var I: Integer;
Begin
Sum:= 0;
Pr:=1;
For I:=1 to N do
Begin
Sum:=Sum+X[I];
Pr:=Pr*X[I];
End;
End;
Begin
Vvod(8,A); (*вызов процедуры*)
Summa(8,A,Sum,Pr); (*вызов процедуры*)
Writeln (‘Sum=’,Sum:7:2,’ ’:3,’Pr=’,Pr);
Writeln;
Vvod(15,B);
Summa(15,B,Sum,Pr);
Writeln (‘Sum=’,Sum:7:2,’ ’:3,’Pr=’,Pr);
End.
В основной программе описан тип массива длинной 20 элементов, а реально используются массивы А (8 элементов) и В(15 элементов).
Пример: Расположить элементы заданного действительного массива в порядке убывания: 1 2 3 4 4 3 2 1
Program Rangir;
Const N=10;
Var A: Array [1..N] of Real;
I, K: Integer; R: Real;
Begin
Writeln(‘Ввод’);
For I:=1 to N do Read (A[I]);
For K:=1 to N do
For I:=1 to N-K do
If A[I]<A[I+1] then
Begin
R:= A[I];
A[I]:= A[I+1];
A[I+1]:=R;
End;
For I:=1 to N do Write (A[I]);
End.
K - номер просмотра строки (всего N-1 просмотров)
I - номер сравнение элементов в просмотре (N-K сравнений).