Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 28.08.2019
Сообщений: 2

Заполнить массив конкретными значениями

28.08.2019, 20:10. Показов 3486. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, как заполнить случайными числами массив я знаю, а как заполнить конкретными двузначными числами?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.08.2019, 20:10
Ответы с готовыми решениями:

Заполнить массив случайными значениями из диапазона от -10 до 10
Описать двумерный массив размерностью 5х5. Заполнить массив случайными значениями из диапазона от-10 до 10. Найти в каждой строке...

Заполнить массив случайными значениями из диапазона от -10 до 10
Описать двумерный массив 5х5. Заполнить массив случайными значениями из диапазона от -10 до 10. Найти в каждой строке двумерного массива...

Заполнить массив следующими значениями и вывести в виде таблицы.
1. Заполнить массив следующими значениями и вывести в виде таблицы. 0 0 1 0 0 0 0 1 0 0 1 1 1 1 1 0 0 1 0 0 0 0 1 0 0 ...

9
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,249
28.08.2019, 20:15
всм?вам нужны случайные числа,но что бы они були двузначными?

Добавлено через 43 секунды
Извиняюсь.
А в чем именно проблема?Опишите задачу полностью
0
 Аватар для WildDen
109 / 68 / 46
Регистрация: 13.01.2019
Сообщений: 288
28.08.2019, 20:40
Думаю
a[i]:=random(10,99);
0
0 / 0 / 0
Регистрация: 28.08.2019
Сообщений: 2
28.08.2019, 20:43  [ТС]
Эти числа не должны повторяться
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
29.08.2019, 08:38
Если нужно от 2 до 90 разных случайных двухзначных чисел, можно использовать множество.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var a:array[1..90] of integer;
    m:set of byte;
    n,i,x:integer;
begin
repeat
write('Размер массива от 2 до 90 n=');
readln(n);
until n in [2..90];
m:=[];
for i:=1 to n do
 begin
  repeat
  x:=10+random(90);
  until not(x in m);
  a[i]:=x;
  include(m,x);
  write(a[i]:4);
 end;
end.
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
29.08.2019, 09:37
так и непонятно, случайные тебе числа нужны или "конкретные"
Цитата Сообщение от валяда Посмотреть сообщение
а как заполнить конкретными двузначными числами?
или заполни массив нужными числами и перемешай.

Цитата Сообщение от Puporev Посмотреть сообщение
можно использовать множество.
можно.
но, если размер массива равен или близок общему диапазону чисел, то, ближе к концу заполнения, цикл repeat until not (x in m) может выполняться большое число раз (каждое случайное число уже может быть в массиве, для последнего числа придётся очень много раз вызвать random, чтобы получить нужное число). перемешивание массива не имеет этого недостатка. с другой стороны, перемешивание не поможет, если диапазон чисел большой. вот тогда эффективнее проверка на то, что число выпадало ранее.
всё зависит от конкретной задачи.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
29.08.2019, 10:25
Цитата Сообщение от mr-Crocodile Посмотреть сообщение
ближе к концу заполнения, цикл repeat until not (x in m) может выполняться большое число раз
Не больше 90 раз.
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
29.08.2019, 12:28
Цитата Сообщение от Puporev Посмотреть сообщение
Не больше 90 раз.
это почему?
выпало число 14, потом 45, потом 19, потом 17, потом опять 14, потом 22, потом опять 19 и т.д.
где гарантия, что случайные числа не могут выпадать с повторами?

хотя, конечно, в конце концов может с первого раза, может с 90-го, может, с 500го, но обязательно выпадет
хуже, если кто-то сделает размер массива больше диапазона, или диапазон сократит (достаточно сделать, например, random(89)), чтобы код ушёл в бесконечный цикл...

Добавлено через 3 минуты
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var a:array[1..90] of integer;
    m:set of byte;
    n,i,x, cnt:integer;
begin
n := 90;
m:=[];
for i:=1 to n do
 begin
  cnt := 0;
  repeat
    x:=10+random(90);
    inc(cnt);
  until not(x in m);
  if i=n then WriteLn('count of tries of random = ', cnt);
  a[i]:=x;
  include(m,x);
 end;
end.
попробуйте..

на 14 раз у меня показало число попыток 201.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
29.08.2019, 12:56
Цитата Сообщение от mr-Crocodile Посмотреть сообщение
или заполни массив нужными числами и перемешай.
По моему перемешивание возможно если заполнить массив числами от 10 до 99, а если например только 5 двухзначных чисел, то перемешивание не пойдет.
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
29.08.2019, 13:32
Цитата Сообщение от Puporev Посмотреть сообщение
По моему перемешивание возможно если заполнить массив числами от 10 до 99, а если например только 5 двухзначных чисел, то перемешивание не пойдет.
Вы правы. Так и есть.

если нужно 5 различных двухзначных чисел, то можно заполнять по одному числу, каждый раз проверяя, что числа не было раньше (алгоритм из пост №5, например).

а можно заполнить числами от 10 до 99, перемешать и взять первые 5 чисел.
Pascal
1
2
3
for i:=10 to 99 do mas[i] := i;
shiffle(mas);
for i:=1 to 5 do Write(mas[i]:4);
но тут, конечно, никакой особой выгодны не будет.

выгода от перемешивания получается только тогда, когда нужно разместить все числа.
Ну это как перемешать колоду карт, шары в лотерее и т.п.

я же выше и писал, что конкретный способ нужно брать в зависимости от конкретной задачи.
я против вашего решения ничего не имею. просто отметил, какие в нём заложены потенциальные проблемы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.08.2019, 13:32
Помогаю со студенческими работами здесь

Заполнить массив следующими значениями и вывести в виде таблицы.
1. Заполнить массив следующими значениями и вывести в виде таблицы. 0 0 1 0 0 0 0 1 0 0 1 1 1 1 1 0 0 1 0 0 0 0 1 0 0 ...

Заполнить массив следующими значениями и вывести в виде таблицы
Заполнить массив следующими значениями и вывести в виде таблицы 1 1 1 1 1 1 1 2 2 2 2 1 1 2 3 3 2 1 1 2 3 3 2 1 1 2 2 2 2 1 1 1...

Заполнить массив следующими значениями и вывести в виде таблиц
Заполнить массив следующими значениями и вывести в виде таблиц. 1 2 3 … 9 10 ...

Заполнить массив следующими значениями и вывести в виде таблицы.
Заполнить массив следующими значениями и вывести в виде таблицы. 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 ...

Заполнить массив следующими значениями и вывести в виде таблиц.
Заполнить массив следующими значениями и вывести в виде таблиц. 1 2 3 … 9 10 11 12 13 …19 20… 51 52 53 …59 60. ??


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru