Алгоритм исполнен процессором компьютера если он записан
Цель урока: дать понятие об алгоритме, его свойствах, видах и о способах записи алгоритмов.
Обучающие:
– дать понятие об алгоритме;
– формировать представление: о линейном, разветвляющем и циклическом алгоритмах, о способах записи алгоритмов.
Формировать умение:
– выполнять и составлять алгоритмы в виде блок-схем.
Развивающие
– развитие алгоритмического мышления, познавательных интересов, навыков работы на компьютере;
– развивать память и внимание через активное использование информации;
– развивать умение анализировать;
– развивать рациональное мышление.
Воспитательные:
– воспитание творческого подхода к работе и желания экспериментировать;
– формирование коммуникативных компетенций учащихся через работу в группах;
– воспитание уважения к мнению других, умения слушать;
– воспитание информационной культуры учащихся, внимательности, аккуратности, дисциплинированности, усидчивости;
– формирование и развитие информационного видения окружающего мира.
Тип урока: Изучение нового материала.
Формы работы учащихся: беседа, работа в группах (парах).
Необходимое техническое оборудование.
- Организационный момент. (1 мин.)
- Актуализация опорных знаний. (5 мин.)
- Изучение нового материала (15 мин.)
- Практическая работа в группах (закрепление материала). (10 мин.)
- Домашнее задание. (2 мин.)
- Вопросы учеников. (5 мин.)
- Подведение итогов. (2 мин.)
I. Организационный момент.
Приветствие, проверка присутствующих. Объяснение хода урока.
II. Актуализация знаний.
Для решения большинства задач существует множество готовых программ. Но для того чтобы лучше понимать все происходящее с компьютером и уверенно принимать правильные решения, рядовому пользователю необходимо обладать определенной компьютерной грамотностью.
Следует отметить, что большинство редакторов (например, Microsoft Office Word, Excel) имеют встроенные средства программирования, освоив которые можно значительно расширить свои возможности.
III. Теоретическая часть.
Один из важнейших этапов решения задач на ЭВМ – составление алгоритма. О том, что такое алгоритмы, какими общими свойствами они обладают и как исполняются, мы и поговорим на этом уроке.
В 1983 году отмечалось 1200-летие со дня рождения одного из величайших ученых Средней Азии и средневекового Востока Мухамада ибн Мусы аль-Хорезми. Он написал ряд трактатов по арифметике и алгебре, в том числе книгу "Арифметика индусскими цифрами" – о счете с помощью десяти цифр и правилах арифметических действий с числами.
Имя ученого аль-Хорезми превратилось в понятие algorithmi, первоначально обозначавшее десятичную систему исчисления и правила арифметических действий в этой системе. Отсюда и возник современный научный термин "алгоритм".
Вы постоянно сталкиваетесь с этим понятием в различных сферах деятельности человека (кулинарные книги, инструкции по использованию различных приборов, правила решения математических задач. ). Обычно мы выполняем привычные действия не задумываясь, механически.
Алгоритм – описание последовательности действий (план), строгое исполнение которых приводит к решению поставленной задачи за конечное число шагов. (Слайд 3) Приложение
Существует несколько форм представления алгоритмов: (Слайд 4)
- На естественном языке (словесная форма).
- На языке блок-схем.
- На алгоритмическом языке – программа.
Например, вы хорошо знаете, как открывать ключом дверь. Однако, чтобы научить этому малыша, придется четко разъяснить и сами эти действия и порядок их выполнения: (Слайд 5)
- Достать ключ из кармана.
- Вставить ключ в замочную скважину.
- Повернуть ключ два раза против часовой стрелки.
- Вынуть ключ.
В повседневной жизни алгоритм часто записывается в виде предложений, расположенных в порядке выполнения. Запись алгоритма с помощью слов называется словесным представлением алгоритма.
Составьте алгоритм задачи “Слепить снеговика”. Такого как на картинке. Пронумеруйте шаги так чтобы выполнив их последовательно мы слепили снеговика. (Слайд 6)
Перед вами 6 рисунков – столько , сколько шагов в алгоритме. Пронумеруйте рисунки – шаги алгоритма. (Слайд 7)
Если вы внимательно оглянитесь вокруг, то обнаружите множество алгоритмов которые мы с вами постоянно выполняем. Мир алгоритмов очень разнообразен. Несмотря на это, удается выделить общие свойства, которыми обладает любой алгоритм.
Свойства алгоритмов: (Слайд 8)
- Дискретность (алгоритм должен состоять из конкретных действий, следующих в определенном порядке);
- Детерминированность (любое действие должно быть строго и недвусмысленно определено в каждом случае);
- Конечность (каждое действие и алгоритм в целом должны иметь возможность завершения);
- Массовость (один и тот же алгоритм можно использовать с разными исходными данными);
- Результативность (отсутствие ошибок, алгоритм должен приводить к правильному результату для всех допустимых входных значениях).
В алгоритме команды записаны одна за другой в определенном порядке. Исполняются они не обязательно в том же порядке. В зависимости от того, каков порядок исполнения команд, можно выделить три типа алгоритмов: линейный, разветвляющий, циклический. (Слайд9) и вспомогательные.
Виды алгоритмов: (Слайд 10)
- Линейный алгоритм (описание действий, которые выполняются однократно в заданном порядке);
- Циклический алгоритм (описание действий, которые должны повторятся указанное число раз или пока не выполнено задание);
- Разветвляющий алгоритм (алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий).
Для более наглядного представления алгоритма широко используется графическая форма – блок-схема, (Слайд 12) которая составляется из стандартных графических объектов.. Каждое графически обозначенное предложение алгоритма называется блоком. В блок записывается только одна команда. Блоки (шаги) алгоритма соединены стрелочками.
Примеры записи алгоритмов в виде блок-схемы:
Линейный алгоритм. (Слайд 13)
Вычислить площадь прямоугольника со сторонами А, В. (Слайд 14)
Разветвляющий алгоритм. (Слайд15)
Циклический алгоритм. (Слайд 17, 18)
Стадии создания алгоритма: (Слайд 19)
- Алгоритм должен быть представлен в форме, понятной человеку, который его разрабатывает.
- Алгоритм должен быть представлен в форме, понятной тому объекту (в том числе и человеку), который будет выполнять описанные в алгоритме действия.
Объект, который будет выполнять алгоритм, обычно называют исполнителем. (Слайд 20)
Исполнитель – объект, который выполняет алгоритм.
Идеальными исполнителями являются машины, роботы, компьютеры.
Компьютер – автоматический исполнитель алгоритмов.
Алгоритм, записанный на “понятном” компьютеру языке программирования, называется программой.
Ответить на вопросы теста.
- Что такое алгоритм? Приведите примеры алгоритмов.
- Какие свойства алгоритмов вы знаете?
- Какие виды алгоритмов вы знаете?
- Какие способы записи алгоритмов вы знаете?
- Что такое исполнитель алгоритмов?
- Что такое программа?
IV. Домашнее задание.
V. Вопросы учеников.
Ответы на вопросы учащихся.
VI. Итог урока.
Подведение итога урока. Выставление оценок.
На уроке мы познакомились с тем, что такое алгоритм, какими свойствами он обладает и как его можно записать.
Н.Д. Угринович. Базовый учебник “Информатика и ИКТ”. 9-й класс. БИНОМ. 2011 г.
Выше мы говорили о возможности формального исполнения алгоритма. Это означает, что выполнение алгоритма может быть автоматически реализовано техническими устройствами, среди которых особое место занимает компьютер. При этом говорят, что компьютер исполняет программу (последовательность команд), реализующую алгоритм.
Алгоритм, записанный на «понятном» компьютеру языке программирования, называется программой.
Машинный язык. На заре компьютерной эры, в 40-50-е годы XX века, программы писались на машинном языке и представляли собой очень длинные последовательности нулей и единиц. Составление и отладка таких программ являлись чрезвычайно трудоемким делом. Программы на машинных языках были машинно-зависимыми, т. е. для каждой ЭВМ необходимо было создавать свою собственную программу, так как в ней в явной форме учитывались аппаратные ресурсы ЭВМ.
Ассемблер. В начале 50-х годов XX века были созданы языки программирования, которые называются ассемблерами. Вместо одних только нулей и единиц программисты теперь могли пользоваться операторами (MOV, ADD, SUB и т. д.), которые были похожи на слова английского языка. Для преобразования текста программы на ассемблере в понятный компьютеру машинный код использовался компилятор. Программы на ассемблере были также машинно-зависимыми, т. е. ассемблеры для различных процессоров существенно различались между собой.
Языки программирования высокого уровня. С середины 50-х годов XX века начали создаваться первые языки программирования высокого уровня. Эти языки были машинно-независимыми, так как использовали универсальную компьютерную логику и не были привязаны к типу ЭВМ. Однако для каждого языка и каждого типа ЭВМ должны были быть разработаны собственные компиляторы. Одним из первых языков программирования высокого уровня был созданный в 1964 году Бейсик (Basic).
Существуют различные стили программирования. Перечисленные выше языки поддерживают процедурный стиль. Программа, составленная в соответствии с этим стилем, представляет собой последовательность операторов (инструкций), задающих те или иные действия.
Объектно-ориентированные языки. С 70-х годов XX века начали создаваться объектно-ориентированные языки программирования, на которых было удобно программировать в объектно-ориентированном стиле. В основу этих языков были положены программные объекты, которые объединяли данные и методы их обработки. С течением времени для этих языков были созданы интегрированные среды разработки, позволяющие визуально конструировать графический интерфейс приложений:
язык Object Pascal был разработан компанией Borland на основе языка Pascal. После создания интегрированной среды разработки система программирования получила название Delphi;
язык Visual Basic был создан корпорацией Microsoft на основе языка QBasic для разработки приложений с графическим интерфейсом в среде операционной системы Windows;
язык Gambas был создан по аналогии с языком Visual Basic для разработки приложений с графическим интерфейсом в среде операционной системы Linux.
Java. В 90-е годы XX века в связи с бурным развитием Интернета был создан язык Java, обеспечивающий межплатформенную совместимость. На подключенных к Интернету компьютерах с различными операционными системами (Windows, Linux, Mac OS и др.) могли выполняться одни и те же программы. Исходная программа на языке Java компилируется в промежуточный код, который исполняется на компьютере встроенной в браузер виртуальной машиной.
На рис. 1.1. показана краткая история развития языков программирования.
Краткая история развития языков программирования
Рис. 1.1. История развития языков программирования
Программы-трансляторы. Для того чтобы программа, записанная на языке программирования, могла быть выполнена компьютером, она должна быть переведена на машинный язык. Эту функцию выполняют программы-трансляторы.
Программы-трансляторы с языков программирования бывают двух типов: интерпретаторы и компиляторы.
Интерпретатор — это программа, которая обеспечивает последовательный «перевод» команд программы на машинный язык с одновременным их выполнением. Поэтому при каждом запуске программы на выполнение эта процедура повторяется. Достоинством интерпретаторов является удобство отладки программы (поиска в ней ошибок), так как возможно «пошаговое» ее исполнение, а недостатком — сравнительно малая скорость выполнения.
Компилятор действует иначе, он переводит весь текст программы на машинный язык и сохраняет его в исполняемом файле (обычно с расширением ехе). Затем этот уже готовый к исполнению файл, записанный на машинном языке, можно запускать на выполнение. Достоинством компиляторов является большая скорость выполнения программы, а недостатком большинства из них — трудоемкость отладки, так как невозможно пошаговое выполнение программы.
Системы объектно-ориентированного программирования Visual Basic и Gambas позволяют работать как в режиме интерпретатора, так и в режиме компилятора. На этапе разработки и отладки программы используется режим интерпретатора, а для получения готовой исполняемой программы — режим компилятора.
Контрольные вопросы
2. В чем состоят достоинства и недостатки интерпретаторов и компиляторов?
Cкачать материалы урока
Дискретность. Во многих отраслях человеческой деятельности для достижения требуемого результата используются алгоритмы, содержащие четкие описания последовательностей действий. Примерами алгоритмов являются кулинарные рецепты, в которых подробно описана последовательность действий по приготовлению пищи.
Алгоритмы кулинарных рецептов состоят из отдельных действии, которые обычно нумеруются. Каждый алгоритм состоит из последовательности отдельных шагов. Это является важным свойством алгоритма - дискретностью.
Алгоритм приготовления блюда быстрого питания:
1. Высыпать в емкость содержимое пакетика.
2. Налить в емкость 200 мл горячей воды.
3. Тщательно перемешать.
Результативность. Алгоритмами являются известные из начальной школы правила сложения, вычитания, умножения и деления столбиком. Применение этих алгоритмов всегда приводит к результату. Возможность получения из исходных данных результата за конечное число шагов называется результативностью алгоритма.
Алгоритм сложения целых чисел в десятичной системе счисления:
1. Записать числа в столбик, так чтобы цифры самого младшего разряда чисел (единицы) расположились одна под другой (на одной вертикали).
2. Сложить цифры младшего разряда.
3. Записать результат под горизонтальной чертой на вертикали единиц. Если полученная сумма больше или равна величине основания системы счисления (в данном случае 10), перенести десятки в старший разряд десятков.
4. Повторить пункты 2 и 3 для всех разрядов с учетом переносов из младших разрядов.
Массовость. Алгоритмы сложения, вычитания, умножения и деления могут быть применены для любых чисел, причем не только в десятичной, но и в других позиционных системах счисления (двоичной, восьмеричной, шестнадцатеричной и др.). Возможность применения алгоритма к большому количеству различных исходных данных называется массовостью.
Само слово "алгоритм" происходит от "algorithmi" - латинской формы написания имени выдающегося математика IX века аль-Хорезми, который сформулировал правила выполнения арифметических операций.
Исполнители алгоритмов. Алгоритмы широко используются в технике в системах управления объектами. В любой системе управления существует управляющий объект, который является исполнителем алгоритма управления. Так, в системах терморегуляции для поддержания определенной температуры в помещении исполнителем алгоритма может являться как человек, так и микропроцессор.
1. Измерить температуру в помещении.
2. Если измеренная температура ниже заданной, включить обогреватель.
Детерминированность. При управлении самолетом используются сложные алгоритмы, исполнителями которых являются пилот или бортовой компьютер. Последовательность выполнения действий, например, при взлете должна быть строго определенной (например, нельзя отрываться от взлетной полосы, пока самолет не набрал необходимую взлетную скорость). Исполнитель алгоритма, выполнив очередную команду, должен точно знать, какую команду необходимо исполнять следующей. Это свойство алгоритма называется детерминированностью.
Выполнимость и понятность. После включения компьютера начинают выполняться алгоритмы тестирования компьютера и загрузки операционной системы. Исполнителем этих алгоритмов является компьютер, поэтому они должны быть записаны на понятном компьютеру машинном языке.
Каждый исполнитель обладает определенным набором команд - системой команд, которые он может выполнить. Алгоритм должен быть понятен исполнителю, т. е. должен содержать только те команды, которые входят в систему команд исполнителя.
Свойства алгоритмов. Выше были приведены примеры алгоритмов из различных областей человеческой деятельности и знаний. В этих алгоритмах различные исполнители выполняли операции над объектами различной природы (материальными объектами и числами). При этом во всех примерах можно выделить следующие основные свойства алгоритма: дискретность, результативность, массовость, детерминированность, понятность.
Результативность и дискретность. Алгоритм должен обеспечивать преобразование объекта из начального состояния в конечное состояние за определенное число дискретных шагов.
Массовость. Один и тот же алгоритм может применяться к большому количеству однотипных объектов.
Детерминированность. Исполнитель должен выполнять команды алгоритма в строго в определенной последовательности.
Выполнимость и понятность команд. Алгоритм должен содержать команды, входящие в систему команд исполнителя и записанные на понятном для исполнителя языке.
Алгоритм - это конечная последовательность действий, описывающая процесс преобразования объекта из начального состояния в конечное, записанная с помощью точных и понятных исполнителю команд.
1. Каковы основные свойства алгоритмов (приведите примеры)?
2. Перечислите основные свойства алгоритмов и проиллюстрируйте их примерами.
2.1. Задание с развернутым ответом. Записать алгоритм вычитания столбиком целых чисел в десятичной системе счисления
Выполнение алгоритмов человеком и компьютером
Формальное выполнение алгоритмов человеком. Исполнитель-человек может выполнять алгоритмы формально, не вникая в содержание поставленной задачи, а только строго выполняя последовательность действий, содержащихся в алгоритме.
Предположим, что пользователю необходимо в текстовом редакторе провести редактирование текста. Создадим алгоритм редактирования, в котором объектом является текст, а исполнителем - человек.
Сначала необходимо задать начальный текст и конечный текст, который должен быть получен после выполнения алгоритма редактирования. Пусть начальным является текст "информационная модель" и курсор находится перед первым символом, а результатом является текст "модель информационная" и курсор находится после последнего символа (рис. 3.4).
Рис. 3.4. Начальное и конечное состояния текста |
Для того чтобы изменить состояние текста, необходимо в текстовом редакторе выполнить над ним определенную последовательность операций редактирования. Каждая команда алгоритма должна однозначно определять действие исполнителя, для этого необходимо записать алгоритм с использованием формальной модели текста.
Формальная модель текста разбивает его на страницы, которые включают определенное количество строк, содержащих определенное количество символов (наш текст содержит одну строку). Алгоритм "Редактирование" запишем на естественном языке, который понятен пользователю компьютера:
1. Выделить символы с 1 по 15.
2. Вырезать этот фрагмент и поместить его в буфер обмена.
3. Установить курсор на позицию после 7-го символа.
4. Вставить вырезанный фрагмент текста.
Теперь пользователь может провести редактирование текста, формально выполнив алгоритм "Редактирование".
Выполнение алгоритмов компьютером. Компьютер может выполнить алгоритм, если он записан на языке, понятном компьютеру. Информацию в компьютере обрабатывает процессор, следовательно, алгоритм должен быть записан на языке, "понятном" процессору, т. е. на машинном языке, представляющем собой логические последовательности нулей и единиц.
Однако составление и отладка таких программ является чрезвычайно трудоемким делом, поэтому разработаны языки программирования высокого уровня, кодирующие алгоритмы в привычном для человека виде (в виде предложений).
Алгоритм, записанный на "понятном" компьютеру языке программирования, называется программой.
Итак, мы создали программу на языке программирования высокого уровня (некоторый текст) и загрузили ее в оперативную память компьютера. Теперь мы хотим, чтобы процессор ее выполнил, однако процессор "понимает" команды на машинном языке, а наша программа написана на языке программирования. Как быть?
Необходимо, чтобы в оперативной памяти компьютера находилась программа-переводчик (транслятор), автоматически переводящая программу с языка программирования высокого уровня на машинный язык. Компьютер может выполнять программы, написанные только на том языке программирования, транслятор которого размещен в оперативной памяти компьютера.
Одним из первых языков программирования высокого уровня был создан в 1964 году известный всем Бейсик (Basic). Другим широко распространенным языком программирования является Паскаль (Pascal). В настоящее время наибольшей популярностью пользуются "потомки" этих языков - системы объектно-ориентированного визуального программирования Microsoft Visual Basic и Borland Delphi.
1. На каком языке должен быть записан алгоритм, чтобы его мог выполнить человек? Компьютер?
2.2. Задание с развернутым ответом. Составить алгоритм преобразования слова "информатика" в слово "форма".
Дискретность. Во многих отраслях человеческой деятельности для достижения требуемого результата используются алгоритмы, содержащие четкие описания последовательности действий. Примерами алгоритмов являются кулинарные рецепты, в которых подробно описана последовательность действий по приготовлению пищи.
Алгоритмы кулинарных рецептов состоят из отдельных действий, которые обычно нумеруются. Разделение алгоритма на последовательность шагов является важным свойством алгоритма и называется дискретностью.
Алгоритм приготовления блюда быстрого питания:
1. Высыпать в емкость содержимое пакетика.
2. Налить в емкость 200 мл горячей воды.
3. Тщательно перемешать.
Результативность. Алгоритмами являются известные из начальной школы правила сложения, вычитания, умножения и деления столбиком. Применение этих алгоритмов независимо от количества разрядов в числах и, соответственно, количества вычислительных шагов алгоритма всегда приводит к результату. Получение из исходных данных результата за конечное число шагов называется результативностью алгоритма.
Алгоритм сложения целых чисел в десятичной системе счисления:
1. Записать числа в столбик так, чтобы цифры самого младшего разряда чисел (единицы) расположились одна под другой (на одной вертикали).
2. Сложить цифры младшего разряда.
3. Записать результат под горизонтальной чертой на вертикали единиц, если при этом полученная сумма больше или равна величине основания системы счисления (в данном случае 10), перенести десятки в старший разряд десятков.
4. Повторить пункты 2 и 3 для всех разрядов с учетом переносов из младших разрядов.
Массовость. Алгоритмы сложения, вычитания, умножения и деления могут быть применены для любых чисел, причем не только в десятичной, но и в других позиционных системах счисления (двоичной, восьмеричной, шестнадцатеричной и др.). Возможность применения алгоритма к большому количеству различных исходных данных называется массовостью.
Само слово «алгоритм» происходит от «algorithmi» — латинской формы написания имени выдающегося математика IX века аль-Хорезми, который сформулировал правила выполнения арифметических операций.
Исполнители алгоритмов. Алгоритмы широко используются в технике в системах управления объектами. В любой системе управления существует управляющий объект, который является исполнителем алгоритма управления. Так, в системах терморегуляции для поддержания определенной температуры в помещении исполнителем алгоритма может являться как человек, так и микропроцессор.
Алгоритм терморегуляции:
1. Измерить температуру в помещении.
2. Если измеренная температура ниже заданной, включить обогреватель.
Детерминированность (определенность). При управлении самолетом используются сложные алгоритмы, исполнителями которых являются пилот или бортовой компьютер. При этом важно, чтобы каждая команда определяла однозначное действие исполнителя. Кроме того, последовательность выполнения действий, например, при взлете должна быть строго определенной (например, нельзя отрываться от взлетной полосы, пока самолет не набрал необходимую взлетную скорость). Исполнитель алгоритма, выполнив очередную команду, должен точно знать, какую команду необходимо исполнять следующей.
Понятность. После включения компьютера начинают выполняться алгоритмы тестирования компьютера и загрузки операционной системы. Исполнителем этих алгоритмов является компьютер, поэтому они должны быть записаны на понятном компьютеру машинном языке.
Каждый исполнитель обладает определенным набором, системой команд, которые он может выполнить. Алгоритм должен быть понятен исполнителю, т. е. должен содержать только те команды, которые входят в систему команд исполнителя.
Свойства алгоритма. Выше были приведены примеры алгоритмов из различных областей человеческой деятельности и знаний. В этих алгоритмах различные исполнители выполняли операции над объектами различной природы (материальными объектами и числами). При этом во всех примерах можно выделить следующие основные свойства алгоритма:
Результативность и дискретность. Алгоритм должен обеспечивать получение из исходных данных результата за конечное число дискретных шагов.
Массовость. Один и тот же алгоритм может применяться к большому количеству однотипных объектов.
Детерминированность (определенность). Исполнитель должен выполнять команды алгоритма в строго определенной последовательности .
Понятность. Алгоритм должен содержать команды, входящие в систему команд исполнителя и записанные на понятном исполнителю языке.
Алгоритм — это описание детерминированной последовательности действий, направленных на получение из исходных данных результата за конечное число дискретных шагов с помощью понятных исполнителю команд.
Формальное исполнение алгоритма. Из приведенных выше свойств алгоритма вытекает возможность его формального выполнения. Это означает, что алгоритм можно выполнять, не вникая в содержание поставленной задачи, а только строго выполняя последовательность действий, описанных в алгоритме.
Контрольные вопросы
1. Приведите примеры известных вам алгоритмов.
2. Перечислите основные свойства алгоритмов и проиллюстрируйте их примерами.
3. Как вы понимаете формальное исполнение алгоритма?
Задания для самостоятельного выполнения
1.1. Задание с развернутым ответом. Запишите алгоритм вычитания столбиком целых чисел в десятичной системе счисления.
Контрольные вопросы
1. Перечислите основные элементы блок-схем и их назначение.
Cкачать материалы урока
Любая обработка информации на компьютере осуществляется по программе. Выполнением программы занимается процессор (см. “Процессор”), при этом сама программа хранится, как правило, в ОЗУ (см. “Память оперативная”) и считывается оттуда в процессор по мере необходимости. Вопрос о том, каким образом программа попадает в оперативную память, рассматривается отдельно в статье “Загрузка ПО”.
Каждая программа состоит из отдельных двоичных команд (см. “Машинная команда”), так что выполнение программы есть не что иное, как поочередное выполнение этих команд. Рассмотрим последовательность действий ЭВМ при выполнении каждой из команд программы.
Важной составной частью любой фоннеймановской машины является счетчик адреса команд. Этот специальный внутренний регистр в устройстве управления процессора постоянно указывает на ячейку памяти, в которой хранится следующая команда программы.
Пусть в рассматриваемый момент времени текущее значение счетчика команд уже определено. Тогда дальнейшие действия процессора определяются следующим алгоритмом.
1. Согласно содержимому счетчика адреса команд считывается очередная команда программы. Ее код обычно заносится на хранение в специальный регистр УУ, который носит название регистра команд.
2. Счетчик команд автоматически изменяется так, чтобы в нем содержался адрес следующей команды. В простейшем случае для этой цели достаточно к текущему значению счетчика прибавить некоторую константу, определяющуюся длиной команды.
3. Считанная в регистр команд операция расшифровывается, извлекаются необходимые данные, выполняются требуемые действия и, если это предусмотрено операцией, производится запись результата в ОЗУ.
Далее все действия повторяются заново. Поскольку на втором этапе счетчик адреса команд был изменен, то в ходе нового цикла будет выполняться другая команда.
Рассмотренный основной алгоритм работы ЭВМ (его также часто называют программным принципом работы ЭВМ) позволяет шаг за шагом выполнить хранящуюся в ОЗУ линейную программу. Если же требуется изменить порядок вычислений для реализации развилки или цикла, достаточно на этапе 3 в счетчик команд занести новый адрес (именно так происходит условный или безусловный переход).
Как отчетливо видно из приведенной выше блок-схемы, основной алгоритм не является “самостартующим”: ему требуется определить первоначальное содержимое счетчика, т.е. фактически адрес самой первой команды. В старых машинах это делал оператор ЭВМ. В современных компьютерах при включении питания или при нажатии на кнопку сброса (reset) в счетчик аппаратно заносится стартовый адрес находящейся в ПЗУ программы инициализации всех устройств и начальной загрузки ЭВМ (см. “Загрузка ПО”).
В любом случае, как только первоначальный адрес задан, все дальнейшие действия процессора предопределены выполняемой программой. Мы видим теперь, что вся деятельность ЭВМ есть непрерывное выполнение тех или иных программ, причем программы эти могут, в свою очередь, загружать новые программы и т.д.
В современных компьютерах для ускорения основного цикла выполнения команды используется метод конвейеризации, позволяющий реализовать перечисленные выше этапы алгоритма параллельно. Используются также и другие способы, которые направлены на ускорения выполнения команд программы.
Уместно подчеркнуть, что программный способ управления компьютером делает его необычайно гибким и позволяет на одном и том же оборудовании решать самые разнообразные задачи (включая даже такие, которые в момент изготовления машины еще не были известны!).
Методические рекомендации
Курс информатики основной школы
Школьникам следует дать представление об ЭВМ как об автомате, выполняющем программу в соответствии с относительно несложным алгоритмом. Авторы самого первого школьного учебника информатики 10 подчеркивали методическую важность этого понятия. “Основной алгоритм работы процессора является важнейшим материалом данного параграфа. Следуя командам этого алгоритма, процессор осуществляет автоматическое исполнение программы, находящейся в памяти ЭВМ. В принципе этот алгоритм чрезвычайно прост. Но его общеобразовательное значение очень велико: разобравшись в основном алгоритме процессора, учащиеся узнают, как происходит автоматическое исполнение программы, хранящейся в памяти компьютера, т.е. как осуществляет ЭВМ автоматическую обработку информации. Учитель должен добиваться от школьников понимания сути предлагаемого материала, а не его механического выучивания”.
Очень важно обратить внимание учеников на следующее обстоятельство: если посмотреть на основной алгоритм без учета деталей исполнения команды, то становится очевидным, что он годится практически для любого исполнителя, скажем, Кенгуренка. Так что ЭВМ — это самый настоящий исполнитель алгоритмов. Особенность данного исполнителя заключается в том, что команды, которые ЭВМ способна выполнять, являются максимально универсальными, в то время как Кенгуренок и остальные учебные исполнители способны работать только с узкоспециализированными командами. Важно понимать, что на базе относительно небольшого набора универсальных команд компьютера может быть смоделирован любой специализированный исполнитель: этим мы постоянно пользуемся на практике, когда работаем с программной поддержкой учебных исполнителей. Таким образом, компьютер — это универсальный исполнитель алгоритмов.
Курс информатики в старших классах
Стандарт не содержит прямого указания на необходимость повторения и углубления материала о программном принципе работы ЭВМ. Тем не менее, учитывая его важность, можно рекомендовать это сделать в рамках изучения темы “Аппаратное и программное обеспечение компьютера” (см. “Аппаратное и программное обеспечение”). Поскольку речь в ней обязательно пойдет о соотношении компонентов hard и soft, повторение принципов аппаратной основы выполнения программы видится вполне уместным. Более того, на новом уровне можно провести дискуссию о том, как в рамках основного алгоритма можно реализовать не только линейные задачи, но также разветвляющиеся или циклические. При наличии достаточного времени можно обсудить систему команд компьютера (см. “Машинная команда”).
Интересным мировоззренческим вопросом является исполнение команды “Останов”. Стоит объяснить ученикам, что в самых первых ЭВМ такая команда действительно завершала вычисления, после чего машина прекращала работу и ждала действий человека-оператора. Но позднее, когда задачи в машинах стали выполняться под руководством управляющих программ, окончание очередной задачи приводило к передаче управления программам-администраторам более высокого уровня; первоначально их называли мониторами, или супервизорами, сейчас этим занимается хорошо известная любому грамотному пользователю операционная система (см. “Операционная система”).
10 Изучение основ информатики и вычислительной техники: Методическое пособие для учителей и преподавателей средних учебных заведений. В 2 ч. Ч. 2 / А.П. Ершов, В.М. Монахов, М.В. Витиньш и др. М.: Просвещение, 1986, 207 с. (см. § 2 “Основной алгоритм работы процессора”).
Читайте также: