Предмет Базы Данных. Вопрос по проекту

Интересные алгоритмы, олимпиадные задачи, эффектные и эффективные решения. freepascal, delphi, c, c++, c#, java, javascript, perl, ruby, python, php, bash, wsh и т.д. Компиляторы, интерпретаторы, линкеры, отладчики, системы контроля версий и многое другое.

Модератор: xdsl

Re: Предмет Базы Данных. Вопрос по проекту

Сообщение xdsl 24 апр 2009, 09:13

Рассмотрим пример того, что внутренняя структура и представление - совершенно разные сущности.
Вот немного сокращенная выборка для представленного выше рисунка.
Код: Выделить всё
SELECT
p.id as id,
concat(surname,' ',firname,' ',patname) as fio,
cast(group_concat(distinct ped.name order by ped.name asc separator ', ') as char) as edu,
cast(group_concat(distinct concat(pe.predmet,'(',pe.result,'%)') separator ', ') as char) as ege,
cast(group_concat(distinct pp.name order by pp.name asc separator ', ') as char) as privelege,
cast(group_concat(distinct l.name order by l.name asc separator ', ') as char) as lang
      FROM 
dtpeople p
left join dtpeople_edu ped on p.id=ped.topeople
left join dtpeople_ege pe on p.id=pe.topeople
left join dtpeople_privelege pp on p.id=pp.topeople
left join dtpeople_langs pl on p.id=pl.topeople
left join diclang l on l.id=pl.tolang
     GROUP BY id

Заметьте, информация о владении иностранными языками, ЕГЭ, льготах, образовании абитуриента находится не в таблице dtpeople, а в таблицах dtpeople_langs, dtpeople_ege, dtpeople_privelege, dtpeople_edu, в каждой из которых есть поле toPeople - ссылка на поле ID в таблице dtpeople. Аналогично связаны справочник языков diclang с таблицей владения языками абитуриентом dtpeople_langs.
xdsl
 
Сообщения: 1236
Зарегистрирован: 09 дек 2008, 05:16
Откуда: ВЦ ШГПИ
Полное имя: Слинкин Д.А.

Re: Предмет Базы Данных. Вопрос по проекту

Сообщение Gemini 24 апр 2009, 09:32

Владислав Юрьевич.

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

Структура проекта "Видеокаталог":
basket - корзина пользователя (или список фильмов которые он захотел заказать,скачать и т.д.) - это для тренировки - в жизни пригодится уметь работать с подобными таблицами
countries - справочник стран
movies - основная таблица фильмов
users - таблица пользователей.Для разделения прав работы с проектом.Т.е. есть админская уч.запись и все остальные пользователи.


Вообщем из всего проекта ненормализованной будет одна таблица - основная таблица фильмы.И вот почему.Структура у этой таблицы такова
Movies
id_m - PK
Name - название фильма
oName - Оригинальное название фильма
Producer - строка,размером 50, в которой перечислены режиссеры(в форме Н. Михалков, В. Абдрашитов )
Year - год выпуска
Genre - строка,размером 50, в которой перечислены жанры в произвольной форме (например драма, военный, мелодрама)
Actors - строка,размером 250, в которой перечисленны актеры в произвольной форме(например Джон Кьюсак, Мариса Томей, Хилари Дафф...)
ToCountry - ссылка на таблицу стран чьего производства фильм
Image - строка,длинна 100, - путь к постеру расположенному на сервере.
Comments - blob поле - так как комментарии часто занимают больше 255 символов.

ИМХО, такая структура достаточно удобна - так как поля Genre и Actors- не столь существенны и существуют только для представления информации.И когда они в виде строк - поиск,например, по ним организовать даже проще чем если их организовывать через связи между множеством таблиц. Более строгие требования будут оформлению к поля Producer - но и его проще было бы искать вот в такой структуре этой таблицы, а не через таблицу связей и справочник режиссеров.

Ведь вы сами как то говорили что необходимо находить баланс между требованиями нормализации и реальными проектами.
Поэтому - можно ли продолжать отлаживать свой проект с этой таблицей, всмысле Вы не будете за это мне потом оценку снижать? или же мне надо эту таблицу и весь проект переделывать?
Последний раз редактировалось Gemini 24 апр 2009, 10:07, всего редактировалось 2 раз(а).
Не относитесь к этой жизни слишком серьезно,господа.Все равно вам из неё живым не выбраться.
Gemini
 
Сообщения: 90
Зарегистрирован: 13 янв 2009, 12:42
Откуда: Сейчас в Ша
Полное имя: Плешков Сергей Александрович

Re: Предмет Базы Данных. Вопрос по проекту

Сообщение Gemini 24 апр 2009, 09:48

To xdsl

Чтож. Так языком запросов я, к сожалению, еще не владею. Даже не знал что можно сделать так.Это запрос для mysql,да? А работают ли cast и другие операторы для mssql?
Не относитесь к этой жизни слишком серьезно,господа.Все равно вам из неё живым не выбраться.
Gemini
 
Сообщения: 90
Зарегистрирован: 13 янв 2009, 12:42
Откуда: Сейчас в Ша
Полное имя: Плешков Сергей Александрович

Re: Предмет Базы Данных. Вопрос по проекту

Сообщение xdsl 24 апр 2009, 13:09

Gemini писал(а):А работают ли cast и другие операторы для mssql?

Вот как раз cast не должен вас волновать, он у меня по причине того, что некоторые поля из используемых не varchar. Group_concat - вот где загвоздка. Для mssql придется свою агрегатную функцию писать. Впрочем, они уже есть такие, видел варианты и для mssql и для postgresql, гугл в руки.
xdsl
 
Сообщения: 1236
Зарегистрирован: 09 дек 2008, 05:16
Откуда: ВЦ ШГПИ
Полное имя: Слинкин Д.А.

Re: Предмет Базы Данных. Вопрос по проекту

Сообщение Vladislav_133 24 апр 2009, 13:32

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

Я вам еще раз повторю: если вам придется искать по фамилии режиссера, а также узнать его имя и отчество (по возможности), то как вы будете решать эту проблему, с учетом того, что я написал выше. А ежели захотите изменить ее или имя отчество, а ежели ошибетесь в наборе. Режиссеры должны быть в справочнике, жанры должны быть в справочнике, актеры в справочнике, страны в справочнике, а для каждого фильма в отдельной таблице, поскольку бывает производство нескольких стран. Комментарии должны быть в отдельной таблице, поскольку для каждого фильма их может быть несколько.
Ну и т.д.
Последний раз редактировалось Vladislav_133 24 апр 2009, 14:49, всего редактировалось 1 раз.
Аватара пользователя
Vladislav_133
Elite
 
Сообщения: 1386
Зарегистрирован: 13 дек 2008, 18:08
Полное имя: П.В.Ю.

Re: Предмет Базы Данных. Вопрос по проекту

Сообщение Gemini 24 апр 2009, 13:50

Чтож...Ну комментарии не правильно обозначен.Имелся ввиду не комментарий, а описание фильма.Просто с момента проектирования так был назван.
Не относитесь к этой жизни слишком серьезно,господа.Все равно вам из неё живым не выбраться.
Gemini
 
Сообщения: 90
Зарегистрирован: 13 янв 2009, 12:42
Откуда: Сейчас в Ша
Полное имя: Плешков Сергей Александрович

Re: Предмет Базы Данных. Вопрос по проекту

Сообщение Vladislav_133 24 апр 2009, 14:46

Сегодня вечером будет развернутый ответ. Постараюсь объяснить как решаются, появившиеся у вас проблемы.
Аватара пользователя
Vladislav_133
Elite
 
Сообщения: 1386
Зарегистрирован: 13 дек 2008, 18:08
Полное имя: П.В.Ю.

Re: Предмет Базы Данных. Вопрос по проекту

Сообщение Gemini 24 апр 2009, 15:34

Хорошо,Владислав Юрьевич.

А пока я скажу,что я понял из нашего разговора в этой теме.

Первая проблема - база должна быть нормализована.Значит надо изменить структуру.Думаю такая структура будет приемлема.
Таблицы: Основные
Movies - Основная таблица фильмов
Users - Пользователи
Basket - Корзина(пока не мешает - пусть остается)
Producers - справочник режиссеров
Genres - справочник жанров
Actors - справочник актеров
Countries - справочник стран
Таблицы: вспомогательные
lnMovAct - таблица связи фильмов и актеров
lnMovGen - таблица связи фильмов и жанров
lnMovCoun - таблица связи фильмов и стран

Таблицу связи фильмов и режиссеров решил не делать - т.к. полазив по media.shadrinsk.net не нашел фильмов, с двумя и больше режиссерами, поэтому ссылка из основной таблицы будет правильным решением.

Более подробная структура таблиц в прилагаемом файле.

Список фильмов будет преставляться примерно вот так
Изображение
Справа от логина алфавитные ссылки для поиска и собственно поле поиска
Вложения
1.rar
более подробная структура бд
(3.05 Кб) Скачиваний: 451
Не относитесь к этой жизни слишком серьезно,господа.Все равно вам из неё живым не выбраться.
Gemini
 
Сообщения: 90
Зарегистрирован: 13 янв 2009, 12:42
Откуда: Сейчас в Ша
Полное имя: Плешков Сергей Александрович

Re: Предмет Базы Данных. Вопрос по проекту

Сообщение Vladislav_133 24 апр 2009, 19:56

Проблема на самом деле серьезная и требует развернутого ответа. Для простоты рассмотрим следующие две таблицы.

Изображение
рис. 1

Простой запрос
select a.name,b.style from films a inner join styles b on a.id=b.id_f

приведет к тому, что клиент получит, ну скажем, такую таблицу

Терминатор Боевик
Терминатор Фантастика
Угра Драма
Мертвые души Классика
Мертвые души Драма
Мертвые души Приключения
Кавказская пленница Комедия

Что можно сделать с такой таблице в клиенте?

Продолжение следует...
Аватара пользователя
Vladislav_133
Elite
 
Сообщения: 1386
Зарегистрирован: 13 дек 2008, 18:08
Полное имя: П.В.Ю.

Re: Предмет Базы Данных. Вопрос по проекту

Сообщение Vladislav_133 24 апр 2009, 20:13

Продолжим.
В действительности таблица, которую получил клиент, это не простая таблица, а таблица-курсор. Другими словами по ней можно передвигаться с помощью цикла и получать доступ к каждой строке. Суть одна и таже вне зависимости от того, на чем вы пишите клиента: на C#, PHP, Delphi, Java и т.д. Вы можете поступить двояко, либо на лету формировать новую строку (конкатируя названия жанров) для каждого фильма и выводить ее, как обычно делают в PHP, либо сформировать нужный для вас двумерный массив строк и передать его объекту для отображения таблиц, которые почти везде имеют имя, в котором есть подстрока GRID.
Описанный подход совсем не плох. Другими словами мы, практически все формирование отображаемой таблицы переносим в клиента. Мне кажется это логичное решение. Но, естественно, не единственное.

Продолжение следует...
Аватара пользователя
Vladislav_133
Elite
 
Сообщения: 1386
Зарегистрирован: 13 дек 2008, 18:08
Полное имя: П.В.Ю.

Re: Предмет Базы Данных. Вопрос по проекту

Сообщение Vladislav_133 24 апр 2009, 20:31

Продолжение.

Второй способ решения указанной проблемы представил Дм.Анатольевич.
Вообще я уже писал о том, mysql долго развивался без программирования на стороне сервера, а поэтому там появилось много полезных вещей, в частности group_concat. На самом деле это просто агрегирующая функция. Такая же, как например стандартная функция sum, которая суммирует числовые столбцы в группе строк. Здесь же суммируются строки, что очень логично. В других СУБД, таких например, как PostgreSQL или MSSQL такой функции нет. Но там можно создать свою агрегирующую функцию. В PostgeSQL это делается на стандартном языке PL/SQL. В MSSQL есть другой механизм создания агрегирующих функций. Там можно написать любую функцию, в том числе и агрегирующую на одном из NET языков. Затем модуль пристыковывается и становится фактически частью сервера. Преимуществом такого подхода является то, что такие функции выполняются очень быстро. В общем механизмы есть.

Продолжение следует...
Аватара пользователя
Vladislav_133
Elite
 
Сообщения: 1386
Зарегистрирован: 13 дек 2008, 18:08
Полное имя: П.В.Ю.

Re: Предмет Базы Данных. Вопрос по проекту

Сообщение Vladislav_133 24 апр 2009, 20:44

Продолжение.
Большинство современных СУБД позволяют программировать на стороне сервера. В частности все они предусматривают создание курсоров на стороне сервера. Таким образом вы можете создать курсор на основе, скажем, запроса

select a.name,b.style from films a inner join styles b on a.id=b.id_f

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


Продолжение следует...
Аватара пользователя
Vladislav_133
Elite
 
Сообщения: 1386
Зарегистрирован: 13 дек 2008, 18:08
Полное имя: П.В.Ю.

Re: Предмет Базы Данных. Вопрос по проекту

Сообщение Vladislav_133 24 апр 2009, 21:27

Продолжение

Все таки в MSSQL (на Transact-SQL) можно сделать этакий суррогат, очень похожий на агрегирующую функцию.

CREATE FUNCTION Concat(@id INT)
RETURNS NVARCHAR(500)
AS
BEGIN
DECLARE @it varchar(500)
SET @it = ''

SELECT @it = @it + ',' + style
FROM styles
WHERE id_f = @id

RETURN SUBSTRING(@it, 2, 500)
END

Теперь можно выполнить следующий запрос

select id,name, dbo.Concat(id) as style
from films
group by id,name

Разумеется это суррогат, но все будет работать.

Хотя это еще не все, но я заканчиваю и этого довольно.

Мир программирования велик и многообразен!
Аватара пользователя
Vladislav_133
Elite
 
Сообщения: 1386
Зарегистрирован: 13 дек 2008, 18:08
Полное имя: П.В.Ю.

Re: Предмет Базы Данных. Вопрос по проекту

Сообщение Gemini 06 май 2009, 14:29

Владислав Юрьевич, а могу я проекте совсем не использовать хранимые процедуры? На данный момент клиент,ну точнее web-сервер(проект сделан по 3 звенной модели - База Данных - Web сервер - Клиент) занимается обработкой запросов и представлением данных конечному пользователю - т.е. все создание представлений выполняются на php функциях на самом сервере.
Можно какую то часть переложить и на бд, но я не вижу в этом особого смысла.Скорость работы,при расположении на одной машине-сервере и БД и web-ceрвера будет высокой.
Не относитесь к этой жизни слишком серьезно,господа.Все равно вам из неё живым не выбраться.
Gemini
 
Сообщения: 90
Зарегистрирован: 13 янв 2009, 12:42
Откуда: Сейчас в Ша
Полное имя: Плешков Сергей Александрович

Re: Предмет Базы Данных. Вопрос по проекту

Сообщение Gemini 06 май 2009, 14:33

И еще вопрос. Как будет проводиться экзамен?

В компьютерном классе, по схеме:
1) вытягивается билет - подготовка - ответ и показывание проекта
2) если проект не удовлетворил, то дополнительное практическое задание...

Или как то по другому?
Не относитесь к этой жизни слишком серьезно,господа.Все равно вам из неё живым не выбраться.
Gemini
 
Сообщения: 90
Зарегистрирован: 13 янв 2009, 12:42
Откуда: Сейчас в Ша
Полное имя: Плешков Сергей Александрович

Re: Предмет Базы Данных. Вопрос по проекту

Сообщение Vladislav_133 06 май 2009, 17:42

Я никогда не интересуюсь, кто скрывается за ником, поэтому даже и не знаю, с какого вы курса.

Предположу, что вы с МО с третьего курса. Если так, то вот мои требования:
1. Использовать хранимые процедуры обызательно. Это учебное задание. Еще бы интересно было проанализировать то, как вы их спланировали.
2. Экзамен по БД сложный. Будет около 30 вопросов по теории. И задание на экзамене. Задание: написать хранимую процедуру или триггер.

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

Если же с курса, где я не веду, просто делаете проект, то использование хранимых процедур все равно обязательно.
Аватара пользователя
Vladislav_133
Elite
 
Сообщения: 1386
Зарегистрирован: 13 дек 2008, 18:08
Полное имя: П.В.Ю.

Re: Предмет Базы Данных. Вопрос по проекту

Сообщение TORES 19 май 2009, 13:56

У нас зачет по проектированию ИС . Вопрос такой, если связи в таблицах указаны не верно(например за место связи многие ко многим использована связь один ко многим) это как то повлияет на сдачу проекта? Если связь многие ко многим то таблицу посредник обязательно создавать или нет?
TORES
 
Сообщения: 16
Зарегистрирован: 14 май 2009, 10:29
Полное имя: Морозов Александр Павлович

Re: Предмет Базы Данных. Вопрос по проекту

Сообщение TORES 19 май 2009, 14:45

Второй вопрос: Создана база в которой есть таблицы Студенты(поля:ФИО,номер зачетки - типа nchar,to_group типа int) и таблица Группы(поля id,номер группы- типа nchar).Они соединены связью один ко многим по полям номер группы и to_group.Возникла проблема как писать запрос на добавление, если сразу надо добавить запись в таблицу Студенты и Группы.
TORES
 
Сообщения: 16
Зарегистрирован: 14 май 2009, 10:29
Полное имя: Морозов Александр Павлович

Re: Предмет Базы Данных. Вопрос по проекту

Сообщение Vladislav_133 19 май 2009, 18:13

Если не правильные связи, то исправьте их. В чем же дело.

Вторая проблема понятна. Но все же озвучу, в чем она состоит. Имеется две таблицы A и B. Связь один ко многим. Требуется добавить запись в главную таблицу и сразу в подчиненную. Проблема в том, что в подчиненную таблицу надо добавить и значение внешнего ключа, соответствующего записи, добавленной в главную таблицу. Т.е. надо знать значение первичного ключа добавленной записи из главной таблицы. Проблемы бы не было, если бы мы выбрали, скажем группу из списка, поскольку при получении списка, мы бы получили и значение первичного ключа. А вот сразу как? Другими словами, как выполнить две команды insert подряд. Тут надо в начале ответить на вопрос, как генерируется первичный ключ в главной таблице. Если вы его задаете сами, то проблемы никакой нет, согласны? Если же он генерируется автоматически, то проблема появляется. Другими словами как узнать, что было сгенерировано. Опять же, если у вас счетчик, то на первый взгляд возможно следующее решение.
Вы вставляете строку в главную таблицу.
Затем находите максимальное значение первичного ключа, а это, как нам кажется и есть сгенерированное значение для вставленной нами строки.
На самом деле все совсем не так. Во всяком случае это решение плохое, а внекоторых случаях абсолютно не приемлимое. Почему? А потому, что в многопользовательской среде после того, как вы вставили строку, может кто-то жругой вставить строку. В результате вы привяжете строку из подчиненной таблицы к совсем другой строке главной (поместите студента в другую группу).
Во всех СУБД предлагается свое решение, но оно в основном сводится к следующему: имеется функция, которая возвращает последнее значение счетчика для вашего соединения.
Подчеркну такая функция должна быть в любых СУБД. В MS SQL это функция @@IDENTITY. именно в таком виде без скобок она используется. Она работает для текущей сессии или соединения. Так что вам она подойдет.
Аватара пользователя
Vladislav_133
Elite
 
Сообщения: 1386
Зарегистрирован: 13 дек 2008, 18:08
Полное имя: П.В.Ю.

Re: Предмет Базы Данных. Вопрос по проекту

Сообщение xdsl 19 май 2009, 19:46

Для MySQL то-же решение: SELECT last_insert_id()
xdsl
 
Сообщения: 1236
Зарегистрирован: 09 дек 2008, 05:16
Откуда: ВЦ ШГПИ
Полное имя: Слинкин Д.А.

Re: Предмет Базы Данных. Вопрос по проекту

Сообщение TORES 21 май 2009, 14:53

Хорошо с запросом понятно. Я разрабатываю проект на PHP. Тогда правильно ли я понял что в клиентской чачти надо создать поля на добавление следущим образом:т.е поля для добавления будут называться ФИО студента, номер зачетки(из главной таблицы) , группа студента (из подчененной таблицы)?
TORES
 
Сообщения: 16
Зарегистрирован: 14 май 2009, 10:29
Полное имя: Морозов Александр Павлович

Re: Предмет Базы Данных. Вопрос по проекту

Сообщение TORES 21 май 2009, 15:18

У одногрупника тоже проблема со связями таюлиц! Рассматривается база данных только по Чемпионату мира с участием спортсменов в разные года(статистика за 5 лет). Есть таблица 1)Спортсменов(поля: id -int ,ФИО спотсмена,чемпионское звание - типа nchar) и 2)таблица Соревнования (id-int, to_sportsmen-int, to_year-int) 3)Year (id-int, name_season- nchar). Вопрос как будет связана таблица 1 и 2 если в 1 соревнований (чемпионат мира) с нескольким годами (2001,2002 и т.д) 1 спотсмен может участвовать несколько раз. А 1 спотсмен
может участвовать в 1 соревнований (с несколькими годами )несколько раз? Связь многие ко многим , либо одногрупник ошибается и связь один ко многим?
TORES
 
Сообщения: 16
Зарегистрирован: 14 май 2009, 10:29
Полное имя: Морозов Александр Павлович

Re: Предмет Базы Данных. Вопрос по проекту

Сообщение Vladislav_133 21 май 2009, 20:59

TORES писал(а):Хорошо с запросом понятно. Я разрабатываю проект на PHP. Тогда правильно ли я понял что в клиентской чачти надо создать поля на добавление следущим образом:т.е поля для добавления будут называться ФИО студента, номер зачетки(из главной таблицы) , группа студента (из подчененной таблицы)?


Ничего не понял, поэтому и ответить не могу. Напишите подробнее, я сразу постараюсь ответить.

Теперь, что касаемо спортсменов. Здесь тоже не очень понятно, но все же. Не очень понятно зачем нужна таблица лет. Я бы сделал так.
Таблица спортсменов (id,фио, звание), справочник соревнований (id, название), таблица участия спортсменов в соревнованиях (id, id_спортсмен, id_соревнование, год). Тогда связь между таблице спортсмены и таблицей участие "один -ко многим" и связь справочника соревнования и таблицей участия также "один ко многим". Вот и весь расклад.
Аватара пользователя
Vladislav_133
Elite
 
Сообщения: 1386
Зарегистрирован: 13 дек 2008, 18:08
Полное имя: П.В.Ю.

Re: Предмет Базы Данных. Вопрос по проекту

Сообщение Vladislav_133 22 май 2009, 08:16

Вдогонку расскажу поучительный анекдот на тему моей фразы
Ничего не понял, поэтому и ответить не могу.
. Анекдот еще из старых времен.

Было дело в 19-м веке в одном из департаментов Российской империи. Пришла бумага, которая требовала срочного ответа. Бумага "сверху" и проигнорировать ее нельзя. Но понять ее никто не мог.
Читали начальник департамента, его заместители, другие чиновники, но ничего не поняли.
Наконец вспомнили про старого чиновника, который в департаменте уже лет сорок работал.
Попросили его прочитать. Он долго читал. Наконец вздохнув сказал:
- Ничего не понял, но ответить могу.


Но мы то с вами не чиновники.
Аватара пользователя
Vladislav_133
Elite
 
Сообщения: 1386
Зарегистрирован: 13 дек 2008, 18:08
Полное имя: П.В.Ю.

Re: Предмет Базы Данных. Вопрос по проекту

Сообщение Gemini 03 июн 2009, 11:13

Код: Выделить всё
Требования:
1. Использовать хранимые процедуры обызательно. Это учебное задание. Еще бы интересно было проанализировать то, как вы их спланировали.
2. Экзамен по БД сложный. Будет около 30 вопросов по теории. И задание на экзамене. Задание: написать хранимую процедуру или триггер.

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


Осталось 7 дней на подготовку.Нашей группе нужны вопросы к экзамену.
Не относитесь к этой жизни слишком серьезно,господа.Все равно вам из неё живым не выбраться.
Gemini
 
Сообщения: 90
Зарегистрирован: 13 янв 2009, 12:42
Откуда: Сейчас в Ша
Полное имя: Плешков Сергей Александрович

Пред.След.

Вернуться в Алгоритмизация и программирование

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3