Ответы на экзаменационные вопросы по информатикеРефераты >> Информатика >> Ответы на экзаменационные вопросы по информатике
Свойства алгоритмов:
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-х гг., в настоящее время данное направление несколько потеряло свою актуальность в связи с отсутствием реальных результатов, поскольку большинство реализованных на принципах логического программирования систем оказались практически непригодными.