Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 2 [3]  Все   Вниз
  Печать  
Автор Тема: Генерация математических заданий  (Прочитано 65076 раз)
0 Пользователей и 26 Гостей смотрят эту тему.
soffi
Гость
« Ответ #60 : 22-03-2010 16:37 » 

Под генерацией имеется ввиду что на форме в Делфи вводится лишь нужное число примеров. А программа генерирует нужное количество примеров подобных тому что на картинке. И ответы конечно же у всех этих примеров должны быть подобны. Вот и все.
Записан
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #61 : 22-03-2010 16:39 » 

значит берём форму, кладём на неё Edit, кнопку "Сгенерить", кнопку "Сохранить", компонент TXMLDocument, и пишем код. при желании просматривать всё в самой форме - добавляем туда TWebBrowser.
Записан

soffi
Гость
« Ответ #62 : 22-03-2010 16:43 » 

Проблема то в том что девушка и просит помочь с кодом
Записан
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #63 : 22-03-2010 16:48 » 

soffi, первый раз слышу. девушка сказала, что "не представляет, как это сделать". в ходе бурной дисскуссии мы выяснили, во-первых, что именно надо сделать, и во-вторых - как, самое простое - через TXMLDocument.

если у девушки есть конкретные вопросы: как создать корень xml-документа, как добавить в него узел, как задать значение узла - так пусть задаёт. для того форум и существует.
Записан

resource
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #64 : 22-03-2010 16:53 » 

Сначала была Вика_c, потом Vika_c, а потом soffi. Маскарад какой-то
Записан
Vika_c
Интересующийся

ru
Offline Offline

« Ответ #65 : 22-03-2010 16:54 » 

т.е. написать код программки, которая бы выдавала много вариантов этого задания.

(
Записан
Vika_c
Интересующийся

ru
Offline Offline

« Ответ #66 : 22-03-2010 16:55 » 

resource,  у меня возникли проблемы с рус ником, пришлось перезарегистрироваться....
Записан
soffi
Гость
« Ответ #67 : 22-03-2010 16:56 » 

т.е. написать код программки, которая бы выдавала много вариантов этого задания.

(

Это не маскарад я вообще-то другой человек
Записан
Vika_c
Интересующийся

ru
Offline Offline

« Ответ #68 : 22-03-2010 16:58 » 

у меня проблемы с кодом, я не знаю как его написать для задания, которое мы обсудили....
Записан
resource
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #69 : 22-03-2010 16:59 » 

Vika_c, так это надо сначала дэлфи(паскаль) учить
Записан
soffi
Гость
« Ответ #70 : 22-03-2010 17:01 » 

Что вы все прикалываетесь да шутите Девушка помощи просит
Записан
resource
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #71 : 22-03-2010 17:03 » 

soffi, во-первых если она хочет чтобы всё от начала и до конца написали за нее, то такой помощи она не дождется 100%.
А во-вторых чтож ты не поможешь то, другой человек?
Записан
Vika_c
Интересующийся

ru
Offline Offline

« Ответ #72 : 22-03-2010 17:04 » 

resource,  в статье, которую я давала, код в принципе написан, но с помощью Латех, а как его нормальным сделать на делфи, с этим проблемы...
Записан
Vika_c
Интересующийся

ru
Offline Offline

« Ответ #73 : 22-03-2010 17:05 » new

soffi,  Спасибо за поддержку!
Записан
soffi
Гость
« Ответ #74 : 22-03-2010 17:06 » 

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

ru
Offline Offline

« Ответ #75 : 22-03-2010 17:07 » 

мне не нужно весь код писать, а хоть примерно объяснить как это делается....
Записан
resource
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #76 : 22-03-2010 17:07 » 

Ну я хотя бы помогла разобрать что девушке надо в отличие от вас
Странно, мне так показалось, что давно уже разобрались, силами x77,
Записан
Vika_c
Интересующийся

ru
Offline Offline

« Ответ #77 : 22-03-2010 17:09 » 

Да, спасибо ему(х77), но поскольку я только учусь, мне еще сложно это все понимать(...
Записан
resource
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #78 : 22-03-2010 17:13 » 

Цитата: Vika_c
Да, спасибо ему(х77), но поскольку я только учусь, мне еще сложно это все понимать(...
Vika_c, я хочу сказать, что никто тут и не прикалывается. Но надо понимать, что фраза
Цитата: Vika_c
мне не нужно весь код писать, а хоть примерно объяснить как это делается....
довольно неодназначна. А если честно, то просто не о чем.

Задание ваше, не их тех, что делаются за 5 минут. И что вы подразумеваете под фразой "хоть примерно объяснить как это делается", это еще одна загадка
Записан
Vika_c
Интересующийся

ru
Offline Offline

« Ответ #79 : 22-03-2010 17:15 » 

блин, все ясно, спасибо.....   за помощь.....
Записан
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #80 : 22-03-2010 18:06 » 

Vika_c, да мы ещё не закончили. мы ещё только начали.

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

например, возьмём вашу картинку.

1. любое выражение состоит из двух частей, умножаемых или делимых, например, A1 и A2. (это будет первым этапом - рэндомно выбираете знак операции и формируете первые два узла). пока что ваше выражение может иметь вид A1 : A2 или A1 * A2. это всё уже можно записать в MathML.

2. далее, обратите внимание, что все A имеют вид: B1 +/- B2 +/- B3 +/- B4. причём их может быть от 3 до 4. значит, здесь нам нужно для каждого A из п.1 выбрать кол-во входящих в него элементов. случайно определяем операцию между этими элементами и для каждого узла, сформированного в п.1 формируем узлы с этими элементами, складывающимися или вычитающимися.

3. все B кроме последнего являются произведением. это произведение имеет вид: [константа]*[a [в квадрате]]. берём случайную константу, например, 10. случайно определяем, есть ли множитель a или нет. если есть - случайно определяем, в квадрате ли он. и всё. эту операцию надо проделать для каждого B из п.2. и точно также записать во все соответствующие ноды.

4. последнее B всегда представляет собой частное вида С1 : C2. при этом любое C имеет вид [константа] +/- [a]. берём случайную константу, случайно определяем, есть ли в выражении a, если есть - случайно определяем знак операции. записываем это в узел с последним B.

вот таким, примерно, будет алгоритм генерации ваших выражений. при этом следует предусмотреть ограничения, например, делитель никогда не должен быть равным нулю. наверное, следует предусмотреть планку для максимального значения констант, вряд ли кого обрадует выражение, типа 456549879 * a ^2.

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

поверьте мне, это далеко не такая сложная задача, какой она кажется. но делать её за вас целиком - не будет никто. за деньги, разве что, любителей хватает, но не на этом форуме.
Записан

baldr
Команда клуба

cy
Offline Offline
Пол: Мужской
Дорогие россияне


WWW
« Ответ #81 : 23-03-2010 06:38 » 

x77, даже я теперь понял что это не так сложно Улыбаюсь
Записан

Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
Vika_c
Интересующийся

ru
Offline Offline

« Ответ #82 : 24-03-2010 08:57 » 

x77,  спасибо, еще не совсем понятно, буду пробовать)
Записан
Страниц: 1 2 [3]  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines