Понятие алгоритма

Автор работы: Пользователь скрыл имя, 20 Января 2015 в 08:17, курсовая работа

Описание работы

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

Файлы: 1 файл

Курсовая работа.docx

— 342.71 Кб (Скачать файл)


 

 

Блок модификации, функция выполняет действия, изменяющие пункты (например, заголовок цикла) алгоритма. (рис 5)


 

 

Процесс пользователя (подпрограмма), вычисление по стандартной программе или подпрограмме. (рис 6)


 

                                        

 

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

 


 

Межстраничные соединения, указание связи между информацией на разных листах. (рис 8)


 

 

 

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



 

2.3 Обзор блок-схем

 

Блок-схема - это графическое представление программы.

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

Любая программа имеет начало и конец. На блок-схемах начало и конец программ обозначаются прямоугольниками со скруглёнными углами. Внутри этих прямоугольников пишутся слова: "Начало", "Конец".

В блок-схемах выделяют два вида операторов: операторы обработки данных и операторы ввода/вывода.

Блок обработки данных изображается прямоугольником. В операторе обработки данных происходят различные вычисления (сложение, вычитание, деление, умножение чисел). Давайте посмотрим на простую программу с тремя операторами: (блок схема #1)

Как видим, блоки соединяются линиями со стрелочками. Стрелочками указывается последовательность выполнения блоков.

Второй вид операторов в блок-схемах - блоки ввода/вывода данных. Они обозначаются как четырёхугольники со скошенными боковыми сторонами. В таких блоках происходит ввод/вывод данных: печать данных на экран, получение координат курсора мыши, получение клавиш клавиатуры, на которые нажал пользователь: (блок схема #2)

 

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

 

Если условие, записанное в ромбе, выполняется, то выполняется код по линии "да", а если не выполняется, то выполняется ветка "нет".

В прошлом уроке мы видели примеры ветвлений, в которых было больше двух ветвей. Чтобы реализовать такие ветвления с помощью блоков условий, нужно использовать вложение этих блоков друг в друга.

Также возможно построение ветвлений с одной ветвью. В блок-схемах это будет выглядеть вот так: (блок схема #4)

 

 

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

На этой же картинке я показал ещё пару новых вещей: троеточия и окружности.

Троеточие используется, чтобы показать, что в этом месте пропущено несколько операторов.

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

Если нужно разорвать код с несколькими ветвями, то окружности нумеруются.

Для обозначения циклов в блок-схемах используется следующий блок: (блок схема #5)

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

 

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;

Таким образом, получается то, что на экран выводиться такие значение:

 

 

Вот так будет выглядеть блок схема задачи #1 в Turbo Pascal:

Исходный код программы находиться в приложение под названием 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

Таким образом, получается то, что на экран выводиться такие значение:

 

 

Вот так будет выглядеть блок схема задачи #2 в Turbo Pascal:

Исходный код программы находиться в приложение под названием Program lab1.

Заключение

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

В своей курсовой работе я описал историю, понятия, виды, свойства алгоритмов и блок-схем. Привёл примеры разработки алгоритмов, разработки программы на языке Pascal и создание блок схемы для наглядной демонстрации структура работы простой программы. Информация для написания этой курсовой работы использовалась с самых разнообразных источников по данной тематике.

 

 

 

 

 

 

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

Основная литература:

  1. Нестеренко А. В. ЭВМ и профессия программиста.2001г.
  2. Бруно А. Л., Каплан Л. И. Московские олимпиады по программированию. М., Наука,2009.
  3. Кузнецов О. П., Адельсон-Вельский Г. М. Дискретная математика для инженера. М., Энергоатомиздат, 2010.
  4. Гейн А.Г. и др.. Основы информатики и вычислительной техники.2000 г.
  5. Информатика. Еженедельное приложение к газете “Первое сентября”. 2003, №
  6. Радченко Н. П. Ответы на вопросы выпускных экзаменов. – Информатика и образование, 2004, №4.
  7. Касаткин В.Н. Информация, алгоритмы, ЭВМ. М., Просвещение, 2009
  8. Аляев Ю., Козлов О. Алгоритмизация и языки программирования Pascal, C++, Visual Basic. - М.: Финансы и статистика, 2013
  9. Гайн А. Г., Шолохович В.Ф. Преподавание курса “Основы информатики и вычислительной техники” в средней школе. Руководство для учителя. Екатеринбург, 2002.
  10. Извозчиков В.А. Информатика в понятиях и терминах.2004г
  11. Л.З. Шауцуков Основы информатики в вопросах и ответах.2004г.
  12. Матеев П., Компьютерная литература, 2006.
  13. Ливанский А. Алгоритмизация и программирование, 2007.
  14. Радченко Н. Информатика., 2001.
  15. Гудман С., Хидетниеми С. Введение в разработку и анализ алгоритмов. [Текст] - М., 2006. – 220 с. - ISBN: 5-8459-0526-5
  16. Дантеман Джефф, Мишел Джим, Тейлор Дон. Программирование в среде Delphi. Пер. с англ. - К.:НИПФ “ДиаСофт Лтд”, 2006г. - 608 св
  17. Дарахвелидзе П., Марков Е. Программирование в Delphi 4. [Текст] СПб.: БХВ. СПб., 2005.- 209 с. - ISBN: 5-9556-00020-5
  18. Сурков К.А., Сурков Д.А., Вальвачев А.Н. Программирование в среде DELPHI 2.0. - Минск: ООО "Попурри", 2013. - 640с.
  19. Культин Н. Delphi в задачах и примерах. [Текст] - СПб.: БХВ-Петербург, 2007. – 436 с. - ISBN: 5-8046-0196-2
  20. Радченко Н. П. Ответы на вопросы выпускных экзаменов. – Информатика и образование, 2002, №4.
  21. Федоров А.. Delphi 3.0 для всех. -М.: Тоо фирма “КомпьютерПресс”, 2004. -464 с., ил.
  22. Шапошников И. Delphi 5 – М.: Санкт-Петербург, 2011.
  23. wikipedia.org – Свободная Энциклопедия
  24. Дятченко Д.А. Методические указания к выполнению курсовой работы по дисциплине «Программирование и алгоритмическе языки» – Северодонецк, 2005.
  25. Моисеев А. Object Pascal – М.: Москва, 2011.

Информация о работе Понятие алгоритма