Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 6
На сайте нет зарегистрированных пользователей

Пользователей: 13,372
новичок: vausoz
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Обработка задач на ЭВМ на GPSS + Пояснительная записка
Моделирование работы класса персональных компьютеров на GPSS + Отчет + Б...
Метод половинного деления для нахождения корня уровнения на Turbo Pascal...

информационно – справочная система «Спортивные организации города» [Turbo prolog 2.0]

ТЕОРЕТИЧЕСКОЕ ОБОСНОВАНИЕ РАБОТЫ


1.1 Разработка базы данных

Разрабатываемая база данных должна использоваться для поиска информации о соревнованиях, спортивных сооружениях, спортсменах и спортивных клубах. Каждый спортсмен будет характеризоваться фамилией, именем и отчеством; категорией максимальной сложности (мастерства) и специализируемыми видами спорта. Каждый спортивный клуб будет характеризоваться названием и администратором клуба. Спортивное сооружение будет характеризоваться названием сооружения и типом покрытия, а также вместительностью. Соревнование будет характеризоваться индивидуальным названием соревнования, датой начала соревнования, временем начала соревнования и категорией сложности соревнования.
Итак, выделены следующие типы связей для описания некоторого соревнования с учетом поставленной задачи:
• спортсмен;
• клуб;
• сооружение;
• вид спорта.
Для организации связи между сущностями спортсменов и клубов следует ввести идентификационный номер сущности клуба, который будет указываться в соответствующем поле сущности спортсмена. Связь сущностей спортсмена и видов спорта, которыми он занимается, организуется посредством идентификационного номера сущности вида спорта, которые указываются в соответствующем списке и информации о спортсменах. Для того, что бы связать сущность сооружения, в которых проходят соревнования, и сущность соревнования следует также ввести идентификационные номера сущности сооружений, которые будут указываться в сущности о соревнованиях. Спортсмены клубов участвуют в соревнованиях, для этого в сущности о соревнованиях указывается идентификационный номер клуба. Для связи тренера и клуба необходимо ввести идентификационный номер сущности тренера в клубе, а также ввести в сущность о тренерах номер вида клуба для связи с сущностью о видах.
В программе будут работать следующие предикаты:
1. Для описания спортсмена использован предикат
sportsm(IDman,name,katsl, type_spis ,IDkl),
где IDman – идентификационный номер спортсмена;
name – структура фамилии, имени и отчества, состоящая из
следующих компонентов:
name = fio(surname,nm,parname),
surname – фамилия спортсмена,
nm – имя спортсмена,
parname – отчество спортсмена;
katsl – присвоенная категория мастерства (сложности);
type_spis – список видов спорта.;
IDkl – идентификационный номер клуба.
2. Для описания клуба использован предикат
klub(IDkl,nazv,IDtrener,IDv),
где IDkl – идентификационный номер клуба;
nazv - название клуба;
IDtrener– идентификационный номер тренера клуба;
IDv - идентификационный номер вида спорта;
3. Для описания спортивного сооружения использован предикат
sooruzhen(IDsoor,t_start,t_end,mesta),
где IDm – идентификационный номер сооружения;
t_start – название спортивного сооружения;
t_end – тип покрытия сооружения;
mesta – вместительность спортивного сооружения.
4. Для описания соревнования использован предикат
sorevnov(IDs,specp,IDkl,IDsoor,Data,Time,katslozh),
где IDs – идентификационный номер соревнования;
specp – название или специализация соревнования;
IDkl – индивидуальный номер клуба, который представлял спортсмена,
IDsoor – идентификационный номер спортивного сооружения, в котором проводилось соревнование,
Data – структура даты, состоящая из следующих компонентов:
Data = data(day,month,year),
day – день,
month – месяц,
year – год,
Time – структура времени, состоящая из следующих компонентов:
Time = time(hour,minutes),
hour – часы,
minutes – минуты,
katslozh – категория сложности соревнования.
5. Для описания видов спорта использован предикат
vid(IDv,nvid,IDtrener),
где IDv – идентификационный номер вида спорта;
nvid - название вида спорта;
IDtrener – идентификационный номер тренера вида спорта;

6. Для описания тренеров использован предикат
trener(IDtrener,name,IDv),
где IDtrener – идентификационный номер тренера;
name - имя тренера;
IDv – идентификационный номер вида спорта;


Для определения типов данных необходимо определить, какие значения будут иметь аргументы предикатов.
Используем тип integer:
для номера спортсмена и категории мастерства, пройденного им соревнования;
для номера спортивного клуба, количества спортсменов в клубе;
для номера спортивного сооружения, вместительности сооружения;
для составляющих даты - дня, месяца, года;
для составляющих времени - часов, минут.
для номера видов спорта и номера тренеров.
Используем тип string:
для ФИО спортсменов;
для названия клубов;
для названия и типа покрытия спортивного сооружения.
для названия видов спорта;
для имен тренеров;
для названия соревнований;
Сформированная база знаний будет храниться в файлах с расширением *.txt. Каждая отдельная сущность, с относящимися к ней атрибутами, будет храниться в отдельном файле с соответствующем названием: файл DBS.txt содержит информацию о спортсменах, файл DBSOR.txt – о соревнованиях, файл DBK.txt – информацию о спортивных клубах, файл DBV.txt – информацию о видах спорта, файл DBtrener.txt – информацию о тренерах, файлы DBSOOR.txt – о спортивных сооружениях.
При обращении к базе знаний необходимая информация загружается в ОЗУ из файла *.txt внутренней базы с указанным именем.
1.2 Разработка базы знаний

После заполнения базы данных фактами необходимо определить правила, позволяющие осуществлять поиск по базе, то есть разработать базу знаний.
В работе программы используются следующие предикаты базы знаний:
1) Предикат print_sportsm(IDi,name,kats,IDv,IDkl) осуществляет выборку и вывод на экран информации о спортсменах;
2) Предикат print_klub(IDv,IDkl,nazv,tren) осуществляет выборку и вывод на экран информации о клубах;
3) Предикат print_soor(IDsoor,t_start,t_en,mesta) осуществляет выборку и вывод на экран информации о сооружениях;
4) Предикат print_vid(IDv,nvid,trener) осуществляет выборку и вывод на экран информации о видах спорта;
5) Предикат print_sorevn(IDs,specp,IDman,IDkl,IDsoor,Data,Time,katslozh) осуществляет выборку и вывод на экран информации о соревнованиях;
6) Предикаты proverka_sports(integer),proverka_kl(integer), proverka_soor(integer),proverka_sorev(integer), proverka_vid(integer) выполняют проверку на наличие существования определённого идентификационного (уникального) номера в каждой базе данных.
7) Предикат print_trener(IDtrener,name,IDv) осуществляет выборку и вывод на экран информации о тренерах;

Вывод на экран таблицы спортсменов осуществляется последовательным выводом атрибутов данной сущности, т.е. фамилии, имени, отчества спортсмена, категории мастерства и видов спорта:
print_sportsm(IDman,fio(Surname,Nm,Parname),Katsl,IDv,IDkl):- table_sports,
/*прорисовка «шапки» таблицы*/
sportsm(IDman,fio(Surname,Nm,Parname),Katsl,IDv,IDkl),
write("|"),writef("%12 ",Surname), /*вывод ФИО студента*/
frontchar(Nm,C1,_),write(C1),
write("."),frontchar(Parname,C2,_),write(C2),/*вывод инициалов студента*/
write(". |"),writef("%3",Katsl),write("|"),/*вывод категории мастерства спортсмена*/
writef("%10",NVid),write(" |"), /*вывод вида спорта спортсмена*/
writef("%3",Nazv),nl, /*вывод названия клуба к которому относится спортсмен*/
Предикаты print_soor, print_klub, print_sorevn, print_vid, print_sorevn1 работают по такому же принципу, как и предикат вывода на экран информации о спортсменах – print_sportsm.
Работу предикатов, выполняющих проверку на уникальность заданного идентификационного номера, рационально рассмотреть на примере предиката proverka_sports. Принцип работы предиката proverka_sports заключается в сопоставлении некоторого номера спортсмена с имеющимися в базе номерами спортсменов, в случае, если указанный номер спортсмена существует, то об этом сообщается, в противном случае, разрешается выполнять последующие операции, в данном случае – добавление спортсмена с таким номером.
proverka_sports(IDi):-sportsm(IDi,fio(_,_,_),_,_,_),!,nl, /*проверка на существование в базе указанного номера спортсмена*/

write("Yzhe syschestvyet zapis s takoj ID!!!"),nl, /*сообщение о существовании такой записи*/
write("Nazhmite lyubyyu klavishy"),
readchar(_),vibor2(1);dobavlenie(1,IDi). /* переход к функции добавления записи*/

Опубликовал Kest February 28 2011 18:10:16 · 0 Комментариев · 11760 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Страница 2 из 9 < 1 2 3 4 5 > >>
Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
GPSS World Studen...
Ehlib
FatScrollbar
Cooltray
DAlarm
С. Г. Горнаков - ...
Основы Delphi
Binary2XMLDemo (Р...
DelTrayIcon [Исхо...
DirHTMLReportBuil...
Ведение справочны...
Zoom [Исходник на...
Microsoft Press -...
ADVstatusbar
Delphi 7 Enterpri...
Java 2. Наиболее ...
ProLIB18
C++ Builder в за...
Моделирование дви...
WebReg v1.3

Топ загрузок
Приложение Клие... 100793
Delphi 7 Enterp... 98016
Converter AMR<-... 20298
GPSS World Stud... 17059
Borland C++Buil... 14239
Borland Delphi ... 10373
Turbo Pascal fo... 7390
Калькулятор [Ис... 6080
Visual Studio 2... 5228
Microsoft SQL S... 3674
Случайные статьи
Содержимое объекта...
Too many EXTRN def...
Использование XHTM...
Найдите печатный т...
неотрицательность...
Использование объе...
Установка и удален...
записями в Active ...
Процедура итерацио...
Формальное описани...
Управление маркерами
Общие подходы к пр...
Аутентификация при...
Недостатки нефирме...
Вывод результатов ...
СТРУКТУРА МОДУЛЯ L...
PNG
Акселерометры
Бесплатные игровые...
Алгоритм RC6
Представление внеш...
Invalid file name
Azure выдаст преду...
сервера и сведения...
Официальный сайт к...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?