Розробка алгоритмічного програмного забезпечення інформаційних систем
Загальні відомості про С++ Builder. Метод найменших квадратів. Побудова лінійної емпіричної формули. Робота з базою даних MSql засобами PHP. Розрив з’єднання з сервером. Екранування спец-символів. Знаходження функції за методом найменших квадратів.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 11.12.2012 |
Размер файла | 1,4 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
5
Размещено на http://www.allbest.ru/
Реферат
Актуальність теми курсового проекту: одержання прогресивних технологічних рішень.
Мета курсового проектування:
- закріплення, поглиблення та узагальнення теоретичних знань і розвиток навичок їх практичного застосування;
- самостійне та колективне розв'язання конкретних фахових задач;
- уміння користуватися відповідною довідковою літературою, державними стандартами;
- використання сучасних комп'ютерних інформаційних технологій.
У даному курсовому проекті на фундаменті теоретичних матеріалів та поставлених задач спроектовано два незалежних продукти:
1) Знаходження функції за методом найменших квадратів, реалізована за допомогою об'єктно орієнтованого програмування (С++ Builder 6);
2) Розробка розподіленої інформаційної системи.
Перший пункт на основі використання математичних методів та складання алгоритму для побудови лінійної емпіричної функції аx + b = с , був створенный проект на мові С++ а також розроблений простий у використанні інтерфейс програми.(Рисунки програми та лістинг головних кнопок наведений в додатку)
Другий пункт мав інший характер розроблення, для виконання було спроектовано структуру бази даних, використовуючи MySql та налаштування функціональності засобами PHP, оптимізуючи об'єднав все у автоматичний web-сервіс, під простою назвою інтернет-магазин. (Рисунки та лістинг коду наведені у додатку)
Зміст
Вступ
Розділ I. Теоретичний матеріал
1.1 Загальні відомості про С++ Builder
1.2 Середовище розробки С++ Builder
1.2.1 Компоненти
1.2.2 Події
1.2.3 Менеджер проектів
1.2.4 Створення додатків
Розділ II. Імітаційне моделювання прикладних задач
2.1 Метод найменших квадратів
2.2 Побудова лінійної емпіричної формули
Розділ III. Розробка розподіленої інформаційної системи
3.1 Робота з базою даних MSql засобами PHP
3.1.1 Поэднання з сервером
3.1.2 Розрив з'єднання з сервером
3.1.3 Створення бази даних
3.1.4 Обробка помилок
3.1.5 Автоматизація підключення до бази даних
3.2 SQL-запити
3.2.1 Створення таблиці
3.2.2 Редагування запитів
3.3 MSQL та проблеми захисту
3.3.1 Екранування спец-символів
3.3.2 Шаблони запитів iPlaceHolders
Висновки
Список використаної літератури
Додатки
ВСТУП
Сучасні програмні системи, які в багатьох випадках створюються за допомогою об'єктно-орієнтованих підходів, є складними. Для боротьби з цією складністю безперервно розробляються все нові засоби, що дозволяють збільшувати рівень абстракції і спрощувати процес програмування і перевірки.
При створенні програмних систем звичайно виділяють наступні фази:
1. Постановка завдання - збір вимог і створення прототипу програми.
2. Проектування - розробка проектної документації, що відбиває структурні і поведінкові особливості створюваної системи.
3. Реалізація - створення на основі проекту коду для цільової програмно-апаратної платформи.
4. Тестування - налагодження коду та перевірка відповідності реалізації поставленої задачі.
Семантичний розрив при передачі знань між проектуванням і реалізацією полягає в тому, що розробник зазвичай реалізує систему відповідно до свого розуміння проектної документації. Це призводить до ряду проблем:
1. Реалізація системи не відповідає проектній документації зважаючи неформальній зв'язку фаз проектування та реалізації.
2. Перевірка відповідності реалізації проектної документації (верифікація) може бути виконана тільки вручну.
3. У разі необхідності змін у системі, вони вносяться в проектну документацію і в код програми незалежно, що часто призводить до розсинхронізації документації та коду.
Причина зазначених проблем криється в тому, що існують методи проектування об'єктно-орієнтованих програм, які дозволяють моделювати їх структуру, а також методи, що дозволяють моделювати їх поведінка, але відсутні методи, які забезпечують зв'язок статики і динаміки в єдину формальну модель.
Дослідження, спрямовані на розробку таких методів і технологій для їх підтримки, є актуальними, тому що дозволять спростити процес розробки і підвищити якість створюваних програм.
РОЗДІЛ I. Теоретичний матеріал
лінійний сервер квадрат екранування
1.1 Загальні відомості про С++ Builder
Інтегроване середовище C++ Builder забезпечує швидкість візуальної розробки, продуктивність повторно використовуваних компонентів у сполученні з міццю мовних засобів C++, удосконаленими інструментами та різномасштабними засобами доступу до баз даних. C++ Builder може бути використаний скрізь, де потрібно доповнити існуючі додатки розширеним стандартом мови C++, підвищити швидкодія та додати користувальницькому інтерфейсу якості професійного рівня.
Головною метою нашої роботи, буде написання інтерактивної системи навчання програмуванню на мові C++. В теоретичній частині наведемо основні відомості про інструментарій.
Розглянемо характеристики, які притаманні Borland C++ Builder на як системі об'єктно-орієнтованого програмування для швидкої розробки сучасного математичного забезпечення персональних комп'ютерів. Borland C++ Builder випускається в трьох варіантах: Standard, Professional й Client/Server Suite.
Швидкість візуальної розробки
Інтегроване середовище розробки поєднує Редактор форм. Інспектор об'єктів. Палітру компонентів. Адміністратор проекту й повністю інтегровані Редактор коду й Отладчік - інструменти швидкої розробки програмних додатків, що забезпечують повний контроль над кодом і ресурсами.
Професійні засоби мови C++ інтегровані у візуальне середовище розробки. C++Builder надає швидкодіючий компілятор з мови Borland C++, ефективний інкрементний завантажник і гнучкі засоби налагодження як на рівні вихідних інструкцій, так і на рівні ассемблерних команд - у розрахунку задовольнити високі вимоги програмістів-професіоналів.
Конструювання по способі "drag-and-drop " дозволяє створювати додаток простим перетаскуванням захоплених мишею візуальних компонентів з Палітри на форму додатка. Інспектор об'єктів надає можливість оперувати із властивостями й подіями компонент, автоматично створюючи заготівлі функцій обробки подій, які наповнюються кодом і редагуються в процесі розробки.
Механізми двунаправленої розробки (two-way-tools) усувають бар'єри між програмістом і його кодом. Технологія двунаправленої розробки забезпечує контроль за вашим кодом за допомогою гнучкого, інтегрованого й синхронізованої взаємодії між інструментами візуального проектування й Редактором коду.
Властивості, методи й події - це саме ті елементи мови, які забезпечують швидку розробку додатків у рамках об`єктно - орієнтованого програмування. Властивості дозволяють легко встановлювати різноманітні характеристики об'єктів. Методи роблять певні, іноді досить складні, операції над об'єктом. Події зв'язують впливу користувача на об'єкти з кодами реакції на ці впливи. Події можуть виникати при таких специфічних змінах стану об'єктів як відновлення даних в інтерфейсних елементах доступу до баз даних. Працюючи спільно, властивості, методи й події утворять середовище RAD (Rapid Application Development) швидкого й інтуїтивного програмування надійних додатків для Windows.
Візуальне спадкування форм втілює найважливіший аспект об`єктно -орієнтованого програмування в зручному для користування інструменті візуального проектування. Характеристики нової форми додатки можуть бути успадковані від будь-якої іншої існуючої форми, що забезпечує централізовану репродукцію змін користувальницького інтерфейсу, полегшує контроль за кодом і зменшує тимчасові витрати на введення нових якісних атрибутів.
Випробування прототипу дозволяє без праці переходити від прототипу додатка до повністю функціонального, професійно оформленому програмному продукту, діючи в межах інтегрованого середовища. Щоб упевнитися, що ваша програма робить очікувані результати, раніше доводилося багаторазово проходити по циклі редагування => компіляція => зборка, непродуктивно витрачаючи час. C++Builder поєднує три етапи розробки в єдиний виробничий процес. У результаті вдається будувати додатка, що базуються на поточних вимогах замовника, разом з тим гнучкі настільки, щоб швидко адаптувати їх до нових запитів користувачів.
Майстер інсталяції керує створенням уніфікованих дистрибутивних пакетів для розроблених додатків. Вихідні тексти Бібліотеки Візуальних Компонентів полегшують розробку нових компонентів на базі готових прикладів.
Відриті інструменти API можуть бути безпосередньо інтегровані у візуальне середовище системи. Ви зможете підключити звичний текстовий редактор або створити власного майстра для автоматизації виконання повторюваних процедур.
Розширена математична бібліотека містить додаткові уніфіковані функції статистичних і фінансових обчислень.
Продуктивність компонентів
Бібліотека Візуальних Компонентів VCL придбала статус нового промислового стандарту й у цей час застосовується більш ніж півмільйоном користувачів, істотно прискорюючи розробку надійних додатків будь-якого ступеня складності. VCL містить близько 100 повторно використовуваних компонентів, які реалізують всі елементи користувальницького інтерфейсу операційної системи Windows 95. Крім того, VCL надають у розпорядження програмістів такі оригінальні об'єкти, як записні книжки із закладками, табличні сітки для відображення вмісту баз даних і навіть органи керування пристроями мультимедія. Перебуваючи в середовищі об`єктно - орієнтованого Програмування C++Builder, компоненти можна використати безпосередньо, міняти їхні властивості, вигляд і поводження або породжувати похідні елементи, з потрібними відмітними характеристиками.
Сховище об'єктів є інструментом нової методики зберігання й повторного використання модулів даних, об'єктів, форм і програмної бізнесу-логіки. Оскільки побудова нового додатка на існуючому фундаменті значно заощаджує тимчасові витрати, сховище об'єктів надає для повторного використання готові структури: форми й закінчених програмних модулів. Створюючи прототип нового додатка, ви можете успадковувати, посилатися або просто копіювати існуючу структуру - точно так само архітектор приступає до проектування нового будинку.
Компонента ChartFX забезпечує негайна побудова на вашій формі різноманітних графіків, діаграм, таблиць і передбачає перевірку правопису на багатьох мовах. У варіанті C++Builder Standard цей компонент є єдиним представником групи Active.
Інтеграція компонентів Active дозволяє розширити Бібліотеку Візуальних Компонентів, включивши компоненти стандарту Active для розробки додатків у мережі Internet. Якщо ваш комп'ютер має вихід в Internet, з'єднаєтеся із сервером за адресою http://www.borland.com/devsupport/bcppbuilder/netmanage.html і скачайте файл автоматичної інтеграції OCXINTEG.ZIP (12 Кбайт) і файл керування мережею AX602.ZIP (6.5 байт), розроблений фірмою NetManage. Файл інтеграції автоматично проведе для вас процедуру додавання нових компонентів до VCL й установить їх на Палітру. У результаті ви одержите можливість розробляти додатка для Internet, аж до створення власного мережного комунікатора (HTML browser).
Потужність язикових засобів C++
Оптимізуючий 32-розрядний компілятор побудований по перевіреної провідної компіляторної технології корпорації Borland, що забезпечує винятково відмінкову й швидку оптимізацію як довжини вихідного коду, що виконує, так і витрачає пам`яті, що.
Нові елементи стандарту ANSI/ISO мови C++ представлені шаблонами, просторами імен, виключеннями, інформацією про типи часу виконання (RTTI), поряд з розширенням набору ключових слів bool, explicit, mutable, typename. automated й ін.
Інкрементальний линкер здійснює швидку й надійну зборку додатку у форматі ЕХЕ файлів порівняно меншого розміру. Автоматично усуваючи повторну зборку не змінилися вихідних об'єктних файлів і підключення не використовуваних функцій, інкрементальний лінкер будує ефективну виконувану програму з мінімальними втратами часу.
Чистий і доступний код додатків, які C++Builder будує на основі надаваних розроблювачеві компонентних властивостей, подій і методів, виключає сховані й важкі в налагодженні макроси. Підтримка промислових стандартів Active, OLE, СОМ, MAPI, Windows Sockets TCP/IP, ISAPI. NSAPI, ODBC, Unicode й MBCS.
Відладчик низького рівня CPU View дозволяє проникнути в специфіку роботи вашого додатка на рівні машинних кодів. Вікно відладчіка розділене на п'ять панелей. Панель ассемблерних команд інтерпретує виконання вихідної C++ програми. Панель пам'яті показує вміст блоку пам'яті, доступного завантаженому й модулю, що виконує в даний момент. Панель стека відображає поточний уміст верхівки програмного стека. Панель регістрів і панель прапорів показують поточні значення регістрів і службових битов центрального процесора. Кожна панель включає власне меню, що управляє її видом і поводженням.
Інструменти командного рядка включені в систему на вимогу професіоналів, які завжди прагнуть зберегти детальний контроль над процесами компіляції й зборки своїх програмних файлів.
Створення DLL, LIB, і ЕХЕ файлів надає волю вибору формату цільового додатка відповідно до вимог конкретного проекту. Пряме звертання до системних функцій Windows 95 й NT дає можливість програмістам, що працюють у середовищі C++Builder. при необхідності скористатися всіма вдосконаленнями сучасних операційних систем.
Механізм OLE Automation надає вашому додатку можливість управляти іншими типовими програмними комплексами для Windows (такими як Microsoft Word, Excel, Visual Basic, Lotus 1-2-3, dBASE й Paradox) за схемою мережної взаємодії контролер/сервер.
Масштабовані з'єднання з базами даних
Розробка по способі "drag-and-drop" багаторазово спрощує й прискорює звичайно трудомісткий процес програмування СУБД в архітектурі клієнт/сервер. Широкий вибір компонентів керування візуалізацією й редагуванням дозволяє легко змінювати вид відображуваної інформації й поводження програми. C++ Builder використає Провідник баз даних (Database Explorer) і масштабований Словник даних (Data Dictionary ), щоб автоматично настроїти засобу відображення й редагування стосовно до специфіки вашої інформації.
Провідник баз даних надає графічний спосіб проводки користувача по вмісту бази даних, забезпечуючи створення й модифікацію таблиць, ієрархічних покажчиків і псевдонімів.
Словник даних підтримує цілісність інформації, що змінюється, про вміст таблиць баз даних. Користувач може динамічно модифікувати склад Словника. Словник містить інформацію про розширені атрибути полів у записах: мінімальні й максимальні значення, властивості відображення, маски редагування й т.п.
Живі дані (live data) надаються розроблювачеві в процесі візуального проектування прототипів і при випробуванні додатків баз даних. Вам не буде потрібно більше писати тестові пастки або багаторазово перетранслювати й запускати додаток - дані на стадії проектування будуть точно такими ж і представлені точно так само, як їх побачить користувач закінченої програми.
Механізм BDE (Borland Database Engine) підтримує високопродуктивний 32-розрядний доступ до баз даних dBASE, Paradox: Sybase. Oracle, DB2. Microsoft SQL Server. Informix, InterBase й Local InterBase. C++Builder використає контролер ODBC (Open Database Connectivity) виробництва Microsoft для зв'язку із серверами баз даних Excel, Access, FoxPro й Btrieve. Будучи фундаментом будь-якого додатка бази даних, BDE тісно пов'язаний зі Сховищем об'єктів і Модулями даних.
Об'єкти Модулів даних діють як сполучний каркас додатка - вони визначають джерела й бізнес-логіку бази даних, фіксують взаємозв'язку компонентів. У централізованій моделі доступу до даних бізнесу-логіка відділена від розробки графічного інтерфейсу з користувачем (GUI). Будь-яка зміна бізнесу-логіки вашої бази даних позначається на поводженні тільки відповідного Модуля даних, а результати зміни проявляються негайно у всіх додатках, що використають даний модуль. Працюючи з модулями даних, ви однократно встановлюєте зв'язки вашого додатка з адресуємою базою даних, а потім по способі "drag-and-drop" можете перетаскувати поля записів на нові форми - у будь-який вузол вашої мережі. Ніякого додаткового кодування при цьому не потрібно.
Фільтри поля посилань установлюють обмеження пошуку й відображення інформації бази даних простим натисканням кнопки. Змінюючи значення властивості Filter у компонентах доступу, можна специфікувати деяка підмножина даних, що цікавлять вас. Посилання забезпечують автоматичне відображення даних з декількох таблиць.
Копійовані відновлення (cached updates) помітно прискорюють відгук SQL сервера за рахунок зменшення загального числа мережних обмінів із клієнтом. Будучи впакованими, множинні комунікації проявляють себе як одиночні транзакції, тим самим знижуючи завантаженість сервера й поліпшуючи продуктивність вашого додатка.
Звіти Quick Reports дозволяють візуально конструювати стилізовані звіти за даними, що поставляє будь-яким джерелом, включаючи таблиці й запити компонентів доступу до баз даних. Звіти можуть містити поля заголовків, колонтитулів, виносок і підсумків. Quick Reports надають потужні кошти відображення звітів у різних видах, автоматичного підведення підсумків і підрахунку полів - на будь-якому рівні угруповання даних.
Borland C++ Builder - випущене недавно компанією Borland засіб швидкої розробки проектів, що дозволяє створювати проекту мовою C++, використовуючи при цьому середовище розробки та бібліотеку компонентів Delphi. У даній частині роботи розглядається середовище розробки C++ Builder та основні прийоми, застосовувані при проектуванні користувальницького інтерфейсу.
1.2 Середовище розробки C++ Builder
C++ Builder являє собою SDI-додаток, головне вікно якого містить інструментальну панель, що набудоване (ліворуч) і палітру компонентів (праворуч). Крім цього, при запуску C++ Builder з'являються вікно інспектора об'єктів (ліворуч) і форма нового проекту (праворуч). Під вікном форми проекту перебуває вікно редактора коду.
Рис.1. Середовище розробки C++ Builder
Форми є основою проектів C++ Builder. Створення користувальницького інтерфейсу проекту полягає в додаванні у вікно форми елементів об'єктів C++ Builder, називаних компонентами. Компоненти C++ Builder розташовуються на палітрі компонентів, виконаної у вигляді багатогранного блокнота. Важлива особливість C++ Builder полягає в тому, що він дозволяє створювати власні компоненти та набудовувати палітру компонентів, а також створювати різні версії палітри компонентів для різних проектів.
1.2.1 Компоненти C++ Builder
Компоненти розділяються на видимі (візуальні) і невидимі (невізуальні). Візуальні компоненти з'являються під час виконання точно так само, як і під час проектування. Прикладами є кнопки та редагують поля, що. Невізуальні компоненти з'являються під час проектування як піктограми на формі. Вони ніколи не видні під час виконання, але мають певну функціональність (наприклад, забезпечують доступ до даних, викликають стандартні діалоги Windows 95та ін.)
Рис. 2. Приклад використання видимих і невидимих компонентів
Для додавання компонента у форму можна вибрати мишею потрібний компонент у палітрі та клацнути лівою клавішею миші в потрібнім місці проектованої форми. Компонент з'явиться на формі, і далі його можна переміщати, міняти розміри та інші характеристики.
Кожен компонент C++ Builder має три різновиди характеристик: властивості, події та методи.
Якщо вибрати компонент із палітри та додати його до форми, інспектор об'єктів автоматично покаже властивості та події, які можуть бути використані з тім компонентом. У верхній частині інспектора об'єктів є список, що випадає, що дозволяє вибирати потрібний об'єкт із наявних на формі.
Рис.3. Інспектор об'єктів
Властивості компонентів
Властивості є атрибутами компонента, що визначають його зовнішній вигляд і поводження. Багато властивостей компонента в колонку властивостей мають значення, яке встановлюється за замовчуванням (наприклад, висота кнопок). Властивості компонента відображаються а сторінці властивостей (Properties). Інспектор об'єктів відображає опубліковані (published) властивості компонентів. Крім published-властивостей, компоненти можуть і найчастіше мають загальні (public), опубліковані властивості, які доступні тільки під час виконання проекту. Інспектор об'єктів використається для установки властивостей під час проектування. Список властивостей розташовується на сторінці властивостей інспектори об'єктів. Можна визначити властивості під час проектування або написати код для видозміни властивостей компонента під час виконання проекту.
При визначенні властивостей компонента під час проектування потрібно вибрати компонент на формі, відкрити сторінку властивостей в інспекторі об'єктів, вибрати обумовлена властивість і змінити його за допомогою редактора властивостей (це може бути пусте поле для уведення тексту або числа, що випадає список, що розкривається список, діалогова панель і т.д.).
1.2.2 Події
Сторінка подій (Events) інспектори об'єктів показує список подій, розпізнаваних компонентом (програмування для операційних систем із графічним користувальницьким інтерфейсом, зокрема, для Windows 95 або Windows NT пре думає опис реакції проекту на ті або інші події, а сама операційна система займається постійним опитуванням комп'ютера з метою виявлення настання якої-небудь події). Кожен компонент має свій власний набір оброблювачів подій. В C++ Builder варто писати функції, називані оброблювачами подій, і зв'язувати події із цими функціями. Створюючи оброблювач тої чи іншої події, ви доручаєте програмі виконати написану функцію, якщо ця подія відбудеться.
Для того, щоб додати оброблювач подій, потрібно вибрати на формі за допомогою миші компонент, якому необхідний оброблювач подій, потім відкрити сторінку подій інспектори об'єктів і двічі клацнути лівою клавішею миші на колонку з поруч із подією, щоб змусити C++ Builder згенерувати прототип оброблювача подій і показати його в редакторі коду. При цьому автоматично генерується текст порожньої функції, і редактор відкривається в тім місці, де варто вводити код. Курсор позиціюється усередині операторних дужок { ... }. Далі потрібно ввести код, що повинен виконуватися при настанні події. Оброблювач подій може мати параметри, які вказуються після імені функції в круглих дужках.
Рис.4. Прототип оброблювача подій.
Методи
Метод є функцією, що пов'язана з компонентом, і яка оголошується як частина об'єкта. Створюючи оброблювачі подій, можна викликати методи, використовуючи наступну нотацію: ->, наприклад: Edit1->Show();
Відзначимо, що при створенні форми пов'язані з нею модуль і заголовний файл із розширенням *.h генеруються обов'язково, тоді як при створенні нового модуля він не зобов'язаний бути пов'язаний з формою (наприклад, якщо в ньому втримуються процедури розрахунків). Імена форми та модуля можна змінити, причому бажано зробити це відразу після створення, поки на них не з'явилося багато посилань в інших формах і модулях.
1.2.3 Менеджер проектів
Файли, що утворять додаток - форми та модулі - зібрані в проект. Менеджер проектів показує списки файлів і модулів проекту та дозволяє створювати навігацію між ними. Можна викликати менеджер проектів , вибравши пункт меню View/Project Manager. За замовчуванням знову створений проект одержує ім'я Project1.cpp.
Рис.5. Менеджер проектів
За замовчуванням проект спочатку містить файли для однієї форми та вихідного коду одного модуля. Однак більшість проектів містять кілька форм і модулів. Щоб додати модуль або форму до проекту, потрібно клацнути правою кнопкою миші та вибрати пункт New Form з контекстного меню. Можна також додавати існуючі форми та модулі до проекту, використовуючи кнопку Add контекстного меню менеджера проектів і вибираючи модуль або форму, яку потрібно додати. Форми та модулі можна видалити в будь-який момент протягом розробки проекту. Однак, через те, що форма зв'язані завжди з модулем, не можна видалити одне без видалення іншого, за винятком случаючи, коли модуль не має зв'язку з формою. Видалити модуль із проекту можна, використовуючи кнопку Remove менеджера проектів.
Якщо вибрати кнопку Options у менеджері проектів, відкриється діалогова панель опцій проекту, у якій можна вибрати головну форму проекту, визначити, які форми будуть створюватися динамічно, які параметри компіляції модулів (у тому числі створених в Delphi 2.0, тому що C++ Builder може включати їх у проекти) і компонування.
Рис. 6. Установка опцій проекту
Важливим елементом середовища розробки C++ Builder є контекстне меню, яке з`являється при натисканні на праву клавішу миші та дозволяє швидкий доступ до найбільше часто використовуваних команд. Зрозуміло, C++ Builder має убудовану систему контекстно-контекстно-залежної допомоги, доступної для будь-якого елемента інтерфейсу та довідкової інформації, що є великим джерелом, про C++ Builder.
1.2.4 Створення додатків в C + + Builder
Першим кроком у розробці програми C + + Builder є створення проекту.
Файли проекту містять з генерований автоматично вихідний текст,який стає частиною програми, коли воно скомпільованої і підготовлено до виконання. Щоб створити новий проект, потрібно вибрати пункт меню File/New Application.
C + + Builder створює файл проекту з ім'ям за умовчанням Project1.cpp, а також make-файл з ім'ям за умовчанням Project1.mak. При внесенні змінив проект, таких, як додавання нової форми, C + + Builder оновлює файл проекту.
Проект або додаток зазвичай мають кілька форм. Додавання форми до проекту створює наступні додаткові файли:
Файл форми з розширенням. DFM, що містить інформацію про ресурси вікон для конструювання форми
Файл модуля з розширенням. CPP, що містить код на C ++.
Заголовки з розширенням. H, що містить опис класу форми.
Коли ви додаєте нову форму, файл проекту автоматично оновлюється.
Для того щоб додати одну або більше форм до проекту, виберіть пункт меню
File/New Form. З'явиться порожня форма, яка буде додана до проекту. Можна скористатися пунктом меню File/New, вибрати сторінку Forms і вибрати варіант оформлення з сховища об'єктів. Для того, щоб просто відкомпілювати поточний проект, з меню Compile потрібно вибрати пункт меню Compile. Для того щоб відкомпілювати проект і створити виконуваний файл для поточного проекту, з меню Run потрібно вибрати пункт меню Run. Компонування проекту є інкрементний (перекомпілюються тільки що змінилися модулі).
Якщо при виконанні програми виникає помилка часу виконання, C + +
Builder робить паузу у виконанні програми і показує редактор коду зкурсором, встановленим на оператора, що є джерелом помилки. Першніж робити необхідну корекцію, слід перезапустити програму, вибираючи пункт меню Run з контекстного меню або з меню Run, закрити програму ілише потім вносити зміни до проекту. У цьому випадку зменшиться ймовірність втрати ресурсів Windows.
РОЗДІЛ II. Імітаційне моделювання прикладних задач
2.1 Метод найменших квадратів
У процесі вивчення різних питань природознавства, економіки і техніки, соціології, педагогіки доводиться на основі великої кількості дослідних даних виявляти суттєві фактори, які впливають на досліджуваний об'єкт, а також встановлювати форму зв'язку між різними зв'язаними одна з одною величинами (ознаками).
Нехай у результаті досліджень дістали таку таблицю деякої функціональної залежності:
Таблиця 1
x |
x1 |
x2 |
… |
xn |
|
y |
y1 |
y2 |
… |
yn |
Треба знайти аналітичний вигляд функції , яка добре відображала б цю таблицю дослідних даних. Функцію можна шукати у вигляді інтерполяційного поліному. Але інтерполяційні поліноми не завжди добре відображають характер поведінки таблично заданої функції. До того ж значення дістають у результаті експерименту, а вони, як правило, сумнівні. У цьому разі задача інтерполювання табличної функції втрачає сенс. Тому шукають таку функцію , значення якої при досить близькі до табличних значень . Формулу називають емпіричною, або рівнянням регресії на . Емпіричні формули мають велике практичне значення, вдало підібрана емпірична формула дає змогу не тільки апроксимувати сукупність експериментальних даних, «згладжуючи» значення величини , а й екстраполювати знайдену залежність на інші проміжки значень .
Процес побудови емпіричних формул складається з двох етапів: встановлення загального виду цієї формули і визначення найкращих її параметрів.
Щоб встановити вигляд емпіричної формули, на площині будують точки з координатами . Деякі з цих точок сполучають плавною кривою, яку проводять так, щоб вона проходила якомога ближче до всіх даних точок. Після цього візуально визначають, графік якої з відомих нам функцій найкраще підходить до побудованої кривої. Звичайно, намагаються підібрати найпростіші функції: лінійну, квадратичну, дробово-раціональну, степеневу, показникову, логарифмічну.
Встановивши вигляд емпіричної формули, треба знайти її параметри (коефіцієнти). Найточніші значення коефіцієнтів емпіричної формули визначають методом найменших квадратів. Цей метод запропонували відомі математики К. Гаусс і А. Лежандр.
Розглянемо суть методу найменших квадратів.
Нехай емпірична формула має вигляд
, (2.1)
де , , …, - невідомі коефіцієнти. Треба знайти такі значення коефіцієнтів , за яких крива (1) якомога ближче проходитиме до всіх точок , , …, , знайдених експериментально. Зрозуміло, що жодна з експериментальних точок не задовольняє точно рівняння (1). Відхилення від підстановки координат у рівняння (1) дорівнюватимуть величинам .
За методом найменших квадратів найкращі значення коефіцієнтів ті, для яких сума квадратів відхилень
(2)
дослідних даних від обчислених за емпіричною формулою (1) найменша. Звідси випливає, що величина (2), яка є функцією від коефіцієнтів , повинна мати мінімум. Необхідна умов мінімуму функції багатьох змінних - її частинні похідні мають дорівнювати нулю, тобто
, , …, .
Диференціюючи вираз (2) по невідомих параметрах , матимемо відносно них систему рівнянь:
Система (3) називається нормальною. Якщо вона має розв'язок, то він єдиний, і буде шуканим.
Якщо емпірична функція (1) лінійна відносно параметрів , то нормальна система (3) буде системою з лінійних рівнянь відносно шуканих параметрів.
Будуючи емпіричні формули, припускатимемо, що експериментальні дані додатні.
Якщо серед значень і є від'ємні, то завжди можна знайти такі додатні числа і , що і .
Тому розв'язування поставленої задачі завжди можна звести до побудови емпіричної формули для додатних значень .
2.2 Побудова лінійної емпіричної формули
Нехай між даними існує лінійна залежність. Шукатимемо емпіричну формулу у вигляді
, (4)
де коефіцієнти і невідомі.
Знайдемо значення і , за яких функція матиме мінімальне значення. Щоб знайти ці значення, прирівняємо до нуля частинні похідні функції
Звідси, врахувавши, що , маємо
(5)
Розв'язавши відносно і останню систему, знайдемо
, (6)
. (7)
Зазначимо, що, крім графічного, є ще й аналітичний критерій виявлення лінійної залежності між значеннями і .
Покладемо
, , .
Якщо , то залежність між і лінійна, бо точки лежатимуть на одній прямій. Якщо , то між і існує майже лінійна залежність, оскільки точки лежатимуть близько до деякої прямої. Загальні положення
Для спрощення викладу розглянемо спочатку випадок лінійної функції одного аргументу. Нехай з досвіду отримані точки:
(див. рис.). Потрібно знайти рівняння прямої
y=ax+b, (2)
найкращим чином узгоджується з досвідченими точками.
Нехай ми знайшли таку пряму. Позначимо через відстань дослідної точки від цієї прямої (вимірюється паралельно осі y).
З рівняння (2) випливає, що
(3)
Чим менше числа за абсолютною величиною, тим краще підібрана пряма (2). В якості характеристики точності підбору прямий (2) можна прийняти суму квадратів
(4)
Покажемо, як можна підібрати пряму (2) так, щоб сума квадратів S була мінімальною. З рівнянь (3) і (4) отримуємо
(5)
Умови мінімуму S будуть
(6)
(7)
Рівняння (6) і (7) можна записати в такому вигляді:
(8)
(9)
З рівнянь (8) і (9) легко знайти a і b по досвідченим значенням xi і yi. Пряма (2), обумовлена рівняннями (8) та (9), називається прямою, отриманої за методом найменших квадратів (цією назвою підкреслюється те, що сума квадратів S має мінімум). Рівняння (8) і (9), з яких визначається пряма (2), називаються нормальними рівняннями. Можна вказати простий і загальний спосіб складання нормальних рівнянь. Використовуючи досвідчені точки (1) і рівняння (2), можна записати систему рівнянь для a і b
Помножимо ліву і праву частини кожного з цих рівнянь на коефіцієнт при першій невідомої a (тобто на x1, x2, ..., xn) і складемо отримані рівняння, в результаті отримала перший нормальне рівняння (8).
Помножимо ліву і праву частини кожного з цих рівнянь на коефіцієнт при другій невідомої b, тобто на 1, і складемо отримані рівняння, в результаті отримав друге нормальне рівняння (9).
Цей спосіб отримання нормальних рівнянь є загальним: він придатний, наприклад, і для функції
y=a0+a1x+a2x2+...+anxn. (11)
Природно, що тут вийде система з n +1 нормального рівняння для визначення величин a0, a1, a2, ..., an.
Розглянемо окремий випадок застосування методу найменших квадратів. Нехай з теорії відомо, що
k=y/x (12)
є величина постійна і її потрібно визначити по досвідченим даним (1).
Систему рівнянь для k можна записати:
Для отримання нормального рівняння помножимо кожне з цих рівнянь на коефіцієнт при невідомій k, тобто на 1, і складемо отримані рівняння
(14)
(15)
Отже, середнє арифметичне, отримане з досвідчених відносин yi / xi, дає рішення поставленої задачі за методом найменших квадратів. Це важлива властивість середньої арифметичної пояснює її широке застосування в практиці обробки дослідних даних.
Приклад 1 На досвіді отримані значення x і y, зведені в таблицю
x |
1 |
2 |
3 |
4 |
5 |
6 |
|
y |
5,2 |
6,3 |
7,1 |
8,5 |
9,2 |
10,0 |
Знайти пряму (2) за методом найменших квадратів.
Рішення. знаходимо:
xi=21, yi=46,3, xi2=91, xiyi=179,1.
Записуємо рівняння (8) і (9)
91a+21b=179,1,
21a+6b=46,3,
звідси знаходимо
a=0,98 b=4,3.
Оцінка точності методу найменших квадратів.
Дамо оцінку точності методу для лінійного випадку, коли має місце рівняння (2).Нехай досвідчені значення xi є точними, а досвідчені значення yi мають випадкові помилки з однаковою дисперсією для всіх i введемо позначення:
(16)
Тоді рішення рівнянь (8) і (9) можна представити у вигляді
(17)
(18)
(19)
З рівняння (17) знаходимо
(20)
Аналогічно з рівняння (18) отримуємо
(21)
(22)
З рівнянь (21) та (22) знаходимо
(23)
Рівняння (20) і (23) дають оцінку точності коефіцієнтів, визначених за рівнянням (8) і (9).
Зауважимо, що коефіцієнти a і b корельовані. Шляхом простих перетворень знаходимо їх кореляційний момент.
(24)
Рівняння (20), (23) і (24) дозволяють знайти оцінку для помилки y, яку дає рівняння (2) в довільній точці x, якщо коефіцієнти a і b знайдені по рівняннях (8) і (9). З рівнянь (2), (20), (23) і (24) знаходимо
(25)
На підставі рівнянь (20), (23) і (25) можна зробити наступні висновки:
1.Точність коефіцієнтів a і b тим вище, чим більше sx, тобто чим більше розсіювання досвідчених точок на осі x.
2.Точність коефіцієнта b тим вище, чим менше .
3.Ошібка рівняння (2) найменша в точці, де, і найбільша в точках, де величина має найбільше значення.
Розглянемо на прикладі використання рівнянь (20) - (25).
Приклад 2 Потрібно оцінити точність рішення прикладу 1 при .
Рішення. В умовах цього прикладу маємо n = 6.
=21/6=3.5, sx2=91/6-(3,5)2=2,9.)
З рівняння (20), (23) та (25) знаходимо
Звідси знаходимо = 0,072 при x=1 і 6,
= 0,041 при x=3,5.
Блок схема. Метод найменших квадратів.
Размещено на http://www.allbest.ru/
5
Размещено на http://www.allbest.ru/
РОЗДІЛ III. Розробка розподіленої інформаційної системи
Стрімкий розвиток інформаційних технологій в останні роки розкрив широкі можливості для розроблення ефективних автоматизованих систем у різних галузях. Разом з тим автоматизація процесів у великих компаніях та створення єдиної інформаційної системи пов'язані з певними труднощами . Особливо це стосується ситуацій, коли в межах компанії функціонує кілька автономних автоматизованих систем, що виконують специфічні завдання. Ці системи можуть мати власні бази даних для зберігання інформації, сервер додатків, інтерфейси взаємодії з іншими системами.
3.1 Робота з базою даних MSQL засобами PHP
3.1.1 Поєднання з сервером. Функція >mysql_connect
Перш ніж працювати з базою даних, необхідно налагодити з нею мережне з'єднання, і навіть провести авторизацію користувача. І тому служить функція mysql_connect()
>resourcemysql_connect([string $>server[,string $>username[,string $>password]]])
Ця функція встановлює мережне з'єднання з базою даних MySQL, розташованої на хості $>server (за умовчанням це localhost, тобто. поточний комп'ютер) і повертає ідентифікатор відкритого сполуки. Уся подальша робота провадиться саме з цим ідентифікатором. Всі інші функції, приймаючі цей ідентифікатор (дескриптор) як аргумент, будуть однозначно визначати обрану базі даних.
При реєстрації вказується ім'я користувача $>username і пароль $>password (за умовчанням ім'я користувача, від якої запущено поточний процес - при налагодженні скриптів:root, і порожній пароль):
<?
$>dblocation = ">localhost"; //Ім'я серверу
$>dbuser = ">root"; //Ім'я користувача
$>dbpasswd = ""; //>Пароль
//Здійснюємо з'єднання з сервером бази даних
//>Подавляем висновок помилок символом @ перед викликом функції
$>dbcnx = @mysql_connect($dblocation, $>dbuser, $>dbpasswd);
>if (!$>dbcnx) //Якщо дескриптор дорівнює 0, з'єднання встановлено
{
//>Виводимо попередження
>echo("<P>B сьогодні сервер бази даних не доступний, тому коректне відображення сторінкиневозможно.</Р>");
exit ();}?>
Змінні $>dblocation, $>dbuser і $>dbpasswd зберігають ім'я серверу, ім'я користувача і пароль.
3.1.2 Розрив з'єднання з сервером. Функція >mysql_close
Поєднання з MySQL - сервером буде автоматично закрито за завершенні роботи сценарію, або навіть за виклик функціїmysql_close
>boolmysql_close ([>resource $>link_identifier])
Ця функція розриває з'єднання з сервером MySQL, і повертає true при успішне виконання операції, false інакше.
Функція приймає як аргумент дескриптор з'єднання з базою даних, повертаючи функцією mysql_connect.
Приклад роботи з циєю функцією:
<? $>dblocation = ">localhost"; //Ім'я серверу
$>dbuser = ">root"; //Ім'я користувача
$>dbpasswd = ""; //>Пароль
//Здійснюємо з'єднання з сервером бази даних
//>Пригнічуємо висновок помилок символом @ перед викликом функції
$>dbcnx = @mysql_connect($dblocation, $>dbuser, $>dbpasswd);
>if (!$>dbcnx) //Якщо дескриптор дорівнює 0, з'єднання встановлено
{//>Виводим попередження
>echo("<P>B сьогодні сервер бази даних не доступний, тому коректне відображення сторінки неможливо</Р>");
exit ();}
>if (>mysql_close($dbcnx)) //розриваємо з'єднання
{>echo("З'єднання з базою даних припинено");}
>else
{>echo("He вдалося завершити з'єднання");?>
3.1.3 Створення бази даних. Функція CREATE DATABASE
Команда -- створення бази даних доступна лише адміністратору серверу, і більшості хостингів його не можна виконувати:
>CREATEDATABASE ИмяБазиДанних
>Створює нову базу даних безпосередньо з ім'я Бази даних.
Приклад роботи з цим функцією:
//Створюємо базі даних $>dbname - це може робити не тільки супер-користувач
//Якщо база даних вже є, буде некритична помилка
@>mysql_query('CREATEDATABASE $>dbname');
Рекомендується скрізь використовувати апострофи ('>SQL - команда') як обмежувачів рядків, містять SQL - команди. Цим можна гарантувати, що її жодна $ - змінна випадково нічого очікувати інтерпольована (тобто. не заміниться на значення), і збільшиться безпеку скриптів.
Команда створення бази даних CREATEDATABASE доступна лише супер-користувачу, і більшості хостингів простому користувачеві її виконати неможливо. Вона доступна лише адміністратору серверу.
Для експериментів створимо базі даних testbase, виконавши SQL-запит з командної рядки. Треба лише увійти до системи MySQL і введення в командної рядку MySQL: >mysql>createdatabasetestbase;
Після цього треба набрати: >mysql>usetestbase; База даних створена.
Вибір бази даних. Функція >mysql_select_db
Поки послати перший запит серверу MySQL, необхідно вказати, з яким базою даних ми ж збираємося працювати. І тому призначена функція mysql_select_db:
>bool mysql_select_db(string $>database_name [,>resource $>link_identifier])
Вона повідомляє PHP, що у подальших операції з з'єднанням $>link_identifier використовуватиметься база даних $>database_name.
Використання цієї функції еквівалентно виклику команди use вSQL-запросе, т. е. функція mysql_select_db вибирає базі даних для подальшої роботи, всі наступні SQL-запроси застосовуються до обраної базі даних. Функція приймає наводили аргументи назва обраній бази даних database_name і дескриптор сполуки resource.
Функція повертає true при успішне виконання операції, іfalse -- інакше:
<?//Код з'єднання з базою даних
>if (! @>mysql_select_db($dbname, $>dbcnx))
{//>Виводим попередження
>echo("<P> B сьогодні база даних недоступна, тому коректне відображення сторінки неможливо. </Р>");
exit(); }?>
3.1.4 Обробка помилок
Якщо у процесі роботи з MySQL виникають помилки (наприклад, в запиті не збалансовані дужки або ж бракує параметрів), то повідомлення про помилку і його номер можна з допомогою описаних далі двох функцій.Важливо акуратно і використовувати цих функцій, інакше налагодження сценаріїв може ускладнитися.
Функція:
>intmysql_errno ([>int $>link_identifier])
повертає номер останньої зареєстрованою помилки.Идентификатор сполуки $>link_identifier годі й вказувати, якщо на час сценарію було встановлено лише одна з'єднання.
Функція:
>stringmysql_error([int $>link_identifier])
повертає не номер, а рядок, що містить текст повідомлення про помилку. Її зручно запровадити уотладочних цілях.
Зазвичайmysql_error використовують разом із конструкцією ordie (), наприклад:
@>mysql_connect("localhost", ">user", ">password")
ordie("Ошибка при підключенні до бази даних: ".>mysql_error());
Оператор @, звісно ж, служить подолання стандартного попередження, що може виникнути у разі помилки.
У світлі останніх версіяхРНР попередження вMySQL-функциях за умовчанням не реєструються.
3.1.5 Автоматизація підключення до MySQL.Файл (>config.php)
Зазвичай з сайту існує відразу кількох скриптів, яким потрібен доступом до одному й тому самій базі даних.
Код, відповідальний за підключення до MySQL рекомендується виділити в окремий файл, та був підключати з допомогою функції include до за потрібне скриптам.
Потрібно поміщати функції для сполуки, вибору і шляхом створення бази даних той самий файл (>config.php), де оголошено перемінні безпосередньо з ім'ям серверу $>dblocation, ім'ям користувача $>dbuser, паролем $>dbpasswd і ім'ям бази даних $>dbname:
>Листингconfig.php:
<?//>config.php код файла, що містить параметри з'єднання з сервером і вибору бази даних
//виводить повідомлення помилки з'єднання перетворені на браузер
$>dblocation = ">localhost"; //Ім'я серверу
$>dbname = "вставити ім'я бази" //Ім'я бази даних: створюваної або вже існуючої
$>dbuser = ">root"; //Ім'я користувача бази даних
$>dbpasswd = ""; //>Пароль
//Здійснюємо з'єднання з сервером бази даних
//>Подавляем висновок помилок символом @ перед викликом функції
$>dbcnx=@mysql_connect($dblocation,$dbuser,$dbpasswd);
>if (!$>dbcnx) //Якщо дескриптор дорівнює 0, з'єднання з сервером бази даних встановлено
{//>Виводим попередження
>echo("<p> Нині сервер бази даних не доступний, тому коректне відображення сторінки неможливо. </>p>");
exit();
}//Створюємо базі даних $>dbname - це може робити не тільки суперкористувач
//Якщо база даних вже є, буде некритична помилка
@>mysql_query('CREATEDATABASEifnotexists $>dbname');
ordie("MySQLerror: ".>mysql_error());
//Код з'єднання з базою даної: здійснюємо однозначний вибір щойно бази або вже існуючої бази даних
//>Подавляем висновок помилок символом @ перед викликом функції
>if(!@mysql_select_db($dbname, $>dbcnx)) //Якщо дескриптор дорівнює 0, з'єднання з базою даних встановлено
{ //> Виводим попередження
>echo("<p> Нині база даних недоступна, тому коректне відображення сторінки неможливо. </>p>");
exit();}
//Невелика допоміжна функція, яка виводить повідомлення
//про помилку у разі помилки запиту до бази даних
>functionputerror($message)
{>echo("<p> $message </>p>");
exit();}?>
3.2 SQL-запити до бази даних
3.2.1 Створення таблиці. Функція CREATETABLE
>CREATE [>IF_NO_TEXT_IS_TS] TABLE Ім'я Таблиці
(>Имя Поля тип,Имя Поля тип,)
Цією командою базі даних створюється нова таблиця з колонками (полями), обумовленими своїми власними іменами (>Имя Поля) і зазначеними типами. Після створення таблиці у ній можна буде потрапити додавати записи, які з переказаних у даної команді полів.
>Лістинг test_11.php. Програма, створює нову таблицю базі даних:
<?PHP ## Створення нової таблиці в БД.
>include ">config.php";// Підключення до сервера і вибір бази даних
>mysql_query('CREATE TABLE ifnotexistspeople
(>id INTAUTO_INCREMENTPRIMARYKEY,
>nameTEXT)');
ordie("MySQLerror: ".>mysql_error());?>
Цей сценарій створює нову таблицю people з цими двома полями. Перше полі має тип INT (ціле) й ім'яid. Друге -- типTEXT (текстова рядок) й ім'яname.
Якщо таблиця існує, спрацює конструкція ordie ().
>Необов'язкова фраза ifno texists, якщо вона задана, каже серверу MySQL, що вона повинна генерувати повідомлення про помилку, якщо таблиця із зазначеним ім'ям вже існує у базі даних.
Необхідно зробити потрібні зміни (змінити назва бази даних на test base) в файл config.php. Таблиця people створена. Можна переглянути перелік таблиць створеної бази даних з допомогою оператора SHOW. Можна відобразити інформацію про шпальтах всіх таблиць з допомогою оператора DESCRIBE. Для перегляду даних, збережених в таблиці, можна застосувати оператор SELEKT.
Рекомендується завжди створювати таблиці просто у скриптах, що з ними працюють, що це робить сценарії автономними. На жаль багатоскрипти не роблять. Зазвичай до них додається SQL-файл з командами створення таблиць, що потрібно запустити перед установкою скриптів. Такий спосіб категорично не рекомендується.
3.2.2 Редагування таблиці
>INSERT INTO ИмяТаблици (ИмяПоля1ИмяПоля2 ...)VALUES ('>зн1', '>зн2',...)
Додає в таблицю “ИмяТаблици” запис, що має поля, зазначені якИмяПоля1ИмяПоля2 ...прописані у значення відповідно ДТ№. Ті поля, які у цій команді не перераховані, отримують "невизначені" значення. Невизначений значення (>NULL) -- це порожня рядок, а й просто ознака, який свідчить MySQL, що з даного поля немає ніякої значення.
Втім, для не вказаного тут поля під час створення таблиці поставили NOTNULL, то полі отримає значення за умовчанням (найчастіше 0 чи порожня рядок). Значення полів можна брати й у звичайні лапки, але апострофи тут використовувати зручніше; при цьому, так належить за стандартом SQL. При уставці в таблицю бінарних даних (чи текстових, містять апострофи і слеши) деякі символи би мало бути "захищені" зворотними слешами, саме символи , ' і символ із нульовим кодом (в РНР позначається як ">х00" чи chr(0)).
Існує альтернативний синтаксис для даної команди, специфічний для MySQL:
>INSERTINTOИмяТаблициSETИмяПоля1='зн1',ИмяПоля2='зн2', . . .
Насправді він часто виявляється зручніше першого.
Видалення записів. Функція >DELETE
>DELETE FROM ИмяТаблици WHERE вираз
>Виділяє з таблиці “ИмяТаблици” все записи, котрим виконано вираз. Параметр вираз -- це логічне вираз, складене "майже" за правилами РНР. Ось показовий приклад:
>DELETE FROM topics WHERE forum_id=10ANDuser != ">moderator"
У вираженні, крім імен полів, констант і операторів, можуть зустрічатиметься найпростіші ">обчислювальні " частини, наприклад:
(>id < 10+11*234).
Власне кажучи, формат висловлювання єдиний всім команд запитів, які ми зустрінемо надалі. Наприклад, він також використовують і в операції SELECN, й у операції UPDATE.
Оновлення записів. Функція >UPDATE
>UPDATEИмяТаблициSET (>ИмяПоля1= '>зн1',ИмяПоля1-- '>зн2', ...)WHERE вираз
У таблиці “ИмяТаблици” всім записів, які відповідають вираженню вираз, зазначені поля встановлюються на відповідні значення. У цьому інші поля залишаються без зміни. У цю команду часто виконується, а то й потрібно оновлювати відразу всі поля якийсь записи, Україна ж має торкнутися лише окремі.
Відправлення запиту серверу для вилучення однієї стоки з таблиці бази даних. Функція mysql_query
>resource mysql_query (>string query)
Ця функція застосовується до відправки серверу SQL-запитів. Функція повертає дескриптор запиту при успішному ході false -- у разі невдалого виконання запиту.
У лістингу показаний код, з допомогою якого витягається один рядок з таблиці customers бази даних categor:
<?>include ">config.php";//Підключення до сервера і вибір бази даних
$>ath =mysql_query("select *from customers;");
>if($ath)
{$>author =mysql_fetch_array($ath);
>echo "<>br>имя = ".$>author['name']."<br>";
>echo "адресу = ".$>author['city']."<br>";}
>else
{>echo "<>p><b>Error: ".>mysql_error () . "</>b></p>" ;
exit () ;}?>
На рисунку 7 зображена частина бази даних створеної у PhpMyAdmin.
3.3 MySQL І ПРОБЛЕМИ БЕЗПЕКИ
Запити, відправлені серверу MySQL, є звичайні рядки РНР:
>mysql_query("INSERT INTO table SET name='$name'");
У $>name може зберігатися рядок, яка містить апострофи.
Розглянемо, який запит прийде серверу MySQL, якщо $>name одно ">cat's":
>INSERTINTO table SET name='cat's'
У цю команду синтаксично некоректне і породить помилку під час виконання.
А може й більше.
Розглянемо такий запит:
>mysql_query("DELETEFROM table WHERE name='$name'");
Якщо параметр $>name приходить із форми, і зловмисник зазначила у ньому наступний рядок: "!' or 1=1 or '!", то після підстановки вийде такий запит до бази даних: >DELETEFRO Mtable-WHERE name=' !'OR 1=1OR ' !'
Цей запит віддалить все записи з таблиці table, оскільки вираз SQL 1=1 завжди істинно.
Розглянемо два засоби захисту аналогічних помилок чи дій зловмисника:
1) Екранізуванні спец-символів.
Подобные документы
Вибір емпіричної формули. Метод оберненої матриці. Розв’язування систем лінійних рівнянь на ПК. Вибір двох апроксимуючих функцій. Розрахунки у середовищі MS Excel для лінійної функції, для квадратичної функції та у середовищі MS Visual Studio (мовою С#).
курсовая работа [658,8 K], добавлен 18.08.2014Характеристика середовища програмування Microsoft Visual C++ та бібліотеки класів MFC. Знаходження коефіцієнтів при невідомих за допомогою методу найменших квадратів. Створення програми для вирішення задачі обраним методом, її алгоритм та інтерфейс.
курсовая работа [434,8 K], добавлен 20.01.2014Ортогонaлізування функцій. Порівняння дискретного та хвильового перетворення. Інтерполяційні поліноми Лагранжа і Ньютона. Метод найменших квадратів. Побудова кривої для заданих результатів вимірювань. Розв’язання задачі по Лапласу операційним методом.
курсовая работа [2,2 M], добавлен 10.04.2012Основні теоретичні відомості про метод знаходження значення функції у міжвузловій точці за допомогою інтерполяційної формули Бесселя та приклад його застосування. Розробка алгоритму за даним методом. Опис програми, лістинг та результати тестування.
курсовая работа [70,3 K], добавлен 03.12.2009Опис підрозділу гнучких виробничих систем (ГВС) як об‘єкта управління. Проектування алгоритмічного забезпечення системи оперативного управління. Складання розкладу роботи технологічного обладнання. Розробка програмного забезпечення підсистем СОУ ГВС.
курсовая работа [2,0 M], добавлен 11.07.2012Реалізація інтерполяції поліномами за методами найменших квадратів і Лагранжа в Matlab. Наближення даних сплайном нульового порядку. Диференціювання полінома. Геометричний зміст похідної. Чисельне інтегрування функцій. Розв’язування диференційних рівнянь.
контрольная работа [285,3 K], добавлен 01.06.2015Загальні відомості про електронні таблиці. Призначення електронних таблиць. Завантаження електронних таблиць. Елементи вікна Excel. Робота з книгами. Введення та відображення даних. Редагування даних. Формули і функції.
курсовая работа [59,9 K], добавлен 28.03.2004Проектування і реалізація навчального програмного продукту "Побудова геометричних фігур". Використання C++ Builder 6 у якості програмного середовища для реалізації даної навчальної програми. Інструкція з використання розробленого програмного забезпечення.
курсовая работа [2,2 M], добавлен 05.05.2014Розробка схеми бази даних бібліотеки для отримання довідки про книги та читачів, програмного забезпечення системи управління БД. Розгляд функціональних підсистем та побудова інтерфейсу. Проведення тестування програми, та виділення переваг та недоліків.
курсовая работа [432,1 K], добавлен 24.01.2011Загальні відомості про протоколи: Інтернету, управління передачею, користувача. Функції та структури, які беруть участь у реалізації алгоритму передачі даних. Виклик та завантаження, розробка структури програми. Вхідні та вихідні данні з сервера.
курсовая работа [1,5 M], добавлен 01.12.2010