Разработка алгоритмов различной структуры и их реализация средствами алгоритмического языка C# электронных таблиц Excel

Автор: Пользователь скрыл имя, 19 Апреля 2012 в 01:57, курсовая работа

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

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

Содержание

Задание на курсовую работу ……………………………...…..………………1
Замечания руководителя……………………………………….……………...2
Введение…………………………………………………….….………………5
Теоретическая часть……………………………………….…..…..…………..6
1.Алгоритм, виды алгоритмов и способы их реализации…………………...6
1.1.Что такое алгоритм? История возникновения слова алгоритм..………..6
1.2.Свойства алгоритма…………………………….………………….………7
1.3.Способы описания алгоритмов…………………………………………....8
1.4.Базовые структуры программирования………………………………….11
1.4.1.Линейные структуры……………………………………………………11
1.4.2. Разветвляющаяся структура…………………………………………...12
1.4.3. Циклическая структура………………………………………………...13
1.4.4.Цикл с предусловием и цикл с постусловием……………………….13
2. Обзор основных программных средств……………………………….…..16
2.1. Язык программирования С#.………………………………………….....16
2.3.1. Общая информация о языке. ………………………………………….16
2.3.2 Предшественники языка. …………………………………………........17
2.3.3. Особенности языка. …………………………………………................17
2.3.4 Версия 1.0. …………………………………………................................17
2.3.5. Версия 2.0. …………………………………………...............................18
2.3.6. Версия 3.0. …………………………………………...............................19
2.3.7. Версия 4.0. …………………………………………...............................20
2.4. Электронные таблицы Excel. ………………………………………….21
2.4.1. Особенности и применение электронных таблиц. ………………...21
2.4.2. Возможности Microsoft Exсel. …………………………………...….22
3. Практические задания. …………………………………………..............24
3.1. Задание 1. …………………………………………................................24
3.2. Задание 2. …………………………………………...............................28
3.3. Задание 3………………………………………….................................31
3.4. Задание 4………………………………………….................................35
3.5. Задание 5………………………………………….................................40
3.6 Задание 6…………………………………………..................................45
3.7. Задание 7………………………………………….................................49
3.8. Задание 8………………………………………….................................52
3.9. Задание 9………………………………………….................................55
3.10. Задание 10………………………………………….............................57
Заключение ………………………………………….............................59
Список литературы …………………………………………................60

Работа содержит 1 файл

Kursovaya_rabota.docx

— 861.77 Кб (Скачать)

Выделяют три основные структуры  алгоритмов:

1. Линейная.

2. Разветвляющаяся  (альтернатива «если–то–иначе»  или «если–то»).

3. Циклическая  (повторение).

(Рис. 11) Линейная структура

      1. Линейная структура

Линейная структура – является основной. Она означает, что действия выполняются друг за другом.

Прямоугольник, показанный на рисунке, может представлять как одну единственную команду, так  и множество операторов, необходимых  для выполнения сложной обработки данных, где F1 и F2 – некоторые команды для соответствующего исполнителя. Команды записываются с помощью операции присваивания.

Присваивание  переменной какого-либо значения или  присваивание одной переменной значения другой переменной является наиболее часто выполняемым действием в программе, написанной на любом языке программирования. В языке программирования присваивание является операцией и обозначается как «:=». Это означает, что при выполнении этой операции происходит не только присваивание значения определенной переменной, но и возвращается некоторое значение. 

(Рис. 12) Ветвление

      1. Разветвляющаяся структура (ветвление)

Разветвляющаяся структура (ветвление) это структура, обеспечивающая альтернативный выбор в зависимости от заданного условия. Выполняется проверка условия, а затем выбирается один из путей (рис. 2), где P – это условие, в зависимости от истинности (Да)1 или ложности (Нет) которого управление передается по одной из двух ветвей.

                                   

 

(Рис. 13) Неполное ветвление

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

Эта структура  называется также ЕСЛИ –ТО –  ИНАЧЕ. Каждый из путей (ТО или ИНАЧЕ) ведет к общей точке слияния, так что выполнение программы  продолжается независимо от того, какой путь был выбран.

      1. Циклическая структура (или повторение)

Циклическая структура (или повторение) предусматривает повторное выполнение некоторого набора действий.

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

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

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

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

      1. Различают цикл с предусловием и цикл с постусловием.

Цикл  начинается с проверки логического  выражения «P». Если оно истинно, то выполняется «F», затем все повторяется снова, до тех пор, пока логическое выражение сохраняет значение «истина». Как только оно становится ложным, выполнение операций «F» прекращается и управление передается по программе дальше.

Так как  выражение, управляющее циклом, проверяется  в самом начале, то в случае, если условие сразу окажется ложным, операторы  циклической части «F» могут вообще не выполняться. Операторы циклической части «F» должны изменять переменную (или переменные), влияющую на значение логического выражения, иначе программа «зациклится» – будет выполняться бесконечно. Рассмотренная циклическая конструкция называется цикл «пока», или цикл с предусловием. (Рис. 14)

Существует  и иная конструкция цикла, которая  предусматривает проверку условия  после выполнения команд, встроенных внутрь цикла. Это цикл с постусловием. (Рис. 15)

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

 

(Рис. 16) Алгоритм типа «цикл, вложенный в неполную развилку»

(Рис. 17) Алгоритм типа «цикл в цикле»

 

(Рис. 18) Алгоритм типа «цикл, вложенный в неполную развилку»

 

 

(Рис. 19) Иллюстрация трех-кратного вложения одной базовой структуры в другую

 

 

  1. Обзор основных программных средств.
    1. Язык программирования C#
      1. Общая информация об языке

C# (произносится си шарп) — объектно-ориентированный  язык программирования. Разработан  в 1998—2001 годах группой инженеров  под руководством Андерса Хейлсберга  в компании Microsoft как язык разработки  приложений для платформы Microsoft .NET Framework и впоследствии был стандартизирован  как ECMA-334 и ISO/IEC 23270.

C# относится к семье языков  с C-подобным синтаксисом, из  них его синтаксис наиболее  близок к C++ и Java. Язык имеет  статическую типизацию, поддерживает  полиморфизм, перегрузку операторов (в том числе операторов явного  и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые  типы и методы, итераторы, анонимные  функции с поддержкой замыканий, LINQ, исключения, комментарии в формате  XML.

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

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

      1. Предшественники языка

Переняв многое от своих предшественников — языков C++, Java, Delphi, Модула и Smalltalk — С#, опираясь на практику их использования, исключает  некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем: так, C# не поддерживает множественное наследование классов (в отличие от C++).

      1. Особенности языка

C# разрабатывался как язык программирования  прикладного уровня для CLR и,  как таковой, зависит, прежде  всего, от возможностей самой  CLR. Это касается, прежде всего, системы типов C#, которая отражает BCL. Присутствие или отсутствие тех или иных выразительных особенностей языка диктуется тем, может ли конкретная языковая особенность быть транслирована в соответствующие конструкции CLR. Так, с развитием CLR от версии 1.1 к 2.0 значительно обогатился и сам C#; подобного взаимодействия следует ожидать и в дальнейшем. (Однако эта закономерность была нарушена с выходом C# 3.0, представляющим собой расширения языка, не опирающиеся на расширения платформы .NET.) CLR предоставляет C#, как и всем другим .NET-ориентированным языкам, многие возможности, которых лишены «классические» языки программирования. Например, сборка мусора не реализована в самом C#, а производится CLR для программ, написанных на C# точно так же, как это делается для программ на VB.NET, J# и др.

      1. Версия 1.0.

Проект C# был  начат в декабре 1998 и получил  кодовое название COOL (C-style Object Oriented Language). Версия 1.0 была анонсирована вместе с  платформой .NET в июне 2000 года, тогда же появилась и первая общедоступная бета-версия; C# 1.0 окончательно вышел вместе с Microsoft Visual Studio .NET в феврале 2002 года.

Первая версия C# напоминала по своим возможностям Java 1.4, несколько их расширяя: так, в C# имелись свойства (выглядящие в  коде как поля объекта, но на деле вызывающие при обращении к ним методы класса), индексаторы (подобные свойствам, но принимающие параметр как индекс массива), события, делегаты, циклы foreach, структуры, передаваемые по значению, автоматическое преобразование встроенных типов в объекты при необходимости (boxing), атрибуты, встроенные средства взаимодействия с неуправляемым кодом (DLL, COM) и прочее.

Кроме того, в C# решено было перенести некоторые  возможности C++, отсутствовавшие в Java: беззнаковые типы, перегрузку операторов (с некоторыми ограничениями, в отличие от C++), передача параметров в метод по ссылке, методы с переменным числом параметров, оператор goto (с ограничениями). Также в C# оставили ограниченную возможность работы с указателями — в местах кода, специально обозначенных словом unsafe и при указании специальной опции компилятору.

      1. Версия 2.0

 

Проект спецификации C# 2.0 впервые  был опубликован Microsoft в октябре 2003 года; в 2004 году выходили бета-версии (проект с кодовым названием Whidbey), C# 2.0 окончательно вышел 7 ноября 2005 года вместе с Visual Studio 2005 и .NET 2.0.

Новые возможности в версии 2.0

  • Частичные типы (разделение реализации класса более чем на один файл).
  • Обобщённые, или параметризованные типы (generics). В отличие от шаблонов C++, они поддерживают некоторые дополнительные возможности и работают на уровне виртуальной машины. Вместе с тем, параметрами обобщённого типа не могут быть выражения, они не могут быть полностью или частично специализированы, не поддерживают шаблонных параметров по умолчанию, от шаблонного параметра нельзя наследоваться, и т. д.[12]
  • Новая форма итератора, позволяющая создавать сопрограммы с помощью ключевого слова yield, подобно Python и Ruby.
  • Анонимные методы, обеспечивающие функциональность замыкания.
  • Оператор '??': return obj1 ?? obj2; означает (в нотации C# 1.0) return obj1!=null ? obj1 : obj2;.
  • Обнуляемые ('nullable') типы-значения (обозначаемые вопросительным знаком, например, int? i = null;), представляющие собой те же самые типы-значения, способные принимать также значение null. Такие типы позволяют улучшить взаимодействие с базами данных через язык SQL.
  • Возможность создавать хранимые процедуры, триггеры и даже типы данных на .Net языках (в том числе и на C#).
  • Поддержка 64-разрядных вычислений, что кроме всего прочего, позволяет увеличить адресное пространство и использовать 64-разрядные примитивные типы данных.

                  

      1. Версия 3.0

 

В июне 2004 года Андерс Хейлсберг впервые  рассказал на сайте Microsoft о планируемых  расширениях языка в C#3.0.[13] В сентябре 2005 года вышли проект спецификации C# 3.0 и бета-версия C# 3.0, устанавливаемая  в виде дополнения к существующим Visual Studio 2005 и .NET 2.0. Окончательно эта  версия языка вошла в Visual Studio 2008 и .NET 3.5.

 

Новые возможности в версии 3.0

 

  • В C# 3.0 появились следующие радикальные добавления к языку:

ключевые слова select, from, where, позволяющие  делать запросы из SQL, XML, коллекций  и т. п. (запрос, интегрированный в  язык, Language Integrated Query, или LINQ)

  • Инициализация объекта вместе с его свойствами
  • Деревья выражений:

лямбда-выражения  теперь могут представляться в виде структуры данных, доступной для  обхода во время выполнения, тем  самым позволяя транслировать строго типизированные C#-выражения в другие домены (например, выражения SQL).

  • Вывод типов локальной переменной: var x = "hello"; вместо string x = "hello";
  • Безымянные типы: var x = new { Name = "James" };
  • Методы-расширения — добавление метода в существующий класс с помощью ключевого слова this при первом параметре статической функции.
  • Автоматические свойства: компилятор сгенерирует закрытое (private) поле и соответствующие аксессор и мутатор для кода вида

C# 3.0 совместим с C# 2.0 по генерируемому  MSIL-коду; улучшения в языке —  чисто синтаксические и реализуются  на этапе компиляции. Например, многие  из интегрированных запросов LINQ можно осуществить, используя  безымянные делегаты в сочетании  с предикатными методами над  контейнерами вроде List.FindAll и List.RemoveAll.

 

      1. Версия 4.0

 

Превью C# 4.0 было представлено в конце 2008 года, вместе с CTP-версией Visual Studio 2010.

 

Visual Basic 10.0 и C# 4.0 были выпущены  в апреле 2010 года, одновременно с  выпуском Visual Studio 2010.

Новые возможности в версии 4.0

    • Возможность использования позднего связывания, для использования:
      • с языками с динамической типизацией (Python, Ruby)
      • с COM-объектами
      • отражения (reflection)
      • объектов с изменяемой структурой (DOM). Появляется ключевое слово dynamic.
    • Именованные и опциональные параметры
    • Новые возможности COM interop
    • Ковариантность и контрвариантность
    • Контракты в коде (Code Contracts)

Информация о работе Разработка алгоритмов различной структуры и их реализация средствами алгоритмического языка C# электронных таблиц Excel