Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Народ подскажите pls (Дельфи)

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Victor™



Зарегистрирован: 06.05.2005
Сообщения: 1

СообщениеДобавлено: Пт Май 06 2005 16:18    Заголовок сообщения: Народ подскажите pls (Дельфи) Ответить с цитатой

Как в дельфи сделать что бы операнд(вид действия: *,+,-,/) выбирался случайным образом?
Вообще передо мной стоит такая задача: написать программу, где пользователю предлагается пройти тест из 20 примеров по арифметике. Числа и вид действия выбираются случ образом. Причем программа должна проверять ответы и выставлять оценку
Я это дело решил реализовать через 4 массива [5,4] на каждый вид действия, где строки соотв. вопросам а столбцы буду содержать элементы над которыми будут произв действия, прав ответы и ответы пользователя. Rolling Eyes Shocked Выглядеть это должно примерно такSadтут один массив на сложение)
Код:
 
procedure TForm1.Button1Click(Sender: TObject);
var i,j,f, A, B:integer;
begin
formclear;
Randomize;
v[1,1]:=random(9)+1;     // первый и второй столбец выб. случ
v[1,2]:=random(9)+1;
v[1,3]:=v[1,1] + v[1,2];   // третий столбец. получ слож 1 и 2
For i := 2 to 10 do
 begin
 repeat
 f:=0;
 A:=random(9)+1;
 B:=random(9)+1;
 For j:=1 to i-1 do
   begin
   If (((B=v[j,1]) and (A=v[j,2])) or ((A=v[j,1]) and (B=v[j,2]))) //
   then f:=1;
   end;
 until f=0;
 v[i,1]:=A;
 v[i,2]:=B;
 v[i,3]:=A+B;
end;


Короче пишите кто что думает Idea
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Malcolm



Зарегистрирован: 12.06.2004
Сообщения: 187
Откуда: Хабаровск

СообщениеДобавлено: Сб Май 07 2005 03:07    Заголовок сообщения: Ответить с цитатой

http://forum.pascal.net.ru
_________________
АсЬки ТуТ
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
tinimi



Зарегистрирован: 27.03.2005
Сообщения: 90
Откуда: Win32

СообщениеДобавлено: Вс Май 08 2005 11:37    Заголовок сообщения: Ответить с цитатой

Гланды можно удалить двумя способами. Ты выбрал не лучший вариант Cool
ИМХО.

Как я монял тебе надо типа A+B=C? тоесть самое банальное?
Введеи структуру типа:
type Tqwe = record a,b,c:double; d:byte; end;
d - ето типа действие.
0 - "+"
1 - "-"
2 - "*"
3 - "/"

и теперь генерим.
var arr:array[1..20] of Tqwe;
x:integer;
begin
randomize;
for x:=1 to 20 do
begin
arr[x].a:=random*10// ето что бы получать дробные.
arr[x].a:=random*10
arr[x].d:=random(4);
case arr[x].d of
0: c:=a+b;
1: c:=a-b;
2: c:=a*b;
3: c:=a/b;
end;
end;
end.
ну ето типа так я вижу решение задачи Cool
Если тебе надо что бы было строго по 5 примеров на каждое действие(в моем примере может выйти как выйдет Cool ), то тебе вообще не надо ничего генерить(всмысле знаков)
_________________
[ TiNiMi ]
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
GREA



Зарегистрирован: 14.05.2003
Сообщения: 758
Откуда: Новосибирск

СообщениеДобавлено: Пн Май 09 2005 21:14    Заголовок сообщения: Ответить с цитатой

Сколько студентов повалило перед сессией!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...