Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билеты / Билет12вывести.doc
Скачиваний:
47
Добавлен:
09.06.2015
Размер:
372.22 Кб
Скачать

Выполнение алгоритмов человеком и компьютером

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

Предположим, что пользователю необходимо в текстовом редакторе провести редактирование текста. Создадим алгоритм редактирования, в котором объектом является текст, а исполнителем - человек.

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

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

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

1. Выделить символы с 1 по 15.

2. Вырезать этот фрагмент и поместить его в буфер обмена.

3. Установить курсор на позицию после 7-го символа.

4. Вставить вырезанный фрагмент текста.

Теперь пользователь может провести редактирование текста, формально выполнив алгоритм "Редактирование".

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

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

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

Итак, мы создали программу на языке программирования высокого уровня (некоторый текст) и загрузили ее в оперативную память компьютера. Теперь мы хотим, чтобы процессор ее выполнил, однако процессор "понимает" команды на машинном языке, а наша программа написана на языке программирования. Как быть?

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

Одним из первых языков программирования высокого уровня был создан в 1964 году известный всем Бейсик (Basic). Другим широко распространенным языком программирования является Паскаль (Pascal). В настоящее время наибольшей популярностью пользуются "потомки" этих языков - системы объектно-ориентированного визуального программирования Microsoft Visual Basic и Borland Delphi.

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

Школьная информатика в России начиналась с алгоритмизации и программирования, как с основной темы курса. Эта тема изучалась и в безмашинном варианте, и с компьютерной поддержкой на БК и Yamaha — компьютерах, первыми появившимися в школах. Основным программным обеспечением данных компьютеров был встроенный язык программирования Бейсик. С развитием школьной информатики как самостоятельного предмета круг тем, рассматриваемых этим предметом, существенно расширился и алгоритмизация стала лишь одной из них, а относительно программирования в Стандарт основной школы включена фраза “Представление о программировании”. Полностью тема программирования включена лишь в Стандарт профильной школы.

Тем не менее в Примерной программе программированию уделено заметное место. Там указаны следующие темы для рассмотрения: языки программирования, их классификация; правила представления данных; правила записи основных операторов: ввода, вывода, присваивания, ветвления, цикла; правила записи программы; этапы разработки программы: алгоритмизация — кодирование — отладка — тестирование. В программу включен также большой объем практических работ по программированию. Вопросы по программированию входят практически в каждый экзаменационный билет по информатике для 11-го класса. Более 30% баллов ЕГЭ по информатике приходятся на вопросы по данной теме, а с учетом логики, включенной в последнем варианте стандарта в этот же раздел, — более 40%. А различные этапы Всероссийской олимпиады по информатике — от первого школьного этапа до пятого заключительного — фактически представляют собой олимпиады по алгоритмизации и программированию.

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

1) четко понять задачу, провести ее детализацию и формализацию;

2) проанализировать, к какому классу задач она относится, какими способами (алгоритмами) ее можно решить;

3) составить алгоритм решения задачи;

4) составить программу, реализующую этот алгоритм;

5) проверить, правильно ли программа работает, ту ли задачу она решает;

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

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

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

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

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

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

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

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

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

Тема “Алгоритмизация и программирование” изучается на всех ступенях средней школы, но на разном уровне. В начальной школе происходит знакомство на интуитивном уровне с понятиями алгоритма, алгоритмических конструкций, основ алгебры логики. В качестве учебных задач рассматривают бытовые, игровые, сказочные алгоритмы.

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

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

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

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

Приведем современное описание алгоритма Евклида с использованием блок-схемы (см. “Способы записи алгоритмов”):

Стрелка “ ”, используемая при описании данного алгоритма, обозначает операцию замещения или присваивания (см. “Операторы языка программирования”). Разумеется, в книге Евклида “Начала” этот алгоритм сформулирован не совсем так (а записан совсем не так). В данном случае мы продемонстрировали современную формулировку этого алгоритма и одну из распространенных наглядных форм записи алгоритмов.

Любой алгоритм существует не сам по себе, а предназначен для определенного исполнителя (см. “Исполнители алгоритмов”). Алгоритм описывается в командах исполнителя, который этот алгоритм будет выполнять. Объекты, над которыми исполнитель может совершать действия, образуют так называемую среду исполнителя, а множество команд, которые исполнитель может выполнять, — систему команд исполнителя (СКИ).

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

Соседние файлы в папке Билеты