Элементарный вопрос по randomize
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Всем доброго времени суток.
Такая проблема. Массив надо заполнить случайными числами. Для этого, как я понимаю, используется randomize, но вот то ли я тупая, то ли лыжи не едут (с).
Вот фрагмент программы, в конце требует после end поставить ; , что-то не так, но ЧТО именно я понять не могу.
var
i,n:integer;
m : array [1..100] of real;
begin
Writeln ('Enter n, no more than 100');
read (n);
randomize;
for i:=1 to n do
m:=random(n);
for i:=1 to n do
write (m);
end.
Такая проблема. Массив надо заполнить случайными числами. Для этого, как я понимаю, используется randomize, но вот то ли я тупая, то ли лыжи не едут (с).
Вот фрагмент программы, в конце требует после end поставить ; , что-то не так, но ЧТО именно я понять не могу.
var
i,n:integer;
m : array [1..100] of real;
begin
Writeln ('Enter n, no more than 100');
read (n);
randomize;
for i:=1 to n do
m:=random(n);
for i:=1 to n do
write (m);
end.
Код: Выделить всё
var
i,n:integer;
m : array [1..100] of real;
begin
Writeln ('Enter n, no more than 100');
read (n);
randomize;
for i:=1 to n do
m[i]:=random(n);
for i:=1 to n do
write (m[i]);
//!!!!!!!!!!!!!!!!!!!!!!!!!
end;
//!!!!!!!!!!!!!!!!!!!!!!!!!
end.
Все, спасибо. Проблема на самом деле заключалась в том что зачем-то в начале закралась procedure randomize.
ops:
А как сделать так, чтобы генератор случайных чисел выдавал числа только на интервале от [0,1]?
И еще вопрос. я почему-то не могу запустить программу которая у меня получается, т. е. жму alt-f9, появляется окошко с надписью press any key и т д. и все. Запустить получается только если выйду в dos shell и там наберу имя файла. Как это исправляется, а то геморно очень.

А как сделать так, чтобы генератор случайных чисел выдавал числа только на интервале от [0,1]?
И еще вопрос. я почему-то не могу запустить программу которая у меня получается, т. е. жму alt-f9, появляется окошко с надписью press any key и т д. и все. Запустить получается только если выйду в dos shell и там наберу имя файла. Как это исправляется, а то геморно очень.
Код полный выложи, вообще компиляция просто F9...
да он и есть пока что полный - у меня пока что полного задания нет еще, так что ожидайте еще вопросов
просто я где-то прочитала что надо поставить procedure randomize, вот и влепила не разобравшись полностью
program laba;
var i,n:integer;
m : array [1..100] of real;
begin
Writeln ('Enter n, no more than 100');
read (n);
randomize;
for i:=1 to n do
m:=random(n);
for i:=1 to n do
writeln (m);
end.
про F9 вопрос снимается, надо было нажимать ctrl+F9. Что-то туго вспоминается паскаль за 5 лет, что им не занималась.
просто я где-то прочитала что надо поставить procedure randomize, вот и влепила не разобравшись полностью

program laba;
var i,n:integer;
m : array [1..100] of real;
begin
Writeln ('Enter n, no more than 100');
read (n);
randomize;
for i:=1 to n do
m:=random(n);
for i:=1 to n do
writeln (m);
end.
про F9 вопрос снимается, надо было нажимать ctrl+F9. Что-то туго вспоминается паскаль за 5 лет, что им не занималась.
Вообщето синтаксис приложения в Delphi выглядит примерно так
консольная - имеет такой вид
Код: Выделить всё
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
end.
Код: Выделить всё
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
begin
{ TODO -oUser -cConsole Main : Insert code here }
end.
Тобишь твоя программа должна иметь такой вид попробуй запусти...
Код: Выделить всё
program laba;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
i, n: integer;
m: array [1..100] of real;
begin
Writeln ('Enter n, no more than 100');
read (n);
randomize;
for i:=1 to n do
m[i]:=random(n);
for i:=1 to n do
writeln (m[i]);
end.
Random без параметров делает то, что тебе нужно. Но результат, как понятно из определения, уже вещественный. Нужный диапазон получаеться обычными арифметическими операциями.А как сделать так, чтобы генератор случайных чисел выдавал числа только на интервале от [0,1]?
Код: Выделить всё
A := -5 + 10*Random;
It's a long way to the top if you wanna rock'n'roll
Есть стандартная:
function Random(const ARange: Integer): Integer;
для генерации целого Random-числа от 0 до ARange
function Random(const ARange: Integer): Integer;
для генерации целого Random-числа от 0 до ARange
С уважением, Lost Angel...
Спасибо, очень помогли!