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

    3.20. Понятие алгоритма. Свойства алгоритма. Управляющие структуры алгоритмов и их разновидности.

    Алгоритм – пошаговое конечное описание выполнения процесса (возможно бесконечно).

    Составные элементы алгоритма (управляющие структуры):

    1. Процесс (следование) – элементарное действие (только одно) – один вход и один выход (одношаговое действие).

    2. Условие (развилка) – один вход, два альтернативных выхода. Это всегда операция сравнения, для реализации нелинейных алгоритмов.

    Свойства алгоритмов

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

    2. Детерминированность – обозначает точность каждой операции алгоритма. Однозначное, точное описание каждой операции, механическое выполнение каждой операции.

    3. Результативность – означает получение результатов за конечное количество операций и за разумное время

    4. Массовость – алгоритм должен быть применим для решения однотипных задач, различающихся значениями исходных данных.

    Типовые структуры алгоритмов

    1. Линейная.

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

    3. Циклическая.

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

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

    Виды циклов:

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

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

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

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

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

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

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

    Требования к циклам:

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

    - проверка условия выполнения (или окончания) цикла;

    - изменение счетчика;

    - тело цикла.

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

    3.21. Классификация алгоритмических языков программирования. Особенности языков программирования.

    1. По уровню связи с аппаратурой ЭВМ, ПК.

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

    • Высокоуровневые языки (машинонезависимые) Pascal, Fortran, Basik, Algol, Ci и др. Они не привязаны к аппаратуре ПК. Программа будет работать на любой платформе (IBM, Apple, Macintosh).

    1. По назначению

    • системное программирование (разработка операционной системы, утилитов, драйверов). Ассемблер, Си – на них написаны ОС UNIX, Windows, FoxPro.

    • Обучение программированию (Бейсик и Паскаль).

    • Вычислительные научно-технические и научно-исследовательские задачи. Фортран – транслятор формул. Язык высокого уровня, год его разработки 1954. Паскаль, Си, Кобол – ориентированы на финансово-экономические задачи. MatCad – включает разделы высшей математики; MatLab – специализированный математический пакет (интерпретаторы).

    • Языки управления базами данных (FoxPro, Clipper).

    • Языки логического программирования – для разработки экспертных (интеллектуальных) систем (Лисп, Пролог).

    • Языки для систем автоматического проектирования каких-либо объектов, узлов (AutoCad).

    • Языки программирования для Internet (HTML, XML, JAVA, ASP, PHP).

    1. По стилю программирования

    • процедурное программирование (Фортран, Кобол, Паскаль, Бейсик)

    а) основное внимание разработке наилучших алгоритмов решения.

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

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

    • структурное программирование (модульное)

    а) основное внимание уделяется организации структур данных.

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

    в) исключает использование оператора GOTO. Это доказано в теореме о структурном программировании.

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

    • объектно-ориентированное программирование (Object Pascal, C++).

    • Визуальное программирование (Delphi (Borland), C++ Builder)/

    3.22. Визуальный интерфейс приложений. Стандартные управляющие объекты (кнопка, текстовое поле …): назначение, основные характеристики.

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

    Все объекты имеют характеристики двух групп:

    • свойства – это значение какого-либо параметра объекта;

    • методы – это способности объектов к каким-либо действиям;

    Объекты:

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

    2. Label – текстовое поле, во время работы программы позволяет только вывод информации. Пользователь не может вводить информацию. Значение хранится в свойстве Caption.

    3. PictureBox – окно рисунка – для формирования изображения программным способом (динамически).

    4. ImageBox – окно изображения – для вывода готовой картинки (статично).

    5. CommandButton – объект активизирует, вызывает какие-либо действия.

    6. OptionButton – кнопка выбора – организация списка с возможностью выбора единственного элемента. Значение хранится в свойстве Velue.

    7. CheckBox (флажок) – организация списков с возможностью выбора нескольких элементов одновременно.

    8. ComboBox – раскрывающийся изменяемый список элементов, может существовать в двух состояниях. Во время работы программы позволяет вводить новые значения. Набор элементов находится в свойстве List. Значение видимое при загрузке формы находится в свойстве Text.

    9. ScrollBox – линейная прокрутка. Визуальный способ задания значений в определенном диапазоне. Значение хранится в свойстве Value.

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

    11. Data – линия доставки данных, обеспечивает обмен информацией между каким-либо объектом приложения и базой данных (только передает данные, сам отображать их не может).

    12. Grid (сетка) – таблица пустографка (много разновидностей). Может позволять вводить, хранить и изменять данные (не зависимо). Так же может показывать данные из какой-либо базы (данные доставляются объектом Data).

    13. Shape (фигура) – заготовка геометрической фигуры. Для визуального выделения части формы.

    14. Line (линия) – для украшения внешнего вида формы.

    3.23. Объектно-ориентированное программирование. Свойства ООП. Элементы объектной модели.

    В объектно–ориентированных языках данные объединяются со свойственными им операциями обработки в некоторые объекты (Инкапсулирование). Например, данным «Человек» присуща операция «идти». При этом свойства одних объектов могут передаваться другим.

    Элементы объектной модели:

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

    Свойства – размер, цвет и т.д.

    Методы – свернуть, развернуть и т.д.

    Свойства ООП:

    ИНКАПСУЛЯЦИЯ – это объединение записей с процедурами и функциями, работающими с полями этих записей, которое формирует новый тип данных – объект. Для определения новых типов данных, содержащих набор свойств и набор методов.

    • свойства объектов доступны, как правило, только для собственных объектов (совокупность информации);

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

    НАСЛЕДОВАНИЕ – определение объекта и дальнейшее использование всех его свойств для построения иерархии порожденных объектов с возможностью для каждого порожденного объекта, относящегося к иерархии, доступа к коду и данным всех порождающих объектов. Механизм, позволяющий строить иерархию типов объектов.

    • производные объекты наследуют свойства и методы базовых объектов;

    • в производных допускается создание новых свойств и методов; допускается переопределение методов базового объекта;

    • базовые типы, как правило, абстрактны и содержат общие черты и общие методы для группы схожих объектов;

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

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

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

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

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

    Т.е. класс представляет собой описание общей структуры и функций некоторой совокупности объектов.

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

    Объектно-ориентированное программирование имеет много преимуществ :

    - возможность, повторного использования описания класса;

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

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

    - улучшение читаемости программы.

    Классы разработанные для одной программы, м.б. использованы для другой. Ведь гораздо удобней строить библиотеки классов, чем множества библиотек функций. За счет группирования данных и методов Объектно-ориентированные программы часто более понятны для чтения, чем их не объектно-ориентированные варианты (по крайней мере, после того как изучен синтаксис используемого языка программирования).

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

    Проще говоря, классы представляют собой описание общей структуры и функций некоторой совокупности объектов.

    Инкапсуляция - это хранение данных и методов в одной структуре данных. Инкапсуляция группирует все компоненты объекта а также определяет каким образом можно ссылаться на объект (прим. Public или Private). Это защищает данные объекта от их неправильного употребления.

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

    Абстракция. Обозначает описание внешних свойств объекта без учета его внутренней организации и конкретной реализацией. Данное понятие чаще всего применяется при создании классов и означает, что класс представляется в виде «черного ящика». Это облегчает использование класса, но не скрывает его сущность (синонимы: сокрытие информации, инкапсуляция).

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

    3.24. Понятие класса и объекта. Составные элементы модуля класса (внутренние переменные, свойства, методы), назначение, реализация.

    Понятие абстракция, сущность и класс тождественны. Это теоретически модель рассматриваемой системы или реального объекта. Обычно абстракция в реальном мире существовать не может. Теоретическая абстракция в реальном виде проявляется в виде объекта. Любой объект является экземпляром (представителем) какого-либо класса, т.е. абстракции.

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

    Природа объекта Объект – это нечто, имеющее четко очерченные границы.

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

    Основные характеристики объекта

    1. Идентичность – отличия от других объектов. Это совокупность характеристик объекта, отличающих его от всех других объектов.

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

    3. Поведение – проявление внутреннего состояния объекта в результате взаимодействия с другими объектами. Поведение определяется состоянием объекта, его предысторией.

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

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

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

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

    Внутри модуля класса находится обычный программный код, который описывает принципы функционирования объекта. Сами объекты порождаются (объявляются) не в модуле класса, а в других модулях проекта, аналогично объявлению переменных. Dim ИмяОбъекта As New ИмяКласса

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

    Свойства и методы класса

    Интерфейс класса – это механизм, с помощью которого он общается с внешней средой. Интерфейс виден другим объектам, которые могут: - считывать значение какого-либо свойства y=CmdGo.Caption;

    • изменять значения свойства; - заставлять объект выполнять какие-то действия.

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

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

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

    Виды процедур свойств

    Let – проверка присваемого свойству значения. Активизируется при выполнении оператора Object.Свойства=…

    Проверяет присваемое значение и присваивает его внутренней переменной, хранящей текущее значение свойств. Get – процедура активизируется при считывании значения свойства внутренней переменной y=Об.Свойства и передает его во внешнюю среду.

    Методы объекта Реализуются процедурами или функциями (в модуле класса создается функция или процедура) и обращение к ним идет по всем правилам как обычно.

    3.25. Событийное программирование. Понятие события. Особенности программ на основе событий.

    В традиционных программах выполнение начиналось с первой строки и шло последовательно до конца программы. Это присуще объектно-ориентированному программированию. Событийное программирование – процедуры-обработчики вызываются при возникновении событий. Все действия пользователя обычно рассматриваются как события, связанные с конкретными элементами управления.

    Событие (event) – это изменение состояния объекта. При возникновении события производится его обработка.

    Причины возникновения событий.

    1. Действия пользователя (нажатие кнопки).

    2. Действие программ (создание файла).

    3. Действия устройств (категория прерывания).

    Особенности программ на основе событий.

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

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

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

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

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

    3.26. Интегрированная среда программирования. Элементы среды и их назначение. Инструменты отладки программ.

    Это набор инструментов для реализации полного жизненного цикла программы (разработки, написания, компиляции, тестирования и отладки). IDE – Integrated Development Environment – отображается на экране компьютера в виде окна, содержащего данные, с которыми работает пользователь, а также элементы управления, с помощью которых эти данные можно создавать, изменять или настраивать.

    Главное окно содержит: 1.Строка заголовка – записано имя открытого в окне проекта Project1.

    2.Строка меню – важный элемент управления любой программой или системой. 3.Панели инструментов – кнопки обеспечивают доступ к наиболее часто встречающимся командам. 4.Палитра компонентов – это заготовки будущих элементов управления. 5.Инспектор объектов – с его помощью настраивают объекты, используемые в программе (свойства, события). 6.Окна модулей.

    Инструменты отладки программ Отладка – обнаружение и устранение ошибок (опасно, потому что бесконечно, т.к. очень много ошибок). Инструменты: 1.Пошаговое выполнение – т.е. выполнение программы с приостановкой после каждого оператора. При наведении курсора мыши на выражение (переменную, находящуюся в исполняемой в данный момент процедуре) появляется подсказка этого выражения или его значение. 2.Break Points – пометка определенной строки в тексте программы. Когда выполнение доходит до этой строки программа приостанавливается, продолжить работу можно в обычном или пошаговом режиме.

    3.Watches (watch expression) – наблюдаемое выражение. Позволяет отслеживать значения переменных и выражений (в виде таблицы). 4.Immediate – немедленное исполнение. Позволяет вводить и исполнять операторы.

    5.Locals – локальные объекты. Автоматически показывает все программные объекты приложения и их текущее значение.

    3.27. Трансляция программ. Виды трансляторов. Типы ошибок в программах. Компиляция программ.

    Трансляция – процесс перевода программы на язык программирования в соответствующую программу на машинном языке.

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

    Виды трансляторов

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

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

    • Создается автономная программа, которой не нужен компилятор.

    • Быстродействие.