Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Inform.docx
Скачиваний:
9
Добавлен:
21.04.2019
Размер:
203.09 Кб
Скачать

13.Алгоритм. Основные свойства алгоритма. Блок-схема решения задач.

Алгоpитм — заранее заданное понятное и точное предписание возможному исполнителю совершить определенную последовательность действий для получения решения задачи за конечное число шагов.

Основные свойства алгоритмов :

1. Понятность для исполнителя — исполнитель алгоритма должен понимать, как его выполнять. Иными словами, имея алгоритм и произвольный вариант исходных данных, исполнитель должен знать, как надо действовать для выполнения этого алгоритма.

2. Дискретность (прерывность, раздельность) — алгоpитм должен представлять процесс решения задачи как последовательное выполнение простых (или ранее определенных) шагов (этапов).

3. Определенность — каждое правило алгоритма должно быть четким, однозначным и не оставлять места для произвола. Благодаря этому свойству выполнение алгоритма носит механический хаpактеp и не требует никаких дополнительных указаний или сведений о решаемой задаче.

4. Результативность (или конечность) состоит в том, что за конечное число шагов алгоpитм либо должен приводить к решению задачи, либо после конечного числа шагов останавливаться из-за невозможности получить решение с выдачей соответствующего сообщения, либо неограниченно продолжаться в течение времени, отведенного для исполнения алгоритма, с выдачей промежуточных результатов.

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

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

Эта фигура означает либо начало программы, либо ее конец. В функции ею обозначаются вызов или возврат из функции.

Этой фигурой выполняются различные арифметические операции.

В этой фигуре выполняются различные операторы ветвления и, соответственно, проверяемые условия.

Здесь описывают вызов подпрограммы и параметры, которые передаются в нее.

Данные нужно куда-то выводить или вводить. Вот для этих целей используют эту фигуру.

Эта фигура нужна, если у нас есть цикл. Тут прописывается начальное значение цикла, его шаг и ,конечно же, условие окончания цикла.

14.Основные операторы языка программирования.

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

Язык программирования содержит три основных компонента: алфавит, синтаксис и семантику. Эти компоненты определяют правила записи программ. Алфавит языка — это набор символов, которые можно применять в инструкциях языка программирования. Другие символы допустимы только в особых случаях, например в строковых константах.

Синтаксис языка определяет правила построения операторов. Любой корректный оператор соответствует этим правилам. Правила синтаксиса — формальные. Проверка правильности исходного текста и поиск синтаксических ошибок могут быть выполнены автоматически.

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

ЯЗЫК АССЕМБЛЕРА

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

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

•Символические мнемоники запоминаются легче, чем шестнадцатеричные коды команд.

•Для регистров и областей памяти также можно использовать символические имена.

•Нет необходимости работать с физическими адресами памяти.

•Числовые константы и строки представляются в программе в привычном виде.

Ассемблер, программа, преобразующая текст на языке ассемблера в машинные команды, — это простейший транслятор.

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

ЯЗЫКИ ВЫСОКОГО УРОВНЯ

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

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

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

•Использование естественных обозначений (например, привычных математических знаков).

•Эффективное представление этапов обработки данных средствами языка. Набор допустимых операций определен соображениями удобства, а не системой команд конкретного процессора.

•Расширенный набор поддерживаемых типов данных.

•Готовые библиотеки стандартных подпрограмм для выполнения часто встречающихся действий.

КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ:

ПРОЦЕДУРНЫЕ ЯЗЫКИ

К процедурным (или структурным) языкам относится большинство «классических» языков программирования, таких как FORTRAN, BASIC, Паскаль, Си. Эти языки удобны при создании относительно коротких программ. В процедурных языках программа и данные рассматриваются как отдельные, вообще говоря, не связанные друг с другом элементы. Работа программы состоит в последовательном выполнении операторов. Связь различных частей программы (процедур) между собой осуществляется только через данные. Данные можно передавать из одной процедуры в другую и обрабатывать совместно.

ЛОГИЧЕСКИЕ ЯЗЫКИ

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

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

Работа программы состоит в выполнении формальных логических преобразований и получении всех возможных выводов. Эту операцию можно рассматривать как «упрощение» исходного сложного логического выражения.

ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ ЯЗЫКИ

Объектно-ориентированные языки программирования (Visual BASIC, C++, Object Pascal, Java) — это новая ступень развития процедурных языков программирования. Они ориентированы на создание очень больших и сложных программ. Многие из этих языков созданы путем расширения синтаксических правил процедурного языка-предка.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]