- •Цель работы
- •Краткая теоретическая справка
- •2.1 Среда Turbo Pascal
- •2.2 Текстовый редактор среды Турбо Паскаля
- •2.3 Словарь языка Turbo Pascal
- •2.4 Структура программы на языке Turbo Pascal
- •2.5 Операторы ввода-вывода
- •Read ([ф.П.], сп. Ввода); или read (сп. Ввода); и readln ([ф.П.], сп. Ввода); или readln (сп. Ввода); или readln;.
- •Write ([ф.П.], сп. Вывода); или write (сп. Вывода); и writeln ([ф.П.], сп. Вывода); или writeln (сп. Вывода); или writeln;.
- •Порядок выполнения работы
- •Второй блок выводимой на экран информации:
- •Третий блок выводимой на экран информации:
- •Четвёртый блок выводимой на экран информации:
- •Содержание отчета
- •Варианты заданий
- •Контрольные вопросы
- •1 Цель работы
- •2 Краткая теоретическая справка
- •3 Порядок выполнения работы
- •4 Содержание отчета
- •5 Варианты заданий
- •6 Контрольные вопросы
- •1 Цель работы
- •2 Краткая теоретическая справка
- •2.1 Организация цикла с предусловием
- •2.2 Организация цикла с постусловием
- •2.3 Организация цикла с параметром
- •3 Порядок выполнения работы
- •4 Содержание отчета
- •5 Варианты заданий
- •6 Контрольные вопросы
- •1 Цель работы
- •2 Краткая теоретическая справка
- •2.1 Процедуры
- •Procedure имя_процедуры;
- •2.2 Функции
- •3 Порядок выполнения работы
- •4 Содержание отчета
- •5 Варианты заданий
- •6 Контрольные вопросы
- •1 Цель работы
- •2 Краткая теоретическая справка
- •Методы численного интегрирования
- •2.1.1 Метод прямоугольников
- •2.1.2 Метод трапеций
- •2.1.3 Метод Симпсона
- •3 Порядок выполнения работы
- •4 Содержание отчета
- •5 Варианты заданий
- •6 Контрольные вопросы
- •1 Цель работы
- •2 Краткая теоретическая справка
- •2.1 Понятие массивов, описание массивов в Turbo Pascal
- •А) с использованием разделов типа и переменных:
- •Б) с использованием только раздела переменных:
- •А) разделов типа и переменных в виде
- •Б) только раздела переменных в виде
- •2.2 Действия над массивами
- •2.3 Ввод данных в массивы
- •3 Порядок выполнения работы
- •4 Содержание отчета
- •5 Варианты заданий
- •6 Контрольные вопросы
- •1 Цель работы
- •2 Краткая теоретическая справка
- •2.1 Понятия динамических переменных
- •2.2 Ссылочный тип данных и адресация
- •2.3 Создание и удаление динамических переменных
- •2.4 Динамические массивы
- •Пример 1.
- •3 Порядок выполнения работы
- •4 Содержание отчета
- •5 Варианты заданий
- •6 Контрольные вопросы
- •1 Цель работы
- •2 Краткая теоретическая справка
- •2.1 Строковый тип данных
- •#7'Допущена ошибка !'#13'Нажмите клавишу ввода "Enter"',
- •2.2 Операции над строками
- •Concat ('abc', 'def');
- •3 Порядок выполнения работы
- •4 Содержание отчета
- •5 Варианты заданий
- •6 Контрольные вопросы
- •1 Цель работы
- •2 Краткая теоретическая справка
- •2.1 Понятие файла
- •2.2 Взаимодействие программ с файлами
- •2.3 Инициализация файла
- •2.4 Процедуры и функции для работы с файлами
- •3 Порядок выполнения работы
- •4 Содержание отчета
- •5 Варианты заданий
- •6 Контрольные вопросы
- •1 Цель работы
- •2 Краткая теоретическая справка
- •2.1 Модуль Graph
- •InitGraph (var Driver, Mode: integer; Path: string);
- •2.2 Вывод точек
- •2.3 Вывод отрезков прямых линий
- •SetLineStyle (Type, Pattern, Thickness);
- •2.4 Вывод прямоугольников и многоугольников
- •2.5 Вывод окружностей, эллипсов и их дуг
- •3 Порядок выполнения работы
- •4 Содержание отчета
- •5 Варианты заданий
- •6 Контрольные вопросы
- •1 Цель работы
- •2 Краткая теоретическая справка
- •2.1 Особенности вывода текста в графическом режиме
- •2.2 Стандартные средства Graph, обеспечивающие вывод текста
- •2.3 Шрифты
- •2.4 Вывод функциональных зависимостей
- •(* Определение начальных b конечных координат графика *)
- •(* Блок вычисления и рисования синусоидальной функции.
- •(* Получение номера ошибки, если инициализация режима не произошла *)
- •(* Блок вычисления и рисования синусоиды *)
- •(* Рисование синусоиды с помощью процедуры DrawPoly)
- •3 Порядок выполнения работы
- •4 Содержание отчета
- •5 Варианты заданий
- •6 Контрольные вопросы
2.2 Ссылочный тип данных и адресация
Динамические переменные в разделе описаний программы в явном виде не указывают, т.к. у них нет имени. Доступ к динамическим переменным осуществляется с помощью переменных специального типа данных, называемых ссылочными, а сами ссылочные переменные называют ссылками или указателями. Указатели могут быть типизированными и нетипизированными.
Типизированные указатели задают адреса области памяти, в которой хранятся или будут храниться данные базового, то есть заранее описанного стандартного или определённого программистом типа. Нетипизированные указатели задают адреса области памяти, в которой хранятся или будут храниться данные любого, заранее неизвестного типа.
Минимальной единицей памяти, которая может быть выделена под переменную или инструкцию программы, является байт. Каждый байт оперативной памяти имеет свой порядковый номер, называемый адресом.
Различные данные могут занимать в памяти один или несколько байт. Участок памяти, в котором хранится одно значение данных (один элемент данных), называют ячейкой памяти. Адресом ячейки является адрес её самого первого байта. Нумерация адресов начинается с нуля.
Структура объявления ссылочного типа данных выглядит следующим образом:
type
<имя типа ссылочной переменной> = ^<базовый тип д.п.>;
var
<имя д.п.> [, <имя д.п.>, ...] : <имя типа ссылочной переменной>;
<имя д.п.> [, <имя д.п.>, ...] : ^ <базовый тип д.п.> ;
Здесь д.п. – динамическая переменная. Базовым называют стандартный или заранее описанный тип данных.
Например, в разделе описаний программы (фрагмент приведен ниже) её строки описывают ссылочные типы и ссылочные переменные – указатели.
const
max = 150;
type
R = ^integer ;
T = ^real ;
A_mas = ^massiv;
massiv = array [1..max] of word;
var
a, b : R;
c : ^real;
d, f, g : T;
h, k : pointer;
m, n : A_mas;
Здесь R, T и A_mas – имена типов ссылочных (динамических) переменных целого (R) и вещественного (T) типов и типа массива (A_mas);
a и b – типизированные указатели (ссылочные переменные) на динамические переменные типа R, т.е. целого типа;
c, d, f и g – типизированные указатели на динамические переменные вещественного типа. Указатель "c" задан только в разделе переменных, а указатели d, f и g – через имя типа T;
m и n – типизированные указатели на динамические данные типа массива. При этом следует обратить внимание на то, что тип указателя massiv определён до определения базового типа array.
Перечисленные указатели называют типизированными, так как они связаны с адресами значений конкретных базовых типов.
Указатели h и k являются нетипизированными, так как описаны словом pointer, и могут ссылаться на данные любого типа.
В объявлениях ссылочных типов после символа "^" может стоять только простое имя типа, например, real, integer, string, но не string [15] или array [1..7] of integer.
В случае сложных имён типов используют переопределение типов, то есть сначала определяют одним словом тип, являющийся сложным, например, массивом, а затем этот тип используют с символом "^".
