Разработка алгоритмов различной структуры с помощью программных средств

Федеральное агентство по образованию 

Государственное образовательное учреждение

высшего профессионального образования

«Воронежский государственный технический университет» (ГОУВПО «ВГТУ»)

Факультет вечернего и заочного обучения 

Кафедра  “Компьютерные интеллектуальные технологии проектирования” 
 

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

по  дисциплине «Информатика» 
 

Тема  «Разработка алгоритмов различной структуры 

с помощью программных  средств » 
 
 
 

Выполнил  студент группы АМ-102  ___________________ Ключанских Ю.В.

                                                                                       Подпись,       дата

                                                                                    

Руководитель                                    ___________________ Малышева И.С.

                                                                                       Подпись,      дата

                                                                                    
 

Защищена ___________________            Оценка________________________

                                        дата 
 
 
 

      Воронеж - 2011 

ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИСТЕТ 

Кафедра «Компьютерные интеллектуальные технологии проектирования» 
 

Задание на курсовую работу

по дисциплине «Информатика» 
 

        Тема проекта: «Разработка алгоритмов различной  структуры с помощью программных  средств » 

Выполнил  студент группы АМ-102  ___________________ Ключанских Ю.В.

Вариант № 7 

          Технические условия: Intel Celeron CPU 2.6GHz; ПО Microsoft Windows 7 (Win32 x64);

          Среда разработки Turbo Pascal v7.0, Mathcad version 14, Microsoft Excel 2010. 
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           

Руководитель                        _________________________ Малышева И.С.

                                                                                     Подпись,       дата

                                                                                               

Задание принял студент       _______________________ Ключанских Ю.В.

                                                                              Подпись,       дата

Замечания руководителя

 

 

Содержание 
 
 

Введение.......................................................................................................................
  1. Разработка алгоритмов...........................................................................................
    1. Понятие алгоритма и его свойства..................................................................
    2. Виды представления алгоритмов....................................................................
    3. Линейные алгоритмы.......................................................................................
    4. Ветвящиеся алгоритмы....................................................................................
    5. Циклические алгоритмы..................................................................................
  2. Используемые программные средства..................................................................
    1. Pascal..................................................................................................................
    2. Excel...................................................................................................................
    3. Система MathCad..............................................................................................
  3. Решение задач.........................................................................................................
    1. Задание № 1.......................................................................................................
    2. Задание № 2.......................................................................................................
    3. Задание № 3.......................................................................................................
    4. Задание № 4.......................................................................................................
    5. Задание № 5.......................................................................................................
    6. Задание № 6.......................................................................................................
    7. Задание № 7.......................................................................................................
    8. Задание № 8.......................................................................................................
    9. Задание № 9.......................................................................................................
    10. Задание № 10..................................................................................................
    11. Задание № 11..................................................................................................
    12. Задание № 12..................................................................................................

Заключение...................................................................................................................

Список литературы......................................................................................................

5

8

8

9

11

14

15

19

19

22

27

30

30

32

36

39

43

46

50

54

57

60

61

62

65

66

 

      Введение

      Термин  информатика возник в 60-х гг. во Франции  для названия области, занимающейся автоматизированной обработкой информации с помощью электронных вычислительных машин. Французский термин informatigue (информатика) образован путем слияния слов information (информация) и automatigue (автоматика) и означает "информационная автоматика или автоматизированная переработка  информации". В англоязычных странах  этому термину соответствует  синоним computer science (наука о компьютерной технике).

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

      Информатику в узком смысле можно представить  как состоящую из трех взаимосвязанных  частей — технических средств (hardware), программных средств (software), алгоритмических  средств (brainware). В свою очередь, информатику, как в целом, так и каждую ее часть обычно рассматривают с  разных позиций: как отрасль народного  хозяйства, как фундаментальную  науку, как прикладную дисциплину.

      Информатика как прикладная дисциплина занимается:

      - изучением закономерностей в  информационных процессах (накопление, переработка, распространение);

      - созданием информационных моделей  коммуникаций в различных областях  человеческой деятельности;

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

      Задачи  информатики состоят в следующем:

      - исследование информационных процессов  любой природы; 

      - разработка информационной техники  и создание новейшей технологии  переработки информации на базе  полученных результатов исследования  информационных процессов; 

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

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

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

      Программа Microsoft Excel предназначена для подготовки и обработки электронных таблиц под управлением операционной системой Windows.  Microsoft Excel – это многофункциональный, мощный редактор электронных таблиц. Он предоставляет возможность производить  различные расчеты, составлять списки, сметы и что немаловажно, строить  наглядные графики и диаграммы.

      В 1 разделе рассказывается о разработке алгоритмов, этапах подготовки и решениях задач на ЭВМ, о понятии алгоритма, его свойствах и формах записи, о базовых алгоритмических структурах, об алгоритмических языках для ПК. Во 2 разделе рассказывается о прикладных программах Microsoft Excel, Pascal и MathCad. В 3 разделе показана на примерах алгоритмизация задач и применение Microsoft Excel,  MathCad для решения математических задач.

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

      Компьютер преобразует информацию по определенным правилам. Эти правила (операции, команды) заранее занесены в память компьютера. В совокупности эти правила преобразования информации называются алгоритмом. Данные, которые поступают в компьютер, называются входными данными. Результат  работы компьютера – выходные данные.

 

      1. Разработка алгоритмов.

      

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

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

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

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

         Первоначально для записи алгоритмов пользовались средствами естественного языка.

         Словесный алгоритм – описание последовательных этапов обработки данных на естественном языке.

         Основными свойствами алгоритма являются:

    • Массовость алгоритма. Подразумевается, что алгоритм позволяет решать не одну конкретную задачу, а некоторый класс задач данного типа. В простейшем случае массовость обеспечивает возможность изменения исходных данных в определенных пределах.
    • Детерминированность алгоритма. Процесс применения правил к исходным данным (путь решения задачи) однозначно определен.
    • Результативность алгоритма. На каждом шаге процесса применения правил известно, что считать результатом этого процесса, а сам процесс должен прекратиться за конечное число шагов.
    • Понятность для исполнителя — т.е. исполнитель алгоритма должен знать, как его выполнять.
    • Дискретность (прерывность, раздельность) — алгоритм должен представлять процесс решения задачи как последовательное выполнение простых (или ранее определенных) шагов (этапов). Каждое действие, предусмотренное алгоритмом, исполняется только после того, как закончилось исполнение предыдущего.

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

         Алгоритмами не являются процесс рисования картины  художником, процесс решения задачи, процесс воспитания человека и т.д.

          

  • 1.2 Виды представления  алгоритмов
  •     Алгоритмы можно представить в разных формах. Различают:

    • Словесное представление алгоритмов.

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

          Словесный способ не имеет широкого распространения  по следующим причинам:  такие  описания строго не формализуемы;  страдают многословностью записей;  допускают  неоднозначность толкования отдельных  предписаний. 
     

    • Представление алгоритма в виде программы на алгоритмическом  языке.

            В дальнейшем для записи алгоритмов  будем использовать алгоритмический  язык Pascal.

    • Представление алгоритма в виде блок-схемы.

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

    Таблица 1. Основные графические обозначения блоков программ.

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

          Представляет  собой систему обозначений и  правил, предназначенную для единообразной  записи алгоритмов.

          Он  занимает промежуточное место между  естественным и формальным языками.

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

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

          Примером  псевдокода является школьный алгоритмический  язык в русской нотации (школьный АЯ), описанный в учебнике А.Г. Кушниренко и др. "Основы информатики и вычислительной техники", 1991.

          

  • 1.3 Линейные алгоритмы
  •  

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

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

        - read(список скалярных  переменных);

        - readln(список скалярных  переменных);

        - readln.

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

         По  окончании ввода в буфере клавиатуры останется признак нажатия клавиши Enter. Чтобы его убрать из буфера, в  операторе используется суффикс ln.

         Оператор  ввода readln заставит компьютер ожидать  до тех пор, пока в буфере клавиатуры не появится признак нажатия клавиши Enter.

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

      - write(список  выражений);

      - writeln(список  выражений);

      - writeln .

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

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

         Для выражений в списке оператора  вывода можно указать размерность  вывода. Для данных целого типа размерность  задается в виде: данное:число, где число указывает количество позиций, которое должно занять значение на экране. Если количество позиций окажется меньше, чем нужно для вывода, то компьютер автоматически добавит недостающие позиции. Для данных типа real размерность задается в виде: данное:число1:число2, где число 1 задает общее количество позиций для представления значения данного, а число 2 указывает количество позиций в дробной части. Если ширина поля не указана, то она определяется компьютером. Оператор присваивания предназначен для изменения содержимого оперативной памяти. Старое значение при этом стирается и записывается новое. На Паскале этот оператор записывается так: переменная:=выражение.

         Исполняется оператор в два этапа:

         1) вычисляется значение выражения,  записанное справа;

         2) вычисленное значение пересылается  в переменную слева. 

          

  • 1.4 Ветвящиеся алгоритмы
  •  

         Ветвящимся  называется алгоритм, в котором в  зависимости от выполнения некоторого условия выполняется та или иная группа действий. Условие задается логическим выражением и принимает  два значения: false (ложь) или true (истина). В Pascal ветвящиеся алгоритмы записываются с помощью условных операторов. Полный условный оператор записывается так:

                if условие

                then оператор1

                else оператор2.

         Выполняется данный оператор следующим образом: если условие принимает значение «истина», то управление передается на оператор1, если же нет, то на оператор2.

         Компилятор  Паскаля всегда выбирает первый из приведенных вариантов – каждому  else соответствует ближайший предшествующий if. Если требуется реализация второго варианта, можно использовать операторные скобки begin…end. В общем случае, чтобы четко определить, что чему подчинено, используйте begin…end аналогично круглым скобкам в арифметических выражениях.

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

         Структура ветвление существует в четырех  основных вариантах (см. таблицу 2). 
     
     
     
     
     

       Таблица 2. Виды структуры ветвления.

      Школьный  алгоритмический язык Язык блок-схем
      1. если-то
            если условие

            то действия

            Все

      2. если-то-иначе
            если условие

            то действия 1

            иначе действия 2

            Все

      3. выбор
            Выбор

            при условие 1: действия 1

            при условие 2: действия 2

            . . . . . . . . . . . .

            при условие N: действия N

            Все

      4. выбор-иначе
            Выбор

            при условие 1: действия 1

            при условие 2: действия 2

            . . . . . . . . . . . .

            при условие N: действия N

              иначе действия N+1

            Все

          

  • 1.5 Циклические алгоритмы
  •  

         Циклическим называется такой алгоритм, в котором некоторая группа действий повторяется неоднократно. Группа действий, повторяемая в цикле, называется его телом. Однократное выполнение тела цикла называется шагом.

         Чтобы алгоритм не зациклился (не стал бесконечным), циклом надо управлять. Для этого  используется специальная величина - параметр цикла.

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

    Разработка алгоритмов различной структуры с помощью программных средств