Лекция №3. Понятие алгоритма: свойства, способы описания icon

Лекция №3. Понятие алгоритма: свойства, способы описания


8 чел. помогло.
Смотрите также:
Лекция №1
Д. С. Осипенко Понятие алгоритма. Примеры алгоритмов. Свойства алгоритмов...
Понятие алгоритма. Свойства алгоритма. Способы записи алгоритма...
Вопросы к экзамену по Информатике....
Лекция Задачи, модели, алгоритмы, программы...
Лекция Алгоритмы и ЭВМ...
Темы рефератов История развития средств вычислительной техники. Понятие информации...
Тема Лекция
Лекция содержит фундаментальные понятия машинных алгоритмов и их использование для...
Лекция вычислительные процессы...
Понятие алгоритма и его свойства....
План урока: Постановка цели урока. Проверка домашнего задания. Объяснение нового материала...



Загрузка...
скачать
Лекция №3. Понятие алгоритма: свойства, способы описания.

Содержание

Алгоритм. Основные свойства. Способы представления алгоритмов.

Программное обеспечение компьютероа. Основные понятия. Развитие программного обеспечения.

Языки программирования.


Алгоритм. Основные свойства. Способы представления алгоритмов

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

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

Слово «алгоритм» произошло от имени средневекового узбекского математика IX в. Абу Джафара Мохамеда ибн Мусы аль-Хорезми. Он разработал правила выполнения четырех арифметических действий в десятичной системе счисления.

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

Пример алгоритма числовой обработки данных: вычислить значение Y = X2 + 1. Последовательность действий для выполнения алгоритма:

  1. ввести в компьютер значение X;

  2. возвести его в квадрат и получить значение X2;

  3. вычислить значение X2 + 1 и присвоить его переменной Y;

  4. вывести, например на экран, полученное значение Y.

Алгоритм обладает тремя основными свойствами: детерминированности, массовости и результативности.

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

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

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

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

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

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

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




Рис.1 Основные фигуры схем алгоритмов и программ

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

^ Программное обеспечение компьютера. Основные понятия. Развитие программного обеспечения

Программное обеспечение (ПО, software) компьютера – это совокупность взаимодействующих друг с другом программ, их описаний и руководств, пред­назначенных для эффективного использования вычислительных систем (ВС).

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

Так как программирование в кодах было сложно и занимало много времени, разработали языки высокого уровня и программы-трансляторы для перевода текстов с алгоритмического языка на машинный. Вначале появились машинноориентированные языки: ассемблер, автокоды. Затем процедурно-ориентированные (Фортран, Алгол, ПЛ-1, Паскаль и др.).

Усложнился процесс выполнения программ и работа оператора компьютера. Для ее упрощения были разработаны программы, частично заменяющие труд оператора компьютера. Их назвали мониторами (диспетчерами, супервизорами). Постепенно эти программы развились в современные операционные системы (ОС). Бурное развитие ОС началось с появлением компьютеров третьего поколения и ПК.

^ Языки программирования

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

Эффективным средством уменьшения затрат на разработку ПО является использование современных языков программирования.

Алгоритмический язык – это набор символов, являющихся алфавитом языка, система правил связи символов для образования «слов» и «предложений» (синтаксис языка), с помощью которых представляются компоненты языка, и система правил их истолкования (семантика).

Исходная программа – это программа, написанная на одном из языков программирования; рабочая (выполнимая) программа – это программа на машинном языке. Другими словами, исходная программа – это последовательность операторов, которая обрабатывается транслятором и редактором связей и после декодирования команд вычислительной машиной заставляет компьютер выполнить заданную работу.


Рис. 2 Схема классификации языков программирования

Наиболее общей классификацией языков программирования является классификация по степени зависимости от машинного языка. Схематично классификация языков программирования приведена на рис. 2.




Машинный язык – это система команд компьютера. Программы, написанные на машинном языке, не требуют компиляции. Пример фрагмента программы на машинном языке:

012700 000003 012701 и т. д.

Машинно-ориентированные языки – это мнемокоды, автокоды, языки ассемблера. В них коды операции и адреса операндов представляются идентификаторами и числами. Например:

СТАРТ

ЗАГР 1, А

СЛОЖ 1, В

УМН 1, Сит. д.

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

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

Процедурно-ориентированные языки – это машинно-независимые языки для описания алгоритмов решения задачи. С их помощью описывается процесс обработки данных в терминах языка. Тексты на этих языках определяют как реализуется алгоритм обработки данных в виде процедур обработки данных. Примеры процедурно-ориентированных языков: Фортран, Алгол-60, ПЛ-1, Кобол, Паскаль, Си. Их достоинства: высокая производительность труда программистов и возможность переноса программы с одного компьютера на другой (в случае наличия транслятора с этого языка). Недостаток – сложность языков.

Фортран (FORmula TRANslation language) – это первый язык программирования высокого уровня с элементами машинно-ориентированного языка. Разработан сотрудниками фирмы IBM в 1954 г. В 1957 г. разработан первый транслятор с Фортрана. Фортран имеет обширную библиотеку научных подпрограмм. Язык предназначен для решения численных задач.

Алгол-60 создан в 1960 г. Он также предназначен для решения численных задач. В середине 60-х гг. фирмой IBM разработан универсальный язык ПЛ-1. В 1971 г. Н. Виртом разработан и опубликован язык Паскаль, широко используемый в настоящее время.

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


Контрольные вопросы

  1. Назовите основные этапы подготовки и решения задач на ПК.

  2. Что такое алгоритм? Назовите и поясните его основные свойства.

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

  4. Назовите типы программного обеспечения и их назначение.

  5. Что такое система программирования?

  6. Что такое транслятор? Назовите типы трансляторов. Чем они отличаются?

  7. Назовите основные характеристики качества программ.

  8. Назовите типы языков программирования.




Скачать 71,87 Kb.
оставить комментарий
Дата24.01.2012
Размер71,87 Kb.
ТипЛекция, Образовательные материалы
Добавить документ в свой блог или на сайт

плохо
  3
не очень плохо
  2
средне
  3
хорошо
  1
отлично
  7
Ваша оценка:
Разместите кнопку на своём сайте или блоге:
rudocs.exdat.com

Загрузка...
База данных защищена авторским правом ©exdat 2000-2017
При копировании материала укажите ссылку
обратиться к администрации
Анализ
Справочники
Сценарии
Рефераты
Курсовые работы
Авторефераты
Программы
Методички
Документы
Понятия

опубликовать
Загрузка...
Документы

Рейтинг@Mail.ru
наверх