Разработка программы определения простого числа
Современные требования, предъявляемые к программному обеспечению. Универсальность технологии программного обеспечения Java, преимущества и недостатки ее применения. Разработка программы определения простого числа на этом языке, проверка ее безопасности.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 03.12.2009 |
Размер файла | 217,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«ВОСТОЧНО - СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ
ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ»
(ГОУ ВПО ВСГТУ)
Кафедра «Систем информатики»
Контрольная работа
по дисциплине
«Объектно-ориентированное программирование»
Тема: «Разработка программы определения простого числа»
Улан-Удэ
2009
Введение
Данная работа посвящена одному из самых перспективных на сегодняшний день языков программирования - языку Java. Технологию по имени Java можно без преувеличения назвать революционной в индустрии разработки программного обеспечения. В чём же перспективность и революционность этой технологии?
Сегодня создание программного обеспечения представляет собой чрезвычайно тяжелое занятие. Трудности связаны с разнообразием архитектур машин, операционных систем, графических оболочек и т. д. Стремительный рост технологий, связанных с сетью Internet, дополнительно усложняет эту задачу. К сети Internet подключены компьютеры самых разных типов - IBM PC, Macintosh, рабочие станции Sun и другие. Даже в рамках IBM-совместимых компьютеров, существует несколько платформ, например, MS Windows 9x/Me/XP/NT/2000, OS/2, Solaris, различные разновидности операционной системы UNIX с графической оболочкой XWindows и т. д. Все эти системы образуют единую сеть, которая должна работать как одно целое, обеспечивая при этом высокий уровень безопасности информации. Под влиянием указанных факторов резко возрастает уровень требований, предъявляемый к программному обеспечению.
Современные приложения должны быть безопасны, высокопроизводительны, работать в распределенной среде, быть нейтральны к архитектуре. Все эти факторы привели к необходимости нового взгляда на сам процесс создания и распределения приложений на множестве машин различной архитектуры. Требования к переносимости заставили отказаться от традиционного способа создания и доставки бинарных файлов, содержащих машинные коды и, следовательно, привязанных к определенной платформе. Созданная компанией Sun Microsystems система разработки Java удовлетворяет всем этим требованиям. Java - объектно-ориентированный язык, удобный и надёжный в эксплуатации благодаря таким своим достоинствам, как многозадачность, поддержка протоколов Internet и многоплатформенность.
Java - это интерпретируемый язык, и каждая Java-программа компилируется для гипотетической машины, называемой Виртуальная Машина Java. Результатом такой компиляции является байт-код Java, который в свою очередь может выполняться на любой операционной системе при условии наличия там системы времени выполнения Java, которая интерпретирует байт-код в реальный машинный код конкретной системы.
Можно сказать что такая универсальность данной технологии рождает недостаток - требовательность к ресурсам компьютера. Так как Java-программы не содержат машинного кода и при их запуске включается в работу система времени выполнения Java, их производительность заметно ниже, чем у обычных программ, составленных, например, на языке программирования C++. Данный недостаток становится с течением времени всё менее ощутим, в следствии роста вычислительной мощности компьютерных систем.
Язык Java является объектно-ориентированным и поставляется с достаточно объемной библиотекой классов. Библиотеки классов Java значительно упрощают разработку приложений, предоставляя в распоряжение программиста мощные средства решения распространенных задач. Поэтому программист может больше внимания уделить решению прикладных задач, а не таких, как, например, организация динамических массивов, взаимодействие с операционной системой или реализация элементов пользовательского интерфейса.
Целью данной работы является описание Java, рассмотрение технологии создания и последующего использования программ на этом языке, анализ примеров программ, которые показывают все вышеперечисленные достоинства этого языка.
Задача работы заключается в разработке программы определения простого числа.
Продумать и подготовить тестовый пример, полно и наглядно демонстрирующий корректность реализации требуемой задачи.
Практическое решение задачи осуществить с помощью программы, реализованной на язык программирования Java.
1. Теоретическая часть
1.1 Версии языка Java
Язык Java с момента создания находится в постоянном развитии. В реализации Java 1.1.6 находилось 23 пакета (в Java 1.0.2 их было 8), а количество классов - 503 (211). Последняя версия языка 2.0. Что касается средств разработки приложений и аплетов Java, то первоначально они были созданы фирмой Sun Microsystems и до сих пор пользуются популярностью. Базовой стандартной средой разработки является пакет JDK (Java Development Kit) фирмы Sun. Последняя версия этого пакета на сегодняшний день 1.4.0. Средства JDK не имеют графического интерфейса и запускаются из командной строки. Существует также множество других визуальных средств, таких как JBuilder, Symantec Cafe, VisualJ, Java WorkShop, Java Studio и другие. При написании программ в данной курсовой работе мной использовался стандартный набор JDK v. 1.4.0.
Система Java создавалась объектно-ориентированной с самого начала. Объектно-ориентированная парадигма наиболее удобна при создании программного обеспечения типа клиент-сервер, а также для организации распределенных вычислений. Одна из черт, присущих объектам, заключается в том, что объекты обычно переживают процедуру, их создающую. Они затем могут перемещаться по сети, храниться в базах данных и т.д. Идейными наследниками Java являются такие языки, как C++, Eiffel, Smalltalk и Objective C. За исключением примитивных типов данных, практически все в этом языке является объектом.
Опыт показывает, что отсутствие стандартных базовых библиотек для языка С++ чрезвычайно затрудняет работу с ним. В силу того, что любое нетривиальное приложение требует наличия некоторого набора базовых классов, разработчикам приходится пользоваться различными несовместимыми между собой библиотеками или писать свой собственный вариант такого набора. Все это затрудняет как разработку, так и дальнейшую поддержку приложений, затрудняет стыковку приложений, написанных разными людьми.
1.2 Этапы подготовки исполняемой программы
Безопасность
Исходный файл на языке Java - это текстовый файл, содержащий в себе одно или несколько описаний классов. Транслятор Java предполагает, что исходные тексты программ хранятся в файлах с расширениями java. Получаемый в процессе трансляции байт-код для каждого класса записывается в отдельном выходном файле, с именем совпадающем с именем класса, и расширением class. Именно сlass-файлы, содержащие байт-код, интерпретируются системой времени выполнения Java в машинный код конкретной системы. Прежде всего байт-код Java загружается в систему времени выполнения загрузчиком классов. Загрузчик классов отвечает за то, чтобы были загружены все классы, необходимые для выполнения приложения. Затем байт-код проверяется верификатором байт-кода на отсутствие операций, которые могли бы нарушить безопасность системы или вызвать в ней аварийную ситуацию. Важно отметить, что загрузчик классов и верификатор байт-кодов не делают никаких предположений относительно происхождения кодов, будь они получены с локальной файловой системы или с другого континента. Верификатор гарантирует, что любой код, прошедший проверку, может быть использован интерпретатором без риска повредить его (интерпретатор), а именно:
· не может произойти переполнение или "исчерпание" стека;
· параметры для инструкций байт-машины имеют нужный тип;
· доступ к полям и методам объектов не нарушает объявленных в классе правил (public, private, protected).
После такой проверки на безопасность байт-код интерпретируется в машинный код и запускается на выполнение интерпретатором. Причём классы, полученные локально (заслуживающие безусловного доверия), и классы, присланные по сети из остального мира (и потенциально враждебные), находятся в разных пространствах имён. При разрешении ссылки на какой-либо класс он ищется прежде всего в локальном пространстве.
Это не позволяет "внешним" кодам подменить один из базовых классов в системе. Также в процессе интерпретации происходит подключение необходимых библиотек (файлы с расширением jar). Весь описанный процесс исполнения Java программ изображён на рисунок 1.
Рис. 1. Процесс создания работающего Java-приложения
Технология Java предполагает лёгкую переносимость программных продуктов с одной платформы на другую. Такую степень лёгкости переноса, не обеспечивает ни какой язык программирования.
Простые числа - это натуральные числа, большие единицы, которые имеют только два делителя: единицу и само это число.
Примеры простых чисел: 2 , 3, 5, 7, 11, 13…
(Единица не является простым числом!)
Существует множество задач, связанных с простыми числами, и хотя формулируются они достаточно просто, решить их бывает очень трудно. Некоторые свойства простых чисел еще не открыты. Это побудило немецкого математика Германа Вейля (Wayl, 1885 - 1955) так охарактеризовать простые числа: «Простые числа - это такие существа, которые всегда склонны прятаться от исследователя».
Во все времена люди хотели найти как можно большее простое число. Пока люди считали только при помощи карандаша и бумаги, им нечасто удавалось обнаружить новые простые числа. До 1952 г. самое большое известное простое число состояло из 39 цифр. Теперь поиском все больших простых чисел занимаются компьютеры.
2. Описание программы
Задача 1. Определение простого числа.
Составить программу, которая будет проверять, является ли введенное число простым.
Самый простой путь решения этой задачи - проверить, имеет ли данное число n (n >= 2) делители в интервале [2; n-1]. Если делители есть, число n - составное, если - нет, то - простое. При реализации алгоритма разумно делать проверку на четность введенного числа, поскольку все четные числа делятся на 2 и являются составными числами, то, очевидно, что нет необходимости искать делители для этих чисел. Логическая переменная flag в программе выступает в роли “флаговой” переменной и повышает наглядность программы, так, если flag = true, то n -простое число; если у числа n есть делители, то “флаг выключаем” с помощью оператора присваивания flag := false, таким образом, если flag = false, то n - составное число.
var
n,i: longint;
flag: boolean;
begin
writeln('vvod n');
readln(n);
if n = 2 then flag := true
else if not odd (n) then flag := false
else begin
flag := true;
for i := 2 to n-1 do
if n mod i = 0 then flag := false
end;
if flag then writeln('Yes') else writeln('No');
readln
end.
Вход - n |
Выход |
|
2 |
Yes |
|
261 |
No |
|
78043 |
No |
|
99991 |
Yes |
|
241541 |
No |
|
999983 |
Yes |
Заключение
При написании работы были приобретены практические навыки по проектированию, а именно:
В процессе написания данной работы были выяснены следующие свойства языка Java:
язык программирования объектно-ориентирован, оснащён богатой библиотекой классов и в то же время довольно прост для освоения;
цикл разработки приложений сокращен за счет того, что система построена на основе интерпретатора;
приложение получается автоматически переносимым между множеством платформ и операционных систем;
за счет встроенной системы сборки мусора программист освобождается от необходимости явного управления памятью;
приложение легко сопровождается и модифицируется, т.к. модули могут быть загружены с сети;
в приложения встроена система безопасности, не допускающая незаконного доступа и проникновения вирусов.
В процессе написания данной работы была так же создана программа, которая хорошо иллюстрирует многие достоинства данной технологии и показывает её перспективность.
В результате решения поставленной задачи были закреплены теоретические знания и приобретены практические навыки по разработке программы на языке Java.
Литература
1. Генри С. Уоррен, мл. Глава 16. «Формулы для простых чисел. Алгоритмические трюки». -- М.: «Вильямс», 2007.
2. Джон Родли «Создание Java-апплетов». Издательство НИПФ «ДиаСофт Лтд.», 2006 год;
3. Кей Хорстман, Гарри Корнел :«Том 2. Тонкости програмирования» - Киев: «Вильямс» - 2007 год;
4. Кей Хорстман, Гарри Корнел :«Том І. Основы программирования» - Киев: «Вильямс» - 2007 год;
5. Киммел П. «Borland C++5». - СПб.: BHV- Санкт-Петербург, 2000 год;
6. Майкл Эферган «Java: справочник».- QUE Corporation, Издательство "Питер Ком", 2005 год;
Подобные документы
Этапы разработки программного приложения, выполняющего синтаксический анализ программы на языке С и форматирование текста программы на языке С. Требования к программному обеспечению и интерфейсу. Конфигурация технических средств и оценка надежности.
курсовая работа [1,6 M], добавлен 22.06.2011Синтаксический анализ простой программы на языке С. Предварительный выбор метода решения задачи. Разработка технологии обработки информации. Проектирование программных модулей. Процесс тестирования программы. Требования к программному обеспечению.
курсовая работа [934,7 K], добавлен 01.07.2011Этапы процедуры принятия решений. Разработка математического алгоритма. Блок-схема алгоритма работы программы. Разработка программы на языке программирования С++ в среде разработки MFC. Текст программы определения технического состояния станка с ЧПУ.
курсовая работа [823,0 K], добавлен 18.12.2011Требования к аппаратному и программному обеспечению, требуемому для разработки программного модуля. Критерии приемлемости разрабатываемого программного продукта. Разработка удобного пользовательского интерфейса программы. Алгоритм и листинг программы.
курсовая работа [2,6 M], добавлен 23.11.2011Обоснование необходимости разработки виртуального магазина. Описание форм программы. Требования к аппаратному и программному обеспечению. Тестирование и выявление ошибок. Область применения программы. Расчет экономического эффекта проекта. Охрана труда.
дипломная работа [1,7 M], добавлен 20.12.2012Графическая схема алгоритма выполнения программы определения запасов сырья. Решение задачи с помощью программы MS Excel. Разработка макроса для построения диаграммы. Использование интерфейса программы для работы с таблицей. Разработка базы данных.
курсовая работа [1,2 M], добавлен 24.04.2014Задача для проведения теплофизического расчета с помощью программы написанной на языке Pascal. Модуль программы, позволяющий определить и рассчитать параметры для решения задачи теплофизического расчета. Блок-схема, отображающая основные действия.
методичка [17,5 K], добавлен 02.09.2010Механизм построения мультимедийных приложений. Разработка мультимедийного проекта "классы в С++" - приложения, построенного с применением пакета AuthorWare 6.5. Плюсы и минусы программы в сравнении "AUK BC". Требования к программному обеспечению.
курсовая работа [1,9 M], добавлен 17.07.2009Область применения и требования создаваемого Web-приложения. Требования к техническому и программному обеспечению. Разработка структуры Web-приложения и выбор средств программной реализации. Программная реализация Web-приложения. Структура базы данных.
дипломная работа [1,4 M], добавлен 03.06.2014Написание программы для работы со списком документов, разработка функционала. Требования к аппаратному и программному обеспечению. Описание интерфейса пользователя. Структура программы и описание данных. Процедура тестирования и его результаты.
курсовая работа [1,5 M], добавлен 26.08.2012