Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы ГОС ПрИЭ / Т4. Inform_i_progr_otvety.docx
Скачиваний:
27
Добавлен:
13.05.2015
Размер:
81.35 Кб
Скачать
  1. Алгоритмы. Определение, основные типы (сходящиеся, линейные, циклические) и свойства. Формы записи алгоритмов с примерами.

Алгоритм ‑ это понятное и точное предписание исполнителю со­вер­шения определенных последовательных действий для достижения ука­занной цели.

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

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

Массовость применимость к целому классу задач.

Определенность однозначное толкование каждого шага.

Результативность ‑ получение результата через конечное число шагов.

Формальность способность любого исполнителя выполнить все шаги алгоритма, не понимая их смысла.

Например, инструкция по использованию утюга является алго­рит­мом, а инструкция как встретить и устроить в гостинице гостя фирмы не является алгоритмом (нет свойства массовости).

Существует теорема, доказывающая, что любой алгоритм есть ком­би­нация трех базовых команд: следование, развилка (“если”), цикл. Команда безусловного перехода (Gоto) не является базовой, и ее можно исключить из языков программирования (FoxPro).

Алгоритмы бывают сходящимися и расходящимися.

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

Пример. Задача определения эквивалентности двух программ (две различные программы вычисляют одну функцию) является алгоритмичес­ки неразрешимой.

Алгоритмический язык ‑ это язык формализованной записи алгоритма.

Формы записи алгоритма

1. Словесная форма

Пример описания алгоритма Евклида ‑ нахождения наибольшего общего делителя двух чисел (НОД).

Шаг 1-й. Ввести два числа.

Шаг 2-й. Если числа равны, то взять первое и закончить выполнение алго­ритма, иначе ‑ перейти на следующий шаг.

Шаг 3-й. Определить большее число. Заменить большее число на разность большего и меньшего и перейти на шаг 2-й.

Достоинство ‑ универсальность, недостаток ‑ неформальность.

2. Блок ‑ схема

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

Начало, конец, прерывание Подпрограмма

Ввод или вывод данных Вывод на принтер

Линейный процесс Проверка условия

Магнитный диск Магнитная лента

Сортировка Дисплей

Межстраничный

Соединитель соединитель

Рис. 1.1.2. Блок‑схем алгоритма Евклида - нахождения НОД

Лист бумаги делится на колонки и строки. Строки нумеруются, а ко­лон­ки обозначаются латинскими буквами. В одной ячейке (зоне) разме­ща­ет­ся один графический символ. Адрес зоны обозначается именем колонки и номером строки (B3). В соединителе указывается адрес зоны (куда или от­куда передается управление). В межстраничном соединителе допол­ни­тель­но указывается номер листа.

Достоинство: наглядность; недостаток: трудоем­кость разработки.

3. Псевдокоды

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

Пример алгоритма Евклида

Алгоритм ‑ определение наибольшего общего делителя чисел А, В.

Ввод двух чисел A, B.

Делать пока А не равно В.

Если А>В То А=А-В Иначе В=В-А Конец если

Конец делать

Вывести значение А на печать.

Конец алгоритма

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

4. Метод HIPO (иерархия, ввод, обработка, вывод). Исполь­зуется для описания больших программных проектов. Проект состоит из оглавления, обзорных и детальных таблиц. В оглавлении указываются назначение проекта и список основных функций. Каждая функция в дальнейшем расписывается в виде иерархической системы обзорных таблиц. Каждой обзорной таблице присваивается код, который включает в себя код вышестоящей таблицы (через точку); таким образом, код показывает ветвь проекта (1.2, 1.2.1, 1.2.2). Детальные таблицы заканчивают описание всего проекта и являются терминальными таблицами в дереве обзорных таблиц. Детальная таблица состоит из трех колонок: входная информация, обработка и выходная информация.

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

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

История объектно-ориентированного программирования (ООП) бе­рет свое начало в конце 60-х годов. Компьютерный центр в Норвегии создал первый объектно-ориентированный язык программирования, названный Simula, предназначенный для моделирования ситуаций в реальном мире. Основная особенность языка Simula состояла в том, что программа была организована по объектам программирования. Объектно-ориентированное программирование обладает следующими характеристи­ками: инкапсуля­ция, наследование и подклассы, полиморфизм.

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

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

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

Визуальное программирование донесло основные положения объектно-ориентированного программирования до конечного пользова­теля. Вместо того чтобы писать многие строки кодов для моделирования поведения объекта, средства визуального программирования предостав­ляют в ваше распоряжение готовые прототипы объектов (компоненты, управляющие элементы, инструменты, базовые объекты или классы), которые вы можете размещать на форме и настраивать по своему усмот­рению. Например, вместо того чтобы требовать от вас написания кода для создания кнопки, которая утопает и всплывает при нажатии ее пользова­телем, языки содержат прототип кнопки. Кроме того, в прототип встроена стандартная реакция кнопки (нажатие и всплытие), которая освобождает пользователя от программирования.

Разработка объектно-ориентированных приложений начинается с моделирования реальных объектов, необходимых для выполнения конкрет­ного задания. При создании приложения вы взаимодействуете с хорошо знакомыми объектами: таблицами баз данных, экранными формами, цветовыми схемами. Создание каждого объекта предполагает использование языка программирования. Вам предоставляется возмож­ность скопировать созданные объекты из одного приложения в другое и тем самым сократить объем работы. Например, если вы создали специаль­ную кнопку, которая предназначена для поиска фамилии покупателя в указанной таблице, то можно использовать ту же кнопку в другом приложении для выполнения функции поиска. Для этого потребуется лишь изменить наименования поля и таблицы, в которых будет осуществляться поиск. В дополнение к сказанному, программа реагирует на события. Событие представляет собой некоторое действие, которое активизирует стандартную реакцию объекта. В качестве события могут рассматриваться нажатие кнопки мыши, выбор пункта меню или открытие таблицы. Поря­док выполнения действий определяется, прежде всего, событиями, возни­кающими в системе, и реакцией на них объектов. Ниже приведена после­довательность выполнения действий в программе:

1. В системе возникает событие (нажатие клавиши, изменение значения поля, ...).

2. Определяется связанный с этим событием объект (поле таблицы, кнопка, форма и т.д.).

3. Вызывается соответствующий событию метод объекта, который содержит действия по обработке возникшего события.

Визуальная природа позволяет сразу видеть результаты своих действий при настройке свойств объектов.

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

Современные версии языков Visual Basic, Delphi, Visual C++ позво­ляют использовать любую из технологий.

Соседние файлы в папке Ответы ГОС ПрИЭ