Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Bilet_1 все.docx
Скачиваний:
1
Добавлен:
19.09.2019
Размер:
142.38 Кб
Скачать

2. . Данные программ хранятся в переменных.

Пример: 7*sin(x)

x-переменная

Переменная может менять значение в течение выполнения программы

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

Формат описания:

var имя1: тип;

имя2: тип;

Пример:

var vasya: integer;

a7:real;

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

числа с плавающей запятой (real), целые (integer), символьный (char), логический (boolean) и перечисления (конструктор нового типа, введённый в Паскале).

Билет 15

1. Задание файловой переменной Файловый тип или переменную можно задать одним из трех способов: <Имя> = ПОЭТ <тип> <Имя> - имя файлового типа (правильный идентификатор); ПОЭТ - зарезервированные слова; <Тип> - любой тип кроме файлов Turbo Pascal. В зависимости от способа объявления можно выделить три вида файлов:

  • типизированные файлы (задаются предложением ПОЭТ);

  • текстовые файлы (определяются типом TEXT);

  • нетипизированные файлы (определяются типом поэта).

Доступ к файлам Файлы и логические устройства становятся доступны программе только после выполнения особой процедуры открытия файла (логического устройства). Эта процедура заключается в связывании ранее объявленной файловой переменной с именем существующего или вновь создаваемого файла, а также в указании направления обмена информацией: чтение из файла или запись в него Файловая переменная связывается с именем файла в результате обращения к стандартной процедуре Назначьте: ASSIGN (<ф П..>, <Имя файла или л У..>); Здесь <ф. п> - файловая переменная. <Имя файла или л. у> -. текстовое выражение, содержащее имя файла или логическое устройство. Если имя файла задается в виде пустой строки, например, назначение (F,''), то в зависимости от направления обмена данными файловая переменная связывается со стандартным файлом или ввода-вывода.

2. Пример: 7*sin(x)

x-переменная

Переменная может менять значение в течение выполнения программы

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

Формат описания:

var имя1: тип;

имя2: тип;

Пример:

var vasya: integer;

a7:real;

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

П ример: 1 2 3 4 5 6 7

1 2 7 8 9 10 11 Mas 1

byte byte

Для доступа к массиву как к единому целому используется имя переменной типа массив. Для поэлементного доступа используется механизм индексации:

  1. Каждому элементу массива сопоставляется некоторое значение порядкового типаиндекс.

  2. Для доступа к отдельному элементу используется его индекс.

Имя [индекс элемента]

Mas1[4]→8

Описание массивов

Массив объявляется специальной конструкцией:

Array [список индексов] of базовый тип

Пример: массив из 10 элементов типа Integer

1 случай ) var a: array [1..10] of integer;

2 случай ) type tmas1=array [1..10] of integer;

var a:tmas1;

Билет 16

1. Оператор ветвления case Оператор ветвления case является удобной альтернативой оператору if, если необходимо сделать выбор из конечного числа имеющихся вариантов. Он состоит из выражения, называемого переключателем, и альтернативных операторов, каждому из которых предшествует свой список допустимых значений переключателя:

case <переключатель> of <список ?1 значений переключателя>: <оператор 1>; <список ?2 значений переключателя>: <оператор 2>; ... <список ?N значений переключателя>: <оператор N>; else <оператор N+1> end;

Оператор case вычисляет значение переключателя (который может быть задан выражением), затем последовательно просматривает списки его допустимых значений в поисках вычисленного значения и, если это значение найдено, выполняет соответствующий ему оператор. Если переключатель не попадает ни в один из списков, выполняется оператор, стоящий за словом else. Если часть else отсутствует, управление передается следующему за словом end оператору.

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

Список значений переключателя может состоять из произвольного количества констант и диапазонов, отделенных друг от друга запятыми. Границы диапазонов записываются двумя константами через разграничитель в виде двух точек (..). Все значения переключателя должны быть уникальными, а диапазоны не должны пересекаться, иначе компилятор сообщит об ошибке. Тип значений должен быть совместим с типом переключателя. Например:

program Console;

{$APPTYPE CONSOLE}

uses SysUtils;

var Day: 1..31;

begin Readln(Day); case Day of 20..31: Writeln('День попадает в диапазон 20 - 31.'); 1, 5..10: Writeln('День попадает в диапазон 1, 5 - 10.'); else Writeln('День не попадает в заданные диапазоны.'); end; Writeln('Press Enter to exit...'); Readln; end. Если значения переключателя записаны в возрастающем порядке, то поиск требуемого оператора выполняется значительно быстрее, так как в этом случае компилятор строит оптимизированный код.

2. Область видимости переменной — понятие в некоторых языках программирования. Оно определяет места в исходном коде программы, в которых может использоваться данная переменная.По области видимости переменные делятся на: локальные (которые «видны» внутри данной структуры — файла, подпрограммы или оператора) и глобальные (которые «видны» во всей программе). В некоторых языках появились ещё и общие переменные.Область видимости переменной может задаваться с помощью классов памяти или пространства имён.В C++ область доступа поля класса можно задавать с помощью ключевых слов public, private и protected.

Область действия переменной - это тот участок программы, где имени переменной ставится в соответствие один и тот же машинный адрес. В Паскаль-программе областью действия переменной является весь блок, в котором объявлена данная переменная, за исключением тех внутренних блоков, в которых эта же переменная объявлена повторно. В рассматриваемом примере область действия переменной x, объявленной в основной программе - вся программа, за исключением процедуры P1; переменной k - вся программа, в том числе и процедуры P1PP1P2; переменной q - процедура P1, в том числе и ее внутренняя процедура PP1; переменной t - только процедура PP1 и т.д. Переменные, объявленные в основной программе, действуют во всей этой программе. Такие переменные называют глобальными (в программе SubRout - это переменные xyzkmn ). Переменные, объявленные в процедуре, действуют лишь в пределах этой процедуры. Это локальные переменные. Более общее определение: - локальными называют переменные, которые объявлены в разделах Var процедур и функций; - глобальными называют переменные, которые объявлены в разделах Var вне процедур и функций.

Program SubRout;

Var  x,y,z : real;

     k,m,n : integer;

  Procedure P1;

  Var  x,y,q : word;

       m,u : real;

     Procedure PP1;

     Var  y,t : byte;

          n : longint;

     Begin

     End { PP1 };

  Begin

  PP1;

  End { P1 };

  Procedure P2;

  Var  z,v : char;

       n,r : longint;

  Begin

  End { P2 };

Begin

  P1;

  P2;

End.

Пространство имён (англ. namespace) — некоторое множество, под которым подразумевается модель, абстрактное хранилище или окружение, созданное длялогической группировки уникальных идентификаторов (то есть имён). Идентификатор, определенный в пространстве имён, ассоциируется с этим пространством. Один и тот же идентификатор может быть независимо определён в нескольких пространствах. Таким образом, значение, связанное с идентификатором, определённым в одном пространстве имён, может иметь (или не иметь) такое же значение, как и такой же идентификатор, определённый в другом пространстве. Языки с поддержкой пространств имён определяют правила, указывающие, к какому пространству имён принадлежит идентификатор (то есть его определение). В больших базах данных могут существовать сотни и тысячи идентификаторов. Пространства имён (или схожие структуры) реализуют механизм для сокрытия локальных идентификаторов. Их смысл заключается в группировке логически связанных идентификаторов в соответствующих пространствах имён, таким образом делая системумодульной.

Билет 17

1.

2. Модуль – это отдельно компилируемая программная единица. Модуль содержит различные описания, а именно: типы, константы, переменные, процедуры и функции и даже возможно некоторую операторную часть. Каждый модуль имеет имя и находится в отдельном файле. Если программа состоит из модулей, то при компиляции каждый модуль компилируется отдельно. Откомпилированные модули объединяются в выполняемую программу. Этот процесс называется сборкой. Однажды написанный и откомпилированный модуль можно многократно использовать в различных программах, что экономит силы программиста, сокращает время компиляции и предохраняет от искажений исходный текст модуля. Иногда это даже помогает сохранить авторские права на программный модуль.

Uses имя1, имя2,имя3;

После этого все, что описано в интерфейсном разделе модуля доступно для использования.

Файл модуля имеет следующую структуру:

Unit имя;

Interface

Интерфейсный раздел

Implementation

Раздел реализации

Initialization

Раздел инициализации

Finalization

Завершающий раздел

End. //заканчивается точкой

Билет 18

1. Сортировка Сортировкой называют процесс упорядочивания элементов по некоторому признаку. В дальнейшем будем рассматривать только сортировку массивов. Массив может быть отсортирован по возрастанию – каждый следующий элемент массива больше предыдущего или по убыванию - каждый следующий элемент массива меньше предыдущего. Рассмотрим следующие простые методы:Выбора.

1.Обмена.

2.Включения.

Метод прямого выбора

Основан на следующих принципах:

1.Выбирается наименьший элемент.

2.Он меняется с первым элементом а[1].

3.Затем этот процесс повторяется с оставшимися n-1 элементами, n-2 элементами и т.д. до тех пор пока не останется один, самый большой элемент.

for i:=1 to n-1 do begin

Присвоить к индекс наименьшему из a[i]…a[n];

Поменять местами a[i] и a[k];

end

Const n=100;

Var i,j,k:integer;

a:array[1..n] of real;

3.Затем этот процесс повторяется с оставшимися n-1 элементами, n-2 элементами и т.д. до тех пор пока не останется один, самый большой элемент.

x:real

…..

for i:=1 to n-1 do begin

k:=i; x:=a[i];

for j:=i+1 to n do

if a[j]<x then begin k:=j; x:=a[k] end;

a[k]:=a[i]; a[i]:=x

end

2. . Поток - объект внутри процесса, отвечающий за выполнение кода и получающий для этого процессорное время.

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

Каждый поток может создать другой поток и т.д. Потоки не могут существовать отдельно от процесса, т.е. каждый поток принадлежит какому-то процессу и этот поток выполняет код, только в адресном пространстве этого процесса. Иными словами, поток не может выполнить код чужого процесса, хотя в nt-системах есть лазейка, но это уже тема отдельной статьи.

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

В delphi существует специальный класс, реализующий потоки - tthread. Это базовый класс, от которого надо наследовать свой класс и переопределять метод execute

.

Билет 19

1. Понятие исключительной ситуации, ее обработка средствами Delphi Под исключительной ситуацией мы будем понимать некое непредвиденное событие, способное повлиять на дальнейшее выполнение программы. При обработке такой ситуации Delphi, как обычно, работает с объектами. С точки зрения компилятора Delphi исключительная ситуация - это объект. Для работы с этим специфичным объектом в Delphi (точнее, в Object Pascal) были введены следующие языковые конструкции: try .. except и try .. finally. Рассмотрим эти языковые конструкции более подробно. Итак, конструкция try .. except имеет следующий синтаксис (листинг 1.6):

try {исполняемый код}; except on Exceptionl do {код, исполняемый в случае возникновения ошибки 1}; on Exception2 do {код, исполняемый в случае возникновения ошибки 2}; else {код, обработчик всех не перехваченных ранее ошибок}; end; Если при выполнении кода, размещенного в разделе try, генерируется исключение, то выполнение этого раздела прекращается и управление передается коду, размещенному в разделе except. Раздел except может использоваться двумя способами. Во-первых, в нем могут располагаться любые операторы, кроме обработчиков исключений, начинающихся с приставки on. Это и операторы сообщения об ошибке, и команды, позволяющие освобождать системные ресурсы, а также другие операторы и команды. Во-вторых, раздел except используется для обработки исключений. В этом случае в него могут включаться только операторы обработки исключений. Если среди обработчиков встретился обработчик, соответствующий сгенерированному исключению, то выполняется оператор этого обработчика, исключение разрушается и управление передается коду, расположенному после оператора on Exception do. Раздел, расположенный после ключевого слова else, служит для обработки любых исключений, не описанных в разделе except. Этот раздел не является обязательным. Если при обработке исключительной ситуации не будет найден подходящий обработчик, то произойдет обработка системным обработчиком исключений. Рассмотрим простой пример обработки исключительной ситуации деления на ноль (листинг 1.7).

2. Множество — это структурированный тип данных, представляющий собой набор взаимосвязанных по какому-либо признаку или группе признаков объектов, которые можно рассматривать как единое целое. Каждый объект в множестве называется элементом множества.

Все элементы множества должны принадлежать одному из порядковых типов, содержащему не более 256 значений. Этот тип называется базовым типом множества. Базовый тип задается диапазоном или перечислением.

Область значений типа множество — набор всевозможных подмножеств, составленных из элементов базового типа. В выражениях на языке Паскаль значения элементов множества указываются в квадратных скобках: [1,2,3,4], ['а',‘b','с'], ['a'..'z'].

Например:

Var A, D : Set Of Byte;

B : Set Of 'a'..'z';

C : Set Of Boolean;

Объединением двух множеств A и B называется множество, состоящее из элементов, входящих хотя бы в одно из множеств A или B. Знак операции объединения в Паскале «+».

1) [1, 2, 3, 4] + [3, 4, 5, 6] => [1, 2, 3, 4, 5, 6]

2) []+[‘a’..’z’]+[‘A’..’E’, ‘k’]  => [‘A’..’E’, ‘a’..’z’]

3) [5<4, true and false] + [true]  => [false, true]

Пересечением двух множеств A и B называется множество, состоящее из элементов, одновременно входящих во множество A и во множество B.

Знак операции пересечения в Паскале «*»

Разностью двух множеств A и B называется множество, состоящее из элементов множества A, не входящих во множество B.

1a) [1, 2, 3, 4] - [3, 4, 5, 6] => [1, 2]

1b)  [3, 4, 5, 6] - [1, 2, 3, 4]  => [5, 6]

2a) [‘a’..’z’]-[‘A’..’E’, ‘k’]  => [‘a’..’j’, ‘i’..’z’]

2b) [‘A’..’E’, ‘k’] - [‘a’..’z’]  => [‘A’..’E’]

3a) [5<4, true and false] - [true] => [false]

3b) [true] - [5<4, true and false] => [true]

Билет 20

1. . Поток - объект внутри процесса, отвечающий за выполнение кода и получающий для этого процессорное время.

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

Каждый поток может создать другой поток и т.д. Потоки не могут существовать отдельно от процесса, т.е. каждый поток принадлежит какому-то процессу и этот поток выполняет код, только в адресном пространстве этого процесса. Иными словами, поток не может выполнить код чужого процесса, хотя в nt-системах есть лазейка, но это уже тема отдельной статьи.

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

В delphi существует специальный класс, реализующий потоки - tthread. Это базовый класс, от которого надо наследовать свой класс и переопределять метод execute.

2.В состав MS DOS входит несколько команд общесистемного назначения:

  • CLS - очистка экрана.

  • DATE - вывод информации о дате. При необходимости выведенную дату можно откорректировать.

  • TIME - вывод информации о времени или коррекция текущего времени. VER - информация о версии DOS MEM - просмотр распределения памяти на ПК (обычная, верхняя, расширенная) PROMPT - изменение вида приглашения DOS.

В параметре текст можно использовать следующие символы и их сочетания:

  • $p - текущий дисковод и каталог

  • $n - текущий дисковод

  • $d - текущая дата

  • $t - текущее время

  • $v - версия DOS

  • $s - пробел

  • $g - символ “>”

  • $$ - символ “$”

  • $l - символ “<”

  • $b - символ “ Ѕ ”

Задание файловой переменной Файловый тип или переменную можно задать одним из трех способов: <Имя> = ПОЭТ <тип> <Имя> - имя файлового типа (правильный идентификатор); ПОЭТ - зарезервированные слова; <Тип> - любой тип кроме файлов Turbo Pascal. В зависимости от способа объявления можно выделить три вида файлов:

  • типизированные файлы (задаются предложением ПОЭТ);

  • текстовые файлы (определяются типом TEXT);

  • нетипизированные файлы (определяются типом поэта).

Доступ к файлам Файлы и логические устройства становятся доступны программе только после выполнения особой процедуры открытия файла (логического устройства). Эта процедура заключается в связывании ранее объявленной файловой переменной с именем существующего или вновь создаваемого файла, а также в указании направления обмена информацией: чтение из файла или запись в него Файловая переменная связывается с именем файла в результате обращения к стандартной процедуре Назначьте: ASSIGN (<ф П..>, <Имя файла или л У..>); Здесь <ф. п> - файловая переменная. <Имя файла или л. у> -. текстовое выражение, содержащее имя файла или логическое устройство. Если имя файла задается в виде пустой строки, например, назначение (F,''), то в зависимости от направления обмена данными файловая переменная связывается со стандартным файлом или ввода-вывода.

Билет 21

1. . Это процедура ShowMessage, функции MessageDlgPos и MessageDlg, они показывают панель (окно) вывода сообщений.

howMessage(const Msg: String) - эта процедура выводит окно с сообщением и кнопкой Ok. В заголовке содержится название исполняемого файла, если в опциях приложения не задан параметр Title, если задан то выводиться будет он. Строка Msg - будет выводиться как текст сообщения.

MessageDlg(const Msg: String; AType: TMsgDlgType; Abuttons: TMsgButtons; HelpCtx: Longint): Word - функция показывающая диалоговое окно сообщения в центре экрана и дает возможность пользователю ответить на сообщение. Msg - параметр отвечающий за выводимый текст сообщения.

Тип выводимого окна сообщения зависит от параметра AType, список возможных значений которого следующий:

  • mtErrore - на фоне красного круга расположен белый косой крест и заголовок окна -    Error;

  • mtWarning - на фоне желтого треугольника расположен черный восклицательный знак -"!"   и заголовок окна - Warning;

  • mtConfirmation на фоне белого круга расположен синий знак "?"  и заголовок окна - Confimation;

  • mtInformation - на фоне белого круга расположена синия буква "i"  и заголовок окна - Information;

  • mtCustom - диалоговое окно не содержит рисунка, в заголовке выводиться имя исполняемого файла приложения или Title свойства Application приложения.

AButtons - параметр, который задает набор кнопок на диалоговой форме и может принимать произвольные комбинации из значений:

  • кнопка Yes - mbYes,

  • кнопка Ok - mbOk, 

  • кнопка No - mbNo,

  • кнопка Cancel - mbCancel,

  • кнопка  Abort - mbAbort,

  • кнопка Retry - mbRetry,

  • кнопка Ignore - mbIgnore,

  • кнопка All - mbAll,

  • кнопка Help - mbHelp.

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

MessageDlg('Большое значение', mtConfirmation, [mbYes,mbNo],0 );

Кроме перечисления отдельных кнопок, есть возможность задать часто используемым сочетаниям кнопок значениями специальных констант:

  • кнопки OK и Cancel - mbOkCancel,

  • кнопки Yes, No и Cancel - mbYesNoCancel, 

  • кнопки Abort, Retry и Ignore - mbAbortRetryIgnore.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]