Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Новички в программировании > Помощь студентам
Регистрация

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



Ответ
 
Опции темы
Старый 10.07.2011, 17:34   #1
S0ap
Новичок
 
Регистрация: 10.07.2011
Сообщений: 2
Репутация: 10
По умолчанию pascal random

Здравствуйте. Помогите пожалуйста, с такой программой:
Разработать 2 функции: первая генерирует случайное равномерно распределенное в заданном интервале число(использовать стандартные подпрограммы модуля System); вторая определяет расстояние от начала координат до заданной точки плоскости.
Основная программа(пользоваться созданными функциями): В динамической памяти сформировать набор из 30 записей, каждый из которых содержит радиус и координаты центра круга. Заполнить эти записи случайными значениями: радиус - число из диапазона [8, 40], координаты центра - числа из диаразона [-100, 150]. Определить площадь круга, центр которого наиболее отдален от начала координат.
Вот что у меня получилось:
Код:

program l12_13;
uses crt;
type
nabir=record
R,Xs,Ys:^integer;
end;
var max,i,j:integer;
p: ^integer;
Mas:array[1..30] of ^nabir;
n,k,S:^double;
function distance(a,b:integer):double;
begin
distance:= sqrt(a*a+b*b);
end;
function rand1(a,b:integer): integer;
begin
    randomize;
   rand1:= a+ random (b-a+1);
    end;
begin
clrscr;
new(mas[i]^.R); new(mas[i]^.Xs); new(mas[i]^.Ys);  new(Mas[i]);
new(n); new(k); new(S);
mark(p);
writeln('vvodim massiv(Radius,X,Y)');
K^:=0;
for i:=1 to 30 do
begin
Mas[i]^.r^ :=rand1(8,40);
Mas[i]^.Xs^:=rand1(-100,150);
Mas[i]^.Ys^:=rand1(-100,150);
N^:=distance(mas[i]^.Xs^,mas[i]^.Ys^);
if N^> k^ then
begin
k^:=n^;
max:=i;
end;
writeln(Mas[i]^.r^,' ',Mas[i]^.Xs^,' ',Mas[i]^.Ys^);
end;
S^:=mas[max]^.r^*mas[max]^.r^*pi;
writeln(S^:6:2);
release(p);
readkey;
end.

Проблема в том, что генератор заполняет массив записей одним и тем же случайным числом, а нужно, чтобы значения радиусов и координат были разными для каждой записи. Заранее благодарен тем, кто поможет натолкнуться на нужное решение.
S0ap вне форума   Ответить с цитированием
Старый 10.07.2011, 17:39   #2
l1pton17
Форумчанин
 
Аватар для l1pton17
 
Регистрация: 01.11.2010
Адрес: Москва
Сообщений: 75
Репутация: 40

icq: 386365037
По умолчанию

Команду randomize; нужно в основном блоке программы прописывать) где-то после clrscr; поставьте его.
l1pton17 вне форума   Ответить с цитированием
Старый 10.07.2011, 17:49   #3
S0ap
Новичок
 
Регистрация: 10.07.2011
Сообщений: 2
Репутация: 10
По умолчанию

Делал так и все равно не получалось. Но потом убрал randomize; в самой функции и все заработало. Большое спасибо
S0ap вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
random Fanyuus Помощь студентам 7 07.05.2011 15:43
Random adm2010 Общие вопросы Delphi 4 23.01.2011 14:39
Random ограничения (pascal) _fynjy_ Помощь студентам 24 11.01.2011 11:19
"Random" в матрице (Turbo Pascal) JIUMOH Помощь студентам 3 29.12.2009 12:35
Random W_P Паскаль 2 08.10.2008 00:05




19:48.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Покупайте на сайте www.skinon.ru уникальные чехлы и наклейки для телефонов.
купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru