Добавил:
kostikboritski@gmail.com Выполнение курсовых, РГР технических предметов Механического факультета. Так же чертежи по инженерной графике для МФ, УПП. Писать на почту. Дипломы по кафедре Вагоны Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
информатика (не сорт) / Шпоры / Шпоры к экзамену.doc
Скачиваний:
20
Добавлен:
12.08.2017
Размер:
111.62 Кб
Скачать

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 способа описания массива: По моему конспекту:

  1. type имя типа = array[t1, t2…tn] of to;

Var имя массива : имя типа;

  1. 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]);

Соседние файлы в папке Шпоры