Математические задачи, их формулы и функции в Turbo Pascal
Сущность понятия "алгоритм". Дискретность, детерминированность и сходимость (результативность). Механический, гибкий, стохастический и эвристический алгоритм. Блок-схемное описание алгоритма. Разработка приложений. Код программы на языке Паскаль.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 21.01.2015 |
Размер файла | 1,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
ВВЕДЕНИЕ
Процессор электронно-вычислительной машины, это чудо техники, умеет, тем не менее, выполнять лишь простейшие команды. Каким же образом компьютер решает сложнейшие задачи обработки информации? Для решения этих задач программист должен составить подробное описание последовательности действий, которые необходимо выполнить центральному процессору компьютера. Составление такого пошагового описания процесса решения задачи называется алгоритмизацией, а алгоритмом называется конечный набор правил, расположенных в определённом логическом порядке, позволяющий исполнителю решать любую конкретную задачу из некоторого класса однотипных задач. В разных ситуациях в роли исполнителя может выступать электронное или какое-либо иное устройство или человек (например, военнослужащий, охраняющий склад боеприпасов и действующий согласно алгоритмам, записанным в устав караульной службы).
Цель: Свой курсовой проект я решил создать в среде языка программирования Turbo Pascal. В моем курсовом проекте я создал математические задачи, реализовав их формулы и функций в компьютерный язык программирования на Turbo Pascal. Проще говоря мы сами и выполняли этот алгоритм, то есть доводили решение до ответа. Теперь же мы будем только писать, что нужно сделать, но вычисления проводит, не будем. Вычислять будет компьютер. Наш алгоритм будет представлять собой набор указаний (команд) компьютеру.
Задачи: Для реализации этой цели необходимо:
Перевести математические функции на понимающий для компьютера язык.
Использовать программу Turbo Pascal для решение математических задач.
Написать алгоритм действий который будет понятен программе.
Актуальность: Переход современного общества к информационной эпохе своего развития выдвигает в качестве одной из основных задач, стоящих перед системой учебного образования, задачу формирования основ информационной культуры будущего специалиста. Реализация этой задачи невозможна без включения информационной компоненты в систему математического образования.
В современных условиях требуется подготовить студента к быстрому восприятию и обработке поступающей информации, успешно ее отображать и использовать. Конечным результатом внедрения информационных технологий в процесс обучения математики, является овладение учащимися компьютером в качестве средства познания процессов и явлений, происходящих в природе и используемых в практической деятельности.
Объект: В последнее время в широких кругах пользователей вычислительных машин различного класса стал достаточно популярным и широко используемым термин «компьютерная математика». Данное понятие включает совокупность как теоретических и методических средств, так и современных программных и аппаратных средств, позволяющих производить все математические вычисления с высокой степенью точности и производительности, а также строить сложные цепочки вычислительных алгоритмов с широкими возможностями визуализации процессов и данных при их обработке.
Предмет: Turbo Pascal - это среда разработки для языка программирования Паскаль. Он отличается простотой понимания, стройностью и структурностью алгоритмов, быстротой компилятора и удобными средствами создания и отладки программ. В данной курсовой работе я реализовываю математических задачи в компьютерный язык Turbo Pascal.
В современном мире слово «алгоритм» является одним из самых ходовых, модных, выражающих дух времени. Этот термин и образованные от него «алгоритмизация», «алгоритмическое мышление» вызывают ассоциации, во-первых, с вычислительной техникой, во-вторых - с наукой, точностью, полной определенностью. Между тем, если попытаться разобраться в самом значении понятия алгоритм, окажется довольно много неясного, плохо определенного и интуитивного.
Понятие “алгоритм” давно является привычным не только для математиков. Оно является концептуальной основой разнообразных процессов обработки информации. Возможность автоматизации таких процессов обеспечивается наличием соответствующих алгоритмов. С алгоритмами первое знакомство происходит в начальной школе при изучении арифметических действий с натуральными числами. В упрощенном понимании “алгоритм” - это то, что можно запрограммировать на ЭВМ.
В настоящее время теория алгоритмов образует теоретический фундамент вычислительных наук. Применение теории алгоритмов осуществляется как в использовании самих результатов (особенно это касается использования разработанных алгоритмов), так и в обнаружении новых понятий и уточнении старых. С ее помощью проясняются такие понятия как доказуемость, эффективность, разрешимость, перечислимость и другие.
В технику термин “алгоритм” пришел вместе с кибернетикой. Понятие алгоритма помогло, например, точно определить, что значит эффективно задать последовательность управляющих сигналов. Применение ЭВМ послужило стимулом развитию теории алгоритмов и изучению алгоритмических моделей, к самостоятельному изучению алгоритмов с целью их сравнения по рабочим характеристикам (числу действий, расходу памяти), а также их оптимизации. Возникло важное направление в теории алгоритмов - сложность алгоритмов и вычислений. Начала складываться так называемая метрическая теория алгоритмов, основным содержанием которой является классификация задач по классам сложности. Сами алгоритмы стали объектом точного исследования как и те объекты, для работы с которыми они предназначены.
1. АЛГОРИТМЫ
1.1 Понятие алгоритма
Слово "Алгоритм" происходит от algorithmi - латинского написания имени аль - Хорезми, под которым в средневековой Европе знали величайшего математика из Хорезма (город в современном Узбекистане) Мухаммеда бен Мусу, жившего в 783- 850 гг.
В своей книге "Об индийском счете" он сформулировал правила записи натуральных чисел с помощью арабских цифр и правила действий над ними столбиком. В дальнейшем алгоритмом стали называть точное предписание, определяющее последовательность действий, обеспечивающую получение требуемого результата из исходных данных.
Алгоритм может быть предназначен для выполнения его человеком или автоматическим устройством. Создание алгоритма, пусть даже самого простого, - процесс творческий. Он доступен исключительно живым существам, а долгое время считалось, что только человеку. Другое дело - реализация уже имеющегося алгоритма. Ее можно поручить субъекту или объекту, который не обязан вникать в существо дела, а возможно, и не способен его понять. Такой субъект или объект принято называть формальным исполнителем. Примером формального исполнителя может служить стиральная машина-автомат, которая неукоснительно исполняет предписанные ей действия, даже если вы забыли положить в нее порошок.
Человек тоже может выступать в роли формального исполнителя, но в первую очередь формальными исполнителями являются различные автоматические устройства, и компьютер в том числе. Каждый алгоритм создается в расчете на вполне конкретного исполнителя. Те действия, которые может совершать исполнитель, называются его допустимыми действиями. Совокупность допустимых действий образует систему команд исполнителя. Алгоритм должен содержать только те действия, которые допустимы для данного исполнителя.
Объекты, над которыми исполнитель может совершать действия, образуют так называемую среду исполнителя. Для алгоритмов, встречающихся в математике, средой того или иного исполнителя могут быть числа разной природы - натуральные, действительные и т.п., буквы, буквенные выражения, уравнения, тождества и т.п.
Данное выше определение алгоритма нельзя считать строгим - не вполне ясно, что такое "точное предписание" или "последовательность действий, обеспечивающая получение требуемого результата". Поэтому обычно формулируют несколько общих свойств алгоритмов, позволяющих отличать алгоритмы от других инструкций.
Такими свойствами являются:
Дискретность (прерывность, раздельность) - алгоритм должен представлять процесс решения задачи как последовательное выполнение простых (или ранее определенных) шагов. Каждое действие, предусмотренное алгоритмом, исполняется только после того, как закончилось исполнение предыдущего.
Определенность - каждое правило алгоритма должно быть четким, однозначным и не оставлять места для произвола. Благодаря этому свойству выполнение алгоритма носит механический характер и не требует никаких дополнительных указаний или сведений о решаемой задаче.
Результативность (конечность) - алгоритм должен приводить к решению задачи за конечное число шагов.
Массовость - алгоритм решения задачи разрабатывается в общем виде, то есть, он должен быть применим для некоторого класса задач, различающихся только исходными данными. При этом исходные данные могут выбираться из некоторой области, которая называется областью применимости алгоритма.
1.2 Свойства алгоритмов
На основании этих свойств иногда дается определение алгоритма, например:
“Алгоритм - это последовательность математических, логических или вместе взятых операций, отличающихся детерминированностью, массовостью, направленностью и приводящая к решению всех задач данного класса за конечное число шагов”. Такая трактовка понятия “алгоритм” является неполной и неточной. Во-первых, неверно связывать алгоритм с решением какой-либо задачи. Алгоритм вообще может не решать никакой задачи. Во-вторых, понятие “массовость” относится не к алгоритмам как к таковым, а к математическим методам в целом. Решение поставленных практикой задач математическими методами основано на абстрагировании - мы выделяем ряд существенных признаков, характерных для некоторого круга явлений, и строим на основании этих признаков математическую модель, отбрасывая несущественные признаки каждого конкретного явления. В этом смысле любая математическая модель обладает свойством массовости. Если в рамках построенной модели мы решаем задачу и решение представляем в виде алгоритма, то решение будет “массовым” благодаря природе математических методов, а не благодаря “массовости” алгоритма.
Разъясняя понятие алгоритма, часто приводят примеры “бытовых алгоритмов”: вскипятить воду, открыть дверь ключом, перейти улицу и т. д..: рецепты приготовления какого-либо лекарства или кулинарные рецепты являются алгоритмами. Но для того, чтобы приготовить лекарство по рецепту, необходимо знать фармакологию, а для приготовления блюда по кулинарному рецепту нужно уметь варить. Между тем исполнение алгоритма - это бездумное, автоматическое выполнение предписаний, которое в принципе не требует никаких знаний. Если бы кулинарные рецепты представляли собой алгоритмы, то у нас просто не было бы такой специальности - повар.
Правила выполнения арифметических операций или геометрических построений представляют собой алгоритмы. При этом остается без ответа вопрос, чем же отличается понятие алгоритма от таких понятий, как “метод”, “способ”, “правило”. Можно даже встретить утверждение, что слова “алгоритм”, “способ”, “правило” выражают одно и то же (т.е. являются синонимами), хотя такое утверждение, очевидно, противоречит “свойствам алгоритма”.
Само выражение “свойства алгоритма” некорректно. Свойствами обладают объективно существующие реальности. Можно говорить, например, о свойствах какого-либо вещества. Алгоритм - искусственная конструкция, которую мы сооружаем для достижения своих целей. Чтобы алгоритм выполнил свое предназначение, его необходимо строить по определенным правилам. Поэтому нужно говорить не о свойствах алгоритма, а о правилах построения алгоритма, или о требованиях, предъявляемых к алгоритму.
Первое правило - при построении алгоритма прежде всего необходимо задать множество объектов, с которыми будет работать алгоритм. Формализованное (закодированное) представление этих объектов носит название данных.
Алгоритм приступает к работе с некоторым набором данных, которые называются входными, и в результате своей работы выдает данные, которые называются выходными. Таким образом, алгоритм преобразует входные данные в выходные.
Это правило позволяет сразу отделить алгоритмы от “методов” и “способов”.
Пока мы не имеем формализованных входных данных, мы не можем построить алгоритм.
Второе правило - для работы алгоритма требуется память. В памяти размещаются входные данные, с которыми алгоритм начинает работать, промежуточные данные и выходные данные, которые являются результатом работы алгоритма. Память является дискретной, т.е. состоящей из отдельных ячеек.
Поименованная ячейка памяти носит название переменной. В теории алгоритмов размеры памяти не ограничиваются, т. е. считается, что мы можем предоставить алгоритму любой необходимый для работы объем памяти.
В школьной “теории алгоритмов” эти два правила не рассматриваются. В то же время практическая работа с алгоритмами (программирование) начинается именно с реализации этих правил. В языках программирования распределение памяти осуществляется декларативными операторами (операторами описания переменных). В языке Бейсик не все переменные описываются, обычно описываются только массивы. Но все равно при запуске программы транслятор языка анализирует все идентификаторы в тексте программы и отводит память под соответствующие переменные.
Третье правило - дискретность. Алгоритм строится из отдельных шагов (действий, операций, команд). Множество шагов, из которых составлен алгоритм, конечно.
Четвертое правило - детерминированность. После каждого шага необходимо указывать, какой шаг выполняется следующим, либо давать команду остановки.
Пятое правило - сходимость (результативность). Алгоритм должен завершать работу после конечного числа шагов. При этом необходимо указать, что считать результатом работы алгоритма.
Итак, алгоритм - неопределяемое понятие теории алгоритмов. Алгоритм каждому определенному набору входных данных ставит в соответствие некоторый набор выходных данных, т. е. вычисляет (реализует) функцию. При рассмотрении конкретных вопросов в теории алгоритмов всегда имеется в виду какая-то конкретная модель алгоритма.
Любая работа на компьютере - это есть обработка информации. Работу компьютера можно схематически изобразить следующим образом:
“Информация” слева и “информация” справа - это разные информации. Компьютер воспринимает информацию извне и в качестве результата своей работы выдает новую информацию. Информация, с которой работает компьютер, носит название “данные”.
Компьютер преобразует информацию по определенным правилам. Эти правила (операции, команды) заранее занесены в память компьютера. В совокупности эти правила преобразования информации называются алгоритмом. Данные, которые поступают в компьютер, называются входными данными. Результат работы компьютера - выходные данные. Таким образом, алгоритм преобразует входные данные в выходные.
Теперь можно поставить вопрос: а может ли человек обрабатывать информацию?
Конечно, может. В качестве примера можно привести обычный школьный урок: учитель задает вопрос (входные данные), ученик отвечает (выходные данные). Самый простой пример: учитель дает задание - умножить 6 на 3 и результат написать на доске. Здесь числа 6 и 3 - входные данные, операция умножения - алгоритм, результат умножения - выходные данные.
1.3 Виды алгоритмов
Виды алгоритмов как логико-математических средств отражают указанные компоненты человеческой деятельности и тенденции, а сами алгоритмы в зависимости от цели, начальных условий задачи, путей ее решения, определения действий исполнителя подразделяются следующим образом:
Механические алгоритмы, или иначе детерминированные, жесткие (например, алгоритм работы машины, двигателя и т.п.);
Гибкие алгоритмы, например стохастические, т.е. вероятностные и эвристические.
Механический алгоритм задает определенные действия, обозначая их в единственной и достоверной последовательности, обеспечивая тем самым однозначный требуемый или искомый результат, если выполняются те условия процесса, задачи, для которых разработан алгоритм.
Вероятностный (стохастический) алгоритм дает программу решения задачи несколькими путями или способами, приводящими к вероятному достижению результата.
Эвристический алгоритм (от греческого слова “эврика”) - это такой алгоритм, в котором достижение конечного результата программы действий однозначно не предопределено, так же как не обозначена вся последовательность действий, не выявлены все действия исполнителя. К эвристическим алгоритмам относят, например, инструкции и предписания. В этих алгоритмах используются универсальные логические процедуры и способы принятия решений, основанные на аналогиях, ассоциациях и прошлом опыте решения схожих задач.
Линейный алгоритм - набор команд (указаний), выполняемых последовательно во времени друг за другом.
Разветвляющийся алгоритм - алгоритм, содержащий хотя бы одно условие, в результате проверки которого ЭВМ обеспечивает переход на один из двух возможных шагов.
Циклический алгоритм - алгоритм, предусматривающий многократное повторение одного и того же действия (одних и тех же операций) над новыми исходными данными. К циклическим алгоритмам сводится большинство методов вычислений, перебора вариантов.
Цикл программы - последовательность команд (серия, тело цикла), которая может выполняться многократно (для новых исходных данных) до удовлетворения некоторого условия.
Вспомогательный (подчиненный) алгоритм (процедура) - алгоритм, ранее разработанный и целиком используемый при алгоритмизации конкретной задачи.
В некоторых случаях при наличии одинаковых последовательностей указаний(команд) для различных данных с целью сокращения записи также выделяют вспомогательный алгоритм.
На всех этапах подготовки к алгоритмизации задачи широко используется структурное представление алгоритма.
Структурная (блок-, граф-) схема алгоритма - графическое изображение алгоритма в виде схемы связанных между собой с помощью стрелок (линий перехода) блоков - графических символов, каждый из которых соответствует одному шагу алгоритма. Внутри блока дается описание соответствующего действия.
Графическое изображение алгоритма широко используется перед программированием задачи вследствие его наглядности, т.к. зрительное восприятие обычно облегчает процесс написания программы, ее корректировки при возможных ошибках, осмысливание процесса обработки информации.
Можно встретить даже такое утверждение: “Внешне алгоритм представляет собой схему - набор прямоугольников и других символов, внутри которых записывается, что вычисляется, что вводится в машину и что выдается на печать и другие средства отображения информации “. Здесь форма представления алгоритма смешивается с самим алгоритмом.
Принцип программирования “сверху вниз” требует, чтобы блок-схема поэтапно конкретизировалась и каждый блок “расписывался” до элементарных операций.
Но такой подход можно осуществить при решении несложных задач. При решении сколько-нибудь серьезной задачи блок-схема “расползется” до такой степени, что ее невозможно будет охватить одним взглядом.
Блок-схемы алгоритмов удобно использовать для объяснения работы уже готового алгоритма, при этом в качестве блоков берутся действительно блоки алгоритма, работа которых не требует пояснений. Блок-схема алгоритма должна служить для упрощения изображения алгоритма, а не для усложнения.
При решении задач на компьютере необходимо не столько умение составлять алгоритмы, сколько знание методов решения задач (как и вообще в математике). Поэтому изучать нужно не программирование как таковое (и не алгоритмизацию), а методы решения математических задач на компьютере.
Задачи следует классифицировать не по типам данных, как это обычно делается (задачи на массивы, на символьные переменные и т. д.), а по разделу “Требуется”.
В информатике процесс решения задачи распределяется между двумя субъектами: программистом и компьютером. Программист составляет алгоритм (программу), компьютер его исполняет. В традиционной математике такого разделения нет, задачу решает один человек, который составляет алгоритм решения задачи и сам выполняет его. Сущность алгоритмизации не в том, что решение задачи представляется в виде набора элементарных операций, а в том, что процесс решения задачи разбивается на два этапа: творческий (программирование) и не творческий (выполнение программы). И выполняют эти этапы разные субъекты - программист и исполнитель
В учебниках по информатике обычно пишут, что исполнителем алгоритма может быть и человек. На самом деле алгоритмы для людей никто не составляет (не будем забывать, что не всякий набор дискретных операций является алгоритмом). Человек в принципе не может действовать по алгоритму. Выполнение алгоритма - это автоматическое, бездумное выполнение операций. Человек всегда действует осмысленно. Для того, чтобы человек мог выполнять какой-то набор операций, ему нужно объяснить, как это делается. Любую работу человек сможет выполнять только тогда, когда он понимает, как она выполняется.
Вот в этом - “ объяснение и понимание” - и кроется различие между понятиями “алгоритм” и “способ”, “метод”, “правило”. Правила выполнения арифметических операций - это именно правила (или способы), а не алгоритмы. Конечно, эти правила можно изложить в виде алгоритмов, но толку от этого не будет. Для того, чтобы человек смог считать по правилам арифметики, его нужно научить. А если есть процесс обучения, значит, мы имеем дело не с алгоритмом, а с методом.
При составлении алгоритма программист никому ничего не объясняет, а исполнитель не пытается ничего понять. Алгоритм размещается в памяти компьютера, который извлекает команды по одной и исполняет их. Человек действует по другому. Чтобы решить задачу, человеку требуется держать в памяти метод решения задачи в целом, а воплощает этот метод каждый по- своему.
Очень ярко эта особенность человеческой психологии - неалгоритмичность мышления - проявилась в методическом пособии А.Г. Гейна и В.Ф. Шолоховича.
В пособии излагаются решения задач из известного учебника. Решения задач должны быть представлены в виде алгоритмов. Однако авторы пособия понимают, что если просто написать алгоритм решения задачи, то разобраться в самом решении будет трудно. Поэтому они сначала приводят “нечеткое изложение алгоритма” (т. е. объясняют решение задачи), а затем пишут сам алгоритм.
2. БЛОК-СХЕМЫ
2.1 Понятие блок-схем
При блок-схемном описании алгоритм изображается геометрическими фигурами (блоками), связанными по управлению линиями (направлениями потока) со стрелками. В блоках записывается последовательность действий.
Данный способ по сравнению с другими способами записи алгоритма имеет ряд преимуществ. Он наиболее нагляден: каждая операция вычислительного процесса изображается отдельной геометрической фигурой. Кроме того, графическое изображение алгоритма наглядно показывает разветвления путей решения задачи в зависимости от различных условий, повторение отдельных этапов вычислительного процесса и другие детали.
Оформление программ должно соответствовать определенным требованиям. В настоящее время действует единая система программной документации (ЕСПД), которая устанавливает правила разработки, оформления программ и программной документации. В единой системе программной документации определены и правила оформления блок-схем алгоритмов (ГОСТ 10.002-80 ЕСПД, ГОСТ 10.003-80 ЕСПД).
Операции обработки данных и носители информации изображаются на схеме соответствующими блоками. Большая часть блоков по построению условно вписана в прямоугольник со сторонами а и b. Минимальное значение, а равно 10 мм увеличение, а производится на число, кратное 5 мм. Размер b=1,5 мм. Для отдельных блоков допускается соотношение между а и b, равное 1:2. В пределах одной схемы рекомендуется изображать блоки одинаковых размеров. Все блоки нумеруются. Виды и назначение основных блоков приведены в таблице.
Линии, соединяющие блоки и указывающие последовательность связей между ними, должны проводится параллельно линиям рамки. Стрелка в конце линии может не ставиться, если линия направлена слева направо или сверху вниз. В блок может входить несколько линий, то есть блок может являться преемником любого числа блоков. Из блока (кроме логического) может выходить только одна линия. Логический блок может иметь в качестве продолжения одни из двух блоков, и из него выходят две линии. Если на схеме имеет место слияние линий, то место пересечения выделяется точкой. В случае, когда одна линия подходит к другой и слияние их явно выражено, точку можно не ставить.
Схему алгоритма следует выполнять как единое целое, однако в случае необходимости допускается обрывать линии, соединяющие блоки.
Если при обрыве линии продолжение схемы находится на этом же листе, то на одном и другом конце линии изображается специальный символ соединитель - окружность диаметром 0,5 мм. Внутри парных окружностей указывается один и тот же идентификатор. В качестве идентификатора, как правило, используется порядковый номер блока, к которому направлена соединительная линия. Если схема занимает более одного листа, то в случае разрыва линии вместо окружности используется межстраничный соединитель. Внутри каждого соединителя указывается адрес - откуда и куда направлена соединительная линия. Адрес записывается в две строки: в первой указывается номер листа, во второй - порядковый номер блока.
Блок-схема должна содержать все разветвления, циклы и обращения к подпрограммам, содержащиеся в программе.
2.2 Элементы блок-схем
Однако блок-схемы, наверно, самый удобный и наглядный способов записи алгоритмов. Любая команда алгоритма записывается в блок-схеме в виде графического элемента - блока, и дополняется словесным описанием. Блоки в блок-схемах соединяются линиями потока информации. Направление потока информации указывается стрелкой. В случае потока информации сверху вниз и слева направо стрелку ставить не обязательно. Блоки в блок-схеме имеют только один вход и один выход (за исключением логического блока).
Элементы блок-схем:
Начало или конец алгоритма, вход или выход в подпрограмме. Элемент отображает вход из внешней среды или выход из неё (наиболее частое применение ? начало и конец программы). Внутри фигуры записывается соответствующее действие (рис 1).
Рис. 1
Блок ввода-вывода данных, общее обозначения ввода (вывода) данных (вне зависимости от физического носителя). Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод). Данный символ не определяет носителя данных (для указания типа носителя данных используются специфические символы) (рис2).
Рис. 2
Блок вычислений, вычислительные действия или последовательность действий. Выполнение одной или нескольких операций, обработка данных любого вида (изменение значения данных, формы представления, расположения). Внутри фигуры записывают непосредственно сами операции, например, операцию присваивания: a = 10*b + c. (рис 3)
Рис. 3
Логический блок (блок условия), выбор направления выполнения алгоритма в зависимости от некоторого условия. Отображает решение или функцию переключательного типа с одним входом и двумя или более альтернативными выходами, из которых только один может быть выбран после вычисления условий, определенных внутри этого элемента. Вход в элемент обозначается линией, входящей обычно в верхнюю вершину элемента. Если выходов два или три, то обычно каждый выход обозначается линией, выходящей из оставшихся вершин (боковых и нижней). Если выходов больше трех, то их следует показывать одной линией, выходящей из вершины (чаще нижней) элемента, которая затем разветвляется. Соответствующие результаты вычислений могут записываться рядом с линиями, отображающими эти пути. Примеры решения: в общем случае ? сравнение (три выхода: >, <, =); в программировании ? условные операторы if (два выхода: true, false) и case (множество выходов) (рис 4)
Рис. 4
Блок модификации, функция выполняет действия, изменяющие пункты (например, заголовок цикла) алгоритма (рис 5).
Рис. 5
Процесс пользователя (подпрограмма), вычисление по стандартной программе или подпрограмме (рис 6).
Рис. 6
Соединитель, указание связи прерванными линиями между потоками информации в пределах одного листа. Символ отображает вход в часть схемы и выход из другой части этой схемы. Используется для обрыва линии и продолжения её в другом месте (для избежания излишних пересечений или слишком длинных линий, а также, если схема состоит из нескольких страниц). Соответствующие соединительные символы должны иметь одинаковое (при том уникальное) обозначение (рис 7).
Рис. 7
Межстраничные соединения, указание связи между информацией на разных листах (рис 8).
Рис. 8
Соединитель. Символ отображает вход в часть схемы и выход из другой части этой схемы. Используется для обрыва линии и продолжения её в другом месте (для избежания излишних пересечений или слишком длинных линий, а также, если схема состоит из нескольких страниц). Соответствующие соединительные символы должны иметь одинаковое (при том уникальное) обозначение (рис 9).
Рис. 9
2.3 Обзор блок-схем
Блок-схема - это графическое представление программы.
Блок-схемы строятся из отдельных блоков. При этом разные средства языков программирования на блок-схемах изображаются разными блоками. Например, для условия, на основе которого строится ветвление, изображается ромбом. Оператор, в котором происходит обработка информации, изображается прямоугольником. Давайте более подробно обсудим разные блоки.
Любая программа имеет начало и конец. На блок-схемах начало и конец программ обозначаются прямоугольниками со скруглёнными углами. Внутри этих прямоугольников пишутся слова: "Начало", "Конец".
В блок-схемах выделяют два вида операторов: операторы обработки данных и операторы ввода/вывода.
Блок обработки данных изображается прямоугольником. В операторе обработки данных происходят различные вычисления (сложение, вычитание, деление, умножение чисел). Давайте посмотрим на простую программу с тремя операторами: (блок схема #1)
Рис. 10
Как видим, блоки соединяются линиями со стрелочками. Стрелочками указывается последовательность выполнения блоков.
Второй вид операторов в блок-схемах - блоки ввода/вывода данных. Они обозначаются как четырёхугольники со скошенными боковыми сторонами. В таких блоках происходит ввод/вывод данных: печать данных на экран, получение координат курсора мыши, получение клавиш клавиатуры, на которые нажал пользователь: (блок схема #2).
Рис. 11
На двух предыдущих картинках мы видим последовательное выполнение операторов. Теперь давайте посмотрим, как в блок-схемах отображаются ветвления. Для построения ветвлений в блок-схемах используется блок условия, который обозначается ромбом: (блок схема #3).
Рис. 12
Если условие, записанное в ромбе, выполняется, то выполняется код по линии "да", а если не выполняется, то выполняется ветка "нет".
В прошлом уроке мы видели примеры ветвлений, в которых было больше двух ветвей. Чтобы реализовать такие ветвления с помощью блоков условий, нужно использовать вложение этих блоков друг в друга.
Также возможно построение ветвлений с одной ветвью. В блок-схемах это будет выглядеть вот так: (блок схема #4).
Рис. 13
Обратите внимание, что линии не обязательно рисовать слева и справа от блока условия, можно и снизу. При этом из блока ветвления должно выходить только две ветви: одна, которая удовлетворяет условию, другая, которая не удовлетворяет условию.
На этой же картинке я показал ещё пару новых вещей: троеточия и окружности.
Троеточие используется, чтобы показать, что в этом месте пропущено несколько операторов.
Окружность говорит, что это продолжение кода, который был начат в другом месте, или, что код будет продолжен в другом месте. Окружности особенно полезны, когда рисуешь блок-схемы на бумаге. С помощью окружностей можно разрывать код, если программа не входит на одну страницу.
Если нужно разорвать код с несколькими ветвями, то окружности нумеруются.
Для обозначения циклов в блок-схемах используется следующий блок: (блок схема #5).
Рис. 14
Внутри пятиугольника записывается условие продолжения цикла. Если условие выполняется, то выполняется и код цикла. Обратите внимание, что код цикла всегда возвращается к началу цикла. Если условие не выполняется, то выполняется следующий оператор после цикла.
2.4 Примеры и задачи
Рассмотрим следующую задачу.
Длина класса 7 метров, ширина - 5 метров, высота - 3 метра. В классе 25 учеников. Сколько кв. м площади и сколько куб. м воздуха приходится на одного ученика?
Решение задачи:
1. Вычислить площадь класса:
7 х 5 = 35
2. Вычислить объем класса:
35 х 3 = 105
3. Вычислить, сколько квадратных метров площади приходится на одного ученика:
35: 25 = 1,4
4. Вычислить, сколько куб. метров воздуха приходится на одного ученика:
105: 25 = 4,2
Ответ: на одного ученика приходится 1,4 кв. метров площади и 4,2 куб. метров воздуха.
Если теперь убрать вычисления и оставить только “действия”, то получим алгоритм - перечень операций, которые необходимо выполнить, чтобы решить данную задачу.
Получается, что при решении любой математической задачи мы составляем алгоритм решения. Но прежде мы сами и выполняли этот алгоритм, то есть доводили решение до ответа. Теперь же мы будем только писать, что нужно сделать, но вычисления проводит не будем. Вычислять будет компьютер. Наш алгоритм будет представлять собой набор указаний (команд) компьютеру.
Когда мы вычисляем какую-либо величину, мы записываем результат на бумаге.
Компьютер записывает результат своей работы в память в виде переменной.
Поэтому каждая команда алгоритма должна включать указание, в какую переменную записывается результат. Алгоритм решения нашей задачи будет выглядеть так:
1. Вычислить площадь класса и записать в переменную S.
2. Вычислить объем класса и записать в переменную V.
3. Вычислить, сколько квадратных метров площади приходится на одного ученика, и записать в переменную S1.
4. Вычислить, сколько куб. метров воздуха приходится на одного ученика, и записать в переменную V1.
5. Вывести на экран значения переменных S1 и V1.
Теперь остается только перевести команды алгоритма с русского языка на язык, понятный компьютеру, и получится программа. Программирование - это есть перевод алгоритма с “человеческого” языка на “компьютерный” язык.
Для примера я написал программу которая вычисляет площадь помещения и объём воздуха на одного человека. (описание программы)
Трактовка работы алгоритма как преобразования входных данных в выходные естественным образом подводит нас к рассмотрению понятия “постановка задачи”. Для того, чтобы составить алгоритм решения задачи, необходимо из условия выделить те величины, которые будут входными данными и четко сформулировать, какие именно величины требуется найти. Другими словами, условие задачи требуется сформулировать в виде “Дано... Требуется” - это и есть постановка задачи.
Алгоритм применительно к вычислительной машине - точное предписание, т.е. набор операций и правил их чередования, при помощи которого, начиная с некоторых исходных данных, можно решить любую задачу фиксированного типа.
2.5 Разработка приложений
В своей курсовой работе я описал историю, понятия, виды, свойства алгоритмов и блок-схем. Привёл примеры разработки алгоритмов, разработки программы на языке Pascal и создание блок схемы для наглядной демонстрации структура работы простой программы.
И решил составить 2 математических задач:
1) Вычислить значение
у=log2(x/lgx), где х= -1, 1, 3..., 9, 9.1, 11.
Если среднеарифметическое значение функции меньше количества положительных значений функции, то рассчитать z(x)= chx, где -1 меньше х меньше 1.:
Первым делом я записал переменные x,x1,y,d
Они означают:
Х- начало последовательности
Х1- конец последовательности
d- цикл арифметической прогрессии
у- число логарифм.
Дальше мы вводим первые 3 числа(х,х1,d).
Далее идет цикл алгоритма и выявляется будет ли x<x1. Если в этом цикле х будет меньше или равняться 1, тогда решения нет. А если х будет больше 1 тогда будет вычисляться функция.
Далее вводиться формула
Y:=ln((x*ln(10)/ln(x))/ln(2));
После чего мы вводим логарифм у.
После ввода логарифма, остается выйти из цикла. Для этого нам нужно сделать чтобы, последовательность пришла к до 11,и тогда программа выйдет из цикла.
Вводим начало последовательности + цикл арифметической прогрессии т.е.
X:=x+d;
Таким образом, получается то, что на экран выводиться такие значение:
Рис. 15
Вот так будет выглядеть блок схема задачи #1 в Turbo Pascal:
Рис. 16
Исходный код программы находиться в приложение под названием Program lab3;
Вторая математическая задача состоит в следующем:
Где х = -0.3, -0.2, … 0.7, 0.8, 1.
Выбор алгоритма решения задачи
Для решения этой задачи, необходимо определить значение х. Если значение x>0.5, тогда мы вычисляем значение первой формулы, иначе - второй.
Таким образом программу делим мысленно на 2-е части когда x>0.5 и когда
x <> 0
И так первым делом я записал переменные x,y.
1-ая часть задачи
Записал условие то что, если x>0.5,тогда выполняется следующая формула
y:=sqr(x)* sqr(x)* sqr(x)+ exp(x)*exp(x);
2-ая часть задачи
Это когда x <> 0,главное чтобы не равнялось 0.
Я также как и в 1-ой части задачи записал условие, но другое.
Y:=(sin(x)/cos(x))/x;
После чего необходимо вычислить значение выражения и увеличивать число х пока оно не станет больше 1.
Таким образом, получается то, что на экран выводиться такие значения:
Рис. 17
Вот так будет выглядеть блок схема задачи #2 в Turbo Pascal:
Рис. 18
Исходный код программы находиться в приложение под названием Program lab1.
ЗАКЛЮЧЕНИЕ
Алгоритм - набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное число действий. Алгоритм применительно к вычислительной машине - точное предписание, т.е. набор операций и правил их чередования, при помощи которого, начиная с некоторых исходных данных, можно решить любую задачу. Создание алгоритма для решения задач какого-либо типа, его представление исполнителю в удобной для него форме - это творческий акт. Алгоритм может быть представлен различными способами: на разговорном естественном язык; на языке блок-схем; на языке программирования. Выбор и разработка алгоритма и численного метода решения задачи имеют важнейшее значение для успешной работы над программой. Тщательно проработанный алгоритм решения задачи - необходимое условие эффективной работы по составлению алгоритму.
В своей курсовой работе я описал историю, понятия, виды, свойства алгоритмов и блок-схем. Привёл примеры разработки алгоритмов, разработки программы на языке Pascal и создание блок схемы для наглядной демонстрации структура работы простой программы. Информация для написания этой курсовой работы использовалась с самых разнообразных источников по данной тематике.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1. Нестеренко А. В. ЭВМ и профессия программиста.2001г.
2. Кузнецов О. П., Адельсон-Вельский Г. М. Дискретная математика для инженера. М., Энергоатомиздат, 2010.
3. Радченко Н. П. Ответы на вопросы выпускных экзаменов. - Информатика и образование, 2004, №4.
4. Касаткин В.Н. Информация, алгоритмы, ЭВМ. М., Просвещение, 2009
5. Аляев Ю., Козлов О. Алгоритмизация и языки программирования Pascal, C++, Visual Basic. - М.: Финансы и статистика, 2013
6. Гайн А.Г., Шолохович В.Ф. Преподавание курса “Основы информатики и вычислительной техники” в средней школе. Руководство для учителя. Екатеринбург, 2002.
7. Извозчиков В.А. Информатика в понятиях и терминах.2004г.
8. Л.З. Шауцуков Основы информатики в вопросах и ответах.2004г.
9. Матеев П., Компьютерная литература, 2006.
10. Ливанский А. Алгоритмизация и программирование, 2007.
11. Радченко Н. Информатика, 2001.
12. Гудман С., Хидетниеми С. Введение в разработку и анализ алгоритмов. [Текст] - М., 2006. - 220 с. - ISBN: 5-8459-0526-5.
13. Дантеман Джефф, Мишел Джим, Тейлор Дон. Программирование в среде Delphi. Пер. с англ. - К.:НИПФ “ДиаСофт Лтд”, 2006г. - 608 св.
14. Дарахвелидзе П., Марков Е. Программирование в Delphi 4. [Текст] СПб.: БХВ. СПб., 2005.- 209 с. - ISBN: 5-9556-00020-5.
15. Сурков К.А., Сурков Д.А., Вальвачев А.Н. Программирование в среде DELPHI 2.0. - Минск: ООО "Попурри", 2013. - 640с.
16. Культин Н. Delphi в задачах и примерах. [Текст] - СПб.: БХВ-Петербург, 2007. - 436 с. - ISBN: 5-8046-0196-2.
17. Радченко Н. П. Ответы на вопросы выпускных экзаменов. - Информатика и образование, 2002, №4.
18. Федоров А.. Delphi 3.0 для всех. -М.: Тоо фирма “КомпьютерПресс”, 2004. -464 с.
19. Шапошников И. Delphi 5 - М.: Санкт-Петербург, 2011.
20. Дятченко Д.А. Методические указания к выполнению курсовой работы по дисциплине «Программирование и алгоритмическе языки» - Северодонецк, 2005.
21. Моисеев А. Object Pascal - М.: Москва, 2011.
22. Фаронов В.В. Delphi 4. Учебный курс. - М.: Нолидж, 2004. -447с.
23. Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие. - М.: Нолидж, 2003. -616с.
24. Валентин Озеров «Советы по Delphi», 2011.
25. Беленький П.П. Учебное пособие по информатике - Ростов на дону «Феникс» 2010. - 448c.
ПРИЛОЖЕНИЕ
алгоритм дискретность паскаль приложение
Во второй главе в пункте «2.4 Примеры и задачи» я описал следующий пример задачи, в приложении опишу подробней с кодом и блок схемой программы.
Код программы на языке Паскаль:
Programm_P1;
var a, b, c,d,s,v,t,r:integer;
begin
writeln ('Введите длину помещения);
readln (a);
writeln ('Введите ширину помещения);
readln (b);
writeln ('Введите высоту помещения);
readln (c);
writeln ('Введите кол-во учеников);
readln (d);
s:=a*b;
v:=s*c;
t:=s:d;
r:=v*d;
writeln (Площадь помещения на одного ученика-, ',t);
writeln (Объём воздуха на одного ученика,',r);
writeln (t,r);
end.
Программа попросит ввести исходные данные (размеры помещения и количество учащихся), а потом выведет на экран результат расчётов.
Блок схема выглядит так:
Рис. П1
Рис. П2
Эта блок схема является линейной.
Program lab3;
var
x,x1,y,d:real;
begin
writeln('vvedite nachalo posledovatelnosty');
readln(x);
writeln('vvedite konec posledovatelnosty');
readln(x1);
writeln('vvedite d');
readln(d);
while x<x1 do
begin
if x<=1.0000000001 then
writeln('net resheniya, kogda x = ',x:5:5);
else
begin
y:=ln((X*ln(10)/ln(x))/ln(2));
writeln('y = ',y:8:4);
end;
x:=x+d;
end;
readln;
end.
program lab1;
var
x,y:real;
begin
x:=-0.3;
while x<1 do begin
if x >0.5 then begin
y:=sqr(x)*sqr(x)*sqr(x) + Exp(x)*Exp(x);
writeln('y:= ',y:3:2);
end else if x<>0 then begin
y:=(sin(x)/cos(x))/x;
writeln('y:= ',y:3:2);
end
else
writeln('ERROR!!! Deleniye na 0');
x:=x+0.1;
end;
readln;
end.
Размещено на Allbest.ru
Подобные документы
История появления и распространения Turbo Pascal - среды разработки для языка программирования Паскаль. Общий вид объявления файлового типа. Входная, выходная и промежуточная информация. Алгоритм решения задачи: словесный алгоритм, блок-схема, программа.
курсовая работа [359,4 K], добавлен 05.01.2010Разработана программа решения двух задач на языке программирования Turbo Pascal. Спецификация задания. Описание входных и выходных данных. Математическая постановка задачи. Алгоритм ее решения. Описание и блок-схема программы. Результаты тестирования.
курсовая работа [275,8 K], добавлен 28.06.2008Разработка алгоритма поставленной задачи по обработке числовой информации в среде Turbo Pascal 7.0 с базовым языком программирования Pascal, отладка программы, реализующей разработанный алгоритм. Описание структуры программы, ее вспомогательных процедур.
курсовая работа [668,0 K], добавлен 25.02.2010Элементы и переменные, используемые для составления записи в Паскале. Основные числовые типы языка Turbo Pascal. Составление блок-схемы приложения, программирование по ней программы для вычисления функции. Последовательность выполнения алгоритма.
лабораторная работа [256,9 K], добавлен 10.11.2015Сущность понятия "комбинаторика". Программа формирования перестановок, сочетаний, размещений с выводом результатов на экран дисплея. Алгоритм программы, написанной на языке Паскаль. Список идентификаторов переменных программы. Список процедур программы.
лабораторная работа [19,8 K], добавлен 27.07.2010Исследование понятия алгоритма, особенностей линейных и разветвляющихся алгоритмов. Свойства алгоритма: понятность, точность, дискретность, массовость и результативность. Составление программы для вычисления значения функции и построение её графика.
контрольная работа [278,0 K], добавлен 25.03.2013Описание алгоритма решения задачи по вычислению суммы элементов строк матрицы с использованием графического способа. Детализация укрупненной схемы алгоритма и разработка программы для решения задачи в среде Turbo Pascal. Листинг и тестирование программы.
курсовая работа [446,0 K], добавлен 19.06.2014Анализ заданной сложной функции и разработка структурной схемы алгоритма по её вычислению. Программирование отдельных блоков и структур алгоритма решаемой задачи на языке Паскаль. Полная программа в соответствии с алгоритмом. Результаты расчётов на ПК.
курсовая работа [59,2 K], добавлен 09.04.2012Описание алгоритма решения задачи графическим способом. Вывод элементов массива. Описание блоков укрупненной схемы алгоритма на языке Pascal. Листинг программы, а также ее тестирование. Результат выполнения c помощью ввода различных входных данных.
контрольная работа [150,4 K], добавлен 03.05.2014Создание приложения, исполняющего трансляцию программы из языка Паскаль в язык Си: разработка алгоритма реализации задачи, описание необходимых констант, переменных, функций и операторов, представление листинга программы и распечатка результатов.
курсовая работа [305,9 K], добавлен 03.07.2011