Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2013, 22:01   #1
bunukar
Пользователь
 
Регистрация: 26.04.2010
Сообщений: 40
По умолчанию Задача с подбрасыванием монетки

Приветствую всех. Имеется следующая задача. При подбрасывании монетки n раз, нужно вычислить все серии, когда выпадает одна и та же сторона монетки(серия>=2) подряд. Например, подбросили 10 раз, нужно найти серии - решка:2,4 раз; орёл:2 раз. Когда орёл или решка выпадает 1 раз, серия не учитывается. Т.е. сколько раз одна сторона выпадает подряд.

Набросал такой код:
Код:
function brosok:boolean;
var
x:integer;
begin
randomize;
x:=random(2);

if x=1 then
begin
result:=true;
form1.Label1.Caption:='Орёл!';
form1.Label1.Font.Color:=clred;
orel:=orel+1;
end;

if x=0 then
begin
result:=true;
form1.Label1.Caption:='Решка!';
form1.Label1.Font.Color:=clgreen;
reshka:=reshka+1;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var raz: array of boolean;
i,n:integer;
komb:integer;
begin
//исходные данные
reshka:=0;
orel:=0;
komb:=5;

//количество бросков
n:=strtoint(edit1.text);
setlength(raz,n);
memo1.Lines.Add('Комбинации:');

//подбрасываем
for i:=1 to n do
begin
raz[i]:=brosok;
//проверка
if raz[i]= raz[i-1] then
begin
komb:=komb+1;
end;

end;
memo1.Lines.Add(inttostr(komb));
memo1.Lines.Add('Решка выпала '+inttostr(reshka));
memo1.Lines.Add('Орел выпал '+inttostr(orel));

end;
Но почему то при проверке i-го и i-1-го броска, проверка не работает. Прошу помочь выполнить именно саму проверку.
bunukar вне форума Ответить с цитированием
Старый 04.05.2013, 22:11   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,330
По умолчанию

Функция
Код:
function brosok:boolean;
...
if x=1 then
begin
result:=true;
...
if x=0 then
begin
result:=true;
...
всегда возвращяет True.
Таким образом, массив заполнен только одним значением:
Код:
raz[i]:=brosok;

Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 04.05.2013, 22:21   #3
bunukar
Пользователь
 
Регистрация: 26.04.2010
Сообщений: 40
По умолчанию

ViktorR
Вот же я не внимательный)) Спасибо. Сейчас попробую с проверкой)
bunukar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача по подсчёту статистики использования букв. Другая задача - по длинной арифметике Pascal ABC kimberly Паскаль, Turbo Pascal, PascalABC.NET 3 24.12.2012 17:03
Задача на оптимальный расчет маршрута (задача в презентации) в табличном процессоре Excel Toofed Помощь студентам 0 30.11.2011 01:12
Задача минимизации дисбаланса на линии сборки (задача минимакса) LenZab Microsoft Office Excel 13 13.03.2011 22:51
монетки на шахматной доске! grimm_jow Общие вопросы C/C++ 2 31.01.2010 10:27
монетки Alex26RusLink Помощь студентам 1 26.10.2009 12:42