
- •1. Условный оператор If.
- •2. Оператор цикла с параметром For.
- •4. While с предпроверкой условия:
- •5. Repeat с постпроверкой условия:
- •6. Файлы. Текстовые. Файлы данных.
- •7. Файла заданного типа.
- •8. Файлы содержащие структурированные данные.
- •9. Создание пользовательских подпрограмм.
- •10. Массивы с переменной размерностью. Динамическая память.
- •11. Создание пользовательского модуля.
- •13. Модуль dos.
- •14. Оверлей.
- •20. Запись.
- •21. Стандартный тип данных.
- •22. Константы.
- •23. Способы присваивания.
- •24. Метки и операторы перехода.
- •25. Глобальные и локальные переменые.
- •27. Меню debug.
- •28. Меню compile.
- •29. Меню run.
- •30. Директивы компилятора.
10. Массивы с переменной размерностью. Динамическая память.
Динамическая память – это оперативная память ПК, предоставляемая программе при её работе, за вычетом сегмента данных (64 Кбайт), стека (обычно 16 Кбайт) и собственно тела проги.
Вся динамическая память в ТП рассматривается как сплошной массив байтов, который наз. кучей.
Для работы с динамическими данными используются указатели. Процедуры для работы с указателями:
New (var P:pointer); процедура, которая создаёт новую динамическу пременную и устанавливает на неё указатель Р. Размер выделяемого блока памяти для той переменной соответствует размеру того типа на который указывает Р.
Dispose(var P:pointer); - процедура освобождение памяти, заданной динамической переменной.
GetMem (var P:pointer; Size:word); - процедура, которая создаёт новую динамическую переменную размером Size байт и помещает её адрес в Р.
FreeMem (var P:pointer; size: word); - процедура освобождения памяти, занятой динамической переменной Р^ размером Size байт.
Массивы с переменной размерностью:
Var N: real;
Mas: array [1..N] of pointer;
11. Создание пользовательского модуля.
Модуль - это автономно компилируемая программная единица, включающая в себя различные компоненты раздела описания (типы, константы, переменные, процедуры и функции) и. Возможно, некоторые исполняемые операторы инициирующей части. Структура модулей:
Unit <имя>; Interface
<интерфейсная часть>
Implementation
<исполняемая часть>
Begin
<инициирующая часть> END. Где Unit – зарезервированное слово (единица); начинает заголовок модуля. Implementation зарезер. слово (выполнение); начинает исполняемую часть.
Имя модуля служит для связи с другими модулями и основной программой. Эта связь устанавливается специальным предложением: Uses <список модулей>, где <список модулей> - список модулей, с которыми устанавливается связь; элементами списка являются имена модулей, отделяемые друг от друга запятыми.
Интерфейсная часть. Она открывается зарез. словом Interface. В этой части содержатся объявления всех глобальных объектов модуля (типов, констант, переменных и подпрограмм), которые должны стать доступными основной проге и/или другим модулям.
12. Стандартный модуль CRT.
Модуль CRT содержит подпрограммы управления текстовым выводом на экран дисплея, звуковым генераторм и чтения клавиатуры.
Процедуры и фунцкции и кое-что о модуле на ксерокопии (стр580-581).
13. Модуль dos.
Модуль DOS реализует ряд очень полезных программ операционной системы и обработки файлов. Ни одна из программ модуля DOS не определена в стандартном Паскале и поэтому они размещены в собственном модуле.
Процедуры даты и времени.
Procedure GetDAte (var YEAR, MONth, Day, DayofWeek:Word) – возвращает текущую дату.
И т.д. процедуры и функции даны на ксероксе (стр. 578-579).
14. Оверлей.
Оверлей – такой способ использования оперативной памяти, при котором в один и тот же участок памяти, называемый оверлейным буфером, попеременно по мере надобности загружаются различные оверлейные (перекрывающиеся) модули. При этом все оверлейные модули в готовом к работе виде хранятся на диске, а в оперативной памяти в каждый момент находится лишь один активный модуль и, возможно, небольшое число неактивных. Процедуры:
Ovrinit (<имя>) – инициализирет оверлейный файл.
Ovrsebuf (<длина>) – устанавливает размер оверлейного буфера. <длина> - выражение типа Longint задаёт новую длину буфера в байтах не больше той, которую устанавливает сама система автоматически.
Ovrinitems – обеспечивает использование расширенной памяти.
15.Модуль GRAPH.
Модуль GRAPH представляет собой мощную библиотеку графических подпрограмм универсального назначений, рассчитанную на работу с наиболее распространёнными графическими адаптерами IBM – совместимых с ПК.
Процедуры:
InitGraph (var Driver, Mode: Integer; Path: String) Инициализирует графический режим. Переменные Driver, Mode должны содержать тип графического драйвера и его режим работы. Параметр Path определяет маршрут поиска файла графического драйвера.
SetViewPort (x1, x2, y1, y2: Integer; ClipOn;Word) – создаёт на экране графическое окно . Если окно определено весь дальнейший графический вывод осуществляется относительно координат этого окна и отсекается его границами.
SetGraphMode – устанавливает новый графический режим и очищает экран.
SetTextStyle – устанавливает текущий шрифт, стиль и размер текста.
CloseGraph – закрывает графический режим.
ClearDevice – очищает экран.
OutText – выводит текстовую строку на экран.
OutTextXY – выводит текст в заданное место экрана.
16. Модуль GRAPH. Построение граф. линий.
Line(X1, y1, x2,y2) рисует линию от точки х1, y1 до х2, y2
SetBkColor – устанавливает цвет фона.
SetColor – устанавливает основной цвет, которым будет производиться рисование.
SetLineStyle – устанавливает толщину и стиль линии.
17. Встроенные математические функции.
Язык ТП представляет богатые возможности для построения сложных типов данных, которые задаются в разделе типов. Однако все они строятся на основе элементарных типов:
- четырёх стандартных - целый, действительный, символьный (Char) и Boolean. Над переменными целого типа определены следующие операции: +, - , *, /, div (деление нацело), Mod (вычисление остатка от целочисленного деления).
Операции отношения: =, <> (не равно), <,>, <=, >=.
С аргументами целого типа могут использоваться следующие стандарт. функции: sin(x), cos(x), ln(x), sqrt(x), arctan(x), exp(x)=ex – тип результата Real.
{Sqr=x2 , abs(x) = |x|} – integer.
Определены также стандартные функции преобразования значения действительного типа в значение целого типа: Trunc(x) – вырабатывает целый результат путём отбрасывания дробной части аргумента; Round(x) – вырабатывает целый результат путём округления до ближайшего целого.
Пр. x=21.53 то, Trunc(x)=21, а Round(x)=22.
18. Функции для работы со строками.
Length (str) – функция имеет значение текущую длины строки.
Copy (Str, i, j) копирует из строки Str подстроку длиной k начиная с позиции i.
Str:=’ABCDEFG’; str1:= Copy(str,4,2); (str1:=’DE’)
Delete(Str, i, j) удаляет из строки Str подстроку j начиная с позиции i.
Insert (str1, str2, i) – вставляет Str1 в Str2 начиная с позиции i.
Var str1, str2: string [10]; Begin
Str1:=’ABCDEFG’; str2:=’abcdefg’; insert (str1, str2, 5); End. (str1=’ABCDEFG’ str2=’abcdeABCDE’;)
Множества - наборы однотипных логически связанных друг с другом объектов. Количество элементов входящих в множество может меняться в пределах от 0 до 256.
Описание типа множества:
<Имя типа>=SET OF <баз.тип>. Здесь SET OF - множество из.
<баз.тип> - базовый тип элементов множества, в качестве которго может использоваться любой порядковый тип, кроме Word, Integer, Longint.
Пр. определения и задания множеств:
Type digitChar = set of ‘0’..’9’;
Digit = set of 0..9; var s1, s2, s3 : digitChar; s4, s5, s6 : digit; begin
…..
s1:=[‘1’, ‘2’, ‘3’]; s2:= [‘3’, ‘2’, ‘1’]; s3:= [‘2’, ‘3’]; s4:= [0..3, 6]; s5:= [4, 5]; s6:=[3..9]; …. End. В этом примере множества s1 и s2 эквивалентны, а множество s3 включено в s2, но не эквивалентно ему.
Над множествами определены следующие операции:
* пересечение; результат содержит элементы, общие для обоих множеств; например s4*s5 – пустое множнество.
+ объединение; результат содержит элементы первого множества, дополненные недостающими элементами из второго множества: S4+S5 содержит [0, 1, 2, 3, 4, 5, 6,].
- разность; реультат содержит элементы из первого множества, которые не принадлежат второму: s6-s5 содержит [3, 6, 7, 8, 9].
19. Массив. Под массивом понимается упорядоченная совокупность конечного числа данных одного типа. К необходимости применения массивов приходим всякий раз когда требуется связать и использовать целый ряд родственных величин. При описании массива надо указать общее число входящих в массив элементов и тип этих элементов:
var a:array [1..10] of real; b:array [0..50] of char; c: [3..4] of boolean;
Возможно 2 способа описания массива: По моему конспекту:
type имя типа = array[t1, t2…tn] of to;
Var имя массива : имя типа;
Var имя массива:array [t1, t2….tn] of to;
Здесь t1, t2 и tn – типы индексов массива. Они могут быть простыми и стандартными типами ТБ кроме real. n – размерность массива. to – базовый тип элементов массива. На n ограничений нет.
Возможно 2 способа описания массива: по кашапову:
1) Если массив создаётся на основе базового типа данных его можно определить в разделе объявления переменных: Var VectorA: array[1..8] of real;
x: array [-2..5] of integer; ch: array [1..255] of char;
2) если массив создаётся на основе пользовательского типа данных он объявляется в разделе Type: type matrix5 = array [1..5] of real; var A: matrix5;
B,C:matrix5;
Элементы массива сохраняются в памяти компа в соседних ячейках следующих друг за другом .
Двумерный массив: 1) A:array [1..3, 1..3] of byte;
2) Type matrix3x3 = array [1..3, 1..3] of byte ; Var A:matrix3x3;
В 2D массиве элементы делятся на 2 категории: строка и столбец: A[1,1]:=1; A[1,2]:=2; Элементы 2D массива храняться в памяти по строкам.
3D – массив: Var Kub:array [1..8, 1..8, 1..8] of byte;
для куба данные храниться по плоскостям, которые преобразуются в строки.
Для того чтобы обратиться к конкретному элементу массива надо указать его индексы в квадратных скобках через запятую.
Ввод массива Var A:array [1..9] of integer;
For i:=1 to 9 do read (A[i]);
Вывод for i:=1 to 9 do write (A[i]);