Ответы на экзаменационные вопросы по информатике
Рефераты >> Информатика >> Ответы на экзаменационные вопросы по информатике

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

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

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

3. определенность алгоритма – алгоритм должен всякий раз приводить к одному и тому же результату при одних и тех же исходных данных;

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

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

Используются следующие формы представления алгоритма:

1. словесная – запись на естественном разговорном языке;

2. графическая – действие изображается в виде графических символов, смысл которых заранее оговорен;

3. псевдокоды – условный алгоритмический язык, включающий в себя элементы естественного разговорного языка и элементы языков программирования;

4. программа на алгоритмическом языке программирования – будет использоваться для представления алгоритмической блок-схемы.

Исполнитель алгоритма – некоторая абстрактная или реальная система, способная выполнить действия, предписываемые алгоритмом.В информатике исполнитель алгоритмов – компьютер.

2)ветвления. Обеспечивает в зависимости от рез-та проверки условие выбора одного из альтернативных путей работы алгоритма. При этом оба пути ведут к одному общему выходу – стр-ра ветвления сущ-ет в 4-х вариантах

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

11. Этапы решения задачи на ЭВМ

23. Этапы решения задачи на компьютере:

1. постановка задачи – сбор информации о задаче; формулировка задачи; определение конечных целей задачи;

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

3. разработка алгоритма – выбор метода проектирования алгоритма; выбор формы записи алгоритма; проектирование алгоритма; выбор тестов и методов тестирования;

4. программирование – выбор языка программирования; уточнения способов организации данных; запись алгоритма в виде программы;

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

6. анализ результатов решения задачи (повторное выполнение со 2 по 5 этапы);

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

12 Классификация языков программирования

Языки различаются по зависимости от аппаратной части.

1. машинофиксированный (ассемблеры): имеют жесткую ориентацию на определенный тип компьютеров. Также называются языки низкого уровня. yt nht,e.n rjvgbkzwbb/

аторитмические: ориентированы на систему операторов, характерных для замен определенного класса алгоритмов; языки высокого уровня

Компилятор – проги, переводящие текст на машинный язык.

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

1. неструктурный;

2. структурный;

3. логический;

4. объектно-ориентированный;

5. функциональный.

Рассмотрим перечисленные стили подробнее.

Неструктурное программирование допускает использование в явном виде команды безусловного перехода (в большинстве языков GOTO). Типичные представители неструктурных языков - ранние версии Бейсика и Фортрана. Данный стиль вызван особенностями выполнения машиной программы в кодах и унаследован от программ на языке ассемблера, поскольку там команда перехода является обязательной. Однако в языках высокого уровня наличие команды перехода влечет за собой массу серьезных недостатков: программа превращается в "спагетти" с бесконечными переходами вверх-вниз, ее очень трудно сопровождать и модифицировать. Фактически неструктурный стиль программирования не позволяет разрабатывать большие проекты. Ранее широко практиковавшееся первоначальное обучение программированию на базе неструктурного языка (обычно Бейсика) приводило к огромным трудностям при переходе на более современные стили. Как отмечал известный голландский ученый Э. Дейкстра, "программисты, изначально ориентированные на Бейсик, умственно оболванены без надежды на исцеление".

Структурный стиль был разработан в середине 60-х - начале 70-х гг. В его основе лежат две идеи:

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

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

а) Последовательное б) Ветвление в) Цикл выполнение

Принципы структурного программирования были реализованы в языке Алгол, но наибольшую популярность завоевал язык Паскаль, созданный в 1970 швейцарским ученым Н. Виртом. Паскаль получил широчайшее распространение и может считаться образцовым языком программирования, наиболее популярным и сейчас (например, в версии Delphi фирмы Imprise).

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

БРАТЬЯ ИМЕЮТ ОДНОГО ОТЦА

ДЖОН - ОТЕЦ ДЖЕКА

МАЙК - БРАТ ДЖЕКА

то система логического программирования должна сделать вывод: ДЖОН - ОТЕЦ МАЙКА.

Хотя работы по логическому программированию ведутся с 50-х гг., в настоящее время данное направление несколько потеряло свою актуальность в связи с отсутствием реальных результатов, поскольку большинство реализованных на принципах логического программирования систем оказались практически непригодными.


Страница: