Дипломная работа: Интерактивная база данных по дендроклиматологии

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

1. Инструкция обработки XML:

<?php

...

?>

2. Инструкция обработки SGML:

<?

...

?>

3. Инструкция обработки сценариев HTML:

<script language = "php">

...

</script>

4. Инструкция в стиле ASP:

<%

...

%>

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

Дело в том, что PHP, как правило, используется сугубо для программирования приложений, связанных с Интернетом. Однако, PHP можно еще использовать в качестве интерпретатора командной строки, в основном в *nix-системах. Последнее возможно при помощи CORBA и COM интерфейсов, а также при помощи расширения PHP-GTK. При таком использовании PHP возможно решение следующих задач:

создание приложений интерактивной командной строки;

создание кросс-платформенных GUI приложений при помощи библиотеки PHP-GTK;

автоматизация некоторых задач под Windows и Linux

Применение

В области программирования для сети Интернет PHP -- один из популярных скриптовых языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP.

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

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

взаимодействие с большим количеством различных систем управления базами данных (MySQL, MySQLi, SQLite, PostgreSQL, Oracle (OCI8), Oracle, Microsoft SQL Server, Sybase, ODBC, mSQL, IBM DB2, Cloudscape и Apache Derby, Informix, Ovrimos SQL, Lotus Notes, DB++, DBM, dBase, DBX, FrontBase, FilePro, Ingres II, SESAM, Firebird / InterBase, Paradox File Access, MaxDB, Интерфейс PDO);

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

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

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

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

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

работа с XForms;

В настоящее время PHP используется сотнями тысяч разработчиков. Согласно рейтингу корпорации TIOBE, базирующемся на данных поисковых систем, в апреле 2011 года PHP находился на 5 месте среди языков программирования. К крупнейшим сайтам, использующим PHP, относятся Facebook, ВКонтакте, Wikipedia и др.

Входит в LAMP -- распространённый набор программного обеспечения для создания и хостинга веб-сайтов (Linux, Apache, MySQL, PHP).

История возникновения

В 1994 году датский программист Расмус Лердорф создал набор скриптов на Perl/CGI для вывода и учёта посетителей его онлайн-резюме, обрабатывающий шаблоны HTML-документов. Лердорф назвал набор Personal Home Page (Личная Домашняя Страница). Вскоре функциональности и быстроты Perl -- интерпретатора скриптов -- перестало хватать, и Лердорф разработал с использованием языка C новый интерпретатор шаблонов PHP/FI (англ. Personal Home Page / Forms Interpreter -- «Личная Домашняя Страница / Интерпретатор форм»).

В 1997 году после длительного бета-тестирования вышла вторая версия обработчика, написанного на C -- PHP/FI 2.0. Её использовали около 1 % (приблизительно 50 тысяч) всех интернет-доменов мира.

Версия PHP 3.0 подверглась значительной переработке, определившей современный облик и стиль языка программирования. В 1997 году два израильских программиста, Энди Гутманс и Зээв Сураски, полностью переписали код интерпретатора. PHP 3.0 был официально выпущен в июне 1998 года.

Одной из сильнейших сторон PHP 3.0 была возможность расширения ядра дополнительными модулями. Впоследствии интерфейс написания расширений привлёк к PHP множество сторонних разработчиков, работающих над своими модулями, что дало PHP возможность работать с огромным количеством баз данных, протоколов, поддерживать большое число API. Большое количество разработчиков привело к быстрому развитию языка и стремительному росту его популярности. С этой версии акроним php расшифровывается как «PHP: hypertext Preprocessor», вместо устаревшего «Personal Home Page».

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

2. Описание работы программы для подсчета процента общих скачков

Моя программа написана языке программировании Delphi. Основная концепция программы - подсчет процента общих скачков в двух дендрорядах.

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

Составляющие программы

1)Memo

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

2)Edit

Находится на палитре компонентов Standart,представляет собой поле для отображения и редактирования неформатированного текста. Текст набрать на клавиатуре,передать через основную программу.

3)Label

Находится на палитре компонентов Standart и является меткой Используется для размещения не очень длинных сообщений в виде статического текста.

4)Main Menu

Главное меню программы. Компонент способен создавать и обслуживать сложные иерархические меню.

Button

Командная кнопка. Используется для реализации в программе команд с помощью обработчика события OnClick этого компонента.

OpenDialog и SaveDialog

Невидимые объекты Delphi.Используются для загрузки и сохранения файлов в программе.

Принцип работы программы

1)Изначально в программе находится 2 поля memo,2 поля edit, 2 поля label,главное меню и кнопка очистить

2)Сначала в первый столбец memo загружаются толщины колец,при этом загружается название дерева и его последний год жизни.

Название дерева выводится,путем вывода полного пути файла,который загружается в memo,при этом сначала удаляется все кроме последних 9 символов: название дерева.txt. Затем удаляются последние 4 символа (.txt).

Последний год жизни выводится через сложение строк.

Например,название дерева: 001ЕГ

К “200” прибавляется первый символ названия дерева,т.е получается “200” + “0”=”2000”

Первый год жизни вычисляется таким образом: последний год жизни (т.е когда дерево было срублено) - количество строк в Memo;

Аналогичный процесс происходит и со вторым деревом.

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

Сдвиг:=(Последний год жизни первого дерева - Первый год жизни первого дерева) - (Последний год жизни второго дерева - Первый год жизни второго дерева)

3)После того,как загружено два столбца нужно нажать на пункт главного меню “процент общих скачков”

4)Также после этого можно очистить все ячейки

Литература

1)Бешенков С.А., Ракитина Е.А. Информатика. Систематический курс. Учебник для 10 класса. М.: Лаборатория Базовых Знаний, 2001

2) Кузнецов С.Д. «Основы баз данных» 2007 г,с. 31-35

3)Мишель Е. Дэвис и Джон А. Филлипс «Изучаем PHP и MySQL» 2008 г с15-19,92-93

4) Прохоренок Николай «HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера» 2010г с 18-21.

Приложение

Текст программы:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus, StdCtrls;

type

TForm1 = class(TForm)

dlgSave1: TSaveDialog;

dlgOpen1: TOpenDialog;

dlgFont1: TFontDialog;

mm1: TMainMenu;

mmo1: TMemo;

edt1: TEdit;

lbl1: TLabel;

lbl2: TLabel;

Label1: TLabel;

N7: TMenuItem;

lbl4: TLabel;

N8: TMenuItem;

N9: TMenuItem;

dlgOpen2: TOpenDialog;

edit3: TEdit;

Label2: TLabel;

Label3: TLabel;

edit4: TEdit;

memo2: TMemo;

dlgOpen3: TOpenDialog;

Button1: TButton;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

procedure Button1Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure N9Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

F:TextFile;

tt,flnm:string;

data:array[1..200] of real;

a,b,i,c,n,e,l,sdvig1,sdvig2,k:Integer;

skach1:Real=0;

w:Integer=0;

h:integer=0;

t:TStrings;

implementation

{$R *.dfm}

// ------------------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);

var och:Integer;

begin

mmo1.Clear;

memo2.Clear;

edt1.clear;

edit3.Clear;

edit4.Clear;

end;

// ---------------------------------------------------------------------------------

procedure TForm1.N2Click(Sender: TObject);

begin

if dlgOpen1.Execute=True then flnm:=dlgOpen1.FileName;a:=Length(flnm);

b:=a-9;

Delete(flnm,1,b);

Delete(flnm,Length(flnm)-3,5);

label1.Caption:=flnm;

Delete(flnm,4,5);

end;

// -------------------------------------------------------------------------------

procedure TForm1.N7Click(Sender: TObject);

begin

c:=1+strtoint(edit3.text)-mmo1.lines.count;

e:=1+strtoint(edit4.text)-memo2.lines.count;

n:=c-e;

if c>=e then begin

sdvig1:=0; sdvig2:=n; end;

if c<e then begin

sdvig1:=-n; sdvig2:=0; end;

if (c>=e)and(StrToInt(edit3.Text)>=StrToInt(edit4.Text)) then l:=StrToInt(edit4.Text) - c

else if (c>=e)and(StrToInt(edit3.Text)<StrToInt(edit4.Text)) then l:=strtoint(edit3.text) - c

else if (c<e)and(StrToInt(edit3.Text)>=StrToInt(edit4.Text)) then l:=strtoint(edit4.Text) - e

else if (c<e)and(StrToInt(edit3.Text)<StrToInt(edit4.Text)) then l:=strtoint(edit3.text) - e;

edt1.Visible:=True;

Label4.Visible:=True;

Label5.Visible:=True;

label1.caption:='';

label2.caption:='';

skach1:=0;

for k:=0 to l-1 do

begin

if (memo2.lines[sdvig2+k+1]='') then begin Label6.Caption:=IntToStr(sdvig2+k+1); Break;end;

if (memo2.lines[sdvig2+k]='') then begin Label6.Caption:=IntToStr(sdvig2+k); Break;end;

if (mmo1.lines[sdvig1+k+1]='') then begin Label6.Caption:=IntToStr(sdvig1+k+1); Break;end;

if (mmo1.lines[sdvig1+k]='') then begin Label6.Caption:=IntToStr(sdvig1+k); Break;end;

if

((strtofloat(memo2.lines[sdvig2+k+1]) - strtofloat(memo2.lines[sdvig2+k]))*(strtofloat(mmo1.lines[sdvig1+k+1]) - strtofloat(mmo1.lines[sdvig1+k]))> 0)

then skach1:=skach1+1;

edt1.Text:=FloatToStr(Round(100*skach1/(l)));

end;

end;

// ---------------------------------------------------------------------------------------

procedure TForm1.N8Click(Sender: TObject);

begin

if dlgOpen1.Execute=True then mmo1.Lines.LoadFromFile(dlgOpen1.FileName); flnm:=dlgOpen1.FileName;a:=Length(flnm);

b:=a-9;

Delete(flnm,1,b);

Delete(flnm,Length(flnm)-3,5);

label1.Caption:=flnm;

Delete(flnm,2,5);

edit3.Text:=IntToStr(200)+ flnm;

edt1.Text:=floattostr(mmo1.lines.count);

end;

// ----------------------------------------------------------------------------------------

procedure TForm1.N9Click(Sender: TObject);

begin

if dlgOpen2.Execute=True then memo2.lines.loadfromfile(dlgOpen2.FileName); flnm:=dlgOpen2.FileName;a:=Length(flnm);

b:=a-9;

Delete(flnm,1,b);

Delete(flnm,Length(flnm)-3,5);

label2.Caption:=flnm;

Delete(flnm,2,5);

edit4.Text:=IntToStr(200)+ flnm;

end;

end.