ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ

ВВЕДЕНИЕ

В соответствии с целями изучения дисциплины согласно учебной программе студент, завершивший изучение данной учебной дисциплины должен:

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

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

Иметь навык:владения инструментальными средствами обработки информации.

Процесс изучения дисциплины направлен на формирование элементов следующих компетенций в соответствии с ФГОС ВПО и ООП ВПО по данному направлению подготовки (специальности):

общекультурными (ОК):

- владеет культурой мышления, способен к обобщению, анализу, восприятию информации, постановке цели и выбору путей ее достижения (ОК-1);

- осознает сущность и значение информации в развитии современного общества; владеет основными методами, способами и средствами получения, хранения, переработки информации (ОК-12);

- имеет навыки работы с компьютером как средством управления информацией, способен работать с информацией в глобальных компьютерных сетях (ОК-13);

профессиональных (ПК):

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

- готовность обеспечивать безопасность и целостность данных информационных систем и технологий (ПК-32).

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

ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ

ЦЕЛЬ РАБОТЫ

Изучить основные операторы работы с данными в языке программирования Java.

ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Среда разработки Eclipse

Eclipse представляет собой основанную на Java расширяемую платформу разработки с открытым исходным кодом. По сути – это просто среда разработки и набор сервисов для построения приложений на основе встраиваемых компонентов (плагинов). К счастью, в составе Eclipse имеется стандартный набор плагинов, в том числе хорошо известный инструментарий – Java Development Tools (JDT).

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

Эта целостность и последовательность характерны не только для инструментов Java-разработки. Хотя Eclipse написан на Java, использовать его можно и с другими языками. К примеру, уже имеются (или разрабатываются) плагины, поддерживающие такие языки программирования как C/C++ и COBOL. Структура Eclipse может также использоваться как основа для других типов приложений, не имеющих отношения к разработке ПО, например, систем управления контентом.

Великолепным примером приложения на основе Eclipse является ПО IBM® Rational® Software Architect, которое легло в основу семейства инструментов IBM для разработки на Java.

ПРАКТИЧЕСКАЯ РАБОТА

Установка и запуск Eclipse

Для того, чтобы скачать среду разработки Eclipse, необходимо перейти на страницу http://www.eclipse.org/downloads/ и скачать Eclipse IDE for Java EE Developers (рис. 1.9).

ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru

Рис. 1.9. Страница загрузки Eclipse IDE

Скаченный архив распаковать и запустить eclipse.exe (рис. 1.10). Для удобства пользования Eclipse IDE рекомендуется переместить распакованный архив в удобное место или создать ярлык программы.

ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru

Рис. 1.10. Файлы скаченного архива после распаковки

При запуске будет предложено выбрать расположение рабочей папки, для хранения проектов и т.д. (рис. 1.11).

ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru

Рис. 1.11. Выбор папки проектов

После запуска Eclipse необходимо создать новый проект Java. Для этого необходимо перейти по Файл->New->Java Project. Задаем имя проекту и жмем Finish (рис. 1.12).

Далее необходимо создать новый класс в проекте. Для этого щелкнуть правой кнопкой по src в окне Package Explorer и создать новый класс (рис. 1.13).

Все готово для начала работы (рис. 1.14).

ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru

Рис. 1.12. Создание нового проекта Java

ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru

Рис. 1.13. Создание нового класса Java

ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru

Рис. 1.14. Редатор кода

ЗАДАНИЕ К ЛАБОРАТОРНОЙ РАБОТЕ

Задание 1.

1. Определить сумму чисел от 3 до 99 кратных числу 3.

2. Вывести на экран таблицу квадратов целых чисел от 1 до 10.

3. Получить произведения числа а = 1234 на числа 9, 18, 27, ... 81.

4. Определить количество цифр в натуральном числе N.

5. Вычислить факториал натурального числа N.

6. Найти сумму всех четных натуральных чисел от 1 до 100.

7. Напечатать таблицы температур по Цельсию от 0 до 100 градусов с дискретностью в один градус и их эквивалентов по шкале Кельвина (1 градус Цельсия = 273 Кельвина.)

8. Определить среднее арифметическое чисел от 50 до 100 кратных числу 5.

9. Написать программу, подсчитывающую количество четных и нечетных цифр в числе.

10. Задано число P. Определить количество его делителей.

Задание 2.Посчитать сумму по приведенным ниже данным (y=const) (см. табл. 1.1, 1.2):

Таблица 1.1

Данные, для здания №2

Функция Отрезок и шаг
ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru [2,3] 0,1
ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru [0,2] 0,2
ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru [0,4;1] 0,05
ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru [1;3] 0,2
ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru [1;2] 0,1

Окончание табл. 1.1

ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru [2;4] 0,2
ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru [0;1] 0,1
ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru [1;2] 0,04
ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru [0;4] 0,5
ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru [2;3] 0,05

Примечание: Для возведения в степень, использования тригонометрических функций и логарифмов используйте методы (поля) класса Math.

Таблица 1.2

Некоторые методы (поля) класса Math

Метод (Поле) Описание
abs(Double) Возвращает абсолютное значение числа двойной точности с плавающей запятой
cos(), sin(), tan() Возвращает косинус, синус, тангенс указанного угла
exp() Возвращает экспоненту, возведенную в указанную степень
log(Double) Возвращает натуральный логарифм (с основанием e) указанного числа
pow( _, _) Возвращает указанное число, возведенное в указанную степень
E Представляет основание натурального логарифма, определяемое константой e
PI Представляет отношение длины окружности к ее диаметру, определяемое константой π

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

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Опишите основные инструкции управления.

2. В чем состоит отличие между инструкциями выбора if-else и switch-case?

3. Каковы особенности использования сложенных инструкций выбора?

4. Приведите пример цикла for с модификацией счетчика в теле цикла?

5. В чем заключается различие инструкций break и continue?

ЦЕЛЬ РАБОТЫ

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

- Изучение различных картографических сервисов;

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

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

Интеграция карт с YandexMap

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

Создать текстовый документ (блокнот) формата .txt, где будет код программы:

<!DOCTYPE html>

<html>

<head>

<meta http-equiv = “Content-Type” content= “text/html; charset=utf-8” />

<title>YandexMap Example</title>

</head>

<body>

<!-- задаем стиль и разметку страницы. -->

<div id=“map” style=“width:800px; height:600px”></div>

</body>

</html>

Следующий шаг, написание кода создания карты внутри тега <Head>:

<!--

Подключаем API карт

Параметры:

-load=package.standart - основные компоненты;

-lang=ru-Ru - язык русский.

-->

<script src = “http://api-maps.yandex.ru/2.0/?load=package.standart&lang=ru-RU” type=“text/javascript”> </script> <script type=“text/javascript”>

Var myMap;

//Дождемся загрузки API и готовности DOM.

ymaps.ready(init);

function init () {

//Создание экземпляра карты и его привязка

//к контейнеру с заданным id(“map”).

myMap = new ymaps.Map(‘map’,{

//При инициализации карты обязательно нужно //указать ее центр и коэффициент //масштабирования.

center:[55.76, 37.64], //Москва

zoom:10

});

} </script>

Далее, необходимо сохранить текстовый документ в формате .html и открыть его с помощью ве-бразера. В результате должна открыться карта (рис. 2.1).

ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru

Рис. 2.1. Созданная карта

Добавление пользовательского интерфейса (код следует писать внутри тега <Head>):

<script type = “text/javascript”>

ymaps.ready(){

//Для добавления элемента управления на

//карту используется поле map.controls.

//Это поле содержит ссылку на экземпляр

//класса map.control.Manager.

//Добавление элемента в коллекцию производится

//с помощью метода add.

//В метод add можно передать строковый //идентификатор элемента управления и

//его параметры.

myMap.controls

//Кнопка изменения масштаба

.add(‘zoomControl’, { left: 5, top: 5})

//Список типов карты

.add(‘typeSelector’)

//Стандартный набор кнопок

.add(‘mapTools’, {left: 35, top: 5});

//Также в метод add можно передать

//экземпляр класса элемента управления.

//Например, панель управления пробками.

var trafficControl = new ymaps.control.TrafficControl();

myMap.Controls

.add(trafficControl)

//В конструкторе элемента управления

//можно задавать расширенные параметры,

//например, тип карты в обзорной карте.

.add(new ymaps.MiniMap({

type: ‘yandex#publicMap’

}));}

В результате, приложение примет следующий вид, как показано на рисунке 2.2.

ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru

Рис. 2.2. Конечный вид карты

Интеграция карт с 2GIS

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

Для этого создается текстовый документ (блокнот) формата .txt, где будет код программы:

<!DOCTYPE html>

<html>

<head>

<title>2GIS Example</title>

</head>

<body>

<div id = “myMapId” style = “width: 500 px; height: 400 px”></div>

</body>

</html>

Далее, пишется код создания карты внутри тега <Head>:

<script type = “text/javascript” src = “http://maps.api.2gis.ru/1.0”> </script>

<script type = “text/javascript”>

//Создаем обработчик загрузки страницы:

DG.autoload(function(){

//Создаем объект карты,

//связанный с контейнером:

var myMap = new DG.Map(‘myMapId’);

//Устанавливаем центр карты и

//коэффициент масштабирования:

myMap.setCenter ( new DG.GeoPoint

(82.927810142519, 55.028936234826), 15);

}); </script>

и сохраняется текстовый документ в формате .html (рис. 2.3).

ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru

Рис. 2.3. Созданная карта

Код добавления пользовательского интерфейса (внутри тега <Head>, сам код должен быть написан внутри тега <script>):

//Добавляем элементуправления с

//коэффициентом масштабирования:

myMap.Controls.add(new DG.Controls.Zoom());

//Создаем балун:

var myBalloon = new DG.Balloons.Common({

//Местоположение на которое указывает балун:

geoPoint: new DG.GeoPoint(82.927810142519, 55.028936234826),

//Устанавливаем текст, который будет отображаться

//при открытии балуна:

contentHtml: ‘Привет!<br>Вы кликнули по мне:)’

});

//Создаем маркер:

var myMarker = new DG.Markers.Common({

//Местоположение на которое указывает маркер:

geoPoint: new DG.GeoPoint(82.927810142519, 55.028936234826),

//Функция, вызываемая при клике по маркеру:

clickCallback: function() {

//Если балун еще не был добавлен на карту,

//добавляем его:

if(! myMap.balloons.getDefaultGroup().contains(myBalloon)){

myMap.balloons.add(myBalloon);

} else {

//Показываем уже ранее добавленный

//на карту балун

myBalloon.show(); }

}

});

//Добавить маркер на карту:

myMap.markers.add(myMarker);

Конечный вид карты приведен на рисунке 2.4.

ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru Рис. 2.4. Конечный вид карты

Интеграция карт с EsriMap

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

Создание пустой веб-страницы:

<html>

<head>

<meta http-eguiv = “Content-Type” content = “text/html; charset=utf-8”>

<meta http-eguiv = “X-UA-Compatible” content = “IE=7, IE=9, IE=10”>

<!--The viewport meta tag is used to improve the presentation and behavior of the samples on iOS devices-->

<meta name = “viewport” content=“initial-scale=1, maximum-scale=1, user-scalable=no”>

<title>Overview Map</title>

</head>

<body class = “claro”>

<div data-dojo-type = “dijit/layout/BorderContainer”

data-dojo-props=“design: ‘headline’, gutters:false”

style=“width: 100%; height: 100%; margin:0;”>

<div id=”map”

data-dojo-type=“dijit/layout/ContentPane”

data-dojo-props=“region: ‘center’”

style=“padding:0”>

</div>

</div>

</body>

</html>

Код создания карты (рис. 2.6):

<link rel = “stylesheet” href = “http://js.arcgis.com/3.7/js/dojo/dijit/themes/claro/claro.css”>

<link rel = “stylesheet” href = “http://js.arcgis.com/3.7/js/esri/css/esri.css”>

<style>

<script src=“http://js.arcgis.com/3.7/”></script>

<script>

var map;

require([“esri/map”, “esri/dijit/OverviewMap”, “dojo/parser”, “dijit/layout/BorderContainer”, “dijit/layout/ContentPane”, “dojo/doReady!”],

function (Map, OverviewMap, parser){

parser.parse();

map = new Map(“map”, {

basemap: “topo”,

center: [-122.445, 37.752],

zoom: 14 });

var overviewMapDijit = new OverviewMap({

map: map,

visible: true });

overviewMapDijit.startup(); });

</script>

ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru

Рис. 2.6. Созданная карта

Чтобы увидеть другие виды карты, нужно найти в коде строку basemap: «topo», и поменять «topo» на любое из них: «satellite», «hybrid», «topo», «gray», «ocean», «osm», «national_geographic». Тогда вид карты изменится (рис. 2.7).

ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru

Рис. 2.7. Вид со спутника (satellite)

ЗАДАНИЕ НА ЛАБОРАТОРНУЮ РАБОТУ

Выполнить пункты 3.1-3.6 методических указаний.

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

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Что такое JavaScript?

2. Что такое HTML?

3. Что такое Веб-страница?

4. Что такое Динамическая страница?

5. Основные тэги HTML?

ЦЕЛЬ РАБОТЫ

Изучение студентами основ работы с PHPDesigner.

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

Для создания нового проекта необходимо запустить среду разработки phpDesigner 7 из меню «Пуск» -> «Все программы» и создать новый проект из меню «File» -> «New» -> «PHP».

В результате этих действий будет открыто основное окно разработки в среде PhpDesigner 7. Это окно уже содержит готовый текстовый шаблон для создания программы.

После создания главной формы необходимо написать код web-приложения, создание так называемого «скелета», который в дальнейшем будет модифицирован, с добавлением создаваемых сценариев.

<html>

<head> </head>

<body>

<p align=”center”> Приложение помощи в решении анаграмм </p>

</body>

<?php

?>

</html>

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

Для создания сценария «Счетчик посещений», необходимо создать пустой PHP документ, а также несколько текстовых файлов, в которых будет храниться информация о посетителях (рис.3.1).

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

ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru

Рис. 3.1. Создание директории счетчик

Листинг сценария счетчик:

<?php

$file_name = "counter.txt";

if ( !file_exists($file_name ) ) {

$fp = fopen ($file_name, "w");

fwrite ( $fp, "0");

fclose ( $fp );

}

$fp = fopen($file_name, "r");

$counter = fread($fp, 10);

fclose ($fp);

$counter++;

$fp = fopen($file_name, "w");

fwrite($fp, $counter);

fclose($fp);

$file_namev = "counterv.txt";

if ( !file_exists($file_namev ) ) {

$fp = fopen ($file_namev, "w");

fwrite ( $fp, "0");

fclose ( $fp );

}

$fp = fopen($file_namev, "r");

$counterv = fread($fp, 10);

fclose ($fp);

// опрашиваем значение cookie

if(!isset($_COOKIE['visitor'])) {

setcookie("visitor", "yes");

$counterv++;

$fp = fopen($file_namev, "w");

fwrite($fp, $counterv);

fclose($fp);

}

//счет посетителей за последние 24 часа

$file_n = "count.txt";

/* если не существует, создаем пустой файл с нулем посещений по умолчанию */

if(!file_exists($file_n)) file_put_contents($file_n,0);

$count = file_get_contents($file_n);

if(!isset($_COOKIE['visitor24'])) {

setcookie("visitor24", "yes");

$count++;

file_put_contents('count.txt',$count);

}

?>

Данный сценарий считывает количество посещений приложения, конечный результат подсчета выводит в файл count.txt.

Созданием следующего сценария является защита от «ботов».

Бот – программа, автоматически выполняющая действия на компьютере вместо людей.

CAPCHA – Completely Automated Public Turing test to tell Computers and Humans Apart.

Сценарий позволяет предотвратить обращения к сайту «ботов», что позволяет снизить нагрузку на приложение. Далее защиты от ботов будем именовать «Капча». Данный сценарий содержит в себе директорию из 4 файлов (рис. 3.2).

ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru

Рис. 3.2. Директория «Капча»

Листинг сценария «Капча» состоит из трех подсценариев.

Сценарий генерации картинки.

<?php

$width = 100; //Ширина изображения

$height = 60; //Высота изображения

$font_size = 16; //Размер шрифта

$let_amount = 4; //Количество символов, которые нужно набрать

$fon_let_amount = 30; //Количество символов на фоне

$font = "cour.ttf"; //Путь к шрифту

//набор символов

$letters = array("a","b","c","d","e","f","g");

//цвета

$colors = array("90","110","130","150","170","190","210");

$src = imagecreatetruecolor($width,$height); //создаем изображение

$fon = imagecolorallocate($src,255,255,255); //создаем фон

imagefill($src,0,0,$fon); //заливаем изображение фоном

for($i=0;$i < $fon_let_amount;$i++) //добавляем на фон буковки

{

//случайный цвет

$color = imagecolorallocatealpha($src,rand(0,255),rand(0,255),rand(0,255),100);

//случайный символ

$letter = $letters[rand(0,sizeof($letters)-1)];

//случайный размер

$size = rand($font_size-2,$font_size+2);

imagettftext($src,$size,rand(0,45),

rand($width*0.1,$width-$width*0.1),

rand($height*0.2,$height),$color,$font,$letter);

}

for($i=0;$i < $let_amount;$i++) //то же самое для основных букв

{

$color = imagecolorallocatealpha($src,$colors[rand(0,sizeof($colors)-1)],

$colors[rand(0,sizeof($colors)-1)],

$colors[rand(0,sizeof($colors)-1)],rand(20,40));

$letter = $letters[rand(0,sizeof($letters)-1)];

$size = rand($font_size*2-2,$font_size*2+2);

$x = ($i+1)*$font_size + rand(1,5); //даем каждому символу случайное смещение

$y = (($height*2)/3) + rand(0,5);

$cod[] = $letter; //запоминаем код

imagettftext($src,$size,rand(0,15),$x,$y,$color,$font,$letter);

}

$cod = implode("",$cod); //переводим код в строку

session_start();

$_SESSION['code']=$cod;

header ("Content-type: image/gif"); //выводим готовую картинку

imagegif($src);

?>

Сценарий проверки введенного кода.

<?php

session_start();

$code=$_SESSION['code'];

if($_POST['captcha_code']=="" || $_POST['captcha_code']==" ")

{

die("Введите символы!");

}

else

{

$p_code=$_POST['captcha_code'];

if($p_code!=$code)

{

die("Неверно введены символы!");

}

else

{

//Тут делаем все что должно быть,

//если капча введена верно

}

}

?>

Сценарий интерфейса «Капча».

<html>

<head>

</head>

<img src="captcha.php" />

<form action="check.php" method="POST">

<input type="text" name="captcha_code">

<input type="submit" value="OK" name="req">

</form>

</html>

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

Так как язык PHP является серверным, то для того чтобы считывать пользовательские данные необходимо создать два файла string.txt, в котором хранятся символы, и char.txt, который содержит данные о количестве символов в слове (рис. 3.3).

ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru

Рис. 3.3. Вспомогательные файлы сценария «Анаграмма»

Листинг сценария «Анаграмма»:

<html>

<head></head>

<body>

<p align="center">

<?php

$fp=fopen('string.txt','r');

while(!feof($fp))

{

$str=fgets($fp);

$str=rtrim($str);

}

fclose($fp);

$n=$str;

$fp1=fopen('char.txt','r');

while(!feof($fp1))

{

$str1=fgets($fp1);

$str1=rtrim($str1);

}

fclose($fp1);

$m=$str1;

$arr1 = str_split($n);

$flag=0;

$x=(pow(10,$m)-1)/$m;

$y=(pow(10,$m-1));

for ($i=$y;$i<$x;$i++)

{

$arr3=str_split($i);

if (($arr3[0]<>$arr3[1]) and ($arr3[0]<>$arr3[2]) and ($arr3[1]<>$arr3[2]))

{

$b=$i;

if ($flag<>1)

{

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

{

if ($b%10<$m)

{

$arr2[$j]=$b%10;

$b=$b/10;

}

else

{

$flag=1;

}

}

}

if ($flag<>1)

{

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

{

$b=$arr2[$j];

print_r($arr1[$b]);

}

echo("</br>");

}

$flag=0;

}

}

?>

</p>

</body>

</html>

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

Создание второстепенного сценария «Палиндром», этот сценарий содержит базу слов-палиндромов, которую пользователи смогут просматривать в целях повышения эрудиции. Для этого создаем два файла палиндром.php и база.txt (рис. 3.4).

ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru

Рис. 3.4. Создание палиндром.php и база.txt.

Листинг сценария «Палиндром».

<html>

<body>

<body text="dark green">

<p align="justify">

<?php

$fp=fopen('база.txt','r');

while(!feof($fp))

{

$str=fgets($fp);

echo($str);

$str=rtrim($str);

}

fclose($fp);

?>

</p>

</body>

</html>

База содержит примеры слов – палиндромов (рис. 3.5).

ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ - student2.ru

Рис. 3.5. Слова – палиндромы

ЗАДАНИЕ НА ЛАБОРАТОРНУЮ РАБОТУ

Выполните общие команды по пункту 3.

Создайте собственную программу в соответствии с вашим индивидуальным заданием.

Оформить отчет согласно требованиям.

Варианты:

1. Создать сценарий, позволяющий производить проверку на «ботов».

2. Создать сценарий, позволяющий производить подсчет посетителей страницы.

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

4. Создать сценарий, позволяющий производить поиск по документу.

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

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Что означает PHP?

2. В чем заключается межплатформенность PHP?

3. В чем отличие циклов с пост и предусловием?

4. Кем был создан язык программирования PHP?

СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ

1. Васильев А. Н. Java. Объектно-ориентированное программи-рование: для магистров и бакалавров: базовый курс по объектно-ориентированному программированию / А. Н. Васильев. – Санкт-Петербург [и др.]: Питер, 2013. – 397 с. – ISBN 978-5-496-00044-4. – <URL:http://www.library.ugatu.ac.ru/pdf/teach/Vasilyev_Java_2012.pdf>.

2. Иванова Г. С. Технология программирования: учебник / Г. С. Иванова. – 3-е изд., стер. – Москва: Кнорус, 2013. – 336 с.

3. Каймин В. А. Информатика: / В. А. Каймин. – Изд. 6-е. – Москва: Инфра-М, 2015. – 285 с.

4. Кравец О. Я. Практикум по разработке интернет-приложений / О. Я. Кравец, Е. А. Солдатов, М. В. Селиванова; ГОУ ВПО УГАТУ. – 2-е изд. перераб. и доп. – Уфа: УГАТУ, 2008. – 225 с.

5. Кузнецов М. В. Самоучитель PHP 5/6 / М. В. Кузнецов, И. Симдянов. – 3-е изд., [перераб. и доп.]. – Санкт-Петербург [и др.]: БХВ-Петербург, 2014. – 672 с.

6. Лафоре Р. Структуры данных и алгоритмы в Java / Р. Лафоре. – 2-е изд. – Санкт-Петербург [и др.]: Питер Пресс, 2014. – 704 с.

7. Машнин Т. С. Google App Engine Java и Google Web Toolkit: разработка Web-приложений / Т. С. Машнин. – Санкт-Петербург: БХВ-Петербург, 2014. – 352 с.

8. Мельников П. П. Технология разработки HTML-документов / П. П. Мельников. – М.: Финансы и статистика, 2005. – 112 с.

9. Основы WEB-дизайна / Т. И. Сергеева, М. Ю. Сергеев, С. С. Валеев, Ю. Г. Строкина; ГОУ ВПО УГАТУ. – Уфа: УГАТУ, 2009. – 160 с.

10. Подвальный С. Л. Основы интернет-технологий / С. Л. Подвальный, О. Б. Кремер, Д. И. Кардаш; ГОУ ВПО УГАТУ. – Уфа: УГАТУ, 2008. – 153 с.

11. Ульман Л. Основы программирования на PHP: самоучитель / Л. Ульман. – Москва: ДМК ПРЕСС, 2009. – 288 с.

12. Эккель Б. Философия Java. – 4-е изд. – СПб.: Питер, 2009. – 640 с.

ВВЕДЕНИЕ

В соответствии с целями изучения дисциплины согласно учебной программе студент, завершивший изучение данной учебной дисциплины должен:

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

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

Иметь навык:владения инструментальными средствами обработки информации.

Процесс изучения дисциплины направлен на формирование элементов следующих компетенций в соответствии с ФГОС ВПО и ООП ВПО по данному направлению подготовки (специальности):

общекультурными (ОК):

- владеет культурой мышления, способен к обобщению, анализу, восприятию информации, постановке цели и выбору путей ее достижения (ОК-1);

- осознает сущность и значение информации в развитии современного общества; владеет основными методами, способами и средствами получения, хранения, переработки информации (ОК-12);

- имеет навыки работы с компьютером как средством управления информацией, способен работать с информацией в глобальных компьютерных сетях (ОК-13);

профессиональных (ПК):

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

- готовность обеспечивать безопасность и целостность данных информационных систем и технологий (ПК-32).

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

ЛАБОРАТОРНАЯ РАБОТА №1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA. ОСНОВНЫЕ ОПЕРАТОРЫ РАБОТЫ С ДАННЫМИ

ЦЕЛЬ РАБОТЫ

Изучить основные операторы работы с данными в языке программирования Java.

ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Наши рекомендации