Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БазыДанных- ответы.doc
Скачиваний:
11
Добавлен:
06.05.2019
Размер:
369.66 Кб
Скачать
  • Интерпретатор – каждый оператор переводит в эквивалентный машинный код и немедленно выполняет его. Во время работы программы интерпретатор должен присутствовать в ОЗУ ПК (без него программа работать не будет).

    Преимущества:

    • Более эффективный режим отладки программы, ошибки обнаруживаются сразу. Обратный процесс – дисассемблирование.

    Существует два типа ошибок в программах:

    1. Синтаксические – нарушение правил написания построения конструкций на языке программирования. Обнаруживаются в ходе трансляции программы. Транслятор выдает номер строки и номер ошибки.

    2. Логические – нарушение логики обработки данных.

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

    • контрольные точки останова программы (задаются программистом) – дебаггеры.

    • пошаговый режим выполнения (программа работает по операторно) – дебаггеры.

    • С помощью вывода значений переменных в определенных строках кода (используют средства программы, дебаггеры не используют).

    Компиляторы языка PASCAL:

    1. Turbo Pascal 7.0

    2. Borland Pascal 7.0

    3. Delphi 6.0; 7.0

    3.28. Конструкция программы на языке программирования.

    Структура программы состоит из 3-х частей.

    1 часть – заголовок программы.

    PROGRAM – заголовок (не обязательная часть)

    2 Часть – раздел объявлений

    USES – для объявления используемых модулей

    LABEL – объявление меток, связан с оператором GOTO

    CONST объявление констант

    TYPE – объявление новых типов данных

    VAR – объявление переменных

    PROCEDURE – объявление процедур

    FUNCTIONобъявление функций

    Это тоже не обязательная часть программы, в простейших программах она может отсутствовать.

    3 часть – исполнительный раздел (обязательная часть).

    BEGIN

    Операторы;

    END.

    3.29. Понятие переменной и константы. Область действия. Объявление переменной и константы, способы объявления.

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

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

    Виды констант:

    1. значения, фигурирующие в законах естественных наук (π, ε).

    2. законодательные нормы для различных областей деятельности человека.

    3. характеристики (ограничения) используемых моделей, методов и инструментов.

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

    Классификация переменных по области действия:

    1. Локальные переменные – используются короткое время только в определенном месте программы. Объявляются словом Dim (Dimension – размерность).

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

      1. Переменные уровня модуля – Private. Область действия – все процедуры, находящиеся в том же модуле, где объявлена переменная.

      2. Переменная уровня приложения в целом – Public. Область действия – все модули приложения.

    Примечание: Область действия переменной определяется местом ее объявления, а не ключевыми словами. Указатели области действия нужны для боле легкого понимания программы (чтения).

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

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

    Объявления переменных бывают:

    1. Скрытое – участок памяти резервируется автоматически при первом использовании имени переменной в программе. Тип переменной задается присвоенным значением.

    2. Явное – в программе присутствует специальный оператор, в котором описываются характеристики переменной.

    Dim X As Integer ,где Dim – указатель области действия (видимости) переменной; X – имя переменной; As Integer – указатель типа переменной).

    Объявление константы

    Dim Const PI AS Single=3,141592 (традиционно имена констант пишутся заглавными буквами).

    Сложные (структурные) переменные

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

    Объявление массивов

    Dim Mas (0 TO 9) As Integer – одномерный локальный массив с порядковыми номерами от 0 до 9.

    Xi → Mas(1) – элемент массива под номером 1.

    Mas(3)=27 – элементу массива под номером 3 присваивается значение 27.

    Y=Mas(3) – переменной Y присваивается значение элемента массива под номером 3.

    2.Структуры (USER, Define, TYPE, UDT) – в любой предметной области данные обычно образуют устойчивые связи.

    1-й этап – объявление нестандартного типа данных в разделе TYPE.

    TYPE Employee

    Tab№ As Long

    Fam As String

    Salary As Currency

    2-й этап – объявление переменных, представляющие собой такие структуры.

    Dim Secretary As Employee

    Public Boss As Employee

    3-й этап работа с переменными.

    Secretary.Salary=Boss.Salary/100

    3.30. Понятие массива. Массивы строк. Инициализация массивов.

    Массив – это совокупность однородных данных, которые имеют один тип и одно имя, различаются по порядковому номеру (индексу).

    Обращение к элементу массива происходит по порядковому номеру (указывается имя массива и в квадратных или круглых скобках (зависит от языка программирования) номер элемента).

    Типы массивов:

    - одномерный массив

    - двумерных массив

    - массив строк

    - многомерный массив

    Пример: В[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]

    Объявление одномерного числового массива

    1) Var

    Mas:Array[1..100] of Integer;

    2) CONST

    M=100;

    Var

    Mas:Array[1..M] of Integer;

    3) TYPE

    DIM=1..100;

    Var

    Mas:Array[DIM] of Integer;

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

    Доступ к элементу массива

    Mas[i], где i=1..M

    Инициализация массива

    CONST

    Mas:Array[1..3] of Real=(1.5,2.5,3.5); (присвоение значений только в константах, в Var нельзя)

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

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

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

    Доступ к элементу массива

    Mas[i,j] ,где i - количество строк, j - количество столбцов.

    Инициализация двумерного массива

    CONST

    Mas:Array[1..2,1..2] of Integer=((1,2),(3,4))

    Объявление массива строк

    Var

    List:Array[1..4] of String; где List - идентификатор массива строк (переменная)

    Инициализация массива строк

    CONST

    Menu:Array[1..4] of String=(‘1.Открыть’,’2.-----‘,’3.------‘,’4.-------‘);

    Доступ к одной строке массива строк

    For i=1 To 4 Do

    Writeln(menu[i]);

    Многомерный массив строк

    Объявление многомерного массива строк

    TYPE

    Name=String[20]; {тип объявления переменной для фамилии}

    Group=Array[40] of Name;

    Var

    Gr:Group; {Gr - переменная, Group - тип переменной}

    Potok:Array[10] of Group;

    3.31. Типы операций. Приоритеты операций. Унарные и бинарные операции, операции ссылки.

    Различают следующие категории (типы) операций:

    • Операции ссылки (первичные)

    • Унарные (воздействуют на один операнд)

    • Унарные побитовые

    • Бинарные (участвуют два операнда)

    • Бинарные побитовые

    • Тернарные (участвуют три операнда)

    • Присваивания

    Каждая операция имеет два свойства:

    Приоритет – это свойство, которое задает порядок выполнения разнотипных операций в одном выражении.

    Группировка (ассоциативность) – порядок выполнения однотипных операций (все операции группируются слева направо).

    Унарные операции (приоритет выше):

    1. ( ) – взятие в круглые скобки (наивысший приоритет; используется для изменения стандартных приоритетов).

    2. - - унарный минус (операция изменения знака).

    3. not логическое отрицание, логическая операция. Приоритет ниже. Может применяться к различным типам данных.

      • Boolean – not false→true

      • Цикл – while not Eof (пока не обнаружит конец файла повторять цикл)

      • Integer – not превращается в побитовую операцию – каждый бит целого числа заменяется на противоположное значение.

    Бинарные операции

    Приоритет ниже, чем у унарных. Группируются слева направо.

    1. Операции умножения:

      1. Арифметическое умножение

    * - обычное умножение;

    / - обычное деление;

    div – целочисленное деление – результат целое число (25 div 7 → 3)

    mod – остаток от целочисленного деления (25 mod 7 → 4)

      1. Логические операции умножения

    And – для Boolean и Integer логическое «и». (для Integer побитовое логическое «и»)

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

      1. Побитовые операции.

    Shl – побитовый сдвиг влево первого операнда на количество позиций, указанных во втором операнде (2 shl 1 → 4 результат 0010 → 0100)

    Shr - побитовый сдвиг вправо первого операнда на количество позиций, указанных во втором операнде (2 shl 1 → 4 результат 0010 → 0001)

    1. Операции сложения.

    «+» - обычное сложение, «-» - обычное вычитание (арифметические)

    or – логическое «или» для Boolean (для Integer побитовая операция, т.е. логическая сумма соответствующих пар битов)

    xor – исключающая «или» - для Boolean результат операции True, если операнды различны (для Integer является побитовой операцией, сравниваются соответствующие пары бит целых чисел).

    a

    b

    a or b

    a xor b

    f

    f

    false

    false

    t

    f

    true

    true

    f

    t

    true

    true

    t

    t

    true

    false

    1. Операции отношения или операции сравнения (>, >=, <, <=, == равно, <> не равно)

    Результатом операции отношения является истина или ложь (1 или 0).

    Операции ссылки

    Имеют наивысший приоритет.

    ( ), [ ] – доступ к элементам массива

    - >

    доступ к элементам структуры

    Порядок выполнения слева направо

    3.32. Реализация управляющих структур (условие, цикл) в языке программирования.

    Условия и циклы реализовывают нелинейные алгоритмы.

    У словие (выбор) – это логическое сравнение, имеющее 2 варианта ответа (истина -1, ложь - 0), один вход и два взаимоисключающих выхода. Условный оператор if.

    1. if…then

    if условие then if условие then

    оператор1; Begin

    оператор1;

    оператор2;

    End;

    2 . if…then…else

    if условие then

    Begin

    оператор1;

    оператор2;

    End;

    else

    Begin

    Оператор3;

    Оператор4;

    End;

    Ц икл – это набор действий представляющий собой кругооборот. После их выполнения ситуация возвращается к исходной с некоторыми изменениями. Количество повторов определяется условием. Если условия нет, то цикл бесконечен.

    Каждый проход цикла называется итерацией.

    Виды циклов:

    1. Цикл с предусловием (условие на входе).

    Тело цикла может не выполнится ни разу.

    Используется, когда заранее неизвестно

    к оличество повторений.

    1. Цикл с постусловием (условие на входе).

    Тело цикла обязательно выполнится хоты бы

    один раз. Используется, когда заранее неизвестно

    количество повторений.

    3. Цикл со счетчиком (с заранее известным числом повторений).

    Переменную <счетчик> нужно объявить заранее.

    П риращение счетчика на каждой итерации называется шагом. Он может быть как положительным, так и отрицательным, может быть дробным. Если шаг = 1, то его можно не указывать. Если шаг дробный, а счетчик цикла целого типа, то счетчик не будет причащаться, т.е. цикл будет бесконечным.

    Циклический оператор for

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

    (пошаговых) циклах, количество повторений заранее известно.

    1. for с увеличением параметра цикла

    for i:=1 To N Do

    Begin

    Опер1;

    Опер2;

    End;

    2. for с уменьшением параметра

    цикла

    for i:=N DownTo 1 Do

    Begin

    Опер1;

    Опер2;

    End;

    Циклический оператор While

    Используется в основном для итерационных циклов, когда заранее неизвестно количество циклов. В отличии от for позволяет редактировать, изменять значение параметра цикла.

    W hile условие выполнения Do

    Begin

    Опер1;

    Опер2;

    End;

    Требования к организации цикла

    1. Инициация цикла – задание начального значения для параметров цикла (счетчик повторения), i=1.

    2. Условие выполнения цикла while i<=N Do

    3. Изменение значений параметров цикла (счетчик), i =i +1.

    Типы циклов

    1. По размещению условия: -цикл с предусловием; - цикл с постусловием.

    2. По количеству повторений: -детерминированные – заранее известно количество повторов;

    • итерационные – заранее не известно количество повторов.

    1. По типу условия: -циклы с условием выполнения for, while (операторы в Паскале);

    • циклы с условием окончания repeat (оператор).

    3.33. Функции и процедуры. Понятие, типы. Формальные и фактические аргументы. Объявление функций. Вызов функций.

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

    Типы функций:

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

    2. Пользовательские – нестандартные функции, созданные программистом для решения задач пользователем. Алгоритм их реализации должен прописываться в тексте программы явно.

    Пользовательская функция существует в программе в двух аспектах:

    1. Вызов функции для обработки предлагаемых данных. Y=sin(x)

    2. Тело функции – код, реализующий алгоритм.

    Function F (аргументы)

    F=результат вычислений

    END Function

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

    Sub Имя Процедуры (аргументы)

    End Sub

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

    1. Являются подпрограммами, которые содержат заголовок в объявлении программы и программный код.

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

    3. Функция в отличие от процедуры содержит возвращаемые значения, тип которых указан в объявлении функции.

    Объявление процедуры

    В блоке объявлений

    PROCEDURE proc1 (a,b:Real);

    CONST…

    VAR…

    Begin

    Опер1;

    Опер2;

    End;

    Объявление функции

    FUNCTION func1 (a,b:Real):Real;

    CONST…

    VAR…

    Begin

    Опер1;

    Опер2;

    Func1:=значение; {возвращается в точку вызова}

    End;

    Вызов процедур и функций

    В программном коде идет код

    Begin

    …….

    Proc1 (x,y);

    Z:=func1(x,y);

    End;

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

    Фактические – список переменных, указанных при вызове процедуры или функции, и служат для передачи значений.

    Формальные – являются внешними, объявленными вне процедуры.

    3.34. Организация меню в программе. Виды меню. Иерархическая схема меню. Способы создания меню в приложении. Дублирование действий с помощью манипулятора и клавиатуры.

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

    Стандартом Windows является дублирование меню и мыши.

    В большинстве языков программирования имеется специальный инструмент для быстрого создания меню (его визуальной части).

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

    Причины создания подменю

    Подменю позволяет создавать до 5-ти уровней вложения, но лучше до 3-х, если:

    1. Полностью занята строка основного меню.

    2. Данный элемент меню редко употребляется.

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

    Menu Editor – редактор для создания меню программы.

    Создание контекстного (всплывающего) меню (правая кнопка мыши)

    Набор команд зависит от положения курсора на форме. Любое меню, имеющее хотя бы одну команду можно вызвать как контекстное.

    Object.Popup Menu ИмяФайла

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

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

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

    2. Создание структуры меню.

    Правила построения меню

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

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

    Длинные списки равнозначных элементов располагаются в алфавитном порядка.

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

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

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

    3.35. Способы передачи активности объектам визуального интерфейса пользователя во время работы программы.

    1. Вручную:

      1. Щелчок мыши.

      2. Нажатие клавиш доступа (Enter, Tab и др.)

    2. Программно:

      1. События, связанные с фокусом.

    Фокус – это активное состояние объекта, позволяющее ему воспринимать действия пользователя.

    GotFocus – фокус получен

    LostFocus – фокус потерян, ушел.

    Метод SetFocus:

    TxtIn.SetFocus – установить фокус.

    Последовательность перехода фокуса

    TabIndex – определяется значением, хранящемся в свойстве каждого объекта TabIndex (начинается с «0»).

    Не все объекты могут получать фокус.