Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
3 / 3 / 1
Регистрация: 12.09.2015
Сообщений: 33

Повторения в рандоме. Как убрать?

09.12.2015, 13:39. Показов 1352. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую.
В программе нижет осуществлен рандомный вывод вопросов на экран, но, вопросы повторяются. Как избавиться от этого недуга? Пробовал сделать так: задать новую переменную, и если эта переменная равна номеру вопроса, то номер вопроса увеличивается на 1. Как оказалось, попытка была неудачной [Смотрим 19-25 строки]
Кликните здесь для просмотра всего текста

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
uses Crt;
var
b:byte; //Баллы
k:byte; //оценка
O:byte; //В нее будет записываться ответ
i:byte; //Счеткик в for
v:byte; //Селектор для case (вопросы)
s:byte; //Переменная,с помощью который мы убираем повторение вопросов
begin
 ClrScr;
 Randomize;
 b:=0;
 TextBackGround(black);
 TextColor(red);
 ClrScr;
 Writeln('Здравствуйте. Вам предлагается тест по физике.');
 s:=0;
 for i:=1 to 10 do
  begin
  v:=Random(16);
  TextColor(green);
  if S=V then
  begin
   inc(v);
   s:=v;
  end;
  case v of
 {Вопрос 1:}
 1:begin
 Writeln('Еще в глубокой древности люди заметили, что это физическое тело способно притягивать к себе различные тела: соломинки, пушинки и т.д. О каком теле идет речь?');
  Writeln('1) Бумага ');
  Writeln('2) Серебро ');
  Writeln('3) Железо ');
  Writeln('4) Янтарь ');
 Readln(O);
 if O=4 then
  Inc(b);
  end;
 {Вопрос 2:}
 2:begin
 Writeln('В начале 17 века стали говорить, что тело, получившие после натирания способность притягивать другие тела наэлектризовано. О каких явлениях идет речь:');
  Writeln('1) Магнитных ');
  Writeln('2) Химических ');
  Writeln('3) Электрических ');
  Writeln('4) Тепловых ');
 Readln(O);
 if O=3 then
  Inc(b);
  end;
 {Вопрос 3:}
 3:begin
 Writeln('Явление передачи тепла от одного тела к другому при их непосредственном контакте:');
  Writeln('1) Конвекция ');
  Writeln('2) Теплопередача ');
  Writeln('3) Излучение ');
 Readln(O);
 if O=2 then
 inc(b);
 end;
 {Вопрос 4:}
 4:begin
 Writeln('Энергия в физике измеряется в:');
  Writeln('1) Джоулях [Дж] ');
  Writeln('2) Ньютонах [Н] ');
  Writeln('3) Амперах [Ам] ');
 Readln(O);
 if O=1 then
  inc(b);
  end;
 {Вопрос 5:}
 5:begin
 Writeln('Формула, по которой можно расчитать кол-во теплоты, необходимого для нагрева или охлаждения жидкости:');
  Writeln('1) Q = c*m*(t2-t1) ');
  Writeln('2) Q = L*m ');
  Writeln('3) Q = q*m ');
 Readln(O);
 if O=1 then
  inc(b);
  end;
 {Вопрос 6:}
 6:begin
 Writeln('Переход вещества из жидкого состояния в твердое называется:');
  Writeln('1) Плавление ');
  Writeln('2) Кристаллизация/отвердевание ');
  Writeln('3) Конденсация ');
 Readln(O);
 if O=1 then
  inc(b);
 end;
 {Вопрос 7:}
 7:begin
 Writeln('Самый тугоплавкий металл:');
  Writeln('1) Цезий ');
  Writeln('2) Платина ');
  Writeln('3) Вольфрам ');
 Readln(O);
 if O=3 then
  inc(b);
 end;
 {Вопрос 8:}
 8:begin
 Writeln('Для определения влажности воздуха используют прибор:');
  Writeln('1) Психрометр ');
  Writeln('2) Термоментр ');
  Writeln('3) Жидкостный манометр ');
 Readln(O);
 if O=1 then
 inc(b);
 end;
 {Вопрос 9:}
 9:begin
 Writeln('Удельная теплота парообразования обозначается в физике буквой:');
  Writeln('1) c ');
  Writeln('2) q ');
  Writeln('3) L ');
 Readln(O);
 if o=1 then
  inc(b);
  end;
 {Вопрос 10:}
 10:begin
 Writeln('Изобретатель первой тепловой машины:');
  Writeln('1) Альберт Эйнштейн ');
  Writeln('2) Александр Белл ');
  Writeln('3) Джеймс Уатт ');
 Readln(O);
 if O=3 then
  inc(b);
 end;
 {Вопрос 11:}
 11:begin
 Writeln('Тепловой двигатель совершает свою работы за ... такта(-ов):');
  Writeln('1) четыре ');
  Writeln('2) три ');
  Writeln('3) восемь ');
 Readln(O);
 if O=1 then
  inc(b);
 end;
 {Вопрос 12:}
 12:begin
 Writeln('Формула давления в физике:');
  Writeln('1) P = F/S ');
  Writeln('2) P = S/F ');
  Writeln('3) P = L/S * 100% ');
 Readln(O);
 if O=1 then
  inc(b);
 end;
 {Вопрос 13:}
 13:begin
 Writeln('Любое изменение формы и размера тела - это ...:');
  Writeln('1) Деформация ');
  Writeln('2) Превращение механической энергии в потенциальную ');
  Writeln('3) Всеобщее деформирование земных тел ');
 Readln(O);
 if O=1 then
  inc(b);
 end;
 {Вопрос 14:}
 14:begin
 Writeln('Сила, возникающая в результате деформации тела и стремящаяся вернуть его в исходное положение:');
  Writeln('1) Тяжести ');
  Writeln('2) Упругости ');
  Writeln('3) Трения ');
 Readln(O);
 if O=1 then
  inc(b);
  end;
 {Вопрос 15:}
 15:begin
 Writeln('Единица силы:');
  Writeln('1) [Дж] ');
  Writeln('2) [Вт] ');
  Writeln('3) [Н] ');
 Readln(O);
 if O=3 then
  inc(b);
 end;
 end;
 end;
  {Ниже идет выставление оценки}
 if b>=9 then 
  k:=5 else 
   if (b=7) or (b=8) then 
    k:=4 
     else 
      if (b=5) or (b=6) then 
       k:=3 else 
        if b<5 then 
         k:=2;
  TextColor(yellow);
  Writeln('Ваши баллы: ',b);
  Writeln('Ваша оценка: ',k);
  readln;
end.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.12.2015, 13:39
Ответы с готовыми решениями:

Как исключить повторения в рандоме?
Всем доброго времени суток! Нужна помощь, хочу доработать скрипт тестирования с регистрацией, а именно сделать так чтобы каждый раз при...

Как убрать повторения.
Доброго времени суток. Суть вопроса такова. Есть два одинаковых действия. Например добавить, одно в PopupMenu, другое в MainMenu....

Как убрать повторения?
Даны два массива: А и B (M и N вводятся с клавиатуры). Необходимо создать третий массив минимально возможного размера, в котором нужно...

5
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
09.12.2015, 14:23
Лучший ответ Сообщение было отмечено 32xlevel как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
var v:byte; 
     mn:set of byte;]
.....................................
mn:=[];
 for i:=1 to 10 do
  begin
  repeat
  v:=Random(16);
  until not v in mn;
  mn:=mn+[v];
.............................
1
3 / 3 / 1
Регистрация: 12.09.2015
Сообщений: 33
09.12.2015, 15:54  [ТС]
Теперь возникла следующая проблема. Текст далее просто не отображается.
Исправленный текст программы (если необходимо):
Кликните здесь для просмотра всего текста

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
                                                 uses Crt;
var
b:byte; //Баллы
k:byte; //оценка
O:byte; //В нее будет записываться ответ
i:byte; //Счеткик в for
v:byte; //Селектор для case (вопросы)
s:byte; //Переменная,с помощью который мы убираем повторение вопросов
mn:set of byte;
begin
 mn:=[];
 ClrScr;
 Randomize;
 b:=0;
 TextBackGround(black);
 TextColor(red);
 ClrScr;
 Writeln('Здравствуйте. Вам предлагается тест по физике.');
 s:=0;
 for i:=1 to 10 do
  begin
  repeat
  v:=Random(16);
  until not v in mn;
  mn:=mn+[v];
  TextColor(green);
  if S=V then
  begin
   inc(v);
   s:=v;
  end;
  case v of
 {Вопрос 1:}
 1:begin
 Writeln('Еще в глубокой древности люди заметили, что это физическое тело способно притягивать к себе различные тела: соломинки, пушинки и т.д. О каком теле идет речь?');
  Writeln('1) Бумага ');
  Writeln('2) Серебро ');
  Writeln('3) Железо ');
  Writeln('4) Янтарь ');
 Readln(O);
 if O=4 then
  Inc(b);
  end;
 {Вопрос 2:}
 2:begin
 Writeln('В начале 17 века стали говорить, что тело, получившие после натирания способность притягивать другие тела наэлектризовано. О каких явлениях идет речь:');
  Writeln('1) Магнитных ');
  Writeln('2) Химических ');
  Writeln('3) Электрических ');
  Writeln('4) Тепловых ');
 Readln(O);
 if O=3 then
  Inc(b);
  end;
 {Вопрос 3:}
 3:begin
 Writeln('Явление передачи тепла от одного тела к другому при их непосредственном контакте:');
  Writeln('1) Конвекция ');
  Writeln('2) Теплопередача ');
  Writeln('3) Излучение ');
 Readln(O);
 if O=2 then
 inc(b);
 end;
 {Вопрос 4:}
 4:begin
 Writeln('Энергия в физике измеряется в:');
  Writeln('1) Джоулях [Дж] ');
  Writeln('2) Ньютонах [Н] ');
  Writeln('3) Амперах [Ам] ');
 Readln(O);
 if O=1 then
  inc(b);
  end;
 {Вопрос 5:}
 5:begin
 Writeln('Формула, по которой можно расчитать кол-во теплоты, необходимого для нагрева или охлаждения жидкости:');
  Writeln('1) Q = c*m*(t2-t1) ');
  Writeln('2) Q = L*m ');
  Writeln('3) Q = q*m ');
 Readln(O);
 if O=1 then
  inc(b);
  end;
 {Вопрос 6:}
 6:begin
 Writeln('Переход вещества из жидкого состояния в твердое называется:');
  Writeln('1) Плавление ');
  Writeln('2) Кристаллизация/отвердевание ');
  Writeln('3) Конденсация ');
 Readln(O);
 if O=1 then
  inc(b);
 end;
 {Вопрос 7:}
 7:begin
 Writeln('Самый тугоплавкий металл:');
  Writeln('1) Цезий ');
  Writeln('2) Платина ');
  Writeln('3) Вольфрам ');
 Readln(O);
 if O=3 then
  inc(b);
 end;
 {Вопрос 8:}
 8:begin
 Writeln('Для определения влажности воздуха используют прибор:');
  Writeln('1) Психрометр ');
  Writeln('2) Термоментр ');
  Writeln('3) Жидкостный манометр ');
 Readln(O);
 if O=1 then
 inc(b);
 end;
 {Вопрос 9:}
 9:begin
 Writeln('Удельная теплота парообразования обозначается в физике буквой:');
  Writeln('1) c ');
  Writeln('2) q ');
  Writeln('3) L ');
 Readln(O);
 if o=1 then
  inc(b);
  end;
 {Вопрос 10:}
 10:begin
 Writeln('Изобретатель первой тепловой машины:');
  Writeln('1) Альберт Эйнштейн ');
  Writeln('2) Александр Белл ');
  Writeln('3) Джеймс Уатт ');
 Readln(O);
 if O=3 then
  inc(b);
 end;
 {Вопрос 11:}
 11:begin
 Writeln('Тепловой двигатель совершает свою работы за ... такта(-ов):');
  Writeln('1) четыре ');
  Writeln('2) три ');
  Writeln('3) восемь ');
 Readln(O);
 if O=1 then
  inc(b);
 end;
 {Вопрос 12:}
 12:begin
 Writeln('Формула давления в физике:');
  Writeln('1) P = F/S ');
  Writeln('2) P = S/F ');
  Writeln('3) P = L/S * 100% ');
 Readln(O);
 if O=1 then
  inc(b);
 end;
 {Вопрос 13:}
 13:begin
 Writeln('Любое изменение формы и размера тела - это ...:');
  Writeln('1) Деформация ');
  Writeln('2) Превращение механической энергии в потенциальную ');
  Writeln('3) Всеобщее деформирование земных тел ');
 Readln(O);
 if O=1 then
  inc(b);
 end;
 {Вопрос 14:}
 14:begin
 Writeln('Сила, возникающая в результате деформации тела и стремящаяся вернуть его в исходное положение:');
  Writeln('1) Тяжести ');
  Writeln('2) Упругости ');
  Writeln('3) Трения ');
 Readln(O);
 if O=1 then
  inc(b);
  end;
 {Вопрос 15:}
 15:begin
 Writeln('Единица силы:');
  Writeln('1) [Дж] ');
  Writeln('2) [Вт] ');
  Writeln('3) [Н] ');
 Readln(O);
 if O=3 then
  inc(b);
 end;
 end;
 end;
  {Ниже идет выставление оценки}
 if b>=9 then
  k:=5 else
   if (b=7) or (b=8) then
    k:=4
     else
      if (b=5) or (b=6) then
       k:=3 else
        if b<5 then
         k:=2;
  TextColor(yellow);
  Writeln('Ваши баллы: ',b);
  Writeln('Ваша оценка: ',k);
  readln;
end.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
09.12.2015, 16:21
А это зачем?
Pascal
1
2
3
4
5
if S=V then
  begin
   inc(v);
   s:=v;
  end;
Добавлено через 13 минут
Я забыл поставить скобки, нужно
Pascal
1
until not (v in mn);
0
3 / 3 / 1
Регистрация: 12.09.2015
Сообщений: 33
09.12.2015, 17:07  [ТС]
Благодарю! Вопрос решен.
Тему можно закрывать.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
09.12.2015, 17:08
Цитата Сообщение от 32xlevel Посмотреть сообщение
Тему можно закрывать.
Ага, тебя забыли спросить...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.12.2015, 17:08
Помогаю со студенческими работами здесь

Как убрать повторения из ComboBox
Здравствуйте! Проблема в следующем: я заполняю combobox данными из колонки таблицы sql, но там есть данные, которые повторяются и мне надо...

Как из упорядоченого массива убрать повторения?
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;set&gt; using namespace std; void Sort(int *mas, int size) // Функция сортировки...

Как при получение списка процессов убрать их повторения
Получаю список процессов: static void Main(string args) { Process procList = Process.GetProcesses(); foreach(Process a in...

Убрать повторения в генерации
у меня 2 кнопки и 1 мемо 1 кнопка - генерирует. 2 - убирает повторения. как их объединить в 1. Чтоб он генерировать с проверкой на...

Убрать повторения из файла
Доброго времени суток. Задача такая: есть текстовый файл 1.txt, в нём много строк которые могут повторятся. Нужно создать второй файл...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru