Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 4

Немогу разобраться с рандомом в программе.

25.11.2011, 22:33. Показов 746. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Такая проблема появилась, задали сделать прогу по проверке знаний арифметике. + - * я сделал всё робит отлично, а вот на делении застрял.
Должно генериться 2 числа Делитель и делимое, но каждый раз выдаёт 1 / 1
Использую данную формулу

c:=random(b-a+1)+a;
c1:=random(b1-a1+1)+a;

вот сама прога, по нажатию кнопки (строка 50) должно генерить случайные числа. интересующая меня генерация должна происходить в строках 68,69.
сама прога считает ответ по делению в строках 118,119.
надеюсь ответ найдётся...
P.S. дестрибутивы прилагаются
(прога что понятно совсем не коммерческая а просто домашнее задание)


Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls, Spin, ExtCtrls;
 
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    SpinEdit1: TSpinEdit;
    SpinEdit2: TSpinEdit;
    SpinEdit3: TSpinEdit;
    SpinEdit4: TSpinEdit;
    Button1: TButton;
    Button2: TButton;
    Image1: TImage;
    N4: TMenuItem;
    N5: TMenuItem;
    procedure Button1Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
 
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
    procedure N2Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var
a,b,c,a1,b1,c1,i,j,r:integer;
begin
randomize;
b:=form1.SpinEdit1.Value;
a:=form1.SpinEdit2.Value;
b1:=form1.SpinEdit3.Value;
a1:=form1.SpinEdit4.Value;
if n5.Checked then
 begin
  c:=1;
  c1:=1                    
                           
 end                       
   else                    
     begin
     randomize;
       c:=random(b-a+1)+a;
       c1:=random(b1-a1+1)+a;
 
     end;
 
edit1.Text:=IntToStr(c);
edit2.Text:=IntToStr(c1);
end;
 
 
procedure TForm1.N2Click(Sender: TObject);
begin
  n2.Checked:=true;
  label1.Caption:='+';
end;
 
procedure TForm1.N3Click(Sender: TObject);
 begin
  n3.Checked:=true;
  label1.Caption:='-';
 end;
 
procedure TForm1.N4Click(Sender: TObject);
begin
 n4.Checked:=true;
  label1.Caption:='*';
end;
 
procedure TForm1.N5Click(Sender: TObject);
begin
n5.Checked:=true;
  label1.Caption:='/';
end;
 
 
procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
var
  c,c1:integer;
  begin
   if Key=#13 then
     begin
      if n2.Checked then
       c:=StrToint(edit1.Text)+StrToint(edit2.Text)
       else
         if n3.Checked then
        c:=StrToInt(edit1.Text)-StrToInt(edit2.Text)
          else
           if n4.Checked then
             c:=StrToInt(edit1.Text)*StrToInt(edit2.Text)
                else
                  if n5.Checked then
                     c:=StrToInt(edit1.Text)  div StrToInt(edit2.Text);
 
 
      if c=strToint(edit3.Text) then
       begin
        MessageDlg('OK', mtInformation,[mbOk],0);
        form1.Button1Click(sender);
       end
      else
       MessageDlg('NO',mtError,[mbNO],0);
 
       form1.Edit3.Clear;
     end;
 
   end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
  form1.Close;
end;
 
procedure TForm1.FormActivate(Sender: TObject);
begin
form1.Edit3.SetFocus;
end;
 
end.
Вложения
Тип файла: zip Дестрибутивы.zip (262.8 Кб, 7 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.11.2011, 22:33
Ответы с готовыми решениями:

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

Немогу разобраться
Нужно записать в файл массив строк #include "stdafx.h" #include "iostream" #include <windows.h> #include <winbase.h> ...

Немогу разобраться в строке
Никак не пойму что тут происходит... Создаётся IList, а для чего тут остальные данные е пойму(которые заключены в <>) ...

6
Заблокирован
25.11.2011, 22:48
Давно хотел обратить внимание. Кто Вас так учил писать:
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.Button2Click(Sender: TObject);
begin
  form1.Close;
end;
 
procedure TForm1.FormActivate(Sender: TObject);
begin
form1.Edit3.SetFocus;
end;
Я вижу тут большую проблему. В методе класса вы ссылаетесь на экземпляр этого же класса. Ну не правильно это! У меня аж пальцы зачесались написать!

А выдает 1/1 потому, что Вы так и написали в строчках 59-64... Не хочу обидеть, но это очень близко к "говнокоду"...
1
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 4
26.11.2011, 09:20  [ТС]
да я не обижаюсь, как научили так и пишу) я ведь не знаю как ещё можно) если вы знаете то просветите)

хм блин, вчера ночью уже совсем загруженный был и проблему не совсем правильно написал... прошу прощения.
числа то оно подбирает, но надо чтобы подбирало таки которые делятся без остатка (по mod видимо) и как это прописать я незнаю ((( нубяра ещё в делфи
пыталься задать услови, чтобы проверял делится ли и потом выдавал, но если задано условие т о выдаёт 1/1 и всё. почему незнаю, видимо руки криво ростут.
P.S. а насчёт говнокода ну всё возможно, никто неможет писать всё сразу, я делфи занимаюсь пару месяцев всего
0
5 / 5 / 0
Регистрация: 19.07.2011
Сообщений: 15
26.11.2011, 16:29
"числа то оно подбирает, но надо чтобы подбирало таки которые делятся без остатка (по mod видимо) и как это прописать я не знаю"
Я в такой проге брал случайные числа --результат и делитель затем умножал и получал делимое
1
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 4
28.11.2011, 08:12  [ТС]
Цитата Сообщение от igori Посмотреть сообщение
"числа то оно подбирает, но надо чтобы подбирало таки которые делятся без остатка (по mod видимо) и как это прописать я не знаю"
Я в такой проге брал случайные числа --результат и делитель затем умножал и получал делимое
А можно по подробне реализацию? как должен код выглядеть?
0
5 / 5 / 0
Регистрация: 19.07.2011
Сообщений: 15
28.11.2011, 19:09
Цитата Сообщение от Laedas Посмотреть сообщение
А можно по подробне реализацию? как должен код выглядеть?
Delphi
1
2
3
4
        h1:=Random(10)*1000+random(10)*100+random(10)*10+random(10);
        h2:=random(10)*10+random(10);
        if h2=0 then h2:=14;//на ноль делить нельзя
        ho:=h1*h2;
h0-делимое,h1-результат,h2-делитель,если он получился =0,то я беру 14
1
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 4
28.11.2011, 19:40  [ТС]
всё проблема решена. спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.11.2011, 19:40
Помогаю со студенческими работами здесь

Немогу разобраться с прогой
Подскажите как сделать необходимо В Форме данные1) при открытии поля сосписком Наити ФИО и чтобы те данные которые в ней содержаться то...

немогу разобраться с переменной C++
Объясните пожалуйста, вот есть переменные int, char, float и т.д а, в некоторых функциях есть параметр, для которого надо указать...

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

Немогу разобраться с заданиями.
Выложил в виде файла, т.к. незнаю как написать на форуме) Заранее большое спасибо.

Немогу разобраться с программой
Здравствуйте ребята!!! С Праздником!!!У меня такой вопрос, может кто нибудь и сталкивался с этой проблемой. Я скачала видео с ютуба и мне...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru