Автор работы: Пользователь скрыл имя, 20 Января 2015 в 08:17, курсовая работа
Цель: Свой курсовой проект я решил создать в среде языка программирования Turbo Pascal. В моем курсовом проекте я создал математические задачи, реализовав их формулы и функций в компьютерный язык программирования на Turbo Pascal. Проще говоря мы сами и выполняли этот алгоритм, то есть доводили решение до ответа. Теперь же мы будем только писать, что нужно сделать, но вычисления проводит, не будем. Вычислять будет компьютер. Наш алгоритм будет представлять собой набор указаний (команд ) компьютеру.
Итак, алгоритм – неопределяемое
понятие теории алгоритмов. Алгоритм
каждому определенному набору
входных данных ставит в
Любая работа на
компьютере – это есть
“Информация” слева и “информация” справа – это разные информации. Компьютер воспринимает информацию извне и в качестве результата своей работы выдает новую информацию. Информация, с которой работает компьютер, носит название “данные”.
Компьютер преобразует
информацию по определенным
Теперь можно поставить вопрос: а может ли человек обрабатывать информацию ?
Конечно, может. В качестве
примера можно привести
– ЭВМ, электронная вычислительная машина ) был создан как раз для выполнения математических расчетов.
1.3 Виды алгоритмов
Виды алгоритмов как
логико-математических средств
. Механические алгоритмы, или иначе детерминированные, жесткие (например, алгоритм работы машины, двигателя и т.п.);
. Гибкие алгоритмы, например стохастические, т.е. вероятностные и эвристические.
Механический алгоритм
задает определенные действия, обозначая
их в единственной и
Вероятностный (стохастический)
алгоритм дает программу
Эвристический алгоритм (от греческого слова “эврика”) – это такой алгоритм, в котором достижение конечного результата программы действий однозначно не предопределено, так же как не обозначена вся последовательность действий, не выявлены все действия исполнителя. К эвристическим алгоритмам относят, например, инструкции и предписания. В этих алгоритмах используются универсальные логические процедуры и способы принятия решений, основанные на аналогиях, ассоциациях и прошлом опыте решения схожих задач.
Линейный алгоритм – набор команд (указаний), выполняемых последовательно во времени друг за другом.
Разветвляющийся алгоритм – алгоритм, содержащий хотя бы одно условие, в результате проверки которого ЭВМ обеспечивает переход на один из двух возможных шагов.
Циклический алгоритм
– алгоритм, предусматривающий
Цикл программы – последовательность команд (серия, тело цикла), которая может выполняться многократно (для новых исходных данных) до удовлетворения некоторого условия.
Вспомогательный (подчиненный) алгоритм (процедура) – алгоритм, ранее разработанный и целиком используемый при алгоритмизации конкретной задачи.
В некоторых случаях
при наличии одинаковых
На всех этапах подготовки
к алгоритмизации задачи
Структурная (блок-, граф-) схема алгоритма – графическое изображение алгоритма в виде схемы связанных между собой с помощью стрелок (линий перехода) блоков – графических символов, каждый из которых соответствует одному шагу алгоритма. Внутри блока дается описание соответствующего действия.
Графическое изображение алгоритма широко используется перед программированием задачи вследствие его наглядности, т.к. зрительное восприятие обычно облегчает процесс написания программы, ее корректировки при возможных ошибках, осмысливание процесса обработки информации.
Можно встретить даже такое утверждение: “Внешне алгоритм представляет собой схему – набор прямоугольников и других символов, внутри которых записывается, что вычисляется, что вводится в машину и что выдается на печать и другие средства отображения информации “. Здесь форма представления алгоритма смешивается с самим алгоритмом.
Принцип программирования “сверху вниз” требует, чтобы блок-схема поэтапно конкретизировалась и каждый блок “расписывался” до элементарных операций.
Но такой подход можно осуществить при решении несложных задач. При решении сколько-нибудь серьезной задачи блок-схема “расползется” до такой степени, что ее невозможно будет охватить одним взглядом.
Блок-схемы алгоритмов
удобно использовать для
При решении задач на компьютере необходимо не столько умение составлять алгоритмы, сколько знание методов решения задач ( как и вообще в математике ) . Поэтому изучать нужно не программирование как таковое ( и не алгоритмизацию ), а методы решения математических задач на компьютере.
Задачи следует
В информатике процесс решения задачи распределяется между двумя субъектами : программистом и компьютером. Программист составляет алгоритм ( программу ), компьютер его исполняет. В традиционной математике такого разделения нет, задачу решает один человек, который составляет алгоритм решения задачи и сам выполняет его. Сущность алгоритмизации не в том, что решение задачи представляется в виде набора элементарных операций, а в том, что процесс решения задачи разбивается на два этапа : творческий ( программирование ) и не творческий ( выполнение программы ). И выполняют эти этапы разные субъекты – программист и исполнитель
В учебниках по информатике обычно пишут, что исполнителем алгоритма может быть и человек. На самом деле алгоритмы для людей никто не составляет ( не будем забывать, что не всякий набор дискретных операций является алгоритмом ). Человек в принципе не может действовать по алгоритму. Выполнение алгоритма – это автоматическое, бездумное выполнение операций. Человек всегда действует осмысленно. Для того, чтобы человек мог выполнять какой-то набор операций, ему нужно объяснить, как это делается. Любую работу человек сможет выполнять только тогда, когда он понимает, как она выполняется.
Вот в этом – “ объяснение и понимание” – и кроется различие между понятиями “алгоритм” и “способ”, “метод”, “правило”. Правила выполнения арифметических операций – это именно правила (или способы), а не алгоритмы. Конечно, эти правила можно изложить в виде алгоритмов, но толку от этого не будет. Для того, чтобы человек смог считать по правилам арифметики, его нужно научить. А если есть процесс обучения, значит, мы имеем дело не с алгоритмом, а с методом.
При составлении алгоритма программист никому ничего не объясняет, а исполнитель не пытается ничего понять. Алгоритм размещается в памяти компьютера, который извлекает команды по одной и исполняет их. Человек действует по другому. Чтобы решить задачу, человеку требуется держать в памяти метод решения задачи в целом, а воплощает этот метод каждый по- своему.
Очень ярко эта особенность
человеческой психологии –
В пособии излагаются
решения задач из известного
учебника. Решения задач должны
быть представлены в виде
БЛОК-СХЕМЫ
2.1 Понятие блок-схем
При блок-схемном описании алгоритм изображается геометрическими фигурами (блоками), связанными по управлению линиями (направлениями потока) со стрелками. В блоках записывается последовательность действий.
Данный способ по
сравнению с другими способами
записи алгоритма имеет ряд
преимуществ. Он наиболее нагляден:
каждая операция
Оформление программ
должно соответствовать
Операции обработки
данных и носители информации
изображаются на схеме
Линии, соединяющие блоки
и указывающие
Схему алгоритма следует
выполнять как единое целое, однако
в случае необходимости
Если при обрыве
линии продолжение схемы
Блок-схема должна содержать все разветвления, циклы и обращения к подпрограммам, содержащиеся в программе.
2.2 Элементы блок-схем
Однако блок-схемы, наверно, самый удобный и наглядный способов записи алгоритмов. Любая команда алгоритма записывается в блок-схеме в виде графического элемента - блока, и дополняется словесным описанием. Блоки в блок-схемах соединяются линиями потока информации. Направление потока информации указывается стрелкой. В случае потока информации сверху вниз и слева направо стрелку ставить не обязательно. Блоки в блок-схеме имеют только один вход и один выход (за исключением логического блока).
Элементы блок-схем:
Начало или конец алгоритма, вход или выход в подпрограмме. Элемент отображает вход из внешней среды или выход из неё (наиболее частое применение − начало и конец программы). Внутри фигуры записывается соответствующее действие. (рис 1)
Блок ввода-вывода данных, общее обозначения ввода (вывода) данных (вне зависимости от физического носителя). Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод). Данный символ не определяет носителя данных (для указания типа носителя данных используются специфические символы). (рис2)
Блок вычислений, вычислительные действия или последовательность действий. Выполнение одной или нескольких операций, обработка данных любого вида (изменение значения данных, формы представления, расположения). Внутри фигуры записывают непосредственно сами операции, например, операцию присваивания: a = 10*b + c. (рис 3)
Логический блок (блок условия), выбор направления выполнения алгоритма в зависимости от некоторого условия. Отображает решение или функцию переключательного типа с одним входом и двумя или более альтернативными выходами, из которых только один может быть выбран после вычисления условий, определенных внутри этого элемента. Вход в элемент обозначается линией, входящей обычно в верхнюю вершину элемента. Если выходов два или три, то обычно каждый выход обозначается линией, выходящей из оставшихся вершин (боковых и нижней). Если выходов больше трех, то их следует показывать одной линией, выходящей из вершины (чаще нижней) элемента, которая затем разветвляется. Соответствующие результаты вычислений могут записываться рядом с линиями, отображающими эти пути. Примеры решения: в общем случае − сравнение (три выхода: >, <, =); в программировании − условные операторы if (два выхода: true, false) и case (множество выходов) (рис 4)