Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмизация и программирование раздат матери...docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
41.44 Кб
Скачать

Алгоритмизация и программирование Алгоритм. Свойства алгоритма

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

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

Качественный алгоритм должен обладать следующими свойствами:

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

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

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

  4. Дискретность – любой алгоритм, в конечном счете, может быть сведен к описанию последовательности элементарных (совсем мелких, точечных) действий.

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

Типы алгоритмов:

  1. Линейный – алгоритм, в котором последовательность выполнения действий не нарушается проверкой условия, обходами, возвратами и пр.;

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

  3. Циклический – алгоритм содержит один или несколько блоков с повторением одних и тех же действий.

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

Алгоритм может быть представлен в разных формах:

  • словесной – записан на обычном языке,

  • графической - изображен в виде связанной последовательности блоков (стандартных элементов языка блок-схем);

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

Стандартные элементы блок-схем

Начало

- начало алгоритма;

Ввод

- ввод исходных данных;

- «процесс» (присваивание значений переменным, вычисления);

нет да ветвление

Вывод

- вывод результатов

Конец

- конец алгоритма

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

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

Можно назвать четыре основных типа (уровня) языков программирования:

1) Язык машинных команд – специальный язык программирования, рассчитанный на группу ЭВМ конкретного типа. Неудобен тем, что программист должен хорошо знать коды всех операций, правила записи каждой операции и, главное, самостоятельно распределять память (для каждой величины, используемой в программе, зафиксировать место во внутренней памяти компьютера) и четко, без ошибок записывать адреса величин в командах программы.

2) Язык Ассемблера, автокод - машинноориентрованный язык программирования. Не является универсальным, т.к. рассчитан на определенный тип ЭВМ; требует распределения памяти программистом (перед набором команд следует перечислить список имен переменных и соответствующие им адреса в памяти компьютера).

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

- на языке машинных команд: 00220042005 (первые три цифры – код операции сложения; четыре следующих – адрес переменной А, в которой находится первое слагаемое; следующие четыре цифры – адрес переменной В со вторым слагаемым)

- на автокоде: СЛ А, В или А + В

Очевидно, что запись команды на автокоде или языке Ассемблера выглядит нагляднее и понятнее, чем на языке машинных команд.

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

Все универсальные языки программирования имеют так называемую «оболочку» (систему программирования), включающую в себя:

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

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

и, в некоторых случаях,

в) системы автоматизированной отладки (САО).

Примеры универсальных языков программирования и соответствующих систем программирования:

Basic – QBasic; Pascal – Turbo Pascal 7.0

Другие универсальные языки программирования: Фортран, Алгол, Ада, С и т.д.

Существует целый ряд языков, по сути своей универсальных, но предназначенных для конкретной работы: для решения экономических задач, связанных с хранением, сортировкой и выборками информации (PL/1); создания и редактирования баз данных (FoxPro), информационно-поисковых систем; для решения задач в сфере искусственного интеллекта (Пролог) и т.д.

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

Примеры объектно-ориентированных языков программирования: Delphi, C++, Visual Basic, Java и др.