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

  (1999)1.Алгоритм. Свойства алгоритма. Способы записи алгоритма

(общ.)Алгоритм – это система формальных правил однозначно приводящая к решениюпоставленной задачи.

(ПК.)  Алгоритм- это последовательность арифметических и логических действий надданными, приводящая к получению  решения поставленной задачи.  

Свойства:

А)Дискретность — алгоритм состоит из отдельных пунктов или шагов

Б)Определённость — каждый шаг алгоритма должен быть строго сформулирован.

  (иметь точный смысл)

В)Связанность — на каждом следующем шаге используются результаты предыдущего.

Г)Конечность – алгоритм должен завершаться после конечного числа шагов

Д)Результативность – алгоритм должен приводить к получению конечных результатов

Е)Массовость – пригодность для решения широкого класса задач.

Ж)Эффективность – применение а. должно  давать какой бы-то положительныйвременной результат (временной)

Способзаписи:

А)Словесно-формульный

Б)Структурная схема и алгоритм (ССА)

В)  Спец. языки (алгоритмические и псевдокоды)

(псевдокод- искусственный неформальный язык, обычно состоит из элементов обычного языка сэлементами программирования)

Г)Графический способ

2.Линейные и разветвляющиеся алгоритмы.   Cтруктурные схема алгоритмов. Правилавыполнения.

CCA- при записи в виде структурной схемы алгоритмпредставляется графически в виде последовательности блоков выполняющихопределённые функции и блоки соединяются линиями возможно со стрелками. Внутриблоков операции. Блоки нумеруются по порядку. По способу организации алгоритмовССА блоки делятся на линейные, разветвляющиеся и циклические.

В линейных алгоритмахрезультат получается после выполнения одной последовательности действий.

Начало—ряд операторов—конец.

Разветвляющийся алгоритмпредусматривает выбор одной из нескольких последовательностей действий взависимости от исходных данных или промежуточных результатов.

3.Циклические алгоритмы. Классификация.  Вычисление сумм, произведений.

Циклический алгоритм – этоалгоритм обеспечивающий решение задачи путём многократного повторенияпоследовательности действий. Участки, которые многократно повторяются — называются циклами.

Циклы по числу повторенийделятся на циклы с заданным числом повторений и итерационные.

                                                                        ЦИКЛЫ

                        ЗАДАННОЕЧИСЛО                                   ИТЕРАЦИОННЫЕ

СО СЧЁТЧИКОМ                  УПР.УСЛОВИЕМ

                                    ПОСТ.УСЛОВИЕ    ПРЕДУСЛОВИЕ

Общее замечание: вход тольков начало цикла, а выход вследствие окончания цикла, оператором GOTO,процедурами прерхода и выхода, находящимся в теле цикла.

4.Циклические алгоритмы. Итерационные циклы. Вложенные циклы.

Циклический алгоритм – этоалгоритм обеспечивающий решение задачи путём многократного повторенияпоследовательности действий. Участки, которые многократно повторяются — называются циклами.

Циклы по числу повторенийделятся на циклы с заданным числом повторений и итерационные.

  В итерационных циклахвыполнение цикла оканчивается при выполнении общего условия, связанного спроверкой монотонно изменяющейся величины.

  Вложенные циклы – это,когда определённый цикл повторяется многократно в другом цикле охватывающемданный.

5.Массивы. Алгоритмы обработки массивов. Процедура BREAK

Массив — это упорядоченная последовательность величин,обозначаемая одним именем. Положение каждого элемента в массиве определяетсяего индексом (индексами). В этом и заключается упорядоченность. Индексы принятоуказывать в скобках после имени массива.

Пример: В[2] означает второйэлемент массива В.

Пусть имеется некотораяпоследовательность величин 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]

Двумерный массив matrix, сцелочисленными компонентами можно определить следующим образом:

var matrix [1..10,1..15] of integer

Двумерный массив часто называют матрицей. Первыйиндекс этого массива (номер строки матрицы) принимает значения из отрезка1..10, а второй (номер столбца) — из отрезка 1..15. Компоненты массива могутиметь обозначения: matrix[1,5], matrix[8,8], matrix[i,j] и т.п.

Примеры:

program p2;

var matrix: array [1..3,1..4] of integer;{определяетсядвумерный массив в 3 строки и 4 столбца с именем matrix}

        i, j: integer;

   begin

        for i:=1to 3 do

for j:=1 to 4 do

read(matrix[ i, j]); {заполнение двумерного массива на 3 строки и 4столбца}

        for i:=1 to 3 do

begin

               writeln;

                  for j:=1 to 4 do write(matrix[ i, j]);{вывод элементов двумерного массива в видетаблицы}

            end;

6.Структуризация. Восходящее программирование.  Проектирование алгоритма  перевода чисел из одной системы счисления в другую (2,8,10,16).

Восходящее проектирование –используется для несложных задач, когда заранее известны все подзадачи илифункции, которые выполнять программа. Разрабатывается алгоритм для каждойподзадачи, а затем они собираются в единую подпрограмму.

7.Нисходящее программирование.   Проектирование алгоритма выполнения  арифметических операций (+,-,*,/) над числами с пл. точкой.

При нисходящемпрограммировании сверху вниз сначала разрабатывается общая структурная схемаалгоритма, а затем разрабатываются этапы её детализации (структурирование).

8.Язык TURBO PASCAL. Алфавит языка. Идентификаторы TURBO PASCAL.

ТП – единство двухсамостоятельных начал компилятора и инструментов програмной оболочки. Это мощная современная процедурная система программирования

Алфавит: буквы латинского от a до z,знак _.(если не char A = a)

Цифры – арабские 0-9, спец.символы +-*/=.,:;<>[]{}()^&$@#%!

Пробелы (ASCIIот 0 до 32) ограничители идентификаторов

Зарезервированные слова ипараметры (не используются в качестве идентификаторов). Стандартные директивы absolute,assembler, external, far, forward, near и т.д. .

Идентификаторы: именаконстант, var’ных, меток, типов, obg-ов,процедур, функций(могут иметь произвольную длину, но значат только первые 63символа, начинаются только с буквы или цифры).

9.Оператор условного перехода IF. Составной и пустой операторы.

IF<условие >THEN<операторы>ELSE <операторы>;

10.Оператор цикла со счетчиком.

FOR <идентификатор>:=<начальное состояние >TO<конечноесостояние > DO<оператор>

FOR <идентификатор>:=<начальное состояние >DOWNTO<конечноесостояние > DO<оператор>

11.Оператор цикла с предусловием.

Цикл ДО

WHILE<условие>DO<оператор>

12.Оператор цикла с постусловием.

Цикл ПОКА

REPEAT

            Оператор;

UNTIL<условие>;

13.Подготовка и отладка программ в среде TurboPascal.

Меню run

Run- запуск на исполнение

Step over-пошаговое исполнениепрограммы

Trace into- пошаговое исполнениепрограммы только подпрограммы выполняются оператор за оператором

Go to cursor– выполнение до курсора

Program reset- завершение процессаотладки

Parameters- окно для ввода параметров для отладки

Меню compile

Compile- компиляция файла, находящегося в активном окнередактирования.

Make – условная компиляция изменённых модулей в ЕХЕ файл

Build- безусловная компиляция многомодульной программы ссозданием ЕХЕ файла

Target…-выбор в окне таргет целевой платформы для приложения

Primary file…-открывает окно для указанияглавного файла, компилируемой программы.

Меню Debug:

Breakpoints- установка точек условного и безусловного перехода

Call stack – показывает процедурывыполнявшиеся ранее.

Register – информация о регистрах процессора

Watch – окно значений переменных

Output – окно результатов работы программы

User screen – просмотр результатоввключая графику

Evaluate/ modify… – окно изменения значений выражений

Add watch – окно значений ипеременных вовремя отладки

Add breakpoint… – окно установкиточек прерывания программы 

14.Константы в TURBO PASCAL (целые, вещественные, 16-ричные, логические,   символьные, строковые константы, конструктор множества)

Константы — могутиспользоваться целые, вещественные, шестнадцатеричные числа, логическиеконстанты, символы, строки, множества и признак неопределённого указателя NIL.

Целые числа: от –2147483648до 2147483647

Вещественные числа: (экспоненциальная часть) 3.14E5

16-ричное число: $(код 36 в ASCII)$00000000- $F…$F(8)

Логическая константа: True,False.

Символьная константа: любойсимвол в ‘ ‘, либо указатель внутри кода #83=’S’

Конструктор множества — список элементов множества в [].

[1,2,3,4],[red, blue],[true,false]. В ТП разрешается объявление констант

const a=12/343;

15.Типизированные константы.

Типизированные константы фактически являются переменными со статическим классом памяти. В отличие отпростых констант, в описании типизированных указывается как значение константы,так и её тип.

Существуют типы:

Константа, константа-адрес,константа-массив, константа-запись, константа-объект, константа-множество.

Указательный тип:

Type ptr = ^integer;

Conct intptr:ptr=nil;

Структурированный тип:

1 массив (array)

2 множество (set of 1..4)

3 запись (record)

4Объектного типа (object)

16.Оператор присваивания. Приоритет операций. Стандартные функции.

<имяпеременной>:=<выражение>;

   арифметические     логические     отношения     прочие

1                                  NOT                                       @-адресное преобразование

2 *,/,DIV,MOD          AND,SHL,SHR

3 +,-                             OR, XOR

4                                                          <;>;=;             IN

Для  повышения приоритетаиспользуются (  ).

Стандартные функции ТП.

ABS(X            )           SQR(X)           SQRT(X)        TRUNG(X)     ROUND(X)

COS(X)           SIN(X)            TG(X)         ARCTANG(X)  EXP(X)

LN(X)             PRED(X)        SUCE(X)        ORD(X)          CHR(X)

ODD(X)          INT(X)            FRAG(X)        +,-,*,/               (X)DIV(Y)     

MOD(X)         NOT                AND               OR                  XOR

= < >               I_SHL_J         I_SHR_J

17.Операторы и функции безусловного перехода(goto, continue, exit, halt).

EXIT; — выход из программы или подпрограммы

HALT(COD);- (COD) – необязательный параметр, определяет код

HALT; — безусловная остановка программы

ERRORLEVEL; -  вниз

BREAK; — досрочный выход из цикла

CONTINUE; — прерывает выполнение текущей операции в цикле,передаёт управление следующему оператору

18.Структуры простой и сложной программ в Турбо-Паскале.

PROGRAM<имя программы >;

USES<имя модуля>;

TYPE<раздел типов>;

LABEL<метки>;

CONST<константы>;

VAR<переменные и их типы>;

FUNCTION<имя функции>(имя переменной: тип)

BEGIN

операторы

END;

PROCEDURE<имя процедуры>( параметры)

BEGIN

операторы

END;

BEGIN

Текст основной программы

END.

19.Подпрограммы. Применение. Структура описания. Отличие процедуры от функции.

Самостоятельные, законченныефрагменты программы, оформленные особым образом, снабжённые именем – называютсяподпрограммами

Использование подпрограммпозволяет разбить программу на ряд независимых частей.

Подпрограммы используются:

1Для экономии памяти, когданекоторая последовательность действий встречается неоднократно на разныхучастках программы. Каждая подпрограмма существует в ед. экземпляре, нообращаться к ней можно неоднократно из разных точек программы.

2. В сложных программах примодульном проектировании.

Подпрограммы делятся напроцедуры и функции 

Результатом исполненияфункции является единственное значение простого, строкового или указательноготипа.  Поэтому  обращение к функции можно использовать выраженное наряду сконстантой и переменные.

Процедура обычно возвращаетнесколько значений, подпрограмма состоит из заголовка и тела подпрограммы.

Тело подпрограммы состоит израздела описаний и раздела операторов.

Структура:     PROCEDURE<имя процедуры >;

                        FUNCTION<имяфункции>(параметр: тип);

                                    USES<модули>;

LABEL<метки>;

                                    CONST<константы>;

                                    TYPE<типы>;

                                    VAR<переменные>;

                        BEGIN

Тело подпрограммы

                        END;

20.Вложенные подпрограммы. Принципы  локализации  имен (локальные и  глобальныепеременные).

Вложенными являютсяподпрограммы, вызываемые из других подпрограмм.

Если какая либо программаиспользует некоторые переменные подпрограммы,

То данные переменные должныбыть описаны не в подпрограмме, а в самой программе. Данные переменныеназываются глобальными, а переменные, объявленные в модуле или  подпрограммеявляются локальными, и значения этих временных нельзя использовать  в главной программе.

21.Вызов подпрограмм (формальные и фактические параметры).

Подпрограммы могут бытьвызваны как из тела основной программы, так и из тела другой подпрограммы. Длявызова необходимо написать имя процедуры или функции, а также, если надо, рядпеременных  передаваемых в подпрограмму.

Пример:

PROCEDURE<имя>[(<формальные параметры>)];

FUNCTION<имя>[(<формальныепараметры>)]:<тип>

Сразу за заголовками можетследовать одна стандартных директив: ASSEMBLER <тело подпрограммына ассемблере>, EXTERNAL<объявление внешней подпрограммы>, FAR, FORWARD,INLINE<встроенные машинные инструменты>, INTERRUPT,NEAR.

PROCEDURE SB(a: real<формальныйпараметр>);

Фактические параметры – этоглобальные переменные подставленные в формальные

ТИП ФАКТ=ТИП ФОРМ.

22.Процедуры без параметров и с параметрами.

PROCEDURE<имя>

Begin

<текст процедуры>

end;

23.Передача в подпрограмму параметров регулярного типа (массивов, строк).

Типом любого формальногопараметра может быть только стандартный или ранее объявленный тип.

Пример:

TYPE                                                              TYPE

   ATYPE=ARRAY[1..10]OF REAL;                          INTYPE=STRING[15];    

PROCEDURES(A:ATYPE);                                        OUTTYPE=STRING[30];

                                                                        FUNCTION ST(S:INTYPE):OUTTYPE

Иной способ для передачипараметров переменных отключением контроля компиляции.

Открытыймассив  PROCEDURE I (A: ARRAY OF REAL);

24.Функции. Описание. Вызов функции.

FUNCTION<имя>[(<формальныепараметры>)]:<тип>

Сразу за заголовками можетследовать одна стандартных директив: ASSEMBLER <тело подпрограммына ассемблере>, EXTERNAL<объявление внешней подпрограммы>, FAR, FORWARD,INLINE<встроенные машинные инструменты>, INTERRUPT,NEAR.

FUNCTION<имя функции>(параметр: тип);

Begin

<тело подпрограммы>

end;

25.Рекурсии. Прямая и косвенная рекурсия. Директива FORWARD.

Рекурсия – это такой способорганизации вычислительного процесса при котором программа в ходе выполнениясоставляющих её операторов обращается сама к себе.

Для  избежания переполнениястёка, следует размещать промежуточные результаты во вспомогательнойпеременной.

Begin

…………………………

F:=fac(n-1); — вспомогательная переменная

……………………….

End;

Рекурсивный вызов может бытькосвенным, который разрешается опережающим описанием:

Procedure b(j:byte);

 Forward;

Procedure a (i:byte);

Begin

B(i);

End;

26.Тип-диапазон. Структурированные типы. Массивы.

Любой из структурированныхтипов (а в ТП их 4: массивы, записи, множества, файлы) характеризуется множественностью образующих этот тип элементов. В ТП

Допускается бесконечнаяглубина вложенности типов, однако Суммой=<65520 байт (т.к. каждый компонентможет представлять структурированный тип).

PACKED- осуществляется везде где это возможно.

Тип диапазон:

TYPE

D = array [0..9]of char;

Var m: d;

Begin <операторы>end.

Обычно в качествеидентификатора типа используется тип–диапазон, в котором задаются границыизменения индексов.

Тип-диапазон подмножествосвоего базового типа, в качестве которого может выступать любой порядковый тип,кроме типа-диапазона.

<мин. значение>..<макс. значение>

TYPE digit = ‘0’..’9’;  можно  Var date:1..31;

            dig2=48..57;                       month:1..12;

                                                       1CHR:’a’..’z’;

High(x) – максимальное значение типа диапазон

Low(x) – минимальное значение типа диапазон.

Массивы — формальноеобъединение нескольких однотипных объектов (чисел, символов, строк и т.д.),рассматриваемое как единое целое.

Var a: array [1..10]of  real;

Компоненты массива  состоятиз данных одного типа (возможно структурированного).

В качестве идентификаторовпорядковые типы кроме LongInt и типа диапазон с базисным типом LongInt/ 

27.Символьный тип.

Значением символьного типаявляется множество всех символов ПК. Каждому символу присваивается целое числов диапазоне 0..255.Это служит кодом внутреннего представления символа, еговозвращает функция ORD. Для кодировки используется код ASCII– 7 битный код, т.е. с его помощью кодируется 128 символов (0..127). В то жевремя в 8-битном байте, отведённом для хранения символа в ТП, можнозакодировать в 2 раза больше символов (0..255). (0-127ASCII,128-255-может меняться  на ПК разных типов).

0-31 – служебные коды(пробелы)

28.Строковый тип. Операции, процедуры и функции

Значением строкового типаявляется любая последовательность символов, т.е. строка. Окончанию строкисоответствует символ с кодом 0, и которые называются строками с завершающимнулём или ASCIIZ-строками.

Строковый тип соответствуетидентификаторам string и PChar.

A: array[0..n] ofchar = a: string

Ord(0)=length(a)- длинна строки(не больше 255 символов)

Concat (S1 [s2..,SN])- сцепление строк

Copy (St, index, count) – копирует из строки ST символ,начиная с index

Delete(ST, a, b) – удаление b символов начиная с a

Insert (sut, st, b)–вставляет SUT в ST начиная с b

Pos (Sut, St) -  в строке ST отыскивает Sutесли нет 0

Str (X [WIDTH [:DECIMALS]], ST)- из вещественного или целого в строку

Val (st ,x, code) – обратно str (пробелы не допускаются)

Var s: string;

Begin

…….

S:=’dsfsdhfjhsdfjshdfjsd’;

……….

End.

29.Типы в Турбо-Паскале. Объявление новых типов. Порядковые типы.    Изменениетипа выражения

Стандартные типы в ТП:

1 группа целых типов(ShortInt,integer, LongInt, Byte, Word);

2 группа вещественных типов(Single,real, Double, Extended, Comp);

3 группа Булевские типы(Boolean, ByteBool, WordBool, LongBool);

4 Символьный тип(Char);

5 Строковые типы(String, PChar);

6 Указательный тип (Pointer);

7 Текстовый тип (Text);

Type <Новый тип>=<описание типа>

Символьный тип, а также целыеи булевские типы относятся к порядковым типам.

Свойства:

1 Каждый элемент имеет свойпорядковый номер

2 Поэтому возможениспользование функцииOrd, возвращающей этот номер

3 Возможно применить функцию Pred и Succ которые верну соответственно предыдущее и последующеезначения

30.Целые типы. Правила объявления. Применяемые функции.

Целые типы:

Byte 0..255 ShortInt –128..127   Word 0..65535  Integer –32768..32767

LongInt–2147483648… 2147483647

Вложение типов:

Type result = более мощный тип

 A: integer;

LongInt(a);

Процедуры и функции:

ABS(X)           CHR(X)         DEC    INC     SQR    HI(I)-старший байт

LOW(X) – младший байт     ODD(I) –возвращает правда если нечет

RANDOM(x) SWAP(I)- меняет местами байты

31.Логический тип. Логические операции и функции

Логический тип ещё называютбулевским. Их 4:

Boolean(false=0, 1 байт); ByteBool (false=0,1 байт); WordBool (false=0 в обоих байтах, 2 байта); LongBool (false=0во всех байтах, 4 байта).

Логические функции:

Ord; Pred; Succ; or ;and; xor ;

32.Перечисляемые типы. Функции и операции, применимые к ним.

Перечисляемый тип задаётсятем значениям, которые он может получить. Значения

именуются идентификаторами ирасполагаются в списке с ( ).

Type col = (red, white,blue);

Max=65536 значений;

Ord (red)  =0;

Var c: col;

C:= col(0);

С:=red;

В идентификаторах нельзяиспользовать кириллицу. Переменные так же можно объявлять без предварительногоописания типа

Var col: (black,white, green);

33.Множества и операции над ними.

МНОЖЕСТВА — наборы  однотипныхлогически связанных друг с другом объектов. Характер связей между объектамиподразумевается лишь программистом  и не контролируется Турбо Паскалем.Количество элементов в множестве может меняться от 0 до 255. Множество, которое не содержит элементов, называется  пустым.  От массивов множестваотличаются тем, что количество элементов  в нем не постоянно.  Его можнорасширять и сокращать по ходу выполнения программы.

Описание типа  производится вразделе TYPE.

Структура:

<Имяидентификатора>=SET of <имя типа> ;

где  <Имяидентификатора> — правильный идентификатор Турбо Паскаля;

<имя типа> — типэлементов множества,  в качестве  которого  может

использоваться  любойпорядковый тип,  кроме WORD,  Integer,  LogInt,

ShortInt.

пример: TYPE dchar=SET of'1'..'9'; {базовый символьный тип-диапазон}

digit=SET of 0..9;

Переменные этого типаописываются в разделе

VAR    S1,S2,S3:dchar;            S4,S5,S6,S7:digit;

Для задания множества можетиспользоваться конструктор  множества: список  (спецификаций)  элементов множества,  отделенных друг от друга запятыми; список заключается в квадратныескобки. Спецификациями элементов  м.б.  константы  или  выражения базовоготипа,  а также пример:

S1:=['1','2','3'];              S4:=[0..3,7];

S2:=['2','1','3'];              S5:=[4,6];

S3:=['1','2'];                  S6:=[3..8];  S7:=[]; (пустое)

Два множества считаютсяэквивалентными  тогда  и  только  тогда, когда все их элементы одинаковы причемпорядок следования в множестве их безразличен. (S1 и S2 эквивалентны).Если все элементы одного множества входят в другое множество то говорят, что первоевключено во второе. (S3 включено в S1).Пустое множество включено в любоедругое.

Над множествами определеныследующие операции:

1. *  пересечение множеств; результат содержит элементы, общие

для обоих множеств. (S4*S6содержит [3,7]; S4*S5 образует пустое мн.).

2. +  объединение множеств,результат содержит элементы первого

множества, дополненныенедостающими элементами второго.

S4+S5 содержит[0,1,2,3,4,6,7]    S5+S6 содержит [3,4,5,6,7,8]

3. -  разность множеств,результат содержит элементы из первого

множества, которые непринадлежат второму.

S6-S5 содержит[3,5,7,8])

S4-S5 содержит[0,1,2,3,7])     []-S4 даст [].

4. Операции отношений:

= операция эквивалентности;возвращает значение TRUE, если оба

множества эквивалентны;(S1:=S2;  ['1','2','3']) =['2','3','1']

 проверка неэквивалентности; (TRUE, если  множества неэквивалентны);              [1,2]<>[1]     S3<>S2

>= проверка вхождения(TRUE,  если второе множество входит в первое;

in — проверка принадлежности.Структура этой бинарной операции:

in; возвращает TRUE,  есливыражение имеет значение,  принадлежащее  множеству.

пример:

3 in S6          TRUE;     [] in [0..5]    [] in S5

2*2 in S4         FALSE;

Множества имеют компактноемашинное представление. Недостаток: невозможность вывода множества на  экран, т.к.  отсутствует механизм изъятия элемента из множества. Ввод множествавозможен только поэлементно.

пример: Можно тип объявлятьпри описании переменных

VAR S:SET of char;   {переменная-множество}

C: char;            {элементмножества}

Begin

S:=[];   S:=#0;      {обнуление значений}

while C  '.'do     {цикл до ввода "."}

begin

readln(C);      {чтениесимвола в с}

S:=S+[C];         {добавление его к S}

end;            ...

S:=S-['.'];          {исключение точки}

End.            {Смотризадание на л.р. N 12 }

34.Оператор выбора CASE (варианта). Комментарии.

CASE<ключ выбора> OF

                                                Const1: оператор;

                                                Const2: оператор;

                                                ELSE:оператор;

END;

35.Записи. Вложенные записи. Записи с вариантами.

Запись – это структураданных, состоящая из фиксированного числа компонент, называемых полями записи.В отличие от массива компоненты могут быть различного типа. Поля именуются:

<имя типа>=RECORD<определениеполей>END.

Type

            Bd =record

            D,m:byte;

            Y:word

Var a,b: bd;

a::=8;

a.day:=27;-доступ к компоненту

Для упрощения доступа к полямзаписи используют оператор записи With

With<переменная>do<оператор>;

With c.bp domonth:=9;

With c do with bpdo month:=9;

c.bp.month:=9;

Вариантные поля

Type f= record

         N:string;

         Case byteof

0:(bp: string[30]);

1:(c: string[10],e: string[20],ed:1..31)

          end;

Имена должны быть уникальны,хотя возможно повторение на различных уровнях

Вложенные поля:

Type    bd =record

            D,m:byte;

            X:word;

            End;

Var      c:record;

            Name:string;

            Db:bd;

Begin ifc.db.year=1939 then………..

End.

В качестве ключа переменная:

Type rec2=record

            C:LongInt;

Case x: byte of

1: (d: word);

2: (e:record

            caseboolean of

3: (f: real);

3: (g: single);

‘3’: (c: word);

end;

end;

           

36.Вещественный тип. Операции и функции для вещественного типа.

Вещественный тип определяетчисло с некоторой конечной точностью, зависящей от внутреннего формата числа

Длина    название    кол-вознаковых цифр     диапазон десятичного порядка

 байт

 6              real                                    11..12                          -39..38

 8            couble                      15..16                          -324..308

10           extended                 19..20                          -4951..4932

 8             comp                                   19..20                      -2*10^63+1  ..   2*10^63-1

функции

ABS(X), ARCTAN(x),COS(X), EXP(X), FRAC(X), INT(X),LN(X), SIN(X), ROUND(X),SQR(X),SQRT(X) И Т.Д.

37.38. 39.   Файловый тип. Файлы. Требования к имени. Связывание. Текстовые файлы.Ввод (вывод) информации из файла (в файл, устройство) Типизированные файлы инетипизированные файлы.

Общиепроцедуры для работы с файлами

_____________________________________________________________

|Assign(Var f,FileName:String) — Cвязывание ф.п.f с файломFileName

|RESET(Varf) | Открытие файла с логическим именем f для чтения  |

|REWRITE(Varf) Открытие файла с лог. именем f для записи            |

|CLOSE(f)    |  Закрытие файла с лог. именемf                                     |

|Erase(Varf) | Удаление файла (стирание) с диска                                |

|Rename(f,NewName:String)|Переименовывает физический файл        |

|EOF(f)      |  Функция тестирования конца файла              |

|FLUSH()| Очищает внутренний буфер файла                |

-------------------------------------------------------------

ТЕКСТОВЫЕФАЙЛЫ

Этофайлы последовательного доступа.

Онипредназначены для хранения текстовой информации. Компоненты (запи-

си)текстового файла могут иметь переменную длину.

Длядоступа к записям файла применяются процедуры

READ,READLN, WRITE, WRITELN.

Текст-ориентированныепроцедуры и функции

____________________________________________________________

| процедуры  |              пояснения                       |

| и функции  |              (действия)                      |

|-------------|----------------------------------------------|

|Append      |Процедура  открывает  уже  существующий файл f|

|   () |для дозаписи в конец файла                          |

|пр:Append(f)|           (для его расширения)               |

|SeekEOLN    |Функция пропускает все пробелы и знаки табуля-|

|   () |ции до первого признака EOLN  или первого зна-|

| логич.типа |чащего символа. Возвращает значение TRUE, если|

пр:SeekEOLN(f)|обнаруженмаркер конца файла или маркер конца |

|            |строки.          Если ф.п. опущена,           |

|            |функция проверяет стандартный файл INPUT.     |

|            |                                              |

|SeekEOF     |Функция пропускает все пробелы, знаки табуляции|

|   () |и маркеры конца строк до маркера  конца  файла|

|пр:SeekEOF(f)|илипервого значащего символа. Если маркер об-|

|            |наружен, возвращает значение TRUE.            |

|EOLN()|Функция возвращает значение TRUE, если во вход-|

| логич.типа | ном файле   f   достигнут  маркер  EOLN  или |

|пр: EOLN(f) | EOF; FALSE — в противном случае.             |

|_____________|______________________________________________|

Типизированныефайлы

позволяюторганизовать прямой доступ к каждой из компонент (по его по-

рядковомуномеру). Описание файловой переменной

Var ft: file of ;

Передпервым обращением к процедурам ввода-вывода указатель файла

стоитв  его  начале и указывает на 1-ю компоненту с номером 0.  После

каждогочтения или записи указатель сдвигается с следующему компоненту

файла.Переменные в списках в/в должны иметь тот же тип,  что и компо-

нентыфайла.

Процедурыи функции для работы с типизированными файлами

____________________________________________________________

| процедуры  |              пояснения                       |

| и функции  |              (действия)                      |

|-------------|----------------------------------------------|

READ(,);   Процедура

Обеспечиваетчтение очередных компонентов файла

WRITE(,)используется для записи новых

компонентв файл; в качестве элементов вывода

м.б.выражение.

SEEK(,)-  смещает  указатель

файлак компоненту с ;

 -выражение типа LONGINT.

(Ктекстовым файла применять нельзя.)

FILESIZE) Функция возвращает  количество компонент,

содержащихсяв файле.(Типа LongInt )

ФункцияFILEPOS()  возвращает порядковый номер компо-

нентыфайла, доступной для чтения или записи

(которыйбудет обрабатываться следующей операцией в/в).

(       Процедура CLOSE () — закрытие файла.     )

|-------------|----------------------------------------------|

 -содержит одну или более переменных такого

жетипа, что и компоненты файла,

 -файловая переменная д.б.  объявлена предложением FILE OF

исвязана с именем файла процедурой ASSIGN.  Файл  необходимо  открыть

процедуройRESET для чтения.

Еслифайл исчерпан, обращение к READ  вызовет ошибку В/В

Чтобыпереместить указатель в конец файла можно написать

Пр.  Seek(f,FileSize(f)) ;  где f — файловая переменная

Нетипизированныефайлы

Обьявляютсябез указания типа файла:

TYPE ftype=file;          или         VAR fn: file;

Дляданных  файлов не указывается тип компонентов,  что делает их сов-

местимымис любыми другими файлами.  Позволяет организовать высокоско-

ростнойобмен данными между диском и памятью.

Приинициализации нетипизированных  файлов  процедурами  RESET  и

REWRITEуказывается длина записи нетипизированного файла в байтах.

пример: VAR f:file;  ...

ASSIGN (f,'a.dat');

RESET(f,512);

\длина записи

Длинафайла может быть представлена выражением типа WORD;  если  пара-

метрдлины опущен,  подразумевается длина 128 байт; максимальная длина

65535байт.

Дляобеспечения  максимальной скорости обмена данными следует за-

даватьдлину,  кратную длине физического  сектора  дискового  носителя

(512байт).  Кроме  того,  фактически пространство на диске выделяется

любомуфайлу порциями — кластерами, которые в зависимости от типа дис-

камогут  занимать  2 и более смежных секторов.  Как правило,  кластер

м.б.прочитан или записан за один оборот диска, поэтому наивысшую ско-

ростьобмена данными можно получить, если указать длину записи, равную

длинекластера.

Приработе  с  нетипизированными  файлами  Могут  применяться все

рассмотренныепроцедуры и функции, доступные типизированным файлам, за

исключениемREAD и WRITE, которые для чтения и записи заменяются соот-

ветственновысокоскоростными процедурами  BlockREAD и BlockWRITE.

BlockREAD(,,,[,Var])

BlockWRITE(,,,[,Var])

где - имя переменной,  которая будет участвовать в обмене дан-

нымис дисками;

 -количество записей,  которые д.б. прочитаны или записаны за одно

обращениек диску;

 -необязательный параметр, содержащий при выходе из процедуры ко-

личествофактически обработанных записей.

Заодно  обращение к процедурам м.б.  передано N*r байт,  где r -

длиназаписи нетипизированного файла.  Передача идет,  начиная с  1-го

байтапеременной .

Послезавершения процедуры указатель смещается на  записей.

ПроцедурамиSEEK,  FilePos  и FileSize можно обеспечить доступ к любой

записинетипизированного файла.

40.Библиотечный модуль GRAPH. Графические возможности ТП.

GRAPH — представляет собойбиблиотеку подпрограмм,  обеспечивающую полное управление графическими режимамидля различных адаптеров дисплеев: CGA,  EGA, VGA… Содержит 78 процедур ифункций (как базовых — рисование точек, линий, окружностей, прямоугольников),так и расширяющих возможности базовых  (многоугольники,  сектора,  дуги,закрашивание фигур, вывода текста и т.д.).

Для запуска программы сиспользованием модуля GRAPH  необходимо,

чтобы в рабочем каталогенаходились графические драйверы с расширением .BGI, также должен быть доступенкомпилятору модуль GRAPH.TPU.

Файл BGI — графическийинтерфейс. Он обеспечивает взаимодействие

программ с графическимиустройствами.

В начале программы модульGRAPH должен быть подключен

 PROGRAM

 USES GRAPH;

 описание меток, переменныхпрограммы, в частности

     VAR driver, Mode:integer;

 Begin

Далее инициализируетсяграфический режим работы процедурой

InitGraph(,:integer;

: string);

Графическая информация наэкране дисплея отражается совокупностью

светящихся точек — ПИКСЕЛЕЙ.

Режим по вертикали: 0 — 200пикселей (4 страницы),

1 — 350 пикселей (2страницы), 2 — 480 пикселей (1 страница).

Режим 2 (640х480, 16 цветов,1страница)

В текстовом режиме координатыверхнего угла (1,1).

центр (319,239)

нижнего (639,479)

Тип драйвера допускаетсяуказывать =0,  тогда он устанавливается

по результатам тестирования(авто определение).  Путь определяет маршрут поиска графического драйвера.

   Пример:

USES GRAPH;

Const driver, mode: intGRAPH- представляет собой библиотеку подпрограмм,  обеспечивающую полное управлениеграфическими режимами для различных адаптеров дисплеев: CGA,  EGA, VGA…Содержит 78 процедур и функций (как базовых — рисование точек, линий,окружностей, прямоугольников), так и расширяющих возможности базовых (многоугольники,  сектора,  дуги, закрашивание фигур, вывода текста и т.д.).

     Для запуска программы сиспользованием модуля GRAPH  необходимо,

чтобы в рабочем каталогенаходились графические драйверы с расширением .BGI, также должен быть доступенкомпилятору модуль GRAPH.TPU.

     Файл BGI — графический интерфейс.Он обеспечивает взаимодействие

программ с графическимиустройствами.

     В начале программымодуль GRAPH должен быть подключен

 PROGRAM

 USES GRAPH;

 описание меток, переменныхпрограммы, в частности

     VAR driver, Mode:integer;

 Begin

     Далее инициализируетсяграфический режим работы процедурой

InitGraph(,:integer;

:string);

Графическая информация наэкране дисплея отражается совокупностью

светящихся точек — ПИКСЕЛЕЙ.

Режим по вертикали: 0 — 200пикселей (4 страницы),

1 — 350 пикселей (2 страницы),2 — 480 пикселей (1 страница).

Режим 2 (640х480, 16 цветов,1страница)

В текстовом режиме координатыверхнего угла (1,1).

центр (319,239)

нижнего (639,479)

Тип драйвера допускаетсяуказывать =0,  тогда он устанавливается

по результатам тестирования(авто определение).  Путь определяет маршрут поиска графического драйвера.

   Пример:

USES GRAPH;

Const driver,mode: integer;

Begin

driver:=VGA;     (9)

mode:=VGAH;      (2)

InitGraph(driver,mode, 'e:\TP\BGI');  тип  string.

DetectGraph(varDiver, Mode: integer) — возвращает тип драйвера и текущий режим его работы.

Основные цвета задаются от 0до 15:

0- черный                   8 — темно-синий

1- синий                    9 — ярко-синий

2- зеленый                  10 — ярко-зеленый

3- голубой                  11 — ярко-голубой

4- красный                  12 — розовый

5- фиолетовый               13 — малиновый

6- коричневый               14- желтый

7 — светло-серый            15- белый.

Если Х и У вещественные, тоих нужно преобразовать к целым координатам (в пределах раздела экрана). Дляэтого используются функции ROUND или   TRUNC  прямого преобразования к целомузначению LineTo(trunc(x),trunc(y));

Также необходимо следить, чтобы значения не выходили за пределы

экрана (рассчитывайте коэффициенты увеличения или уменьшения и пара-

метры смещения)

ПРОЦЕДУРЫ И ФУНКЦИИ модуляGRAPH

установочные

ClearDevice — Очищает экран ипомещает курсор в точку (0,0);

SetViewPort(x1,y1,x2,y2:integer;Clip: boolean)  — Устанавливает

текущее окно для графическоговывода. X1,y1 – координата верхнего левого угла; x2,y2 — координата нижнегоправого угла. Если Clip=true, то все изображения отсекаются на границах вывода;

ClearViewPort — Очищаеттекущее окно;

GetMax X: integer — возвращает максимальную горизонтальную координату

графического экрана;

GetMax Y :integer — возвращает максимальную вертикальную координату

графического экрана;

Get X: integer — возвращаеткоординату Х текущего указателя в окне;

Get Y: integer — возвращаеткоординату Y курсора в окне;

SetLineStyle(Line,Pattern, Thickness: word) — Устанавливает стиль

(0..4), шаблон штриховки(0..12) и толщину (1-ноpм, 3-утpоенная);

SetFillStyle(Pattern, Color:word) — Устанавливает образец штриховки и

цвет (0..15 и 128-меpцание);

SetGraphMode(Mode: integer) — Устанавливает новый графический режим и

очищает экран;

SetColor(Color: word) — Устанавливает основной цвет, которым выполняется рисование (0..15);

SetBkColor(Color: word) — Установка цвета фона.

Гpафические примитивы

PutPixel(X,Y: integer; Color:word) — Выводит точку цветом Color с координатой X,Y;

LineTO(X, Y: integer) — Рисует линию от текущего указателя к точке с координатой Х, У;

LineRel(DX, DY: integer) — Рисует линию от текущего указателя к точке, заданной приращением координат;

Line(X1,Y1,X2,Y2:integer) — Рисует линию от точки (X1,Y1) к точке с

координатой Х2, У2;

MoveTO(X, Y: integer) — Смещает текущий указатель к точке с координатой Х, У;

MoveRel(DX, DY: 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 ширины).

Если Тор=True, то рисуетсяверхняя грань пеpеллелипипеда;

Circle(X,Y:integer;R:word) — Рисует окружность радиуса R,используя

X,Y как координаты центра;

Fillellipse(X,Y: integer;XR,YR: word) — Рисует защтpихованный эллипс,

используя X,Y как центр иXR,YR как горизонтальный и

вертикальный радиусы.

RestorCRTMode — Восстанавливает текстовый режим работы экрана;

OutText(Text: string) — Выводит текстовую строку на экран.

OutTextXY(X,Y: integer; Text:string) — Выводит текст в заданное

место экрана.

Пример программы построенияграфика функции  у=2+х*х.

programgraphik;                         {файл grafikf.pas}

usesgraph;           {подключение модуля GRAPF}

var a,b,x,y: integer; {a,b-переменные, определяющие тип драйвера и

видеорежим соответственно}

begin

detectgraph(a,b);   {автоопределение типа драйвера и видеорежима}

initgraph (a,b,'E:\TP\BGI');{инициализация графического режима}

setgraphmode(2);   {установканового режима (2), очистка экрана}

setBKcolor(0); {основной цветфона — черный}

setcolor(4);    {основнойцвет рисования — красный}

moveTO(100,100);  {смещаеткурсор}

lineRel(50,50); {вычерчиваниелинии по приращению от текущего

указателя}

readln; {пауза до нажатияклавиши }

setcolor(2);    {основнойцвет рисования — зеленый}

line(100,100,100,50);{рисуетлинию от т.Х1, У2 до т.Х2, У2}

readln; {пауза до нажатия }

setcolor(5);    {основнойцвет рисования — фиолетовый}

putPixel(0,0,12);    {выводитточку цветом 12 с координатой 0,0}

readln; {пауза до нажатия }

moveTO(1,2);  {смещает курсорк точке с координатой 1,2}

for x:=0 to 20 do

begin

y:=2+ x*x;

lineTO(x,y); {рисует линию оттекущего

указателя к точке скоординатой Х, У}

end;

readln; {пауза до нажатия ввода}

Settextstyle(1,0,5);

OutTextXY(50,400,'графикфункции у=2+х*х'); {выводит текст в

заданное место экрана}

readln; {пауза до нажатия }

putPixel(639,479,14);{выводитточку цветом 14 с координатой 639,479}

readln; {пауза до нажатия }

closegraph;{закрываетграфический режим и восстанавливает текстовый}

end.

Begin

driver:=VGA;     (9)

mode:=VGAH;      (2)

InitGraph(driver,mode, 'e:\TP\BGI');  тип  string.

DetectGraph(varDiver, Mode: integer) — возвращает тип драйвера и текущий режим его работы.

Основные цвета задаются от 0до 15:

0- черный                   8 — темно-синий

1- синий                    9 — ярко-синий

2- зеленый                  10 — ярко-зеленый

3- голубой                  11 — ярко-голубой

4- красный                  12 — розовый

5- фиолетовый               13 — малиновый

6- коричневый               14- желтый

7 — светло-серый            15- белый.

Если Х и У вещественные, тоих нужно преобразовать к целым координатам (в пределах раздела экрана). Дляэтого используются функции ROUND или   TRUNC  прямого преобразования к целомузначению LineTo(trunc(x),trunc(y));

Также необходимо следить, чтобы значения не выходили за пределы

экрана (рассчитывайте коэффициенты увеличения или уменьшения и пара-

метры смещения)

ПРОЦЕДУРЫ И ФУНКЦИИ модуляGRAPH

установочные

ClearDevice — Очищает экран ипомещает курсор в точку (0,0);

SetViewPort(x1,y1,x2,y2:integer;Clip: boolean)  — Устанавливает

текущее окно для графическоговывода. X1,y1 — координата

верхнего левого угла; x2,y2 — координата нижнего правого угла.

Если Clip=true, то всеизображения отсекаются на границах вывода;

ClearViewPort — Очищаеттекущее окно;

GetMaxX: integer — возвращаетмаксимальную горизонтальную координату

графического экрана;

GetMaxY: integer — возвращаетмаксимальную вертикальную координату

графического экрана;

GetX: integer — возвращаеткоординату Х текущего указателя в окне;

GetY: integer — возвращаеткоординату Y курсора в окне;

SetLineStyle(Line,Pattern, Thickness: word) — Устанавливает стиль

(0..4), шаблон штриховки(0..12) и толщину (1-ноpм, 3-утpоенная);

SetFillStyle(Pattern, Color:word) — Устанавливает образец штриховки и

цвет (0..15 и 128-меpцание);

SetGraphMode(Mode: integer) — Устанавливает новый графический режим и

очищает экран;

SetColor(Color: word) — Устанавливаетосновной цвет, которым выполняется рисование (0..15);

SetBkColor(Color: word) — Установка цвета фона.

Гpафические примитивы

PutPixel(X,Y: integer; Color:word) — Выводит точку цветом Color с координатой X,Y;

LineTO(X,Y: integer) — Рисуетлинию от текущего указателя к точке с координатой Х, У;

LineRel(DX,DY: integer) — Рисует линию от текущего указателя к точке, заданной приращением координат;

Line(X1,Y1,X2,Y2:integer) — Рисует линию от точки (X1,Y1) к точке с

координатой Х2, У2;

MoveTO(X,Y: integer) — Смещает текущий указатель к точке с координатой Х, У;

MoveRel(DX,DY: 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 ширины).

Если Тор=True, то рисуетсяверхняя грань пеpеллелипипеда;

circle(X,Y:integer;R:word) — Рисует окружность радиуса R,используя

X,Y как координаты центра;

Fillellipse(X,Y: integer;XR,YR: word) — Рисует защтpихованный эллипс,

используя X,Y как центр иXR,YR как горизонтальный и

вертикальный радиусы.

RestorCRTMode — Восстанавливает текстовый режим работы экрана;

OutText(Text: string) — Выводит текстовую строку на экран.

OutTextXY(X,Y: integer; Text:string) — Выводит текст в заданное

место экрана.

Пример программы построенияграфика функции  у=2+х*х.

programgraphik;                         {файл grafikf.pas}

usesgraph;           {подключение модуля GRAPF}

var a,b,x,y: integer; {a,b-переменные, определяющие тип драйвера и

видеорежим соответственно}

begin

detectgraph(a,b);   {автоопределение типа драйвера и видеорежима}

initgraph(a,b,'E:\TP\BGI');{инициализация графического режима}

setgraphmode(2);   {установканового режима (2), очистка экрана}

setBKcolor(0); {основной цветфона — черный}

setcolor(4);    {основнойцвет рисования — красный}

moveTO(100,100);  {смещаеткурсор}

lineRel(50,50); {вычерчиваниелинии по приращению от текущего указателя}

readln; {пауза до нажатияклавиши }

setcolor(2);    {основнойцвет рисования — зеленый}

line(100,100,100,50);{рисуетлинию от т.Х1, У2 до т.Х2, У2}

readln; {пауза до нажатия }

setcolor(5);    {основнойцвет рисования — фиолетовый}

putPixel(0,0,12);    {выводитточку цветом 12 с координатой 0,0}

readln; {пауза до нажатия }

moveTO(1,2);  {смещает курсорк точке с координатой 1,2}

for x:=0 to 20 do

begin

y:=2+ x*x;

lineTO(x,y); {рисует линию оттекущего указателя к точке с координатой Х, У}

end;

readln; {пауза до нажатияввода}

Settextstyle(1,0,5);

OutTextXY(50,400,'графикфункции у=2+х*х'); {выводит текст в заданное место экрана}

readln; {пауза до нажатия }

putPixel(639,479,14);{выводитточку цветом 14 с координатой 639,479}

readln; {пауза до нажатия }

closegraph;{закрываетграфический режим и восстанавливает текстовый}

end.

41.Библиотечный модуль CRT. Работа с клавиатурой, экраном, звуковым генератором.

Модуль CRT включаетпроцедуры  и функции,  которые управляют текстовым режимом

работы дисплея.  С помощьюподпрограмм модуля можно перемещать  курсор

по экрану  дисплея,  менятьцвет выводимых символов и фона,  создавать

окна на экране, управлятьзвуком, работать с клавиатурой.

Функции управленияклавиатурой:

 KeyPressed: Boolean;  — возвращает True, если в текущий момент на клавиатуре  была нажата клавиша,иначе False. Не приостанавливает выполнение программы.  Используется приорганизации работы циклов.

 ReadKey: Char; — читает ивозвращает в программу символ с клавиатуры (без отображения на экране).Приостанавливает исполнение программы до  нажатия на любую клавишу символа. Используется в операторах IF для проверки символов.

 WhereX: Byte; — возвращает горизонтальную координату текущей позиции курсора относительно окна.

 WhereY: Byte;  — возвращаетвертикальную координату текущей позиции курсора относительно окна.

                    Процедурыуправления дисплеем

 AssignCrt(Var F: Text); — связывает с файловой переменной устройство CON (клавиатуру для ввода и дисплейдля вывода).

 ClrEol; — удаляет всесимволы справа от курсора до  конца  строки без перемещения курсора.

 ClrScr; — очищает экран (окнона  экране)  и  помещает  курсор  в верхний левый угол.

 Delay(D: word); — приостанавливает работу программы на D миллисекунд.

 GotoXY(X,Y: byte); — перемещает курсор в нужное место экрана  (окна). Левый  верхний угол экрана(окна) имеет координаты (1,1).  Отсчет координат идет слева направо и  сверху вниз.  Количество  символов  в строке и  самих  строк  зависит  от типа дисплея(обычно 25 строк и 80 символов).

 InsLine; — вставляет пустуюстроку в позицию курсора.

 HighVideo; — устанавливаетвысокую яркость символов.

 LowVideo; — устанавливаетнизкую яркость символов.

 NormVideo; — устанавливаетнормальную яркость символов.

 Window(X1,Y1,X2,Y2:byte); — определяет размеры окна на экране для вывода текста. X1,Y1 — координаты левоговерхнего угла, X2,Y2 — правого нижнего угла.

 TextBackGround(Color: byte);- устанавливает цвет фона экрана (окна) от 0 (черный) до 15 (белый).

 TextColor(Color: byte); — устанавливает цвет символа.

 TextMode(Mode: word); -  устанавливает  нужный  текстовый  режим:0,1,2…

   Управление звуковымгенератором

 Sound(F: word); — включает звук  генератора,  F  — частота звука в герцах.

 Delay(T: word); — устанавливает продолжительность звучания в миллисекундах.

 NoSound; — выключает звукгенератора.

42.Процедурные типы. Параметры-функции. Параметры-процедуры.

Процедурные типы – гибкоесредство для передачи функций и процедур в качестве фактических параметровобращения к другим процедурам и функциям.

Typep1=procedure(a, b, c: real; var d: real);

F= function: string;

Любые процедуры или функции,передаваемые в качестве фактических параметров объявляется директивой far.

Стандартные процедуры илифункции  ТП могут передаваться рассмотренным образом. В программе могут быть объявлены переменные процедурных типов.

Var  p1:proc1;

                    F: func2;

                   Ap: array [1..n] of proc1;

Переменные процедурных типовдопускается присваивать в качестве значений имена соответствующихподпрограмм=> переменные становятся синонимом имени подпрограммы.

43.Адресный тип. Динамическая память. Адреса и указатели.

Динамическая память – этооперативная память ПК, представляемая программно при её работе, за вычетомсегмента данных 164 Кбайта, стёка(обычно 16 Кбайт) и собственно тела программы(>200-300 Кбайт)

 Д.п. — это практическиединственная возможность обработки массивов данных большой размерности.

Сегмент данных — этонепрерывная область оперативной памяти в которой размещаются все переменные,объявленные  в программе.

Д. размещение данных –означает использование Д.П. непосредственно при работе программы.

ОЗУ ПК  представляет собойсовокупность ячеек для хранения информации  — байтов, каждый из которых имеет собственный номер. Эти номера – называются адресами, позволяющими обращаться клюбому байту памяти.

Указатели – гибкое средствоуправления Д.П… Это переменная,  которая  в качестве своего значения содержитадрес байта памяти. В ПК адреса задаются сегментами и 16 разрядными смещениями.

Сегмент – это участок памятиимеющий длину 65536(64Кбайта) и начинается с физического адреса, кратного 16.

Смещение – указывает, сколькобайт от начала сегмента нужно отступить, чтобы обратиться к нужному адресу.Адресное пространство 1 Мбайт – стандартная память ПК. Для адресации в пределах1 Мбайта нужно 20 двоичных разрядов, которые получаются из 2-х 16 разрядныхслов (сегмента и смещения типа word ) =>содержимое сегмента  смещается на 4 разряда,освободившиеся правые заполняются  нулями.

Структура памяти:  SYSобласть – КУЧА – SYS область

I^:=2;{в область памяти I заносится 2}

Функции:

ADDR (x) – возвращает результат типа pointer, вкотором содержится адрес аргумента,x- любой объект программы (переменная, процедура, функция)

CSEG-  возвращает значение, хранящееся в регистре CSмикропроцессора. Результат в слове типа word.

DSEG — возвращает значение, хранящееся в регистре DSмикропроцессора. Результат в слове типа word.

MAXAVAIL-возвращает размер в байтах наибольшего непрерывногоучастка кучи .MAXAVAIL(LONGINT).

За вызов процедуры NEWили GETMEM нельзя зарезервировать памяти больше, чем значение,возвращаемое этой функцией.

MEMAIAIL(LONGINT)- возвращает размер в байтах общего свободногопространства кучи

OFS(Х)-возвращает значение типа WORD, содержащеесмещения адреса указанного объекта.(Х)-выражение любого типа или процедура.

PTR(seg, ofs) — возвращает значение типа POINTER, позаданному  сегменту и смещению

SEG(X) — возвращает значение типа WORD, содержащеесегмент адреса указанного объекта.

SIZEOF(X)- возвращает длину в байтах внутреннего представленияуказанного объекта.X- имя переменной, функции или типа.

Процедуры:

DISPOSE- возвращает в кучу фрагмент динамической памяти, который был ранее зарезервирован за типизированным указателем.

DISPOSE(TP) – типизированный указатель

FREEMEM — возвращает в кучу фрагмент динамической памяти, который был ранее зарезервирован за нетипизированным указателем

FREEMEM(P,SIZE) – P-нетипизированный указатель ,SIZE-длиннаосвобождающегося размера.

GETMEM(P,SIZE) – резервирует за нетипизированным указателемфрагмент Д, П, требуемого размера(не более 65521)

MARK(PTR) – запоминает текущее значение указателя кучи. PTR-указатель любого типа

NEW — резервирует фрагмент кучи для размещения переменной.

NEW(TP) — тип указатель

RELISE(PTR) – освобождает участок кучи .PTR – указательлюбого типа, в котором предварительно было сохранено  процедурой  MARKзначение указателя кучи.

Д.П. широко используется длявременного запоминания данных при работе с графикой и звуком в ПК.

44.Среда ТП. Основные выполняемые функции. Система меню (работа с файлами, запуск,компиляция, отладка (Debug), работа с окнами).

Меню run

Run- запуск на исполнение

Step over-пошаговое исполнениепрограммы

Trace into- пошаговое исполнениепрограммы только подпрограммы выполняются оператор за оператором

Go to cursor– выполнение до курсора

Program reset- завершение процессаотладки

Parameters- окно для ввода параметров для отладки

Меню compile

Compile- компиляция файла, находящегося в активном окнередактирования.

Make – условная компиляция изменённых модулей в ЕХЕ файл

Build- безусловная компиляция многомодульной программы ссозданием ЕХЕ файла

Target…-выбор в окне таргет целевой платформы для приложения

Primary file…-открывает окно для указанияглавного файла, компилируемой программы.

Меню Debug:

Breakpoints- установка точек условного и безусловного перехода

Call stack – показывает процедурывыполнявшиеся ранее.

Register – информация о регистрах процессора

Watch – окно значений переменных

Output – окно результатов работы программы

User screen – просмотр результатоввключая графику

Evaluate/ modify… – окно изменения значений выражений

Add watch – окно значений ипеременных вовремя отладки

Add breakpoint… – окно установкиточек прерывания программы 

45.Модульное программирование. Оформление модуля в ТП.

Модульное программирование –это организация программы как совокупности небольших независимых блоков,называемых модулями, структура и поведение которых подчиняется определеннымправилам.

Модуль – это автономнокомпилируемая программная единица,  включающая в себя различные компонентыраздела описаний (типы, константы, переменные, процедуры, функции) и, возможно,некоторые исполняемые операторы инициирующей части.

Использованиемодулей – прекрасный инструмент для разработки библиотек прикладных программ  имощное средство модульного программирования.

ТП размещает программный кодмодулей в отдельном сегменте памяти.

Структура модулей:

UNIT<имя> -зарезервированное слово (единица),начинает заголовок модуля

INTERFACE<интерфейсная часть> — начинает интерфейснуючасть

IMPLIMENTAITION<исполняемая часть>

BEGIN <инициируемая часть>END.

Модуль состоит из заголовка итрёх частей, любая из которых может быть пуста.

В ТП возможно осуществлятьподключение средств, облегчающих разработку крупных программ.

 Имя модуля должно совпадатьс именем файла, в котором находится исходный текст модуля (исходник). Имямодуля служит  для связи с др. модулями и  основной программой. Связьустанавливается спец. объявлением:

USES<имя вспомогательного модуля > — списоксвязываемых модулей.

Интерфейсная часть –содержитобъявление всех глобальных объектов модуля (типов, констант, переменных ипрограмм), которые должны доступными основной программе или другим модулям. Винтерфейсной части указываются только их заголовки. Объявление подпрограмм винтерфейсной части авто компилируется с использованием дальней модели памяти {far иnear}, что обеспечивает доступ к подпрограмме из основнойпрограммы и др. модулей.Const, var  объявленные в интерфейсной части модуля, как иглобальные константы и переменные помещаются в общий сегмент данных(max65536 байт).

Исполняемая часть – содержитописания программ, объявленных в интерфейсной части. Разрешается  объявлениелокальных для модуля вспомогательных типов, констант, переменных. Заголовок –обязательно, список формальных параметров можно опустить. Все параметры размещаютсяв сегменте данных.

Инициирующая часть –завершает модуль, может отсутствовать или быть пустой. Размещение исполняемыхоператоров, фрагменты программы. Операторы исполняются до передачи управленияосновной программе и для  подготовки её работы. При пустой инициирующей частилучше всего её попустить.

Стандартные модели:

SYSTEM,DOS,CRT,GRAPH,PRINTER,OVERLAY,TURBO3,GRARH3

еще рефераты
Еще работы по информатике, программированию