Вопросы и ответы к экзаменам В-1

1.
Алгоритм.Свойства алгоритма. Способы записи алгоритма (ПК.) Алгоритм- это последовательность арифметических и
логических действий над данными, приводящая к получению решения поставленной
задачи. Б) Определённость - каждый шаг алгоритма
должен быть строго сформулирован. В)
Связанность - на каждом следующем шаге используются результаты
предыдущего. Д) Результативность – алгоритм должен приводить к получению
конечных результатов Ж) Эффективность – применение а. должно давать какой бы-то
положительный временной результат (временной) В) Спец.
языки (алгоритмические и псевдокоды) (псевдокод - искусственный
неформальный язык, обычно состоит из элементов обычного языка сэлементами
программирования) 2. Линейные
иразветвляющиеся алгоритмы. Cтруктурныесхема алгоритмов. Правила
выполнения. CCA- при записи в виде структурной схемы алгоритм
представляется графически в виде последовательности блоковвыполняющих
определённые функции и блоки соединяются линиями возможно со стрелками. Внутри
блоков операции. Блоки нумеруются по порядку. По способуорганизации алгоритмов
ССА блоки делятся на линейные, разветвляющиеся и циклические. Начало—ряд операторов—конец. Разветвляющийся алгоритм
предусматривает выбор одной из нескольких последовательностей действий
взависимости от исходных данных или промежуточных результатов. Циклический алгоритм – это алгоритм обеспечивающий решение
задачи путём многократного повторенияпоследовательности действий. Участки,
которые многократно повторяются - называются циклами.
ЦИКЛЫ СО СЧЁТЧИКОМ
УПР. УСЛОВИЕМ Общее замечание: вход только в начало
цикла, а выход вследствие окончания цикла, оператором GOTO, процедурами прерхода
и выхода, находящимся в телецикла. Циклический алгоритм – это алгоритм
обеспечивающий решение задачи путём многократного повторенияпоследовательности
действий. Участки, которые многократно повторяются - называются
циклами. В итерационных циклах выполнение цикла
оканчивается при выполнении общего условия, связанного с проверкой монотонно
изменяющейсявеличины. Массив - это
упорядоченная последовательность величин, обозначаемая одним именем.Положение
каждого элемента в массиве определяется его индексом (индексами). В этом и
заключается упорядоченность. Индексы принято указывать в скобках послеимени
массива. Пусть
имеется некоторая последовательность величин 1, 2, 4, 8, 3. Все элементы этой
последовательностиимеют одно имя А. Отличаются они друг от друга индексами,
например, A[1]=1, A[2]=2, A[3]=4, A[5]=8, A[6]=3. При описании массива
указывается число его элементов, и это число остается постоянным при выполнении
программы. Каждый элемент массива имеет явноеобозначение, и к нему возможно
непосредственное обращение. Количество индексов в обозначении элемента
массива определяет размерность массива. Массивможет быть одномерным (один индекс
S[4]), двумерным (два индекса N[2,4]), трех мерным (три индекса Y[2,4,1]) и
т.д. Массив описывается в разделе описания переменных, при этом описание
массива включаетописание типа массива (тип его элементов, т.е. какие значения
они могут принимать) и типа индексов. Например, массив вещественного типа с
именем vector может быть описан следующим образом:var vector: array [1..50] of
real Это описание означает, что одномерный массив vector имеет 50
элементов типа real со значениями индекса 1,2, ...,50. Элементы этогомассива
будут иметь обозначения: vector[1], vector[2], ..., vector[50] var matrix [1..10,1..15] of integer Двумерный массив часто
называют матрицей. Первый индекс этого массива (номер строкиматрицы) принимает
значения из отрезка 1..10, а второй (номер столбца) - из отрезка 1..15.
Компоненты массива могут иметь обозначения: matrix[1,5], matrix[8,8],
matrix[i,j] и т.п. определяется двумерный массив в 3
строки и 4 столбца с именем for j:=1 to 4
do for i:=1 to 3 do вывод элементов двумерного массива в виде таблицы 6.Структуризация. Восходящее программирование. Проектирование
алгоритма перевода чисел из одной системы счисления в другую
(2,8,10,16). Восходящее проектирование – используется для несложных
задач, когда заранее известны все подзадачи илифункции, которые выполнять
программа. Разрабатывается алгоритм для каждой подзадачи, а затем они собираются
в единую подпрограмму. 7. Нисходящеепрограммирование.
Проектированиеалгоритма выполнения арифметическихопераций (+,-,*,/) над
числами с пл. точкой. При нисходящем программировании сверху вниз сначала
разрабатывается общая структурная схемаалгоритма, а затем разрабатываются этапы
её детализации (структурирование). ТП – единство двух самостоятельных начал
компилятора и инструментов програмной оболочки. Это мощная современная
процедурная системапрограммирования Цифры – арабские 0-9, спец. символы +-
*/=.,:;<>[]{}()^&$@#%! Зарезервированные слова и параметры (не используются в
качестве идентификаторов). Стандартные директивы absolute, assembler, external,
far, forward,near и т.д. . Идентификаторы: имена констант, var'ных, меток
, типов, obg-ов, процедур, функций(могут иметь произвольную длину,но значат
только первые 63 символа, начинаются только с буквы или цифры). IF<условие >THEN<операторы> ELSE
<операторы>; FOR
<идентификатор>:=<начальное состояние >TO<конечное состояние >
DO<оператор> 12. Операторцикла с
постусловием. 13. Подготовкаи отладка программ в
среде TurboPascal. Trace into- пошаговое исполнение
программы только подпрограммы выполняются оператор за оператором Parameters- окно для ввода параметров для отладки Make – условная компиляция изменённых модулей в ЕХЕ
файл Target…-выбор в окне таргет целевой платформы для
приложения Breakpoints- установка точек
условного и безусловного перехода User screen – просмотр результатов включая
графику Add
watch – окно значений и переменных вовремя отладки 14. Константыв TURBO PASCAL
(целые, вещественные, 16-ричные, логические, символьные, строковые
константы,конструктор множества) Константы - могут использоваться целые,
вещественные, шестнадцатеричные числа, логическиеконстанты, символы, строки,
множества и признак неопределённого указателя NIL. 16-ричное число: $(код 36 в ASCII) $00000000-
$F…$F(8) Символьная константа:
любой символ в ' ', либо указатель внутри кода #83='S' [1,2,3,4],[red, blue],[true,
false]. В ТП разрешается объявление констант Типизированные константы
фактически являются переменными со статическим классом памяти. В отличие от
простых констант, в описаниитипизированных указывается как значение константы,
так и её тип. Константа, константа-адрес,
константа-массив, константа-запись, константа-объект, константа-множество.
1 массив (array) 16. Операторприсваивания. Приоритет операций. Стандартные
функции.
арифметические логические отношения
прочие 1 NOT
@-адресное преобразование 4
<;>;=; IN ABS(X ) SQR(X)
SQRT(X) TRUNG(X) ROUND(X) LN(X)
PRED(X) SUCE(X) ORD(X)
CHR(X) MOD(X) NOT AND
OR XOR 17. Операторы и функциибезусловногоперехода
(goto, continue, exit, halt). HALT(COD);- (COD) – необязательный параметр, определяет код 18. Структурыпростой и
сложной программ в Турбо-Паскале. LABEL<метки>; FUNCTION<имя функции>(имя переменной:
тип) 19.Подпрограммы. Применение.
Структура описания. Отличие процедуры от функции. Самостоятельные,
законченные фрагменты программы, оформленные особым образом, снабжённые именем –
называютсяподпрограммами Подпрограммы используются: 1Для
экономии памяти, когда некоторая последовательность действий встречается
неоднократно на разныхучастках программы. Каждая подпрограмма существует в ед.
экземпляре, но обращаться к ней можно неоднократно из разных точек
программы. Результатом исполнения функции является единственное значение простого,
строкового или указательноготипа. Поэтому обращение к функции можно
использовать выраженное наряду с константой и переменные. Тело подпрограммы состоит из раздела описаний и раздела
операторов. FUNCTION<имя функции>(параметр:
тип);
CONST<константы>;
VAR<переменные>; 20.
Вложенныеподпрограммы. Принципы локализации имен (локальные и глобальные
переменные). Если какая либо программа использует некоторые переменные
подпрограммы, То данные переменные должны быть описаны не в подпрограмме,
а в самой программе. Данные переменныеназываются глобальными, а переменные,
объявленные в модуле или подпрограмме являются локальными, и значенияэтих
временных нельзя использовать в главной программе. Подпрограммы могут быть вызваны как
из тела основной программы, так и из тела другой подпрограммы. Длявызова
необходимо написать имя процедуры или функции, а также, если надо, ряд
переменных передаваемых в
подпрограмму. FUNCTION<имя>[(<формальные
параметры>)]:<тип> Сразу за заголовками может следовать одна
стандартных директив: ASSEMBLER <тело подпрограммы на ассемблере>,
EXTERNAL<объявление внешней подпрограммы>, FAR, FORWARD,
INLINE<встроенные машинные инструменты>, INTERRUPT,NEAR. Фактические параметры – это
глобальные переменные подставленные в формальные Begin 23. Передача вподпрограмму параметров
регулярного типа (массивов, строк). ATYPE=ARRAY[1..10]OF REAL;
INTYPE=STRING[15];
FUNCTION
ST(S:INTYPE):OUTTYPE массив FUNCTION<имя>[(<формальные
параметры>)]:<тип> Сразу за заголовками может следовать одна
стандартных директив: ASSEMBLER <тело подпрограммы на ассемблере>,
EXTERNAL<объявление внешней подпрограммы>, FAR, FORWARD,
INLINE<встроенные машинные инструменты>,
INTERRUPT,NEAR. 25.
Рекурсии.Прямая и косвенная рекурсия. Директива FORWARD. Рекурсия – это
такой способ организации вычислительного процесса при котором программа в ходе
выполнениясоставляющих её операторов обращается сама к себе. Для
избежания переполнения стёка, следует размещать промежуточные результаты во
вспомогательной переменной. Рекурсивный вызов
может быть косвенным, который разрешается опережающим описанием: 26.Тип-диапазон.
Структурированные типы. Массивы. Любой из структурированных типов (а в ТП
их 4 : массивы, записи, множества, файлы) характеризуется множественностью
образующих этот типэлементов. В ТП Допускается бесконечная глубина
вложенности типов, однако Суммой=<65520 байт (т.к. каждый компонентможет
представлять структурированный тип). D = array [0..9] of
char; Обычно в качестве
идентификатора типа используется тип–диапазон, в котором задаются
границыизменения индексов. Тип-диапазон подмножество своего базового типа,
в качестве которого может выступать любой порядковый тип,кроме типа-
диапазона. dig2=48..57;
month:1..12; High(x) – максимальное значение типа
диапазон Массивы -
формальное объединение нескольких однотипных объектов (чисел, символов, строк и
т.д.),рассматриваемое как единое целое. Компоненты массива состоят из данных одного типа (возможно
структурированного). 27. Символьныйтип.
Значением символьного типа является множество всех символов ПК. Каждому
символу присваивается целое числов диапазоне 0..255.Это служит кодом внутреннего
представления символа, его возвращает функция ORD. Для кодировки используетсякод
ASCII – 7 битный код, т.е. с его помощью кодируется 128 символов (0..127). В то
же время в 8-битном байте, отведённом для хранения символа в ТП,можно
закодировать в 2 раза больше символов (0..255). (0-127ASCII, 128-255-может
меняться на ПК разных типов). Значением строкового типа
является любая последовательность символов, т.е. строка. Окончанию
строкисоответствует символ с кодом 0, и которые называются строками с
завершающим нулём или ASCIIZ-строками. Ord(0)=length(a)- длинна строки(не больше 255
символов) Copy (St, index,
count) – копирует из строки ST символ, начиная с index Str (X [WIDTH [:DECIMALS]], ST)- из вещественного или целого в
строку S:= 'dsfsdhfjhsdfjshdfjsd';
29. Типы вТурбо-Паскале. Объявление новых типов.
Порядковые типы. Изменение типа выражения 2
группа вещественных типов(Single, real, Double, Extended, Comp); 5 Строковые типы(String, PChar); Type <Новый
тип>=<описание типа> 1 Каждый элемент имеет
свой порядковый номер 3 Возможно применить функцию Pred и Succ которые
верну соответственно предыдущее и последующеезначения Byte 0..255
ShortInt –128..127 Word 0..65535 Integer –32768..32767 A: integer; ABS(X) CHR(X) DEC INC
SQR HI(I)-старший байт RANDOM(x) SWAP(I)- меняет
местами байты Boolean(false=0, 1 байт); ByteBool (false=0, 1 байт); WordBool (false=0
в обоих байтах, 2 байта); LongBool (false=0 во всехбайтах, 4
байта). 32.Перечисляемые типы. Функции и операции, применимые к
ним. именуются идентификаторами и располагаются в списке с (
). C:= col(0); В
идентификаторах нельзя использовать кириллицу. Переменные так же можно объявлять
без предварительногоописания типа МНОЖЕСТВА - наборы однотипных
логически связанных друг с другом объектов. Характер связей между объектами
подразумевается лишьпрограммистом и не контролируется Турбо Паскалем.
Количество элементов в множестве может меняться от 0 до 255. Множество, которое
не содержит элементов,называется пустым. От массивов множества отличаются тем,
что количество элементов в нем непостоянно. Его можно расширять и сокращать по
ходу выполнения программы. <Имя идентификатора>=SET of <имя типа>
; <имя типа> - тип элементов множества, в качестве
которого может пример: TYPE dchar=SET of '1'..'9';
{базовый символьный тип-диапазон} VAR S1,S2,S3:dchar;
S4,S5,S6,S7:digit; Для задания множества может использоваться конструктор
множества: список (спецификаций) элементов множества, отделенных друг от
друга запятыми; список заключается в квадратные скобки. Спецификациямиэлементов
м.б. константы или выражения базового типа, а также
пример: S3:=['1','2']; S6:=[3..8]; S7:=[];
(пустое) Два множества считаются эквивалентными тогда и только тогда,
когда все ихэлементы одинаковы причем порядок следования в множестве их
безразличен. (S1 и S2 эквивалентны).Если все элементыодного множества входят в
другое множество то говорят, что первое включено во второе. (S3 включено в
S1).Пустое множество включено в любое другое. 1. * пересечение множеств; результат содержит
элементы, общие 2. + объединение множеств, результат содержит элементы
первого S4+S5 содержит [0,1,2,3,4,6,7] S5+S6 содержит
[3,4,5,6,7,8] множества, которые не принадлежат второму. множества эквивалентны; (S1:=S2; ['1','2','3'])
=['2','3','1'] проверка неэквивалентности; (TRUE, если множества
неэквивалентны); [1,2]<>[1] S3<>S2 in -
проверка принадлежности. Структура этой бинарной операции: 3 in S6 TRUE; [] in [0..5] [] in S5 Множества имеют компактное машинное представление.
Недостаток: невозможность вывода множества на экран, т.к. отсутствует механизм
изъятия элемента из множества. Ввод множества возможен только
поэлементно. C: char; {элемент
множества} begin end;
... 34. Операторвыбора CASE (варианта).
Комментарии.
Const2:оператор; 35. Записи.Вложенные
записи. Записи с вариантами. Запись – это структура данных, состоящая из
фиксированного числа компонент, называемых полями записи.В отличие от массива
компоненты могут быть различного типа. Поля именуются: D,m: byte; Для упрощения
доступа к полям записи используют оператор записи
With With c do with bp do month:=9;
Case byte of Имена должны быть
уникальны, хотя возможно повторение на различных уровнях End; Begin if c.db.year=1939
then……….. Case x: byte of 3: (g: single); 36.Вещественный тип.
Операции и функции для вещественного типа. 6 real 11..12
-39..38 10 extended
19..20 -4951..4932 функции 37. 38.39.
Файловый тип. Файлы. Требования кимени. Связывание. Текстовые файлы. Ввод
(вывод) информации из файла (в файл,устройство) Типизированные файлы и
нетипизированные файлы. RESET(Var f) Открытие файла с логическим именем f для чтения
CLOSE(f) Закрытие файла с лог. именем
f Rename(f,
NewName:String)Переименовывает физический файл FLUSH() Очищает внутренний
буфер файла Это файлы последовательного
доступа. си) текстового файла могут иметь переменную длину. Текст-ориентированные процедуры и
функции процедуры пояснения ---------------------------
-------------------------------- () для дозаписи в конец
файла SeekEOLN Функция пропускает все пробелы и
знаки табуля- логич.типа чащего символа. Возвращает значение TRUE,
если строки. Если ф.п. опущена,
()
и маркеры конца строк до маркера конца файла наружен, возвращает
значение TRUE. логич.типа ном файле f достигнут маркер EOLN или
___________________________________________________________ рядковому номеру). Описание файловой переменной стоит в его начале и указывает на 1-ю компоненту с номером 0.
После файла. Переменные в списках в/в должны иметь тот же тип, что и
компо- ____________________________________________________________ и функции
(действия) Обеспечивает
чтение очередных компонентов файла м.б.
выражение. (К текстовым файла применять
нельзя.) Функция FILEPOS()
возвращает порядковый номер компо- ----------
------------------------------------------------- - файловая
переменная д.б. объявлена предложением FILE OF Чтобы переместить указатель в конец файла можно написать Обьявляются без указания типа файла: Для данных файлов не указывается тип
компонентов, что делает их сов- ростной обмен данными между диском и
памятью. REWRITE указывается длина записи нетипизированного файла в
байтах. Длина файла может быть представлена
выражением типа WORD; если пара- Для обеспечения
максимальной скорости обмена данными следует за- (512 байт). Кроме того,
фактически пространство на диске выделяется ка могут занимать 2 и
более смежных секторов. Как правило, кластер рость обмена данными можно
получить, если указать длину записи, равную рассмотренные процедуры и функции, доступные типизированным файлам,
за ветственно высокоскоростными процедурами BlockREAD и
BlockWRITE. где -
имя переменной, которая будет участвовать в обмене дан- обращение к диску; личество фактически обработанных записей. длина
записи нетипизированного файла. Передача идет, начиная с 1-го Процедурами SEEK, FilePos и FileSize можно обеспечить доступ к
любой GRAPH - представляет собой библиотеку
подпрограмм, обеспечивающую полное управление графическими режимами для
различных адаптеров дисплеев:CGA, EGA, VGA... Содержит 78 процедур и функций
(как базовых - рисование точек, линий, окружностей, прямоугольников),так и
расширяющих возможности базовых (многоугольники, сектора, дуги, закрашивание
фигур, вывода текста и т.д.). чтобы в рабочем каталоге находились графические
драйверы с расширением .BGI, также должен быть доступенкомпилятору модуль
GRAPH.TPU. описание меток, переменных программы, в частности Далее инициализируется графический
режим работы процедурой Графическая информация на экране дисплея отражается
совокупностью 1 - 350 пикселей (2 страницы), 2 - 480 пикселей
(1 страница). центр (319,239) по результатам тестирования (авто определение). Путь
определяет маршрут поиска графического драйвера. Const driver, mode: intGRAPH - представляет собой библиотеку
подпрограмм, обеспечивающую полное управление графическими режимами для
различныхадаптеров дисплеев: CGA, EGA, VGA... Содержит 78 процедур и функций
(как базовых - рисование точек, линий,окружностей, прямоугольников), так и
расширяющих возможности базовых (многоугольники, сектора, дуги,закрашивание
фигур, вывода текста и т.д.). чтобы в рабочем каталоге находились графические
драйверы с расширением .BGI, также должен быть доступенкомпилятору модуль
GRAPH.TPU. программ с графическими устройствами. описание меток, переменных программы, в частности Далее инициализируется
графический режим работы
процедурой 1 - 350
пикселей (2 страницы), 2 - 480 пикселей (1 страница). центр (319,239) по результатам
тестирования (авто определение). Путь определяет маршрут поиска графического
драйвера. mode:=VGAH;
(2) DetectGraph(var Diver, Mode: integer) - возвращает тип драйвера и
текущий режим его работы. 1- синий 9 -
ярко-синий 4- красный 12
- розовый 7 - светло-серый 15-
белый. Если Х и У вещественные , то их нужно преобразовать к целым
координатам (в пределах раздела экрана). Дляэтого используются функции ROUND
или TRUNC прямого преобразования к целому значению
LineTo(trunc(x),trunc(y)); экрана (рассчитывайте коэффициенты увеличения или
уменьшения и пара- ClearDevice - Очищает экран и помещает курсор в
точку (0,0); текущее окно для графического вывода. X1,y1 – координата
верхнего левого угла; x2,y2 - координата нижнегоправого угла. Если Clip=true, то
все изображения отсекаются на границах вывода; GetMax X: integer - возвращает максимальную горизонтальную
координату графического экрана; Get Y:
integer - возвращает координату Y курсора в окне; (0..4), шаблон штриховки
(0..12) и толщину (1-ноpм, 3-утpоенная); SetColor(Color: word) - Устанавливает
основной цвет, которым выполняется рисование (0..15); PutPixel(X,Y:
integer; Color: word) - Выводит точку цветом Color с координатой
X,Y; LineRel(DX, DY: integer) - Рисует линию от текущего
указателя к точке, заданной приращением
координат; MoveTO(X, Y: integer) - Смещает текущий
указатель к точке с координатой Х,У; Rectangle(X1,Y1,X2,Y2:integer) - Рисует прямоугольник,
используя Bar(X1,Y1,X2,Y2:integer) - Рисует закрашенный прямоугольник,
используя установку
SetFillStyle; Bar3D(X1,Y1,X2,Y2:integer;Depth:word;Top:Bolean) - Рисует
закрашенный паpаллелипипед. Depth - глубина в Pixel (1/4 ширины). Circle(X,Y:integer;R:word) - Рисует окружность радиуса R,
используя используя X,Y как центр и
XR,YR как горизонтальный и OutText(Text: string) -
Выводит текстовую строку на экран. Пример программы построения
графика функции у=2+х*х. uses graph; {подключение модуля GRAPF} begin initgraph (a,b,'E:\TP\BGI'); {инициализация
графического режима} setBKcolor(0); {основной цвет фона -
черный} lineRel(50,50);
{вычерчивание линии по приращению от текущего setcolor(2); {основной цвет рисования -
зеленый} setcolor(5); {основной цвет
рисования - фиолетовый} moveTO(1,2); {смещает
курсор к точке с координатой 1,2} указателя к точке с координатой Х,У} OutTextXY(50,400,'график функции
у=2+х*х'); {выводит текст в putPixel(639,479,14);{выводит точку цветом 14 с координатой
639,479} end. InitGraph(driver, mode, 'e:\TP\BGI');
тип string. Основные цвета задаются от 0 до
15: 2- зеленый 10 -
ярко-зеленый 5- фиолетовый 13 -
малиновый Если Х и У вещественные , то их нужно
преобразовать к целым координатам (в пределах раздела экрана). Дляэтого
используются функции ROUND или TRUNC прямого преобразования к целому значению
LineTo(trunc(x),trunc(y)); экрана (рассчитывайте коэффициенты увеличения или
уменьшения и пара- ClearDevice - Очищает экран и помещает курсор в
точку (0,0); текущее окно для графического вывода. X1,y1 -
координата Если Clip=true, то все изображения отсекаются на границах
вывода; GetMaxX: integer -
возвращает максимальную горизонтальную координату графического экрана; GetY: integer - возвращает
координату Y курсора в окне; (0..4), шаблон штриховки (0..12) и толщину (1-ноpм,
3-утpоенная); SetGraphMode(Mode: integer)
- Устанавливает новый графический режим и SetColor(Color: word) - Устанавливает основной цвет, которым
выполняется рисование (0..15); PutPixel(X,Y: integer; Color: word) -
Выводит точку цветом Color с координатой X,Y; LineRel(DX,DY: integer) - Рисует линию от текущего указателя к точке,
заданной приращением координат; MoveTO(X,Y: integer) -
Смещает текущий указатель к точке с координатой Х,У; Rectangle(X1,Y1,X2,Y2:integer) - Рисует прямоугольник,
используя Bar(X1,Y1,X2,Y2:integer) - Рисует закрашенный прямоугольник,
используя установку
SetFillStyle; Bar3D(X1,Y1,X2,Y2:integer;Depth:word;Top:Bolean) - Рисует
закрашенный паpаллелипипед. Depth - глубина в Pixel (1/4 ширины). circle(X,Y:integer;R:word) - Рисует окружность радиуса R,
используя используя X,Y как центр и
XR,YR как горизонтальный и OutText(Text: string) -
Выводит текстовую строку на экран. Пример программы построения
графика функции у=2+х*х. uses graph; {подключение модуля GRAPF} begin initgraph(a,b,'E:\TP\BGI'); {инициализация
графического режима} setBKcolor(0); {основной цвет фона -
черный} lineRel(50,50);
{вычерчивание линии по приращению от текущего указателя} line(100,100,100,50);{рисует линию от т.Х1,У2 до
т.Х2,У2} putPixel(0,0,12); {выводит точку цветом 12 с
координатой 0,0} for x:=0 to 20
do end; OutTextXY(50,400,'график функции
у=2+х*х'); {выводит текст в заданное место экрана} readln; {пауза до нажатия } 41.Библиотечный
модуль CRT. Работа с клавиатурой, экраном, звуковым генератором. работы дисплея. С помощью подпрограмм модуля можно перемещать
курсор окна на экране, управлять звуком, работать с
клавиатурой. KeyPressed: Boolean;
- возвращает True, если в текущий момент на клавиатуре была нажата клавиша,
иначе False. Не приостанавливает выполнениепрограммы. Используется при
организации работы циклов. ReadKey: Char; - читает и возвращает в
программу символ с клавиатуры (без отображения на экране). Приостанавливает
исполнение программыдо нажатия на любую клавишу символа. Используется в
операторах IF для проверки символов. WhereY: Byte; - возвращает вертикальную координату текущей позиции
курсора относительно окна. AssignCrt(Var F: Text); - связывает с файловой переменной
устройство CON (клавиатуру для ввода и дисплей для вывода). ClrScr; - очищает экран (окно на экране) и помещает курсор
в верхний левый угол. GotoXY(X,Y: byte); - перемещает курсор в нужное место
экрана (окна). Левый верхний угол экрана (окна) имеет координаты (1,1).
Отсчет координат идет слева направо и сверху вниз. Количество символов в
строке и самих строк зависит от типа дисплея (обычно 25 строк и 80
символов). HighVideo; - устанавливает высокую яркость
символов. NormVideo; - устанавливает нормальную яркость
символов. Window(X1,Y1,X2,Y2:byte); - определяет размеры окна на экране
для вывода текста. X1,Y1 - координаты левого верхнего угла, X2,Y2 - правого
нижнегоугла. TextColor(Color: byte); -
устанавливает цвет символа. Управление звуковым
генератором Delay(T: word); - устанавливает продолжительность
звучания в миллисекундах. Процедурные типы – гибкое средство для передачи функций и
процедур в качестве фактических параметровобращения к другим процедурам и
функциям. Любые процедуры или функции, передаваемые в качестве
фактических параметров объявляется директивой far. Стандартные процедуры
или функции ТП могут передаваться рассмотренным образом. В программе могут
быть объявлены переменные процедурных типов. Переменные процедурных типов допускается
присваивать в качестве значений имена соответствующихподпрограмм=> переменные
становятся синонимом имени подпрограммы. Динамическая память – это оперативная память
ПК, представляемая программно при её работе , за вычетомсегмента данных 164
Кбайта ,стёка(обычно 16 Кбайт) и собственно тела программы (>200-300 Кбайт)
Сегмент данных - это непрерывная область
оперативной памяти в которой размещаются все переменные,объявленные в
программе. ОЗУ ПК представляет собой
совокупность ячеек для хранения информации - байтов, каждый изкоторых имеет
собственный номер. Эти номера – называются адресами ,позволяющими обращаться к
любому байту памяти. Указатели – гибкое средство управления Д.П.. Это
переменная, которая в качестве своегозначения содержит адрес байта памяти. В
ПК адреса задаются сегментами и 16 разрядными смещениями. Смещение – указывает, сколько байт от начала сегмента нужно
отступить, чтобы обратиться к нужному адресу.Адресное пространство 1 Мбайт –
стандартная память ПК. Для адресации в пределах 1 Мбайта нужно 20 двоичных
разрядов, которые получаются из 2-х 16 разрядныхслов (сегмента и смещения типа
word ) =>содержимое сегмента смещается на 4 разряда , освободившиеся правые
заполняются нулями. Функции: ADDR
(x) – возвращает результат типа pointer,в котором содержится адрес аргумента,x-
любой объект программы (переменная , процедура, функция) DSEG - возвращает значение, хранящееся в регистре DS
микропроцессора. Результат вслове типа word. За вызов
процедуры NEW или GETMEM нельзя зарезервировать памяти больше, чем значение,
возвращаемое этой функцией. OFS(Х)-возвращает значение типа WORD,
содержащее смещения адреса указанного объекта.(Х)-выражение любого типа или
процедура. SEG(X) - возвращает значение типа WORD,
содержащее сегмент адреса указанного объекта. SIZEOF(X)- возвращает длину
в байтах внутреннего представления указанного объекта.X- имя переменной, функции
илитипа. DISPOSE- возвращает в кучу фрагмент динамической
памяти ,который был ранее зарезервирован затипизированным
указателем. FREEMEM -
возвращает в кучу фрагмент динамической памяти ,который был ранее зарезервирован
занетипизированным указателем GETMEM(P,SIZE) –
резервируетза нетипизированным указателем фрагмент Д,П, требуемого
размера(неболее 65521) NEW - резервирует фрагмент кучи для
размещения переменной . RELISE(PTR) –
освобождает участок кучи .PTR – указатель любого типа,в котором предварительно
былосохранено процедурой MARK значение указателя кучи. 44. Среда ТП.Основные выполняемые функции. Система меню (работа с
файлами, запуск,компиляция, отладка (Debug), работа с окнами). Trace into- пошаговое исполнение программы только подпрограммы
выполняются оператор за оператором Parameters- окно
для ввода параметров для отладки Make – условная
компиляция изменённых модулей в ЕХЕ файл Target…-выбор в окне таргет
целевой платформы для приложения Breakpoints-
установка точек условного и безусловного перехода User screen – просмотр результатов включая
графику Add
watch – окно значений и переменных вовремя отладки 45. Модульноепрограммирование.
Оформление модуля в ТП. Модульное программирование – это организация
программы как совокупности небольших независимых блоков,называемых модулями,
структура и поведение которых подчиняется определенным правилам. Модуль –
это автономно компилируемая программная единица, включающая в себя различные
компоненты раздела описаний (типы,константы, переменные, процедуры, функции) и,
возможно, некоторые исполняемые операторы инициирующей
части. Использование модулей – прекрасный инструмент для разработки
библиотек прикладныхпрограмм и мощное средство модульного программирования.
UNIT<имя> -зарезервированное слово
(единица), начинает заголовок модуля IMPLIMENTAITION<исполняемая
часть> Модуль состоит из
заголовка и трёх частей, любая из которых может быть пуста. Имя модуля должно совпадать с именем файла, в котором находится
исходный текст модуля (исходник). Имя модуля служит для связи с др. модулями
и основной программой. Связь устанавливается спец.
объявлением: Интерфейсная часть –содержит объявление всех глобальных объектов
модуля (типов, констант, переменных ипрограмм), которые должны доступными
основной программе или другим модулям. В интерфейсной части указываются только
их заголовки. Объявление подпрограмм винтерфейсной части авто компилируется с
использованием дальней модели памяти {far и near}, чтообеспечивает доступ к
подпрограмме из основной программы и др. модулей.Const, var объявленные в
интерфейсной части модуля ,как и глобальныеконстанты и переменные помещаются в
общий сегмент данных(max 65536 байт). Исполняемая часть – содержит
описания программ , объявленных в интерфейсной части. Разрешается объявление
локальных для модулявспомогательных типов, констант, переменных. Заголовок –
обязательно, список формальных параметров можно опустить. Все параметры
размещаются в сегментеданных. Инициирующая часть – завершает модуль, может
отсутствовать или быть пустой. Размещение исполняемыхоператоров, фрагменты
программы. Операторы исполняются до передачи управления основной программе и
для подготовки еёработы. При пустой инициирующей части лучше всего её
попустить.