Задаватель вопросов
 Аватар для Parlepapindipon
0 / 0 / 0
Регистрация: 18.09.2020
Сообщений: 258
Записей в блоге: 13

Рандом генерация

03.06.2021, 14:45. Показов 952. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, ребят!
Ниже мой код, что-то типа обращение...
Выводит все классно, но не могу сделать рандомный вывод три раза!
Помогите пожалуйста

Delphi
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
program PR14;
 
{$MODE OBJFPC}{$H+}
{$APPTYPE CONSOLE}
{$codepage utf8}
 
uses
SysUtils;
 
var
 
i:integer;
ResStr:string;
 
Function Welcome: string;
var
Aa: integer;
begin
 
 Randomize;
 Aa:= 1 + Random(5);
 
 case Aa of
 
 1: Result:= 'Привет, ';
 2: Result:= 'Здравствуй, ';
 3: Result:= 'Добрый день, ';
 4: Result:= 'Рад тебя видеть, ';
 
 end;
 
end;
 
Function Conversation: string;
var
 Ab: integer;
 
begin
 
 Randomize;
 Ab:= 1 + Random(6);
 
 case Ab of
 
 1: Result:= 'дорогой ';
 2: Result:= 'уважаемый ';
 3: Result:= 'внимательный ';
 4: Result:= 'смышлёный ';
 5: Result:= 'усердный ';
 
 end;
 
end;
 
 
Function Friend: string;
 var
  Ac: integer;
begin
 
 Randomize;
 Ac:= 1 + Random(6);
 
 case Ac of
 
 1: Result:= 'друг!';
 2: Result:= 'товарищ!';
 3: Result:= 'пользователь!';
 4: Result:= 'читатель!';
 5: Result:= 'коллега!';
 
end;
end;
 
begin
 for i:= 1 to 3 do
 
 begin
 
 ResStr:=Welcome + Conversation + Friend;
 WriteLn(ResStr);
 
 end;
 ReadLn;
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.06.2021, 14:45
Ответы с готовыми решениями:

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

Рандом
procedure TForm1.FormCreate(Sender: TObject); begin img1.Canvas.Brush.color:=clWhite; Form1.DoubleBuffered:=True; for i:=0 to...

Рандом
Подскажите как построить программу, чтобы нажимая кнопку у меня каждый определенный промежуток времени менялся цвет фона программы и по...

2
Модератор
4146 / 2357 / 812
Регистрация: 15.11.2015
Сообщений: 9,433
03.06.2021, 14:58
1. Убери Randomize из каждой функции и поставь его в начале программы.
2. Тут выход за границы. 1 + Random(6) выдаст числа в диапазоне от 1 до 6 включительно, а номера в case идут только до 5.

Вот переправил немного:
Delphi
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
program PR14;
 
{$MODE OBJFPC}{$H+}
{$APPTYPE CONSOLE}
{$codepage utf8}
 
uses
  SysUtils, Windows;
 
var
 
i:integer;
ResStr:string;
 
Function Welcome: string;
var
  Aa: integer;
begin
  Aa:= 1 + Random(4);
  case Aa of
    1: Result:= 'Привет, ';
    2: Result:= 'Здравствуй, ';
    3: Result:= 'Добрый день, ';
    4: Result:= 'Рад тебя видеть, ';
  end;
end;
 
Function Conversation: string;
var
  Ab: integer;
begin
  Ab:= 1 + Random(5);
  case Ab of
    1: Result:= 'дорогой ';
    2: Result:= 'уважаемый ';
    3: Result:= 'внимательный ';
    4: Result:= 'смышлёный ';
    5: Result:= 'усердный ';
  end;
end;
 
Function Friend: string;
var
  Ac: integer;
begin
  Ac:= 1 + Random(5);
  case Ac of
    1: Result:= 'друг!';
    2: Result:= 'товарищ!';
    3: Result:= 'пользователь!';
    4: Result:= 'читатель!';
    5: Result:= 'коллега!';
  end;
end;
 
begin
// В cmd установить шрифт "Lucida Console"
//  SetConsoleCP(1251);
//  SetConsoleOutPutCp(1251); // Эти 2 строки были нужны для Delphi 7
 
  Randomize;
  for i := 1 to 3 do
  begin
    ResStr := Welcome + Conversation + Friend;
    WriteLn(ResStr);
  end;
  ReadLn;
end.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33399 / 21509 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
03.06.2021, 15:08
Зачем тут эти Case-ы? Без них все прекрасно делается:
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
program PR14;
 
{$MODE OBJFPC}{$H+}
{$codepage utf8}
 
uses
  SysUtils, StrUtils;
 
Function Welcome: string;
begin
  Result := RandomFrom(['Привет, ', 'Здравствуй, ', 
                        'Добрый день, ', 'Рад тебя видеть, ']);
end;
 
Function Conversation: string;
begin
  Result := RandomFrom(['дорогой ', 'уважаемый ', 'внимательный ',
                        'смышлёный ', 'усердный ']);
end;
 
Function Friend: string;
begin
  Result := RandomFrom(['друг!', 'товарищ!', 'пользователь!',
                        'читатель!', 'коллега!']);
end;
 
var
  i:integer;
  ResStr:string;
 
begin
  Randomize;
  for i := 1 to 3 do
  begin
    ResStr := Welcome + Conversation + Friend;
    WriteLn(ResStr);
  end;
  ReadLn;
end.
, зато мне теперь достаточно в одном месте изменить список допустимых значений, и программа продолжит работать. Раньше надо было менять граничное значение для Random-а и метки в Case, уже 2 места.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.06.2021, 15:08
Помогаю со студенческими работами здесь

Рандом
не пойму как сделать так,чтобы при правильном ответе, вопрос больше не задавался.но не удаляя его из списка навсегда. type TForm7 =...

Рандом
Есть поле stringgrid m*n, по нему бегает массив 2*p и красит ячейки stringgrid'a. Нужно чтоб генерировалась случайная точка но она не...

Рандом
есть 5 чисел: 2,4,6,8,10 как сделать так, чтоб в label случайным образом прописывалось одно из этих чисел?

Рандом
Добрый день! Подскажите пожалуйста, как сделать рандом Х, У и чтобы можно было одновременно в программе вводить эти же Х,У с клавиатуры?

Рандом
Помогите сделать примерно такой способ: p= Рендомное число от 1 до 10. Затем если p= 1 то {Мой код} иначе идти дальше если...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru