Сортировка подсчетом визуализатор на языке программирования Java

Автор работы: Пользователь скрыл имя, 24 Декабря 2012 в 01:41, курсовая работа

Описание

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

Работа состоит из  1 файл

Пояснительная записка.docx

— 179.52 Кб (Скачать документ)

ВВЕДЕНИЕ

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

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

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

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

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

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

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

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

 

 

 

1 ОБЗОР ТЕХНОЛОГИИ JAVA

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

Java ˗ объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems(в последующем приобретённой компанией Oracle).

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

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

Часто к недостаткам концепции  виртуальной машины относят то, что  исполнение байт-кода виртуальной машиной  может снижать производительность программ и алгоритмов, реализованных  на языке Java. В последнее время был внесен ряд усовершенствований, которые несколько увеличили скорость выполнения программ на Java:

а) применение технологии трансляции байт-кода в машинный код непосредственно во время работы программы(JIT-технология) с возможностью сохранения версий класса в машинном коде;

б) широкое использование платформенно-ориентированного кода (native-код) в стандартных библиотеках;

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

По данным сайта shootout.alioth.debian.org, для  семи разных задач время выполнения на Java составляет в среднем в полтора-два раза больше, чем для C/C++, в некоторых случаях Java быстрее, а в отдельных случаях в 7 раз медленнее. С другой стороны, для большинства из них потребление памяти Java-машиной было в 10-30 раз больше, чем программой на C/C++. Также примечательно исследование, проведённое компанией Google, согласно которому отмечается существенно более низкая производительность и бо́льшее потребление памяти в тестовых примерах на Java в сравнении с аналогичными программами на C++.

Идеи, заложенные в концепцию и  различные реализации среды виртуальной  машины Java, вдохновили множество энтузиастов на расширение перечня языков, которые могли бы быть использованы для создания программ, исполняемых на виртуальной машине. Эти идеи нашли также выражение в спецификации общеязыковой инфраструктуры CLI, заложенной в основу платформы .NET компанией Microsoft [1].

1.2 Классификация платформ Java

Внутри Java существуют несколько основных семейств технологий:

  • Java SE ˗ Java Standard Edition, основное издание Java, содержит компиляторы, API, Java Runtime Environment; подходит для создания пользовательских приложений, в первую очередь — для настольных систем.
  • Java EE ˗ Java Enterprise Edition, представляет собой набор спецификаций для создания программного обеспечения уровня предприятия.
  • Java ME ˗ Java Micro Edition, создана для использования в устройствах, ограниченных по вычислительной мощности, например в мобильных телефонах, КПК, встроенных системах;
  • JavaFX ˗ технология, являющаяся следующим шагом в эволюции Java как Rich Client Platform; предназначена для создания графических интерфейсов корпоративных приложений и бизнеса.
  • Java Card ˗ технология предоставляет безопасную среду для приложений, работающих на смарт-картах и ​​других устройствах с очень ограниченным объемом памяти и возможностями обработки [1].

 

1.3 Java и Microsoft

Компанией Microsoft была разработана собственная реализация JVM (MSJVM), включавшаяся в состав различных операционных систем, начиная с Windows 98 (также входила в Internet Explorer от версии 3 и выше, что позволяло использовать MSJVM в ОС Windows 95 и Windows NT 4 после установки IE3+ на данные ОС).

MSJVM имела cущественные отличия от Sun Java, во многом ломающие основополагающую концепцию переносимости программ между разными платформами:

  • отсутствие поддержки программного интерфейса вызова удаленных методов (RMI);

  • отсутствие поддержки технологии JNI;

  • наличие нестандартных расширений, таких как средства интеграции Java и DCOM, работающих только на платформе Windows.

Тесная интеграция Java с DCOM и Win32 ломала многоплатформенную суть языка. Впоследствии это явилось поводом для судебных исков со стороны Sun Microsystems к Microsoft. Суд принял сторону компании Sun Microsystems. В конечном счёте между двумя компаниями была достигнута договорённость о возможности продления срока официальной поддержки пользователей нестандартной Microsoft JVM до конца 2007 года, но не более.

В 2005 году компанией Microsoft для платформы .NET был представлен Java-подобный язык J#, не соответствующий официальной спецификации языка Java и исключённый впоследствии из стандартного инструментария разработчика Microsoft Visual Studio, начиная с Visual Studio 2008 [1].

1.4 Java и Android

 

Язык Java активно используется для создания мобильных приложений под операционную систему Android. При  этом программы компилируются в  нестандартный байт-код, для использования  их виртуальной машиной Dalvik. Для  такой компиляции используется дополнительный инструмент, а именно Software Development Kit, который предназначен для x86-машины под операционной системой Linux. Его  разработали представители компании Google.

Разработку приложений можно  вести в среде Eclipse, используя  при этом плагин — Android Development Tools (ADT). Версия JDK при этом должна быть 5.0 или  выше [1].

 

1.5 Применения  платформы Java

 

Следующие успешные проекты  реализованы с привлечением Java (J2EE) технологий: RuneScape, Amazon, eBay, Yandex (неоднозначная  информация в отношении Java), LinkedIn, Yahoo!.

Следующие компании в основном фокусируются на Java (J2EE) технологиях: SAP, IBM, Oracle. В частности, СУБД Oracle включает JVM как свою составную часть, обеспечивающую возможность непосредственного программирования СУБД на языке Java, включая, например, хранимые процедуры [1].

 

1.6 Производительность

 

Программы, написанные на Java, имеют репутацию более медленных и занимающих больше оперативной памяти, чем написанные на языке Си. Тем не менее, скорость выполнения программ, написанных на языке Java, была существенно улучшена с выпуском в 1997—1998 годах так называемого JIT-компилятора в версии 1.1 в дополнение к другим особенностям языка для поддержки лучшего анализа кода (такие как внутренние классы, класс StringBuffer, упрощенные логические вычисления и т. д.). Кроме того была произведена оптимизация виртуальной машины Java — с 2000 года для этого используется виртуальная машина HotSpot. По состоянию на февраль 2012 года, код Java 7 приблизительно лишь в 1.8 раза медленнее кода, написанного на языке Cи.

Некоторые платформы предлагают аппаратную поддержку выполнения для  Java[источник не указан 436 дней]. К примеру, микроконтроллеры выполняющие код Java на аппаратном обеспечении вместо программной JVM, а также основанные на ARM процессоры, которые поддерживают выполнение байткода Java через опцию Jazelle [1].

 

1.7 Основные возможности

 

  • автоматическое управление памятью;
  • расширенные возможности обработки исключительных ситуаций;
  • богатый набор средств фильтрации ввода/вывода;
  • набор стандартных коллекций: массив, список, стек и т. п.;
  • наличие простых средств создания сетевых приложений (в том числе с использованием протокола RMI);
  • наличие классов, позволяющих выполнять HTTP-запросы и обрабатывать ответы;
  • встроенные в язык средства создания многопоточных приложений;
  • унифицированный доступ к базам данных:
    • на уровне отдельных SQL-запросов — на основе JDBC, SQLJ;
    • на уровне концепции объектов, обладающих способностью к хранению в базе данных — на основе Java Data Objects (англ.) и Java Persistence API;
  • поддержка обобщений(начиная с версии 1.5);
  • параллельное выполнение программ [1].

 

1.8 Java-апплет

Аппле́т (англ. applet от application ˗ приложение и -let ˗ уменьшительный суффикс) ˗ это несамостоятельный компонент программного обеспечения, работающий в контексте другого, полновесного приложения, предназначенный для одной узкой задачи и не имеющий ценности в отрыве от базового приложения.

Java-апплет – прикладная программа, чаще всего написанная на языке программирования Java в форме байт-кода. Java-апплеты выполняются в веб-браузере с использованием виртуальной Java машины (JVM), или в Sun's AppletViewer, автономном инструменте для тестирования апплетов. Java-апплеты были внедрены в первой версии языка Java в 1995 году. Java-апплеты обычно пишутся на языке программирования Java, но могут быть написаны и на других языках, которые компилируются в байт‐код Java, таких, как Jython.

Апплеты используются для предоставления интерактивных возможностей веб-приложений, которые не могут быть предоставлены HTML. Так как байт-код Java платформо-независим, то Java-апплеты могут выполняться с помощью плагинов браузерами многих платформ, включая Microsoft Windows, UNIX, Apple Mac OS и GNU/Linux. Такие программы с открытым исходным кодом, как applet2app, могут быть использованы для преобразования апплета в самостоятельные программы на Java или исполняемые файлы Linux и Windows.

Преимущества использования Java-апплетов:

а) кроссплатформенность;

б) апплет может работать на «всех» установленных к этому времени версиях Java, а не только с последней версией; однако, если апплет требует последнюю версию JRE, то клиент будет вынужден ждать более длительной загрузки;

в) апплет поддерживается большинством браузеров;

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

д) он может иметь полный доступ к машине, на которой выполняется, если пользователь согласен на это;

е) апплет может улучшить использование: после первого запуска апплета, когда JVM уже выполняется и быстро запускается, преимущественно у постоянных пользователей Java, однако JVM придется перезапускать каждый раз, когда запускается новый браузер;

ж) он может запуститься с сопоставимой(но обычно медленнее) скоростью на других компилируемых языках, таких как C++, но во много раз быстрее, чем JavaScript;

з) он может перенести работу с сервера к клиенту, делая Интернет-решение с большим числом пользователей / клиентов.

Java-апплет обладает следующими  недостатками:

а) он требует установки Java-расширения(plug-in), которое не во всех браузерах доступно по умолчанию;

Информация о работе Сортировка подсчетом визуализатор на языке программирования Java