Реферат по предмету "Программирование"


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

Вопросы  и ответы 
к экзаменам В-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:=1 to 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. Составной и пустой операторы.

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

FOR :=TO DO

FOR :=DOWNTO DO
11. Оператор
цикла с предусловием.

Цикл ДО

WHILEDO
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];         

PROCEDURE S(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 : массивы, записи, множества, файлы) характеризуется  множественностью образующих этот тип
элементов. В ТП

Допускается бесконечная глубина вложенности типов, однако Суммой== проверка вхождения (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. Записи.
Вложенные записи. Записи с вариантами.

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

=RECORDEND.

Type

            Bd = record

            D,m: byte;

            Y: word

Var a,b: bd;

a::=8;

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

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

Withdo;

With c.bp do month:=9;

With c do with bp do month:=9;

c.bp.month:=9;

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

Type f= record

         N: string;

         Case byte of

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 if c.db.year=1939 then………..

End.

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

Type rec2=record

            C: LongInt;

Case x: byte of

1: (d: word);

2: (e:record

            case boolean 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(Var f) | Открытие файла с логическим именем f для чтения  |

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

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

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

|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:TPBGI');  тип  string.

DetectGraph(var Diver, 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+х*х.

program graphik;                         {файл grafikf.pas}

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

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

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

begin

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

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

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:TPBGI');  тип  string.

DetectGraph(var Diver, 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+х*х.

program graphik;                         {файл grafikf.pas}

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

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

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

begin

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

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

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.
Процедурные типы. Параметры-функции. Параметры-процедуры.

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

Type p1=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  объявленные в интерфейсной части модуля ,
как и глобальные константы и переменные помещаются в общий сегмент данных(max 65536 байт).

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

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

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

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


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :