Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 3
Регистрация: 08.04.2016
Сообщений: 9

Непонятна работа связки randomize - random

27.12.2016, 20:43. Показов 1677. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При создании процедуры заполнения массива случайными цифрами, в прогоне программы через RUN массивы получаются с одинаковыми данными, в прогоне через DEBUG пошагово - все нормально, данные разные, всем подвох? Или как всегда кривость рук?
Пример
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Procedure loadmas(var a: tmas);
Var
I: integer;
Begin
Randomize;
For I:= 1 to csize  do a[i]:= random(50)+1;
End;
 
Var
X, y, z: tmas;
Begin
Loadmas(x);
Loadmas(y);
Loadmas(z);
Код не весь, но смысл ясен.
Непойму почему через отладчик все норм, а через run массивы равны, проясните если незатруднит.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.12.2016, 20:43
Ответы с готовыми решениями:

Функция Random и процедура Randomize в PascalABC .Net
Изучаю Pascal по учебнику О.Деревенец "Песни о Паскале". Сам учебник обучает языку на примерах решения задач в FreePascal, я пишу в...

Программа для проверки знаний учеников с использованием ф-ии random, randomize
Доброго времени суток. Вот программа на Паскале: program noobles; uses crt; var...

Что такое randomize и random ?
процедура в паскале randomize и random это одно и тоже?

4
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
27.12.2016, 21:15
В модуле System есть переменная RandSeed. Ее значение используется для вычисления значения очередного псевдослучайного числа (а затем и ее значение изменяется). По умолчанию ее значение 0, число, которое при этом выдаст Random() тоже 0. Randomize берет значение текущего времени и из него формирует псевдослучайное значение для RandSeed.

У вас вызов Randomize происходит в рамках одной временной единицы, RandSeed получает одинаковое значение и отсюда одинаковые порожденные последовательности.
1
0 / 0 / 3
Регистрация: 08.04.2016
Сообщений: 9
27.12.2016, 21:34  [ТС]
Спасибо за развёрнутый ответ, а какие могут быть варианты заполнения нескольких массивов? Делать промежуточный с количеством элементов равный сумме элементов остальных, и далее из него заполнять необходимые? Больше в голову ничего не идёт...
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
27.12.2016, 21:44
Лучший ответ Сообщение было отмечено peahematop как решение

Решение

Вариант простой, зовем в начале 1 раз:
Pascal
1
2
begin
  Randomize;
0
0 / 0 / 3
Регистрация: 08.04.2016
Сообщений: 9
27.12.2016, 21:52  [ТС]
Заработало)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.12.2016, 21:52
Помогаю со студенческими работами здесь

Random and randomize
Доброго времени суток. Пишу программу "Электронный тест". Суть программы заключается в том, что пользователь может добавлять новые вопросы...

random и randomize
Компилятор Visual Studio 2012 орет на radnomize и random. Как их заменить?? вот мой код: #define N 20 #include <stdio.h> ...

Random randomize в vs13
как записать в массив случайные числа vs13 почему-то нет такой команды(random)

Randomize & random
нужно было сгенить рандомно пару чисел, но увы засад компилятор материт Randomize и random, андеклейр и хоть убей. stdlib.h подключил, и...

Не определен random() и randomize()
Насколько я знаю эти функции находятся в stdlib.h , он подключен почему выскакивает ошибка? #include <stdio.h> #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru