Как связаны понятия компьютер и алгоритм
Выполнение алгоритма может быть автоматически реализовано техническими устройствами, среди которых особое место занимает компьютер. При этом говорят, что компьютер исполняет программу (последовательность команд), реализующую алгоритм.
Алгоритм, записанный на «понятном» компьютеру языке программирования, называется программой.
Машинный язык. На заре компьютерной эры, в 40—50-е гг. XX в., программы писались на машинном языке и представляли собой очень длинные последовательности нулей и единиц. Составление и отладка таких программ было чрезвычайно трудоемким делом. Программы на машинных языках были машинно-зависимыми, т.е. для каждой ЭВМ необходимо было создавать свою собственную программу, так как в них в явной форме учитывались аппаратные ресурсы ЭВМ.
Ассемблер. В начале 50-х гг. был создан язык программирования Ассемблер. Вместо одних только нулей и единиц программисты теперь могли пользоваться операторами (MOV, ADD, SUB и т.д.), которые были похожи на слова английского языка. Для преобразования текста программы на ассемблере в понятный компьютеру машинный код использовался компилятор, который загружался в оперативную память ЭВМ. Программы на ассемблере были также машинно-зависимыми, т.е. ассемблеры для различных процессоров существенно различались между собой.
Машинно-независимые языки. С середины 50-х гг. XX в. начали создаваться первые языки программирования высокого уровня. Эти языки были машинно-независимыми языками программирования, так как использовали универсальную компьютерную логику и не были привязаны к типу ЭВМ. Однако для каждого языка и каждого типа ЭВМ должны были быть разработаны собственные компиляторы, которые загружались в оперативную память. Одним из первых языков программирования высокого уровня был создан в 1964 г. — известный всем Бейсик (Basic).
Алгоритмические языки. С середины 70-х гг. XX в. начали создаваться алгоритмические языки программирования, которые позволили программистам перейти к структурному программированию. Отличительной чертой этих языков было использование операторов ветвления, выбора и цикла и отказ от хаотического использования оператора goto. Алгоритмический язык позволяет легко кодировать основные алгоритмические структуры. Наибольшее влияние на переход к структурному алгоритмическому программированию оказал язык Pascal (назван его создателем Виртом в честь великого физика Паскаля). Компания Microsoft создала алгоритмический язык QBasic, а алгоритмический язык Open Office Basic встроен в мультиплатформенную (операционные системы Windows и Linux) интегрированную офисную систему OpenOffice.
Объектно-ориентированные языки. В 90-х годах XX в. начали создаваться объектно-ориентированные языки программирования. В этих языках в основу были положены программные объекты, которые объединяли данные и методы их обработки. Необходимо подчеркнуть, что в языках объектно-ориентированного программирования сохранялся алгоритмический стиль программирования. С течением времени для этих языков были разработаны интегрированные среды разработки, позволяющие визуально конструировать графический интерфейс приложений:
- ? язык Object Pascal был разработан компанией Borland на основе алгоритмического языка Pascal. После создания графического интерфейса система объектно-ориентированного программирования получила название Delphi;
- ? язык Visual Basic был создан корпорацией Microsoft на основе языка QBasic для разработки приложений с графическим интерфейсом в среде операционной системы Windows;
- ? язык Gambas был создан по аналогии с языком Visual Basic для разработки приложений с графическим интерфейсом в среде свободно распространяемой операционной системы Linux.
Java. В 90-е годы XX в. в связи с бурным развитием Интернета был создан язык Java, обеспечивающий межплатформенную совместимость. На подключенных к Интернету компьютерах с различными операционными системами (Windows, Linux, Mac OS и др.) могли выполняться одни и те же программы. Исходная программа на таких языках компилируется в промежуточный код, который исполняется на компьютере встроенной в браузер виртуальной машиной:
История развития языков программирования
Рис. 11.1. История развития языков программирования
Программы-трансляторы. Для того чтобы программа, записанная на языке программирования, могла быть выполнена компьютером, она должна быть переведена на машинный язык. Эту функцию выполняют программы-трансляторы, загруженные в оперативную память компьютера.
Программы-трансляторы языков программирования бывают двух типов: интерпретаторы и компиляторы. Интерпретатор — это программа, которая обеспечивает последовательный «перевод» текста программы на машинный язык с одновременным их выполнением. Поэтому при каждом запуске программы на выполнение эта процедура повторяется. Достоинством интерпретаторов является удобство отладки программы (поиска в ней ошибок), так как возможно «пошаговое» ее исполнение, а недостатком — сравнительно малая скорость выполнения.
Компилятор действует иначе: он переводит весь текст программы на машинный язык и сохраняет его в исполняемом файле (обычно с расширением ехе). Затем этот уже готовый к исполнению файл, записанный на машинном языке, можно запускать на выполнение. Достоинством компиляторов является большая скорость выполнения программы, а недостатком — трудоемкость отладки, так как невозможно пошаговое выполнение программы.
Системы объектно-ориентированного программирования Visual Basic и Gambas позволяют работать как в режиме интерпретатора, так и компилятора. Е1а этапе разработки и отладки программы используется режим интерпретатора, а для получения готовой исполняемой программы — режим компилятора.
Система алгоритмического программирования OpenOffice Basic позволяет работать только в режиме интерпретатора.
4. Из базового курса вам известно: «обработка информации, наряду с хранением и передачей, относится к основным видам информационных процессов». Обработка информации производится каким-то субъектом или объектом (например, человеком или компьютером). Будем его называть исполнителем обработки информации. Информация, которая подвергается обработке, представляется в виде исходных данных. На слайде в обобщённом виде представлен процесс обработки информации. Зарисуйте эту схему в тетрадь.
Можно привести множество примеров иллюстрирующих данную схему. Первый пример: Ученик (исполнитель), решая задачу по математике, производит обработку информации. Исходные данные содержатся в условии задачи. Математические правила, описанные в учебнике, определяют последовательность вычислений. Результат – это полученный ответ.
Попробуйте сами привести такие примеры.
5. Все эти виды обработки может выполнять как человек, так и компьютер. В чём состоит принципиальное различие между процессами обработки, выполненными человеком и машиной?
6. Приведите примеры процессов обработки информации, которые вам чаще всего приходится выполнять во время учёбы. Для каждого примера приведите исходные данные, результат и правила обработки.
7.Какие проблемы решает теория алгоритмов?
Конспект по информатике .
Тема урока: «Обработка информации и алгоритмы»
- Обеспечить знание об основных видах обработки информации, понятия об алгоритмических машинах.
- Способствовать развитию познавательной деятельности обучающихся, умению анализировать полученную информацию.
- Воспитывать у учащихся аккуратность в работе, познавательный интерес к уроку информатики, инициативность.
- Знать виды обработки информации, иметь представление о понятии алгоритмических машинах.
- Создать условия для развития опосредствованного внимания, активного воображения, развития теоретически образного мышления, зрительно-слуховой памяти
- Создание условий психологической комфортности на уроке.
- Создание условий для воспитания уважения к чужому мнению, умение выслушать других
Тип урока: объяснение нового материала.
Оборудование: компьютерный класс с ОС Windows 7 версия профессиональная, мультимедийный проектор, экран, электронный процессор MS Excel, презентация на тему : «Решение задач на машине Поста».
Методы обучения: индуктивно - репродуктивный.
Учебно – методическое пособие:
2. Семакин И.Г. Информатика и ИКТ: практикум для 10-11 классов / И.Г. Семакин, Е.К. Хеннер, Т.Ю. Шеина. – 7-е изд.– М.: БИНОМ. Лаборатория знаний, 2012. – 120 с.: ил.
1. Организационный момент (2 мин.)
2. Актуализация знаний (18 мин.)
3. Изучение нового материала (12 мин.)
4. Закрепление изученного материала (10 мин.)
4. Подведение итогов урока (2 мин.)
5. Домашнее задание (1 мин.)
Учитель: Здравствуйте, ребята! На прошлых уроках мы с вами узнали , что такое информация и какие существуют виды хранение и передачи информации.
Учитель: Как связаны понятия «компьютер» и «алгоритм»?
Ученик: Используя различные алгоритмы, компьютер обрабатывает информацию.
Учитель: А что такое информация?
Ученик: Информация – это сведения, воспринимаемые человеком или специальными устройствами как отражение фактов материального мира в процессе коммуникации.
Учитель: Какие виды информации вы знаете?
Ученик: Текстовая, числовая, графическая, звуковая, и смешанная.
Учитель: Тема нашего урока «Обработка информации и алгоритмы». Сегодня мы рассмотрим основные виды обработки информации, а так же понятие «алгоритмическая машина». Открываем тетради и записываем число, классная работа тему урока.
Запись в тетради.
Тему урока «Обработка информации и алгоритмы».
Учитель: Из базового курса вам известно: «обработка информации, наряду с хранением и передачей, относится к основным видам информационных процессов». Обработка информации производится каким-то субъектом или объектом (например, человеком или компьютером). Будем его называть исполнителем обработки информации. Информация, которая подвергается обработке, представляется в виде исходных данных. На слайде в обобщённом виде представлен процесс обработки информации. Зарисуйте эту схему в тетрадь.
Можно привести множество примеров иллюстрирующих данную схему. Первый пример: Ученик (исполнитель), решая задачу по математике, производит обработку информации. Исходные данные содержатся в условии задачи. Математические правила, описанные в учебнике, определяют последовательность вычислений. Результат – это полученный ответ.
Попробуйте сами привести такие примеры.
Ученик: Перевод текста с одного языка на другой – это пример обработки информации, при которой не изменяется содержание, но изменяется форма представления – другой язык.
Учитель: Все эти виды обработки может выполнять как человек, так и компьютер. В чём состоит принципиальное различие между процессами обработки, выполненными человеком и машиной?
Ученик: Если исполнителем является человек, то правила обработки, по которым он действует, не всегда однозначны. Человек часто действует творчески, неформально. А компьютер всегда строго обрабатывает по одному плану.
Учитель: Для обозначения формализованных правил, определяющих последовательность шагов обработки информации, в информатике используется понятие алгоритма. Из базового курса информатики вы знаете, что слово «алгоритм» произошло от имени выдающегося математика средневекового Востока Мухаммеда аль-Хорезми, описавшего еще в IX веке правила выполнения вычислений с многозначными десятичными числами. Правила сложения, вычитания, умножения столбиком, деления «уголком», которым вас учили в младших классах, — это алгоритмы аль-Хорезми.
С понятием алгоритма в математике ассоциируется известный способ вычисления наибольшего общего делителя (НОД) двух натуральных чисел, который называют алгоритмом Евклида. Первоклассник, который не знает что такое НОД, но умеет сравнивать целые числа и выполнять вычитание, сможет исполнить алгоритм. Действовать при этом он будет формально.
Такой формальный алгоритм легко запрограммировать для современного компьютера. Мечта создать машину – автоматическое устройство, которое сможет без вмешательства человека производить расчёты, появилась очень давно. Для её реализации требовались не только технические возможности, но и глубокое понимание сущности алгоритмов обработки информации и разработка формального способа представления таких алгоритмов.
Алгоритм управления работой алгоритмической машины представляет собой конечную последовательность команд, посредством выполнения которой машина решает задачу обработки информации. Алгоритм управления такой машиной должен обладать некоторыми свойствами. Это запишите в тетрадь.
Запись в тетради: Алгоритм управления работой алгоритмической машины представляет собой конечную последовательность команд, посредством выполнения которой машина решает задачу обработки информации.
Учитель: Приведите примеры процессов обработки информации, которые вам чаще всего приходится выполнять во время учёбы. Для каждого примера приведите исходные данные, результат и правила обработки.
Ученик: Решение математических или физических задач. Когда мы обрабатываем условие задачи и выводим конечный ответ. Где условие – это исходные данные, правила обработки – это правило решения, а конечный ответ – результат.
Учитель: Какие проблемы решает теория алгоритмов?
Ученик: Проблемы в современных языках программирования, так как при создании программ используются алгоритмы.
Учитель: Сегодня на уроке мы узнали что такое теория алгоритмов и что такое обработка информации. В дальнейшем мы будем использовать эту информацию при изучении информационной модели. А сейчас открываем учебнике на странице 41 и выполняем первое задание, у кого будут вопросы, поднимайте руку.
6. Домашнее задание
Учитель: Открывает дневники и записываем домашнее задание: §9, вопросы в конце параграфа и задания посменно в тетрадь.
Запись в дневнике: §9, вопросы в конце параграфа и задания посменно в тетрадь.
Процесс решения задач на компьютере – это совместная деятельность человека и ЭВМ. На долю человека приходятся этапы, связанные с творческой деятельностью – постановкой, алгоритмизацией, программированием задач и анализом результатов, а на долю персонального компьютера – обработка информации с разработанным алгоритмом.
Первый этап – постановка задачи.На этом этапе участвует человек, хорошо представляющий предметную область задачи. Он должен чётко определить цель задачи, дать словесное описание содержания задачи и предложить общий подход к её решению.
Второй этап – выбор метода решения (математическое или информационное моделирование). Цель данного этапа – создать такую математическую модель решаемой задачи, которая могла быть реализована в компьютере. Существует целый ряд задач, где математическая постановка сводится к простому перечислению формул и логических условий.
Этот этап тесно связан с первым этапом, и его можно отдельно не рассматривать. Однако возможно, что для полученной модели известны несколько методов решения и необходимо выбрать лучший.
Третий этап – алгоритмизация задачи.На основе математического описания необходимо разработать алгоритм решения.
Алгоритм –система точных и понятных предписаний о содержании и последовательности выполнения конечного числа действий, необходимых для решения любой задачи данного типа (класса).
Задача составления алгоритма не имеет смысла, если не известны или не учитываются возможности его исполнителя (ребёнок может прочесть, но не может решить сложную задачу).
Исполнителем может быть не только человек, но и автомат. Компьютер – лишь частный, но наиболее впечатляющий пример исполнителя, чьё поведение основано на реализации алгоритма. Более того, создание персонального компьютера оказало воздействие на развитие теории алгоритмов, одной из областей дискретной математики.
Эффективный метод построения алгоритма –метод пошаговой детализации(последовательного построения). При этом сложная задача разбивается на ряд более простых. Для каждой подзадачи – свой алгоритм. Универсальный эффективный метод построения алгоритма является основой структурного программирования (языки QBasic, Turbo Pascal и др.).
Если алгоритм разработан, то его можно вручить разным людям (пусть и не знакомым с сутью решаемой задачи), и они, следуя системе правил, будут действовать одинаково и получат (при безошибочных действиях) одинаковый результат.
Используются различные способы записи алгоритмов:
– словесный (запись рецептов в кулинарной книге, инструкции по использованию технических устройств и т. п.);
– графический – пример на рисунке;
– структурно-стилизованный (для записи используется язык псевдокода).
Свойства алгоритма.При составлении и записи алгоритма необходимо обеспечить, чтобы он обладал рядом свойств.
Однозначностьалгоритма – единственность толкования исполнителем правил выполнения действий и порядка их выполнения. Чтобы алгоритм обладал этим свойством, он должен быть записан командами из системы команд исполнителя (сложитьАиВ).
Конечностьалгоритма – обязательность завершения каждого из действий, составляющих алгоритм, и завершимость алгоритма в целом. Представленный на рисунке алгоритм обладает этим свойством.
Результативностьалгоритма – предполагает, что выполнение алгоритма должно завершиться получением определённых результатов. У нас для целыхАиВвсегда будет вычислена сумма.
Массовость– возможность применения данного алгоритма для решения целого класса задач, отвечающих общей постановке задачи. В нашем примере алгоритмом используется обозначение, а не конкретные числа, поэтому он может быть использован для сложения любых целых чисел.
Правильностьалгоритма – способность алгоритма давать правильные результаты решения поставленных задач.
Четвёртый этап – программирование.Программой называется план действий, подлежащих выполнению некоторым исполнителем, в качестве которого может выступать компьютер. Программа позволяет реализовать разработанный алгоритм. Именно этому этапу посвящена большая часть данного учебного пособия.
Пятый этап – ввод программы и исходных данных в ЭВМс клавиатуры с помощью редактора текстов и их запись на гибкий или жёсткий диск для постоянного хранения.
Шестой этап – тестирование и отладка программы. Исполнение алгоритма с помощью ЭВМ, поиск и исключение ошибок. При этом программисту приходится выполнять рутинную работу по проверке работы программы, поиску и исключению ошибок, и поэтому для сложных программ этот этап часто требует гораздо больше времени и сил, чем написание первоначального текста программы.
Отладка программы – сложный и нестандартный процесс, который заключается в том, чтобы протестировать программу на контрольных примерах.
Контрольные примеры стремятся выбрать так, чтобы при работе с ними программа прошла все основные пути блок-схем алгоритма, поскольку на каждом из путей могут быть свои ошибки, а детализация плана зависит от того, как поведёт себя программа на этих примерах. На одном она может «зациклиться», на другом дать бессмысленный результат. Сложные программы отлаживают отдельными фрагментами.
Для повышения качества выполнения этого этапа используются специальные программы – отладчики, которые позволяют исполнить программу «по шагам» с наблюдением за изменением значений переменных, выражений и других объектов программы, с отслеживанием выполнения операторов.
Седьмой этап – исполнение отлаженной программы и анализ результатов.На этом этапе программист запускает программу и задаёт исходные данные, требуемые по условию задачи.
Полученные результаты анализируются постановщиком задачи, и на основании этого анализа вырабатываются соответствующие решения, рекомендации, выводы. Например, если при решении задачи на ПК результат 2+3=4, то следует изменить алгоритм и программу.
Чтобы персональный компьютер (ПК) выполнил решение какой-либо задачи, ему необходимо получить от человека инструкции, как её решать. Набор таких инструкций для компьютера, направленный на решение конкретной задачи, называется компьютерной программой.
Современные компьютеры не настолько совершенны, чтобы понимать программы, написанные на каком-либо употребляемом человеком языке.
Команды, записанные для ЭВМ, необходимо представлять в понятной компьютеру форме. С этой целью применяютязыки программирования– искусственные языки, алфавит, словарный запас и структура которых удобны и понятны компьютеру.
В самом общем смыслеязыком программированияназывается фиксированная система обозначений и правил для описания алгоритмов и структур данных.
Язык программирования Турбо- Паскаль. Структура языка Turbo-Pascal, основные понятия. Запись и порядок выполнения операций в арифметическом выражении. Стандартные математические функции и процедуры Turbo-Pascal
Система программирования Turbo Pascal предназначена для выполнения этапов решения задачи на алгоритмическом языке Паскаль и включает в себя три главные компоненты: редактор текстов, компилятор, исполнительную систему.
С помощью встроенного в систему текстового редактора можно формировать в памяти любые тексты, не только программы на Паскале. В частности, это могут быть исходные данные решаемой задачи в текстовой форме. Текст программы, созданный редактором, можно сохранить на диске в виде файла с именем следующего формата <имя файла>.раs, где pas — это стандартное расширение имени файла, созданного системным редактором. Имя файла задается пользователем.
Выполнение программы остается под контролем исполнительной системы. Она, в частности, помогает обнаружить ошибку в программе, если при исполнении произошел сбой. Пользователю сообщается причина сбоя и указывается место, где он случился в Паскаль-программе, происходит автоматический возврат в режим редактирования.
Turbo Pascal позволяет редактировать, компилировать, компоновать и выполнять Паскаль-программы. При этом пользователю предоставляется высокая скорость компиляции, удобство работы с компьютером и мощная библиотека процедур и функций.
Программа на Паскале в общем случае состоит из нескольких файлов. Один из них содержит главную программу, а остальные – модули. Главная программа состоит из заголовка, блока и заканчивается точкой — признаком конца программы. В свою очередь, блок содержит разделы описаний и раздел операторов. В общем случае «скелет» программы можно представить следующим образом:
Program<имя программы> (заголовок программы);
Uses(раздел объявления модулей);
Label(раздел объявления меток);
Const(раздел объявления констант);
Type(раздел объявления типов);
Var(раздел объявления переменных);
Procedure(function)(раздел объявления подпрограмм: процедурили функций);
Begin
<операторы > (раздел операторов, обязательная часть);
end.
Все указанные разделы отделяются друг от друга точкой с запятой.
Раздел операторов должен обязательно присутствовать в любой программе и является основным. Предшествующие разделы носят характер описаний и не обязательно содержаться в программе.
Заголовок программы состоит из зарезервированного словаprogramи имени программы (со списком параметров, заключенных в круглые скобки). Завершается заголовок точкой с запятой.
В Turbo Pascal имеются особенности в структуре программы. Так, заголовок программы необязателен и игнорируется компилятором. Порядок размещения разделов произвольный, можно создавать несколько одинаковых разделов. Единственное правило, которое необходимо выдерживать, - в любом месте программы можно использовать лишь элементы (метки, типы, константы, переменные, подпрограммы и т. д.), которые были определены ранее по тексту программы или являются предопределенными элементами языка. Исключением из этого правила может быть лишь определение типа-указателя через неопределенный до этого тип. Однако этот тип в дальнейшем должен быть обязательно определен.
Операторы в разделе операторов отделяются друг от друга точкой с запятой. Передendточка с запятой не ставится, однако ее наличие не является ошибкой, а лишь означает присутствие между последним исполняемым оператором и служебным словомendеще одного оператора - пустого оператора. Заканчивается программа словомend, после которого ставится точка.
В начале программы необходимо располагать ее спецификацию – комментарий в фигурных скобках, содержащий назначение программы, данные о программисте, дату создания программы.
Язык программирования Паскаль является языком структурного программирования. В нем есть все необходимые управляющие конструкции для структурного построения программы. Наглядность такому построению придает структуризация внешнего вида текста программы. Основной используемый для этого прием — сдвиги строк, которые должны подчиняться следующим правилам:
- конструкции одного уровня вложенности записываются на одном вертикальном уровне (начинаются с одной позиции в строке);
- вложенная конструкция записывается смещенной по строке на несколько позиций вправо относительно внешней для нее конструкции.
Знаки операций предназначены для обозначения тех или иных арифметических, логических или других действий. Они бывают двух типов: состоящие из небуквенных символов (например, +, -, * и т.д.) и буквенные операции (например, not, mod, div и т. д.), представляющие собой зарезервированные слова. Операции над данными делятся на унарные (применимые к одному операнду) и бинарные (применимые к двум операндам). Приведем примеры бинарных арифметических операций (в таблице буква I обозначает целые типы, R — вещественные типы):
Знак | Выражение | Типы операндов | Тип результата | Операция |
+ | А+В | R,R I,I I,R; R,I | R I R | Сложение |
- | А-В | R,R I,I I,R; R,I | R I R | Вычитание |
* | А*В | R,R I,I I,R; R,I | R I R | Умножение |
/ | А/В | R,R I,I I,R; R,I | R R R | Вещественное деление |
Div | A div B | I, I | I | Целое деление |
Mod | A mod B | I, I | I | Остаток от деления |
Арифметическое выражение задает порядок выполнения действий над числовыми величинами. Арифметические выражения содержат арифметические операции, функции, операнды, круглые скобки. Одна константа или одна переменная — простейшая форма арифметического выражения.
Порядок выполнения операций в арифметическом выражении подчиняется трем правилам:
1. Правилу скобок. Оно гласит, что первыми выполняются операции в скобках. Если имеется несколько пар вложенных скобок, вычисления начинаются с самых внутренних скобок.
2. Правилу учета приоритета операций: вначале вычисляются значения функций, затем выполняются операции умножения и деления и в последнюю очередь - операции сложения и вычитания.
3. Правилу следования: операции одинакового старшинства (приоритета) выполняются слева направо в порядке их следования.
В качестве операндов в выражении, кроме констант и переменных, можно использовать стандартные функции. Аргументы функций обязательно заключаются в круглые скобки. Приоритет выполнения функции выше, чем приоритет выполнения арифметических операций. Рассмотрим стандартные функции Турбо Паскаля (в таблице буква I обозначает целые типы, R — вещественные типы):
Турбо Паскале не содержит некоторые часто используемые математические функции, поэтому при их вычислении используют эквивалентные математические формулы:
Функция | Эквивалентная математическая формула | Запись в программе |
ax | | exp(x*ln(a)) |
tg(x) | | sin(x)/cos(x) |
arcsin(x) | | arctan(x/sqrt(1-x*x)) |
arccos(x) | | arctan(sqrt(1-x*x)/x) |
logax | | ln(x)/ln(a) |
При возведении в небольшую целую степень вместо операции возведения в степень рекомендуется использовать операцию умножения, поскольку возведение в степень выполняется на несколько порядков дольше умножения и не позволяет обрабатывать отрицательные аргументы.
Структура процедуры имеет следующий вид:
Procedure <имя процедуры>(формальные параметры : их тип);
Процедура - стандартный алгоритм обработки информации, состоящий из имени (идентификатора), описания (перечня имен переменных и др.) и операторов, реализующих процедуру. Помимо стандартных процедур, могут быть использованы процедуры, подготовленные составителем программы. В исполняемой части программы указывается только имя процедуры. Процедура исполняется, если все упомянутые в ней пара метры приобретают соответствующие значения.
Процедура вызывается по имени:
<имя процедуры> (фактические параметры);
Значение каждого фактического параметра при вызове процедуры передаётся формальному параметру. Временно управление передаётся процедуре. После завершения работы процедуры управление возвращается в основную программу.
Каждый формальный параметр указывается вместе со своим типом. Соответствующий ему фактический параметр указывается без типа. Между формальными и фактическими параметрами должно быть соответствие по количеству параметров, по их типу и порядку следования.
Заголовок процедуры может выглядеть так:
PROCEDURE GG(a,b,c:integer); вызыватьсятак: GG(3,n,m)
Здесь a,b,c-формальные параметры, а 3, n, m-фактические параметры
Таким образом в процедуру передаются значения: a=3, b=n, c=m
Переменные описанные в процедуре после слова Var, являются внутренними переменными процедуры или промежуточными, они не являются данными для операций внутри процедуры и не являются результатом её выполнения, а нужны лишь для промежуточных действий. Данные и результаты описываются в круглых скобках после имени процедуры. Перед описанием переменных-результатов пишут служебное слово var.
Алгоритмы появились вместе с математикой, а первые упоминания о них встречаются в книге математика Мухаммеда бен Мусы аль-Хорезми из города Хорезма. Он описал методы выполнения различных действий с многозначными числами еще в 825 году. Само слово «алгоритм» появилось после того, как книгу ученого перевели на латинский язык в Египте.
Современное определение алгоритма в информатике — это описание действий, последовательное выполнение которых позволяет решить поставленную задачу за конкретное количество шагов.
С этим человек сталкивается каждый день, когда читает рецепты в кулинарных книгах, инструкции к различной технике, правила решения заданий. Но обычно все эти действия выполняются автоматически, без их анализа. Родители сталкиваются с этим понятием, когда объясняют детям, как открыть двери ключом или почистить зубы. Алгоритмов в окружающем мире множество, но есть общие признаки для всех их видов.
Свойства и виды
Для изучения понятия нужно разобраться в свойствах алгоритма в информатике. Их существует несколько:
- дискретность;
- детерминированность или определенность;
- понятность;
- завершаемость или конечность;
- массовость или универсальность;
- результативность.
Согласно свойству дискретности, алгоритмы должны описывать весь процесс решения задания в виде выполнения простых шагов. При этом на пункты отводится определенное количество времени. Каждый шаг должен определяться состоянием системы, то есть при одних и тех же исходных данных результат не меняется. Но есть и вероятностные алгоритмы, где пункты зависят от системы и случайно генерируемых чисел. В этой ситуации понятие становится подвидом обычного.
Понятность заключается в том, что команды алгоритма должны быть доступны конкретному исполнителю и входить в его личную систему. В ходе работы математическая функция при правильно заданных исходных данных выдает результат за определенное количество шагов. Иногда процедура может не завершиться, но вероятность таких случаев стремится к нулю.
Универсальность или массовость позволяет использовать алгоритм с разными наборами начальных данных. Последнее свойство обеспечивает его завершение в виде определенного числа — результата.
У каждого алгоритма есть свои начальные условия, цели и пути решения задачи. Существует большая разница между вычислительными и интерактивными видами. Происхождение первых связано с опытами ученого Тьюринга, они могут преобразовать входные данные в выходные. Вторые предназначены для связи с объектом управления, они работают только под внешним воздействием. Ученые выделяют несколько видов алгоритмов в информатике:
- детерминированные или жесткие;
- гибкие;
- линейные;
- разветвляющиеся;
- циклические;
- вспомогательные;
- структурные блок-схемы.
Жесткие еще называются механическими, так как чаще всего они используются для работы двигателя или машины. Они задают действия в единственно верной последовательности, что приводит к искомому или требуемому результату при условии выполнения процессов, для которых они и разработаны.
Гибкие алгоритмы делятся на эвристические и вероятностные. Первые используются при различных умственных выводах без строгих аргументов, а вторые дают возможность получить один результат несколькими способами.
Линейный тип — это набор команд, которые выполняются в строгой последовательности. Разветвляющийся включает хотя бы одно условие и при проверке дает разделение на несколько блоков. Появляются альтернативные ветвления программы.
В циклических видах несколько раз повторяются одни и те же действия, при этом меняются исходные данные. Сюда относятся переборы вариантов и бо́льшая часть способов расчета. Циклом в этом случае называют последовательность команд, которые нужно выполнить множество раз для достижения требуемого результата.
Подчиненный или вспомогательный вид является ранее разработанным алгоритмом для быстрого решения задачи. Он необходим для сокращения записи, если в структуре есть одинаковые команды. Схемами называются графические изображения с помощью блоков и соединяющих их прямых линий. Их используют перед программированием в качестве наглядных примеров, поскольку зрительное восприятие позволяет быстрее осмыслить процесс обработки информации и выявить возможные ошибки. В блоках отображаются исходные данные, которые вносятся в компьютер для вычислений.
Способы записи
Алгоритмы записываются несколькими методами. В информатике используется всего три:
- словесно-формульный;
- графический;
- программный.
В первом случае алгоритм записывается простым языком — словами и математическими формулами, что необходимо для понимания его теории. Здесь учитываются исходные данные, действия с ними и условия получения результата. Второй тип записи — компьютерное описание. Для этого применяются языки программирования и сами программы — форсы представления расчетов для их выполнения машиной.
Графическое описание состоит из связанных между собой географических фигур. Основные элементы блок-схем:
- прямоугольники;
- эллипсы;
- ромбы;
- шестиугольники;
- стрелки;
- пунктирные линии;
- соединительные фигуры.
В прямоугольниках записывают процессы, они указывают на выполнение операций, которые изменяют форму или значение данных. Ромбы содержат способы решения, здесь выбирается следующее направление в зависимости от поставленных условий. Модификации могут передаваться в шестиугольниках, где записываются операции, меняющие команды.
В блок-схемах можно выделить ручной ввод и предопределенные процессы. Первая фигура позволяет исполнителю ввести данные во время работы алгоритма через устройства, подключенные к компьютеру. Второе понятие заключается в использовании заранее записанных алгоритмов.
Графическое изображение содержит блоки документов и дисплеев. Оператор может вводить данные с бумаги и выводить их на нее, а также с помощью устройств, которые воспроизводят информацию на экране (проекторы для интерактивных досок, подключенные к компьютерам планшеты и ноутбуки).
Линии и соединительные фигуры указывают на связи между разными блоками и их последовательность. В схеме есть блоки начала и конца алгоритма, его прерывания, которое может произойти из-за сбоев в программе. Можно также указывать комментарии и пояснения исполнителя, для этого есть отдельные фигуры.
Правила создания
Существует несколько правил создания алгоритмов. Если их соблюдать, то в ходе работы всегда будет верный результат. Форма должна быть настолько простой, чтобы ее понял тот, кто занимается ее разработкой. Также не должно возникнуть проблем с чтением у того, кто будет выполнять описанные действия.
Объект, который проводит расчеты в алгоритме, называется исполнителем. Идеальными считаются роботы, компьютеры и другие машины. Они работают с программами, то есть схемами, написанными определенным языком программирования.
Разобраться с действиями помогут простые примеры алгоритмов по информатике. Когда есть ряд чисел от 1 до 100 и необходимо найти из них простые, то выбираются те, что делятся на единицу и себя. В этом случае используется циклическая структура:
- сначала нужно взять число 1;
- проверить, меньше ли оно, чем 100;
- если да, то узнать, простое ли оно;
- при выполнении условия записать;
- перейти к числу 2;
- повторить операцию.
Такие действия проводят со всеми числами. При этом первые четыре шага будут постоянно повторяться. Если попадается число, не являющееся простым (4, 6, 8 и т. д. ), то его нужно просто пропустить. Алгоритм в этом случае обладает предусловиями, то есть проверки происходят в начале цикла.
Анализ работы
Распространение информационных технологий привело к увеличению риска сбоев в работе программ. Предотвратить появление ошибок в алгоритмах можно с помощью доказательства их корректности математическими средствами. Такой анализ называется формальным методом, он предусматривает использование специального набора инструментов.
Гипотеза Ричарда Мейса утверждает, что избежать ошибок легче, чем их устранить. Благодаря доказательству корректности программ можно выявить их свойства, применяемые ко всем видам входных данных. Само понятие делится на две разновидности — частичную и полную. При первом типе корректности алгоритм дает правильный результат только для тех случаев, когда он завершается. Во втором случае программа завершает работу корректно для всего диапазона данных.
Исполнители во время проверки сравнивают выдаваемые данные со спецификой требуемого результата. Для доказательства корректности используются предусловия и постусловия. Первые должны выполняться перед включением программы, вторые — после завершения ее работы. Формальные методы успешно применяются для многих задач: верификации программ и микропроцессоров, разработки искусственного интеллекта, электронных схем и автоматических систем для железной дороги, спецификации стандартов.
Для выполнения алгоритма нужно только конкретное количество шагов, но на практике для этого потребуется много времени. В связи с этим введено понятие сложности. Она бывает временной, вычислительной и связанной с размерами алгоритма. Для увеличения эффективности используются быстрые программы, которые появились еще в 50-х годах прошлого века.
Читайте также: