IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

 
 Ответить  Открыть новую тему 
> random процедур
сообщение
Сообщение #1


Гость






как сделать random процедур??
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Ты о чем ? О паскалевской функции Random ? Посмотри в хелпе или поищи по форуму, конкретно по этому же разделу ...


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


меркантильный
***

Группа: Пользователи
Сообщений: 161
Пол: Мужской

Репутация: -  6  +


Цитата(SkyBoy @ 1.07.2007 15:34) *

как сделать random процедур??

Что есть "random процедур"?
Если можно в Паскале написать программу, которая допустим, решает три
варианта задачи, по одной процедуре для каждого варианта,
а в основном теле программы задается вопрос "выберите номер варианта",
вводишь номер, и в зависимости от значения введенной переменной
идет выбор одной процедуры, (соответственно решается один вариант),
то можно сделать и так: номер не вводится пользователем с клавиатуры,
а задается рандомом.
Если речь о чем-то другом - уточни вопрос...



--------------------
Смысл откроется тебе. Красками играя
Жизнь предстанет как поток без конца и края.


В этом мире порой разбиваютсямечты
Но чтобы он стал другой Вдруг в него приходишь ТЫ...

После странствий и скитаний настают другие времена.
Старая волна уходит и приходит новая волна.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






...
procedure one;
..
..
end;
procedure second;
..
..
end;
procedure third;
..
..
end;

{end}

writeln (random (one,second,third));
----------
не правильно, но мысль поняли? как её воплотить?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Хм, в жизни ничего подобного не делал, но вышло занятно.

uses crt;
type
TProcType = Procedure();

procedure A(); begin writeln('A') end;
procedure B(); begin writeln('B') end;

var
procs: Array [0..1] of Pointer = (@A, @B);
i: Integer;
begin
Randomize;
for i := 1 to 10 do TProcType(procs[Random(2)])();
end.



--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Можно не заморачиваться с указателями:

uses crt;
type
TProcType = Procedure;

procedure A; far;
begin writeln('A') end;
procedure B; far;
begin writeln('B') end;

const
procs: Array [0..1] of TProcType = (A, B);
var
i: Integer;
begin
Randomize;
for i := 1 to 10 do
procs[Random(2)];
end.

 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Я пробовал так... У тебя FPC это нормально компилирует ?


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Я не компилирую ЗДЕСЬ в FPC - это не раздел про 32-битные компиляторы... А как ты думаешь, твою программу TP вообще откомпилирует?

Добавлено через 2 мин.
Кстати, да... Во всех режимах, кроме ObjFPC все прекрасно работает...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Да, мой косяк ... надо было проверить в TP. А в FPC код без указателей не компилится ... вот лог ошибок:

Цитата
test.pas(11,39) Error: Incompatible types: got "A" expected "<procedure variable type of procedure;Register>"
test.pas(11,42) Error: Incompatible types: got "B" expected "<procedure variable type of procedure;Register>"


Но вот это помогает

Цитата
const
procs: Array [0..1] of TProcType = (TProcType(A), TProcType(B));


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.11.2020 10:21
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name