Софт-Архив

Программа Это Алгоритм img-1

Программа Это Алгоритм

Рейтинг: 4.3/5.0 (1864 проголосовавших)

Описание

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

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

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

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

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

- дискретность – предусматривает разбиение процесса обработки информации на более простые этапы (шаги выполнения);

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

- результативность (или конечность) – предполагает завершение работы алгоритма в целом за конечное число шагов;

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

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

Программа – это алгоритм, записанный на специальном алгоритмическом языке программирования, который может восприниматься ЭВМ.

Исполнитель алгоритма – это автоматическое устройство (ЭВМ, робот, станок с ЧПУ) или человек, выполняющие определенный набор команд.

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

Словесный способ предполагает словесное (без формул и таблиц) описание алгоритма, в принципе, с любой степенью детализации.

Формульно-словесный способ более компактный. В нем словесные описания сочетаются с формулами.

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

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

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

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

Следование (рисунок 7.2).Структура предполагаетпоследовательное расположение блоков и групп блоков операторов.

Рисунок 7.2. - Структура «Следование».

Цикл «До» (рисунок 7.3). Применяется при необходимости выполнить какие-либо вычисления несколько раз до выполнения некоторого условия.

Другие статьи, обзоры программ, новости

Программа это алгоритм, записанный на языке программирования

яп низкого уровня; яп высокого уровня. В 1944 для релейной машины "Марк-I" под руководством Грейс Хоппер написана первая подпрограмма для вычисления sinx. В 1949 Джон Моучли разработал систему Short Code - предшественницу языков программирования высокого уровня. А в 1951 году Г. Хоппер создала первый компилятор А-0. Ею же впервые был введен этот термин. Ассемблер (начало 50-х годов ХХ века) Первые языки высокого уровня: В 1959 году был разработан язык COBOL (Common Business Oriented Language). (Кобол)- машинно независимый язык программирования высокого уровня для решения задачбизнеса. В 1954 году публикуется сообщение о создании языка FORTRAN (FORmula TRANslation) (Фортран). Местом рождения языка стала штаб-квартира фирмы IBM в Нью-Йорке. Одним из главных разработчиков является Джон Бэкус. Алгол (ALGOL — ALGOrithmic Language), использовался в основном на Европейском континенте, для того, чтобы подтвердить существование в Европе специалистов по языкам программирования. BASIC, разработан в Дартмутском университете в 1964 году под руководством Джона Кемени и Томаса Курца. BASIC, разработан в Дартмутском университете в 1964 году под руководством Джона Кемени и Томаса Курца. PASCAL был создан в 1971 году. Его автором является Никлаус Вирт, профессор из Швейцарии. PASCAL был создан в 1971 году. Его автором является Никлаус Вирт, профессор из Швейцарии. Авторами этого языка и ОС UNIX являются американские программисты Деннис Ричи и Кеннет Томпсон. Авторами этого языка и ОС UNIX являются американские программисты Деннис Ричи и Кеннет Томпсон. Создателем языка LISP (1956-1959 гг.) является Джон Маккарти, которого называют отцом искусственного интеллекта. Создателем языка LISP (1956-1959 гг.) является Джон Маккарти, которого называют отцом искусственного интеллекта. Язык PROLOG разработан во Франции в 1972 году также для решения проблем искусственного интеллекта. Современные языки объектно-ориентированного и визуального программирования Языки программирования на платформе .NET. язык JAVA, создан в 1995 году под руководством Джеймса Гослинга группой инженеров компании Sun Microsystems. язык JAVA, создан в 1995 году под руководством Джеймса Гослинга группой инженеров компании Sun Microsystems.

Программа это алгоритм

Добавлен: 03.01.2013.

  • сформировать представление об алгоритме;
  • познакомить с разными способами представления алгоритмов;
  • ввести понятие «программа», «программирование»;
  • сформировать представление о линейном алгоритме
  • сформировать представление о циклическом алго­ритме;
  • сформировать представление об условном алго­ритме;
  • научить составлять алгоритм решения задачи;

Опорные понятия:

  • цель
  • задача
  • план решения
  • действия
  • блок-схема
  • начало алгоритма
  • конец алгоритма
  • исходные данные
  • выходные данные
  • циклический алгоритм
  • ветвление
  • программа
  • программирование

Новые понятия:

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

Задачи учителя:

  • ввести понятие алгоритма на основе собственного опыта учащихся;
  • познакомить с историей возникновения термина «алгоритма»
  • познакомить с разными способами представления алгоритма
  • ввести понятие «программа»;
  • ввести понятие «программирование»;
  • познакомить с понятием «линейный алгоритм»;
  • познакомить с понятием «циклический алгоритм»;
  • познакомить с понятием «разветвляющийся алгоритм»;
  • научить составлять алгоритмы решения задач.
  1. Организационный момент.
  2. Ввод понятия «алгоритм» на основе собственного опыта учащихся
  • В школе дети выполняют одинаковые задания. Но результат может быть при этом разный. От чего это зависит?
  • Любите ли вы играть?
  • Назовите игры, в которые вы играете. (Название учитель записывает на доске).
  • Если вы учите кого-то игре, что вы объясняете?
  • Что общее у всех игр?
  • Рассмотрим другой пример. Как вас учат писать сочинение по литературе, с чего надо начинать?
  • Сможете ли вы приготовить плов? Чем следует воспользоваться, чтобы приготовить незнакомое блюдо?
  • А теперь сделайте вывод из всего выше сказанного

Запись в тетрадях: «Любая целенаправленная деятельность человека осуществляется по плану». (На доске страница «Алгоритмы»)

История возникновения термина «алгоритм»

Слово алгоритм происходит от algorithmi - латинской формы написания имени арабского математика IX в. Аль-Хорезми, который сформулировал правила выполнения четырех арифметических действия над многозначными числами.

Многие столетия до этого люди были убеждены, что правила счета очень сложны и доступны только избранным. В учебнике Аль-Хорезми привел такие методы счета, которые усваивает даже ребенок. С развитием науки и техники человечество осознало, что можно научиться выполнять сложные действия, если их разбить на последовательность простых. Слово «алгоритм» приобрело другой смысл, не относящийся к арифметике.

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

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

Знакомство со свойствами алгоритма.

Алгоритм обладает следующими свойствами:

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

2. Определенность. Каждое правило алгоритма должно быть четким, однозначным.

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

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

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

6. Формальность. Алгоритм можно выполнить, совершенно отвлекаясь от той суммы знаний, которая нужна для того, чтобы написать алгоритм. Любой исполнитель, способный воспринимать и выполнять предписания алгоритма, руководствуясь алгоритмом, может правильно выполнить задание, возможно даже не понимая ни сути задачи, ни смысла предписаний. Но тогда выполнение алгоритма можно поручить и не человеку, а машине – автомату. Как известно, автоматы правильно решают многие задачи по заданным им алгоритмам, хотя суть задач, безусловно, автоматы понимать не могут.

(На доске страница «Свойства»)

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

Формой представления алгоритма может быть словесное описание, формулы, таблица, запись на языке программирования. (На доске страница «Запись алгоритмов»).

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

Чтобы все участники разработки понимали блок-схему алгоритма одинаково, вводится специальное обозначение для каждого элемента алгоритма. (На доске страница «Блок-схемы алгоритмов») .

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

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

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

Блок "решение" используется для обозначения переходов управления по условию. В каждом блоке "решение" должны быть указаны вопрос, условие или сравнение, которые он определяет.

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

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

Алгоритмы решения задач должны быть выполнимы в той среде, где необходимо получить результат. В этой среде должен существовать объект, который будет выполнять данный алгоритм. Объект должен обладать следующими характеристиками:

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

Запись в тетрадях: Исполнитель – объект, который выполняет алгоритм.

Для каждого исполнителя существует конечный набор команд, которые он может выполнять, - система команд исполнителя (СКИ).

Программа - это последовательность команд, понятных исполнителю.

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

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

Требования, предъявляемые к программе:

1. Минимальные требования к компьютеру, на котором работает программа.

2. Ясность входных и выходных данных и простота программы.

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

4. Минимальное время работы программы, минимум занимаемой памяти и минимум использованных в программе операторов.

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

Свойства программ - выполнимость, мобильность, правильность, эффективность.

Выполнимость - возможность выполнения программы на данном типе компьютеров.

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

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

Эффективность - минимум времени выполнения, минимум машинной памяти и других ресурсов компьютера.

Языки программирования - языки для записи программ для компьютеров. Это совокупность средств и правил представления алгоритма в виде, приемлемом для компьютера.

Оператор - выражение, обозначающее и описывающее какую-либо операцию.

Типы языков программирования: машинные, машинно-ориентированные, алгоритмические, логические, функциональные, учебные, инструментальные, диалоговые, графические и т.д.

Алгоритмический язык – система символов и правил, позволяющих записывать в формализованном виде алгоритмы решения задач на ЭВМ.

Системы программирования - это набор средств ввода, редактирования, трансляции и выполнения программ на ЭВМ.

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

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

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

Все системы (языки) программирования имеют свой транслятор, компилятор и интерпретатор.

Виды языков программирования:

1. Машинно-ориентированные языки (языки ассемблера).

2. Языки высокого уровня.

3. Командные языки баз данных.

Примеры языков программирования высокого уровня: Фортран, Алгол, Бейсик (Basic), Паскаль (Pascal), Си++, Пролог, Лисп, Форт и другие.

Физминутка.

VI. Проводится переменка. (На доске страница «Переменка»).

А сейчас мы с вами немного отвлечемся и развлечемся: вы должны будете разгадать ребусы (см. архив)

VII . Знакомство с понятием «линейный алгоритм», «циклический алгоритм». алгоритм «ветвление».

Анализ многих технически сложных проектов ХХ века (создание новых самолетов, автомобилей, зданий, плотин) убедил исследователей, что большинство ошибок, проектирования являются алгоритмическими, то есть возникают из-за неправильного описания последовательности действий. В 70-х годах ряд ученых (Э.Дейкстра, К.Бом, Г.Джаконини) доказали, что алгоритм можно составить, используя три типа алгоритмических конструкций:

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

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

Знаете ли вы алгоритмы, состоящие в многократном повторении определенной последовательности действий?

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

В алгоритмические структуры цикл входит серия команд, выполняемая многократно. Такая последовательность команд называется телом цикла.

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

— циклы с условием, в которых тело цикла выполняется до тех пор, пока выполняется условие.

Цикл со счетчиком. Когда заранее известно, какое число повторений тела цикла необходимо выполнить, можно воспользоваться циклической инструкцией (оператором цикла со счетчиком) For. Next (рис. 19)

Синтаксис оператора For. Next следующий: строка, начинающаяся с ключевого слова For, является заголовком цикла, а строка с ключевым словом Next — концом цикла; между ними располагаются операторы, представляющие собой тело цикла.

В начале выполнения цикла значение переменной Счетчик устанавливается равным начальному значению. При каждом «проходе» цикла переменная увеличивается на величину шага. Если она достигает величины конечное значение, то цикл завершается и выполняются следующие за ним операторы.

Циклы с условием. Часто бывает так, что необходимо повторить тело цикла, но заранее неизвестно, какое количество раз это надо сделать. В таких случаях количество повторений зависит от некоторого условия. Этот цикл реализуется с помощью инструкции Do. Loop.

Условие выхода из цикла можно поставить в начале, перед телом цикла или в конце, после тела цикла (рис. 21)

Проверка условия выхода из цикла проводится с помощью ключевых слов While или Until. Эти слова придают одному и тому же условию противоположный смысл. Ключевое слово While обеспечивает выполнение цикла до тех пор, пока выполняется условие, т. е. пока условие имеет значение истина. В этом случае условие является условием продолжения цикла. Как только условие примет значение ложь, выполнение цикла закончится.

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

Рассмотрим еще один пример. Вспомним сюжет из сказки. Царевич останавливается у развилки дороги и видит камень с надписью: «Направо пойдешь – коня потеряешь; налево пойдешь – сам пропадешь…». Подобная ситуация, заставляющая нас принимать решения в зависимости от некоторого условия, постоянно встречается в повседневной жизни. (Примеры учащихся).

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

Ветвление - это команда алгоритма, в которой делается выбор: выполнять или не выполнять какую-нибудь группу команд в зависимости от условия.

Условие – это выражение, находящееся между словами «если» и «то» и принимающее значение «истина» или «ложь».

Общая форма разветвляющегося алгоритма:

Если <условие,> то <действие 1> иначе <действие 2>.

При всех значениях условия выполняется какое-либо действие. Это полная форма ветвления.

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

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

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

2. Имеются три сосуда объемом 8, 5 и 3 литров. В первом сосуде налита вода. Используя эти сосуды получить:

  • в одном из сосудов 6 литров
  • в одном из сосудов 7 литров
  • разделить жидкость на равные части

3. Имеется исполнитель, который может производить с числом два действия: прибавлять 1 и умножать на 2.

  • число 5
  • число 99
  • число 99, если использовать арифметические операции не более 10 раз.

Начальное число ноль.

4. Имеется исполнитель, который может производить с числом два действия умножать на 2 и стирать последнюю цифру. Например, из числа 56 можно получить числа 112 и 5. Как получить из числа 458 число 14?

ЗАКЛЮЧЕНИЕ

Учащиеся самостоятельно делают вывод:

Любой результат деятельности человека – это последовательно выполненная совокупность действий. Вопрос лишь в том, насколько оптимально подобрано решение задачи. Это означает, что нужно не просто решить задачу, а решить её с минимальными затратами.

Любой алгоритм должен быть построен с соблюдением определенных правил, согласованных с его свойствами.

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

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

Простой конструкцией алгоритма является линейная структура, когда действия исполняются друг за другом.

Другими более сложными конструкциями являются ветвление и цикл.

Ветвление предполагает наличие условия, относительно которого и осуществляется выбор дальнейшего действия.

Для цикла характерно выполнение определенной совокупности действий некоторое число раз или пока выполняется или не выполняется поставленное условие.

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

Алгоритм или программа выполняются исполнителем, которым могут быть человек, компьютер, робот, автомат, механическое устройство.

2. Домашнее задание

Читать: тема 12, стр.142-150

Отвечать на вопросы: стр.161 №7, 16, 17, 19

По блок-схемам к заданию 7.15, стр.234 записать в тетрадь алгоритм рисования цифры почтового кода.

ИСПОЛЬЗУЕМАЯ ЛИТЕРАТУРА:

  1. Информатика. 7-9 класс. Базовый курс. Теория. Под редакцией Н.В.Макаровой. – СПб. Питер, 2006.
  2. Информатика. 7-9 класс. Базовый курс. Практикум по информационным технологиям. Под редакцией Н.В.Макаровой. – СПб. Питер, 2006.
  3. Информатика. Методическое пособие для учителей 7 класс. Под редакцией Н.В.Макаровой. – СПб. Питер, 2004.
  4. Поурочные разработки по информатике 7-9 классы. Универсальное пособие. А.Х.Шелепаева. – М.:ВАКО, 2005.
  5. Информатика и образование. Научно-методический журнал, №2,6 2004.

Презентация на тему: Алгоритм и компьютерная программа УМК по информатике Н

Похожие презентации Презентация на тему: " Алгоритм и компьютерная программа УМК по информатике Н.В. Матвеевой, 4 класс." — Транскрипт:

1 Алгоритм и компьютерная программа УМК по информатике Н.В. Матвеевой, 4 класс

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

3 Мини-компьютер Влево Вправо Влево Начало Конец

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

7. Робот может выполнять какие-либо действия, если в него встроен компьютер, в памяти которого хранятся данные и специальные алгоритмы в виде программ.

8 Компьютер это исполнитель алгоритмов, записанных на языке программирования и хранящихся в его памяти.

9 Компьютерная программа на языке Паскаль Program Chislo; Var X: Integer; Begin Writeln(Введите число); Readln (X); If X MOD 2 = 0 Then Writeln ('Число ', x, ' чётное') Else Writeln ('Число ', x, ' нечётное'); End.

10 Program - программа Begin - начало Writeln - вывод информации на экран Readln – ввод информации с клавиатуры End - конец

11 Игра «Программист» Найдите ошибки в программе, допущенные Незнайкой Programm Chislo Var X: Integer; Begin Writeln(Введите число); Readln (X); If X MOD 2 = 0 Then Writeln ('Число ', x, ' чётное') Else Writeln ('Число ', x, ' нечётное'); End

12 Programm Dialog Var x: string; l: integer; Begin Writeln('Как тебя зовут ?'); Readln (x) Writeln ('Сколько тебе лет ?'); readln(l); writeln('Привет, ', x, '. Тебе ', l, ' лет!') writeln('Пока !'); readln; End

13 Заполните кроссворд, используя термины информатики

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

15 Вопросы Чем отличается исполнитель-человек от исполнителя-компьютера? Может ли компьютер обрабатывать данные, если в его памяти нет программ? Что такое компьютерная программа? Благодаря каким устройствам компьютер может исполнять программы и обрабатывать данные? Исполнит ли компьютер программу, написанную на естественном русском языке? Почему?

16 Домашнее задание Рабочая тетрадь 2, с. 42-44.

Определение и свойства алгоритма

Материал из Гипермаркет знаний

§ 27. Определение и свойства алгоритма

Основные темы параграфа:

¦ происхождение понятия «алгоритм »;

¦ исполнитель алгоритма;

¦ алгоритмический язык;

¦ свойства алгоритма;

¦ определение алгоритма;

¦ формальное исполнение алгоритма;

¦ что такое программа.

Понятие алгоритма так же фундаментально для информатики . как и понятие информации. Поэтому в нем очень важно как следует разобраться.

Происхождение понятия «алгоритм»

Само слово «алгоритм» происходит от имени выдающегося математика средневекового Востока Мухаммеда аль-Хорезми (787-850). Им были предложены приемы выполнения арифметических вычислений с многозначными числами (вам они хорошо знакомы из школьной математики). Позже в Европе эти приемы назвали алгоритмами, от Algorithmi — латинского написания имени аль-Хорезми. В наше время понятие алгоритма понимается шире, не ограничивается только арифметическими вычислениями.

Исполнитель алгоритма

Из предыдущего параграфа вы узнали, что алгоритм — это последовательность команд управления каким-либо объектом . Мы назвали его объектом управления или исполнителем алгоритма. Им может быть как техническое устройство, так и живое существо.

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

Вы, наверное, никогда не задумывались над тем, какое количество алгоритмов вам известно. Жизненный опыт человека растет с увеличением числа освоенных им алгоритмов. Например, чтобы ребенок научился покупать в магазине хлеб, ему нужно сначала рассказать (а лучше показать), как это делается. Освоив «алгоритм покупки хлеба», он в дальнейшем будет успешно выполнять эту работу.

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

Играют двое. Перед ними 21 предмет, допустим, камни (также может быть 11, 16, 26 и т. д.). Игроки берут камни по очереди. За один ход можно взять 1, 2, 3, 4 камня. Проигрывает тот, кто забирает последний камень.

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

алг Игра Баше

1. Предоставить ход сопернику.

2. Взять столько камней, чтобы в сумме с предыдущим ходом соперника получилось 5.

3. Если остался один камень, то объявить о своем выигрыше, иначе вернуться к выполнению команды 1.

Игрок, строго следующий этому алгоритму, будет всегда выигрывать, даже если он не понимает, почему так происходит.

Алгоритмический язык

В приведенном примере используется символика учебного Алгоритмического языка (АЯ).

Из примера видно, что при записи алгоритма на АЯ в начале пишется заголовок, начинающийся со служебного слова алг (сокращенное слово «алгоритм»). Затем указывается название алгоритма, которое составитель алгоритма придумывает сам. Следующая часть называется телом алгоритма. Она начинается со служебного слова нач (начало) и заканчивается словом кон (конец). Тело алгоритма представляет собой последовательность команд для исполнителя.

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

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

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

Это свойство алгоритма называется дискретностью.

Всякий алгоритм составляется в расчете на конкретного исполнителя с учетом его возможностей. Для того чтобы алгоритм был выполним, нельзя включать в него команды, которые исполнитель не в состоянии выполнить. Нельзя повару поручать работу токаря, какая бы подробная инструкция ему ни давалась. У каждого исполнителя имеется свой перечень команд, которые он может исполнить. Такой перечень называется системой команд исполнителя алгоритмов (СКИ).

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

Это свойство алгоритма называется понятностью.

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

Это свойство алгоритма называется точностью.

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

Еще одно важное требование, предъявляемое к алгоритму — это свойство конечности (иногда говорят — результативности) алгоритма. Это значит, что:

Исполнение алгоритма должно завершиться за конечное число шагов.

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

Дано: катеты прямоугольного

треугольника а = 3 см; b = 4 см.

Найти: гипотенузу с

Алгоритм решения этой задачи можно представить в таком виде:

алг Гипотенуза

1, Возвести а в квадрат.

2. Возвести b в квадрат.

3. Сложить результаты действий 1 и 2.

4. Вычислить квадратный корень результата действия 3 и принять его за значение с.

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

Еще пример: для поиска номера телефона нужного вам человека исходными данными являются: фамилия, инициалы человека и телефонная книга (точнее, информация, заключенная в телефонную книгу). Однако этого может оказаться недостаточно. Например, вы ищете номер телефона А. И. Смирнова и обнаруживаете, что в книге пять строк с фамилией «Смирнов А. И». Ваши исходные данные оказались неполными для точного решения задачи (вместо одного номера телефона вы получили пять). Оказалось, что нужно знать еще домашний адрес.

Набор: «фамилия — инициалы — телефонный справочник — адрес» является полным набором данных в этой ситуации.

Только имея полный набор данных, можно точно решить задачу.

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

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

Обобщая все сказанное, сформулируем определение алгоритма.

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

Формальное исполнение алгоритма

Если алгоритм обладает перечисленными выше свойствами, то работа по нему будет производиться исполнителем

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

Что такое программа

А что такое программа? Отличается ли чём-то программа от алгоритма?

Программа — это алгоритм, записанный на языке исполнителя.

Иначе можно сказать так; алгоритм и программа не отличаются по содержанию, но могут отличаться по форме.

Для алгоритма строго не определяется форма его представления. Алгоритм можно изобразить графически, можно — словесно, можно — какими-нибудь специальными значками, понятными только его автору. Но программа должна быть записана на языке исполнителя.

Коротко о главном

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

Исполнитель алгоритма — это тот объект, для управления которым составлен алгоритм.

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

Система команд исполнителя (СКИ) — это вся совокупность команд, которые исполнитель умеет выполнять (понимает). Алгоритм можно строить только из команд, входящих в СКИ исполнителя (свойство понятности).

Каждая команда алгоритма управления определяет однозначное действие исполнителя (свойство точности).

Выполнение алгоритма должно приводить к результату за конечное число шагов (свойство конечности).

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

Выполнение алгоритма исполнителем производится формально.

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

Вопросы и задания

1. Что такое алгоритм? Откуда произошла это слово?

2. Что такое исполнитель алгоритма?

3. Что такое система команд исполнителя?

4. В чем заключаются основные свойства алгоритма?

5. Назовите исполнителей следующих видов работы: уборка мусора во дворе; перевозка пассажиров; выдача заработной платы; прием экзаменов; сдача экзаменов; обучение детей в школе. Попробуйте сформулировать СКИ для каждого из этих исполнителей.

6. Определите полный набор данных для решения следующих задач обработки информации:

• определение времени показа по телевизору интересующего вас фильма;

• вычисление площади треугольника;

• определение времени падения кирпича с крыши дома;

• определение месячной платы за расход электроэнергии;

• перевод русского текста на итальянский язык;

• перевод итальянского текста на русский язык.