Суббота, 23 Ноября 2024, 02:59

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Delphi:Вопрос-Ответ
arysДата: Вторник, 13 Декабря 2011, 23:51 | Сообщение # 121
почетный гость
Сейчас нет на сайте
Спасибо сенсей))))))))))) Да все почти правильно, сам чуток поправил.

500 символов не хватит, а писать начало... нету смысла без конца..
masb8ly-GCДата: Вторник, 13 Декабря 2011, 23:56 | Сообщение # 122
постоянный участник
Сейчас нет на сайте
Не за что!)
Аська есть? Если, что буду помогать в более удобном режиме. Та которая у тебя в профиле активна?


Backend Developer ESIS
Client Side Developer Room8Studio
Technical Leader Lucid Reality Labs
Chief Technology Officer The Intruders
Chief Technology Officer RoyalePlay Games
arysДата: Среда, 14 Декабря 2011, 00:00 | Сообщение # 123
почетный гость
Сейчас нет на сайте
Да активна,Спс. Ша зайду

500 символов не хватит, а писать начало... нету смысла без конца..
masb8ly-GCДата: Среда, 14 Декабря 2011, 20:56 | Сообщение # 124
постоянный участник
Сейчас нет на сайте
Давай я инвайт уже кинул... Если какойто трабл случился добавляйся: 617955154

Добавлено (14.12.2011, 16:56)
---------------------------------------------
Здравствуйте! На выходных командное соревнование и я решил посмотреть задания за прошлый год. Оказалось, что почти за все прошедшие года задания одинаковы, попытался решить и возникла проблема. Нужно написать генератор выражений, но обычный random использовать не получится, т.к. генератор это часть системы тренировки устного счета. А система должна работать на большое количество людей до 10. Если использовать обычный рандом, то у всех 10 человек получится одинаковое выражение. Как решить проблему?

Добавлено (14.12.2011, 20:56)
---------------------------------------------
Уже решил проблему. Забыл про randomize;

Code
procedure TForm1.btn1Click(Sender: TObject);
begin
   Randomize;
   for i:= 1 to 10 do
   begin
     c1:=Random(99);
     c2:=Random(99);
     c3:=Random(99);
     rz[i]:='('+FloatToStr(c1)+'*'+FloatToStr(c1)+'+'+FloatToStr(c2)+'*'+FloatToStr(c2)+')'+'/'+FloatToStr(c3);
     lbl1.Caption:=rz[i]+#13#10+rz[2];
   end;
end;


Backend Developer ESIS
Client Side Developer Room8Studio
Technical Leader Lucid Reality Labs
Chief Technology Officer The Intruders
Chief Technology Officer RoyalePlay Games
arysДата: Среда, 14 Декабря 2011, 23:49 | Сообщение # 125
почетный гость
Сейчас нет на сайте
Всё разобрался.

500 символов не хватит, а писать начало... нету смысла без конца..

Сообщение отредактировал arys - Среда, 14 Декабря 2011, 23:57
masb8ly-GCДата: Среда, 14 Декабря 2011, 23:56 | Сообщение # 126
постоянный участник
Сейчас нет на сайте
Лишний else стоит)
Code
procedure TForm1.Button1Click(Sender: TObject);  
  begin  
  f:=combobox1.items[combobox1.itemindex];  
  if (f='Îñêåìåí') then v:=1  
  ELSE  
  if (f='Àñòàíà') then v:=2  
  else  
  if (f='Àëìàòà') then v:=3;  
  if (v=1)  then  
  label1.Caption:='lala';  

  end;


Backend Developer ESIS
Client Side Developer Room8Studio
Technical Leader Lucid Reality Labs
Chief Technology Officer The Intruders
Chief Technology Officer RoyalePlay Games
RabbitNerdДата: Четверг, 15 Декабря 2011, 12:53 | Сообщение # 127
частый гость
Сейчас нет на сайте
значения в randomize и random могут быть в виде сообщений?
например, пользователь нажимает на кнопочку, и появляется сообщение с рандомным текстом, типа "да, конечно", или "нет, я так не думаю"
P.S как к компоненту присвоить переменную, чтобы, например, переменная i зависела от Edit, или Button
TimKruzДата: Четверг, 15 Декабря 2011, 13:12 | Сообщение # 128
старожил
Сейчас нет на сайте
Quote (RabbitNerd)
значения в randomize и random могут быть в виде сообщений?

Нет. Только целые числа.
Quote (RabbitNerd)
например, пользователь нажимает на кнопочку, и появляется сообщение с рандомным текстом, типа "да, конечно", или "нет, я так не думаю"

Ну это реализовать просто. Лучше всего реализовать кейсом:
Code
randomize;
case random(2) of
   0: writeln('Да, конечно!'); //Ну, тут и дальше можно что угодно делать, что будет выводить это сообщение.
   1: writeln('Нет, я так не думаю.');
end;

Ещё, для удобства, можно установить константы, например: yes='Да, конечно!' и no='Нет, я так не думаю.'. Так будет удобнее.
Quote (RabbitNerd)
P.S как к компоненту присвоить переменную, чтобы, например, переменная i зависела от Edit, или Button

Во-первых, стандартные переменные уже описаны в классах этих компонентов, иначе они просто не работали бы. Во-вторых, если нужно скопировать значение из стандартного поля объекта придётся делать это вручную. Другое дело - когда. Например, самый простой случай: при нажатии на button выполняется код типа str:=edit.text (в обработчике события клика/нажатия на button), который копирует текст из поля edit в строковую переменную str. Если же нужно, чтобы переменная str обновлялась постоянно, т.е. каждый раз, когда пользователь вводит какие-нибудь данные в поле edit, тогда нужно поместить этот же код (str:=edit.text) в обработчик события OnChange (при изменении текста). Событие можно создать через инспектор объектов (Object Inspector), вкладка событий (Events).


arysДата: Пятница, 16 Декабря 2011, 11:48 | Сообщение # 129
почетный гость
Сейчас нет на сайте
Всем привет! Люди добрые, у кого сердце доброе или просто кому не лень помогите с програмкой Весит 209кв маленькая программа но так дастало...

500 символов не хватит, а писать начало... нету смысла без конца..

Сообщение отредактировал arys - Пятница, 16 Декабря 2011, 11:49
TimKruzДата: Пятница, 16 Декабря 2011, 13:18 | Сообщение # 130
старожил
Сейчас нет на сайте
arys, так, давай по-порядку. Что за программа, что должна делать, что уже делает, какие ошибки выдаёт и вообще твои вопросы. В чём проблема?
И просить доделать олимпиадную задачу - как-то... Занятое место делить будешь? Или просто заплатишь за победу? biggrin Ну ладно, это я так просто; но всё равно, сам должен делать, а не просить сделать за тебя, даже если "так достало"...


arysДата: Пятница, 16 Декабря 2011, 13:36 | Сообщение # 131
почетный гость
Сейчас нет на сайте
Ошибки нету, я бы доделал но, но если я продолжу в этом же духе то я ничего не выйграю. За меня делать ниче не надо подскажите как сделать эту прогу по кароче и все.

500 символов не хватит, а писать начало... нету смысла без конца..
TimKruzДата: Пятница, 16 Декабря 2011, 13:38 | Сообщение # 132
старожил
Сейчас нет на сайте
Code
procedure TForm1.FormCreate(Sender: TObject);
var v:string;
z,x,c:integer;
begin
v:=combobox1.items[combobox1.itemindex];
if (v='Оскемен') then z:=1
ELSE
IF

if (v='Астана') then x:=1
else
if

if (v='Алмата') then c:=1
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if (z=1) and (x=1) and (c=1) then
label1.Caption:='lala';

end;

Что делает этот код? eek
Quote (arys)
как сделать эту прогу по кароче и все.

Куда уж короче-то?
И, повторюсь,
Quote (TimKruz)
что должна делать

эта программа? blink


arysДата: Пятница, 16 Декабря 2011, 13:49 | Сообщение # 133
почетный гость
Сейчас нет на сайте
Вот тут столько комбинаций... это и надо сделать по кароче...

500 символов не хватит, а писать начало... нету смысла без конца..
TimKruzДата: Пятница, 16 Декабря 2011, 15:23 | Сообщение # 134
старожил
Сейчас нет на сайте
Quote (arys)
столько комбинаций... это и надо сделать по кароче...

Кейсом стринги перебирать нельзя, так что короче ни как не получится. И так нормально, только оформи код, чтобы красиво выглядело.


masb8ly-GCДата: Пятница, 16 Декабря 2011, 17:08 | Сообщение # 135
постоянный участник
Сейчас нет на сайте
Я же тебе говорил, что нужно делать не and, а или то или то! А потом добавлять and'ы по остальным комбобоксам!

Backend Developer ESIS
Client Side Developer Room8Studio
Technical Leader Lucid Reality Labs
Chief Technology Officer The Intruders
Chief Technology Officer RoyalePlay Games
VerDДата: Пятница, 16 Декабря 2011, 21:35 | Сообщение # 136
был не раз
Сейчас нет на сайте
а как в паскале сделать case на цифры 1 день и 11 дней?
а то если прописать
Code

case n mod 10 of  
1:writeln('день)'
  

то он же пишет 11 день, как прописать дней?
TimKruzДата: Пятница, 16 Декабря 2011, 21:46 | Сообщение # 137
старожил
Сейчас нет на сайте
Quote (VerD)
то он же пишет 11 день, как прописать дней?

Руками. Что мы имеем? Один день, два дня, три дня, четыре дня, пять дней... девять дней, десять дней. Одиннадцать-девятнадцать дней.
Code
if (n>10) and (n<20) then writeln('дней') else
case n mod 10 of
0: writeln('дней');
1: writeln('день');
2..4: writeln('дня');
5..9: writeln('дней');
end;

Вот-с. cool




Сообщение отредактировал TimKruz - Пятница, 16 Декабря 2011, 21:47
RabbitNerdДата: Суббота, 17 Декабря 2011, 19:32 | Сообщение # 138
частый гость
Сейчас нет на сайте
Как сделать часы в Delphi?
Всмысле, вот есть таймер, и несколько Label'ов. Нужно, чтобы при запуске программы таймер активировался и время тикало.
Например, чтобы в секунду изменялось значение Label1


Сообщение отредактировал RabbitNerd - Суббота, 17 Декабря 2011, 19:34
TimKruzДата: Суббота, 17 Декабря 2011, 19:44 | Сообщение # 139
старожил
Сейчас нет на сайте
RabbitNerd, тебе секундомер, таймер или часы нужны?
Code
procedure TForm1.FormCreate(Sender: TObject);
begin
   //Время тика таймера, в миллисекундах, 1000 миллисекунда=1 секунда:
   timer1.Interval:=1000;
   //Включить (true) или выключить (false) таймер:
   timer1.Enabled:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
   //Секундомер:
   Label1.Caption:=inttostr(strtoint(Label1.Caption)+1);
   //Таймер:
   Label2.Caption:=inttostr(strtoint(Label2.Caption)-1);
   //Дата + время:
   label3.Caption:=datetimetostr(now);
   //Только дата:
   label4.Caption:=datetostr(now);
   //Только время:
   label5.Caption:=timetostr(now);
end;


RabbitNerdДата: Суббота, 17 Декабря 2011, 19:53 | Сообщение # 140
частый гость
Сейчас нет на сайте
Я, кажется, сам проблему не правильно сформулировал smile
На форме есть Timer1, Label1 и Label2. При запуске программы Timer1 активируется, и начинает считать секунды, прибавляя по одному к Label1. Когда значение Label1 достигает 12, то к значению Label2 прибавляется 1, а значение Label1 обнуляется
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг