Страница 1 из 1
Элементарный вопрос по randomize
Добавлено: 05 ноя 2006, 15:12
Enchante
Всем доброго времени суток.
Такая проблема. Массив надо заполнить случайными числами. Для этого, как я понимаю, используется 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.
Добавлено: 05 ноя 2006, 16:58
Duncon
Код: Выделить всё
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.
Добавлено: 05 ноя 2006, 17:27
Enchante
Все, спасибо. Проблема на самом деле заключалась в том что зачем-то в начале закралась procedure randomize.

ops:
А как сделать так, чтобы генератор случайных чисел выдавал числа только на интервале от [0,1]?
И еще вопрос. я почему-то не могу запустить программу которая у меня получается, т. е. жму alt-f9, появляется окошко с надписью press any key и т д. и все. Запустить получается только если выйду в dos shell и там наберу имя файла. Как это исправляется, а то геморно очень.
Добавлено: 05 ноя 2006, 22:20
Duncon
Код полный выложи, вообще компиляция просто F9...
Добавлено: 05 ноя 2006, 23:38
Enchante
да он и есть пока что полный - у меня пока что полного задания нет еще, так что ожидайте еще вопросов
просто я где-то прочитала что надо поставить 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 лет, что им не занималась.
Добавлено: 06 ноя 2006, 11:10
Duncon
Вообщето синтаксис приложения в 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.
Добавлено: 06 ноя 2006, 11:13
Duncon
Тобишь твоя программа должна иметь такой вид попробуй запусти...
Код: Выделить всё
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.
Добавлено: 07 ноя 2006, 08:44
somewhere
А как сделать так, чтобы генератор случайных чисел выдавал числа только на интервале от [0,1]?
Random без параметров делает то, что тебе нужно. Но результат, как понятно из определения, уже вещественный. Нужный диапазон получаеться обычными арифметическими операциями.
здесь генерятся произвольные числа от -5 до 5.
Добавлено: 07 ноя 2006, 09:34
LAngel
Есть стандартная:
function Random(const ARange: Integer): Integer;
для генерации целого Random-числа от 0 до ARange
Добавлено: 09 ноя 2006, 18:43
Enchante
Спасибо, очень помогли!