Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Введение 1 page





 

Выпускники системы профессионального образования являются основным источником удовлетворения потребности в рабочей силе на рынке труда, и их численная прогнозная оценка служит основой для расчета баланса трудовых ресурсов на перспективный период. Кроме того, выпускники системы профессионального образования вносят существенный вклад в приемы других ступеней образования, что необходимо учитывать при их оценке. Так, например, выпускники учреждений начального профессионального образования (НПО) текущего и прошлых лет составляют в приеме учреждений среднего профессионального образования (СПО) 8%, а выпускники СПО в приеме в учреждения высшего профессионального образования (ВПО) – 28%. Таким образом, для корректной оценки приемов необходимо уметь рассчитывать выпуск из учреждений системы профессионального образования [1].

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

Прогнозирование численности обучающихся студентов позволяет в перспективе оценить объем государственных затрат на финансирование образования [2].

 


 

1. Анализ технического задания

 

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

Объектом дипломного проектирования является web-сайт, который позволяет проводить расчет и прогнозирование возможностей системы общего образования, а также представлять результаты этих действий в виде таблиц(Excel, Html, Pdf) и диаграмм (гистограмм, линейных графиков и др.). Web-сайт включает в себя несколько компонентов:

-компонент сбора данных;

-компонент прогнозирования;

-компонент новостной ленты;

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

Базовые требования и ограничения к проекту:

1) К аппаратному обеспечению:

-персональный компьютер с установленной операционной системой семейства Windows, Linux или Mac OS;

2) К программному обеспечению:

Программное обеспечение, требуемое для разработки системы:

-операционная система семейства Windows, Linux или MacOS;

-браузер с нативной поддержкой svg изображений;

-веб-сервер Apache;

языкпрограммированияphp,JavaScript.

-язык разметки HTML;

-интегрированная среда разработки NetBeans 7.0;

-case-средство Erwin;

-СУБД MySQL.

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

-операционная система семейства Windows, Linux или MacOS;

-браузер с поддержкой векторных SVG изображений.

Требования к эргономике и эффективности. Система должна:

-работать максимально эффективно, обмены информацией между сервером и клиентом должны быть минимальны;

-поддерживать принцип открытости компонентов среды разработки с возможностью последующей модификации.

Быть достаточно «легкой» по объему графических элементов и обеспечивать достаточную скорость загрузки информации;

Обеспечивать легкую идентификацию раздела, в котором находится пользователь;

Корректно отображаться при возможных разрешениях монитора;

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

обеспечиватьприемлемыйрезультатприраспечаткеинформациинапринтере.

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


 

2. Обзор и анализ технологий, языков программирования и СУБД для создания системы

 

2.1 Клиентские языки программирования

 


JavaScript — объектно-ориентированный скриптовый язык программирования. JavaScript используется в клиентской части веб-приложений клиент-серверных программ, в котором клиентом выступает браузер, а сервером — веб-сервер, имеющих распределённую между сервером и клиентом логику. Обмен информацией в веб-приложениях происходит по сети. Одним из преимуществ такого подхода является тот факт, что клиенты не зависят от конкретной операционной системы пользователя, поэтому веб-приложения являются кроссплатформенными сервисами. [3]

Название «JavaScript» является зарегистрированным товарным знаком компании Oracle Corporation.

Основные архитектурные черты:

-динамическая типизация;

-слабая типизация;

-автоматическое управление памятью;

-прототипное программирование;

-функции как объекты первого класса.

На JavaScript оказали влияние многие языки, при разработке была цель сделать язык похожим на Java, но при этом лёгким для использования непрограммистами. Языком JavaScript не владеет какая-либо компания или организация, что отличает его от ряда языков программирования, используемых в веб-разработке.

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

Возможности языка

JavaScript обладает рядом свойств объектно-ориентированного языка, но реализованное в языке прототипирование обуславливает отличия в работе с объектами по сравнению с традиционными объектно-ориентированными языками. Кроме того, JavaScript имеет ряд свойств, присущих функциональным языкам— функции как объекты первого класса, объекты как списки, карринг, анонимные функции, замыкания— что придаёт языку дополнительную гибкость [4].

Несмотря на схожий с Си синтаксис, JavaScript по сравнению с языком Си имеет коренные отличия:

- объекты, с возможностью интроспекции;

- функции как объекты первого класса;

- автоматическое приведение типов;

- автоматическая сборка мусора;

- анонимные функции.

В языке отсутствуют такие полезные вещи, как:

- модульная система: JavaScript не предоставляет возможности управлять зависимостями и изоляцией областей видимости;

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

- стандартные интерфейсы к веб-серверам и базам данных;

- система управления пакетами, которая бы отслеживала зависимости и автоматически устанавливала их.

Семантика и синтаксис

Синтаксис языка JavaScript во многом напоминает синтаксис Си и Java, семантически же язык гораздо ближе к Self, Smalltalk. В JavaScript:

- все идентификаторы регистрозависимы,

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

- названия переменных не могут начинаться с цифры,

- для оформления однострочных комментариев используются //, многострочные и внутристрочные комментарии начинаются с /* и заканчиваются */. [4]


Структура языка

Структурно JavaScript можно представить в виде объединения трёх чётко различимых друг от друга частей:

- ядро;

- объектная модель браузера;

- объектная модель документа.

Если рассматривать JavaScript в отличных от браузера окружениях, то объектная модель браузера и объектная модель документа могут не поддерживаться.

Объектная модель браузера

Объектная модель браузера — браузеро-специфичная часть языка, являющаяся прослойкой между ядром и объектной моделью документа. Основное предназначение объектной модели браузера — управление окнами браузера и обеспечение их взаимодействия. Каждое из окон браузера представляется объектом window, центральным объектом BOM (browser object model). Объектная модель браузера на данный момент не стандартизирована, однако спецификация находится в разработке WHATWG (Web Hypertext Application Technology Working Group) и W3C (World Wide Web Consortium).

Помимо управления окнами, в рамках объектной модели браузера, браузерами обычно обеспечивается поддержка следующих сущностей:

- управление фреймами,

- поддержка задержки в исполнении кода и зацикливания с задержкой,

- системные диалоги,

- управление адресом открытой страницы,

- управление информацией о браузере,

- управление информацией о параметрах монитора,

- ограниченное управление историей просмотра страниц,

- поддержка работы с HTTP cookie.

Объектная модель документа

Объектная модель документа— интерфейс программирования приложений для HTML и XML-документов. Согласно DOM (document object model) документу можно поставить в соответствие дерево объектов, обладающих рядом свойств, которые позволяют производить с ним различные манипуляции:

- получение узлов,

- изменение узлов,

- изменение связей между узлами,

- удаление узлов.

Расположение внутри тега

Спецификация HTML описывает набор атрибутов, используемых для задания обработчиков событий. Пример использования:

<ahref="delete.php"onclick="returnconfirm('Вы уверены?');">Удалить</a>

 

Отделение от разметки

В приведённом выше примере при нажатии на ссылку функция вызывает модальное окно с надписью «Вы уверены?» и блокирует переход по ссылке. Этот код будет работать, если в браузере есть и включена поддержка JavaScript, иначе переход по ссылке произойдёт без предупреждения.

Использование кода JavaScript внутри HTML тегов является отрицательной чертой. Зачастую гораздо удобнее и правильнее снабдить ссылку идентификатором, и реализовывать тот же функционал отдельно от разметки:

window.onload=function(){var linkWithAlert = document.getElementById("alertLink");linkWithAlert.onclick=function(){returnconfirm('Выуверены?');};};

 

Безопасность

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


- JavaScript-программы выполняются в среде браузера, в которой они могут выполнять только ограниченный круг действий, а не задачи общего назначения (например, создание файлов, работа с сокетами),

- для JavaScript-кода применяется политика общего происхождения, в соответствии с которой скрипт, встроенный в страницу, не может получить доступ к ряду свойств объектов другой страницы (в частности, к большинству свойств объекта document) при отличии в протоколе, хосте и номере порта этих страниц.

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

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

Программы на 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++.

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

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

-автоматическое управление памятью;

-расширенные возможности обработки исключительных ситуаций;

-богатый набор средств фильтрации ввода/вывода;

-набор стандартных коллекций, таких как массив, список и стек;

-наличие простых средств создания сетевых приложений;

-наличие классов, позволяющих выполнять HTTP-запросы и обрабатывать ответы;

-встроенные в язык средства создания многопоточных приложений;

-унифицированный доступ к базам данных:

-на уровне отдельных SQL-запросов — на основе JDBC, SQLJ;

-на уровне концепции объектов, обладающих способностью к хранению в базе данных — на основе Java Data Objects и Java Persistence API;

-поддержка шаблонов (начиная с версии 1.5);

-параллельное выполнение программ.

Преобразования при математических операциях

В языке Java действуют следующие правила:

-Если один операнд имеет тип double, другой тоже преобразуется к типу double.

-Иначе, если один операнд имеет тип float, другой тоже преобразуется к типу float.

-Иначе, если один операнд имеет тип long, другой тоже преобразуется к типу long.

-Иначе оба операнда преобразуются к типу int.

Данный способ неявного преобразования встроенных типов полностью совпадает с преобразованием типов в C++. [30]

Сборка мусора

В языке Java невозможно явное удаление объекта из памяти — вместо этого реализована сборка мусора. Традиционным приёмом, дающим сборщику мусора «намёк» на освобождение памяти, является присваивание переменной пустого значения null. Это, однако, не значит, что объект, заменённый значением null, будет непременно и немедленно удалён. Данный приём всего лишь устраняет ссылку на объект, то есть отвязывает указатель от объекта в памяти. При этом следует учитывать, что объект не будет удален сборщиком мусора, пока на него указывает хотя бы одна ссылка из используемых переменных или объектов. Существуют также методы для инициации принудительной сборки мусора, но не гарантируется, что они будут вызваны исполняющей средой, и их не рекомендуется использовать для обычной работы.

Результатом разработки приложения на языке Java является Java-апплет.

Java-апплет — прикладная программа на Java в форме байт-кода. Java-апплеты выполняются в веб-браузере с использованием виртуальной Java машины (JVM) - автономном инструменте для тестирования апплетов. Java-апплеты были внедрены в первой версии языка Java в 1995.

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

Техническая информация

Java-апплеты в большинстве браузеров выполняются в «песочнице», предотвращая их доступ к локальным данным. Код апплета загружается с веб-сервера, и браузер либо вставляет апплет в веб-страницу, либо открывает новое окно с собственным пользовательским интерфейсом апплета. Апплет может быть отображен на веб-странице путем использования устаревшего HTML элемента applet, или рекомендуемого элемента object. Этим определяется месторасположение и источник апплета.

Преимущества апплетов

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

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

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

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

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

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

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

Недостатки апплетов

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

2. он не может запуститься до тех пор, пока не запустится виртуальная Java-машина, и это может занять значительное время при первом запуске;

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

4. некоторые организации допускают только программное обеспечение, установленное администраторами. В результате многие пользователи не могут видеть апплеты по умолчанию.

5. апплеты могут потребовать использования определенного JRE.

 

2.2 Серверные языки программирования

 

PHP – интерпретируемый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов [5].

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

- автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;

- взаимодействие с большим количеством различных систем управления базами данных (MySQL, SQLite, PostgreSQL, Oracle и т.д.);

- автоматизированная отправка HTTP-заголовков;

- работа с HTTP-авторизацией;

- работа с cookies и сессиями;

- работа с локальными и удалёнными файлами, сокетами.

- обработка файлов, загружаемых на сервер;

Особенности интерпретатора [7]

PHP-скрипты, обычно, обрабатываются интерпретатором в порядке, обеспечивающем кроссплатформенность разработанного приложения:

1. лексический анализисходного кода и генерация лексем,

2. синтаксический анализ полученных лексем,

3. генерация байт-кода,

4. выполнение байт-кода интерпретатором (без создания исполняемого файла).

Для увеличения быстродействия приложений, возможно, использование специального программного обеспечения, так называемых акселераторов. Принцип их работы заключается в кэшировании однажды сгенерированного байт-кода в памяти и/или на диске, таким образом, из процесса работы приложения исключаются этапы 1—3, что в общем случае ведёт к значительному ускорению работы. Наибольшая эффективность акселератора достигается на скриптах с большим количеством исходного кода, содержащих небольшое количество операций, ресурсоёмких при выполнении.

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

Расширения

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


 

Параметры настройки

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

Синтаксис

Синтаксис PHP подобен синтаксису языка Си. Некоторые элементы, такие как ассоциативные массивы и цикл foreach, заимствованы из Perl.

Для работы программы переменные не требуется описывать. Любая программа может начинаться непосредственно с оператора PHP.

PHP исполняет код, находящийся внутри ограничителей, таких как <?php?>. Всё, что находится вне ограничителей, выводится без изменений.

Имена переменных начинаются с символа $, тип переменной объявлять не нужно. Имена переменных, функций и классов чувствительны к регистру. Константы также чувствительны к регистру. Инструкции разделяются с помощью точки с запятой (;), за исключением некоторых случаев, после объявления конструкции if/else и циклов.

PHP поддерживает три типа комментариев: в стиле языка Си (ограниченные /* */), C++ (начинающиеся с // и идущие до конца строки) и оболочки UNIX (с # до конца строки).

Типы данных [7]

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

К скалярным типам данных относятся:

- целый тип (integer),

- вещественный тип данных (float, double),

- логический тип (boolean),

- строковый тип (string),

- и специальный тип NULL.

К нескалярным типам относятся:

- «ресурс» (resource),

- массив (array),

- объект (object),

- анонимная функция (closure) или псевдотип callback.

Диапазон целых чисел (integer) в PHP зависит от платформы (обычно, это диапазон 32-битных знаковых целых чисел, то есть, от −2 147 483 648 до 2 147 483 647). Числа можно задавать в десятичной, восьмеричной и шестнадцатеричной системах счисления. Диапазон вещественных чисел (double), также, зависит от платформы (для 32-битной архитектуры диапазон позволяет оперировать числами от ±1.7×10−308 до ±1.7×10+308).

PHP предоставляет разработчикам логический тип (boolean), способный принимать только два значения TRUE («истина») и FALSE («ложь»). При преобразовании в логический тип число 0, пустую строку, ноль в строке «0», NULL и пустой массив считаются равными FALSE. Все остальные значения автоматически преобразуются в TRUE.

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

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

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

Объектно-ориентированное программирование

PHP поддерживает широкие возможности объектно-ориентированного программирования, полная поддержка которых была введена в пятой версии языка.

Класс в PHP объявляется с помощью ключевого слова class. Методы и поля класса могут быть общедоступными (public, по умолчанию), защищёнными (protected) и скрытыми (private). PHP поддерживает все три основных механизма ООП — инкапсуляцию, полиморфизм и наследование (родительский класс указывается с помощью ключевого слова extends после имени класса). Поддерживаются интерфейсы (ставятся в соответствие с помощью implements). Разрешается объявление финальных, абстрактных методов и классов. Множественное наследование классов не поддерживается, однако класс может реализовывать несколько интерфейсов. Для обращения к методам родительского класса используется ключевое слово parent.

Классы в PHP имеют ряд специальных методов, начинающихся с двух символов подчёркивания. Особо стоит отметить конструктор (__construct(), в версиях до 5.0 конструктором служил метод, одноимённый с классом) и деструктор (__destruct()), а также методы чтения (__get()) и записи (__set()), свёртывания (__sleep()) и развёртывания (__wake()), клонирования (__clone()) и др. Эти методы являются достаточно гибким инструментом: переопределяя их, можно добиться существенного изменения поведения объекта [7].

Экземпляры класса создаются с помощью ключевого слова new, обращение к полям и методам объекта производится с использованием оператора «стрелка». Для доступа к членам класса из его методов используется переменная $this.

Пример кода на языке PHP:

 

$U = 0.3;//константа сглаживания уровня

$V = 0.3;//константа сглаживания тренда

$B = $arr;

$keys = array_keys($B);

$C [ $keys [0] ] = $B [ $keys [0] ];

for($i = 1; $i < sizeof($B); $i++)

{

if($i == 1){

$C [ $keys [$i] ] = $B [ $keys [$i] ];

$D [ $keys [$i] ] = $B [ $keys [$i] ]-$B [ $keys [$i-1] ];

continue;

}

$C [ $keys [$i] ] = $U * ($C [ $keys [$i-1] ] + $D [ $keys [$i-1] ])+(1-

$U)*$B [ $keys [$i] ];

$D [ $keys [$i] ] = $V * $D [ $keys [$i-1] ]+(1-$V)*($C [ $keys [$i] ] - $C [

$keys [$i-1] ]);

}

 

//Прогноз по полученному тренду

for($j = 0; $j < $forecastPeriod; $j++)

{

$keys [$i] = $keys [$i-1]+1;

$C [ $keys [$i] +$j] = $C [ $keys [$i-1] ]+$D [ $keys [$i-1] ]*($j+1);

}

 

Приведенный выше пример кода взят из реализации метода Хольта модуля прогнозирования.

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

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







Date: 2016-02-19; view: 531; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.053 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию