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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2008, 14:23   #1
bygoga
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 45
По умолчанию Массив с помощью random.

С использованием генератора псевдослучайных чисел - функции RANDOM - сгенерировать массив {X} 2*(N+6) вещественных элементов в диапазоне –2*(N+6)...4*(N+6), где N - № варианта. Мой номер 5.
bygoga вне форума Ответить с цитированием
Старый 01.11.2008, 15:06   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,689
По умолчанию

А в чём вопрос? Цикл for (repeat или while если хотите)
for i := 2*(n+6) to 4*(n+6) do
где const N=5
Как заполнять массив можно найти почти в каждой пятой теме в этом разделе
Для псевдослучайных чисел слово randomize использовать не надо
random - вещественное псевдослучайное число [0, 1).
Например 10*random - вещественное псевдослучайное число [0, 10)
Для вывода можно использовать форматирование
writeln(вещественное_число:0:5);
eoln вне форума Ответить с цитированием
Старый 01.11.2008, 16:47   #3
Anatoliy1984
 
Регистрация: 01.11.2008
Сообщений: 7
По умолчанию

Это точно даже я это смог:
program task3;
type matrix = array [1..10,1..10]of real;
var l,n,k:integer;
m: matrix;
procedure input_matrix (var m: matrix; var n,k:integer);
var a,b,p1,p2,i,j:integer;
begin
write('vvedi kol-vo strok ');
readln(n);
write('vvedi kol-vo stolbcov');
readln(k);
if (n<2) and (n>10)then begin
write('chislo ne popadaet v otrezok 2..10 budet vzyato 10');
n:=10;
end;
if (k<2) and (k>10)then begin
write('chislo ne popadaet v otrezok 2..10 budet vzyato 10');
k:=10;
end;
write('vvedi levuyu @a@ i pravuyu @b@ granici');
writeln('diapazoni znacheniy matrici');
write('a=');readln(a);
write('b=');readln(b);
if a>b then begin
p1:=a; a:=b;b:=p1;
end;
if a=b then begin
p1:=0; p2:=b;
end
else if b=0 then begin
p1:=a; p2:=0;
end
else begin
p1:=b-a; p2:=a;
end;
randomize;
for i:=1 to n do
for j:=1 to k do
m:=random(p1+1)+p2;
end;
Вобщем две процедуры ввод вида и вывод самой матрицы(пробельчики пропущены так как сам не разбираюсь в этом)
Anatoliy1984 вне форума Ответить с цитированием
Старый 01.11.2008, 16:52   #4
Anatoliy1984
 
Регистрация: 01.11.2008
Сообщений: 7
Вопрос

Товарищи программисты и просто хорошие люди лучше объясните как отсортировать массив(двухмерный) чтобы например в 1-м столбце были минимальные значения матрицы. Я пробовал, но у меня получилось вместо этого найти только минимальное значение массива и вывести его на экран
Anatoliy1984 вне форума Ответить с цитированием
Старый 01.11.2008, 17:33   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
в 1-м столбце были минимальные значения матрицы.
Можно поточнее задавать свой вопрос? Минимальное значение может быть от одного до нескольеих одинаковых и не совпадать с количеством строк. Может надо минимальный элемент каждой строки матрицы переставить на первое место в строке? Или что? Глупость напишете и чего-то ждете.
puporev вне форума Ответить с цитированием
Старый 01.11.2008, 21:11   #6
bygoga
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 45
По умолчанию

мне надо генерация случайного числа от -22 до 44, я смог сделать только от 0 до 44, а как сделать от -22 до 44?!
bygoga вне форума Ответить с цитированием
Старый 01.11.2008, 21:13   #7
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

random(67)-22;
puporev вне форума Ответить с цитированием
Старый 01.11.2008, 21:20   #8
bygoga
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 45
По умолчанию

понял...всем спасибо
bygoga вне форума Ответить с цитированием
Старый 01.11.2008, 21:24   #9
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Вообще-то я в начало посмотрел, у тебя вещественные числа, тогда надо так:
random(66)+random-22;
puporev вне форума Ответить с цитированием
Старый 02.11.2008, 00:54   #10
bygoga
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 45
По умолчанию

Я сделал (-22*random)+(44*random)...получилось .
Но теперь у меня новая проблема: нужно эти псевдо случайные иксы подставить в уравнение и получить массив y, причем если уравнение не будет иметь решения то элемент массива у не должен создаваццо. Получается, что длина массива выясняется по ходу заполнения...оба массива вещественные...помогите, как так сделать..у мя черти что получается.
bygoga вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Random Febreze Общие вопросы Delphi 2 28.04.2008 14:17
random Forrest Gamp Общие вопросы C/C++ 4 11.02.2008 09:46
random Sanek_ntsk Общие вопросы Delphi 8 17.12.2007 21:54
С++ Создать класс содержащий 3х-мерный массив int'ов, заполнять с помощью генератора случайных чисел vipER Помощь студентам 1 22.09.2007 22:08
Помогите пожалуйста!!! С использованием функции Random сформировать одномерный массив Vanya_www_333 Помощь студентам 1 17.08.2007 13:38