Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2012, 19:04   #1
Владан
Пользователь
 
Аватар для Владан
 
Регистрация: 24.09.2012
Сообщений: 51
По умолчанию Как сделать чтобы переменная с стала интежер и в форме результата выбивало целое число

Определить, какой процент повторов случайных чисел (общие_количество повторов / общие количество_чисел * 100) будет встречаться при использовании стандартного Random () Паскаля. Количество чисел, которые генерируются и диапазон для генерации вводить через форму.

у меня переменная с (процент повторов заданого числа) получается дробной исходя из формулы c:=m/n*100;Как сделать чтобы переменная с стала интежер и в форме результата выбивало целое число?




Код:
unit Unit1;
   interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TMyForm = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Edit2: TEdit;
    Button2: TButton;
    Button3: TButton;
    Edit3: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  MyForm: TMyForm;
  c,n,d,i,j,m,k:integer;


  Edit3:string;
  A:array[1..1000] of integer;
  B:array[1..100] of integer;

implementation

{$R *.dfm}

procedure TMyForm.Button1Click(Sender: TObject);
begin
n:=strtoint(Edit1.Text);//преобразовываем текст в число
end;

procedure TMyForm.Button2Click(Sender: TObject);
begin
d:=strtoint(Edit2.Text);
end;

procedure TMyForm.Button3Click(Sender: TObject);
var
ii:integer;
jj:integer;
begin
for ii:=1 to n do
A[ii]:=Random(d);
for jj:=i+1 to n do
begin
if A[i]=A[j] then k:=k+1;
end;
if k<>1 then B[i]:=k;k:=1;
for ii:=1 to n do
if B[i]<>0 then m:=m+1;
c:=m/n*100;
Edit3.Text:=InttoStr(c);//преобразовуем действительное число в рядок
end;
end.
[Error] Unit1.pas(61): Incompatible types: 'Integer' and 'Extended'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
Владан вне форума Ответить с цитированием
Старый 23.12.2012, 19:10   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
c:=m/n*100;
Либо объявляй "c" как вещественное, либо дели используя div
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.12.2012, 19:24   #3
Владан
Пользователь
 
Аватар для Владан
 
Регистрация: 24.09.2012
Сообщений: 51
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Либо объявляй "c" как вещественное, либо дели используя div
в результате получается 100 повторов , всегда ...
Владан вне форума Ответить с цитированием
Старый 23.12.2012, 19:36   #4
Владан
Пользователь
 
Аватар для Владан
 
Регистрация: 24.09.2012
Сообщений: 51
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Либо объявляй "c" как вещественное, либо дели используя div
не знаешь как вписать что бы переменная с при делении имела два числа после запятой (пр.:0,29 ) и тогда при умножении на 100 будет выбивать целое число
Владан вне форума Ответить с цитированием
Старый 23.12.2012, 19:36   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

c:=100*m div n;
либо c - real, а потом inttostr(round(c));
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать чтобы chm файл открывался на форме kate158 Общие вопросы Delphi 1 02.04.2012 15:12
Как сделать, чтобы процедура ввернула число? hon Общие вопросы Delphi 29 22.08.2011 17:35
Как сделать чтобы фокус всегда был на мой форме gufon Общие вопросы Delphi 1 01.06.2011 12:45
Как сделать так чтобы после изменения настроек стала активирована кнопка "Применить" ?? KWN, lnc Общие вопросы Delphi 7 04.12.2010 02:14
как сделать чтобы переменная увеличивалась Stiff Master Общие вопросы C/C++ 4 30.09.2009 22:23