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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2013, 19:33   #1
olga_v95
Пользователь
 
Регистрация: 11.02.2013
Сообщений: 12
По умолчанию Игровая программа "Ипподром" Pascal

Игрок выбирает одного из трёх лошадей, которые соревнуются на скачках, и выигрывает, если его лошадь приходит первой. Скорость лошадей на разных этапах регулируется с помощью генератора случайных чисел.
olga_v95 вне форума Ответить с цитированием
Старый 16.03.2013, 12:24   #2
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Цитата:
одного из трёх лошадей


Код:
const
  LoshadCount = 3;

var
  i, n, c, max: Integer;
  v: Real;
  s: array [1..LoshadCount] of Integer;

begin
  // Stavki
  n := 0;
  repeat
    Write ('Vibirite loshad (ot 1 do ', LoshadCount,'): ');
    ReadLn (n);
  until n in [1..LoshadCount];

  // Zaezd
  Randomize;

  for i := 1 to LoshadCount do
    s[i] := 30 + Random(15);

  // Finish
  max := s[1];
  for i := 2 to LoshadCount do
    if s[i] > max then max := s[i];

  c := 0;
  for i := 1 to LoshadCount do
    if s[i] = max then begin
      Inc(c);
      if i = n then n := 0; // esli viigral
    end;
  v := LoshadCount / c;

  // Resultat
  WriteLn;
  WriteLn ('----------------------------------');
  WriteLn ('           Srednaya');
  WriteLn (' Loshad    skorost,     Resultat');
  WriteLn ('           km/ch');
  WriteLn ('----------------------------------');
  for i := 1 to LoshadCount do begin
    Write (' ', i, s[i]:12);
    if s[i] = max then Write ('          POBEDITEL');
    WriteLn();
  end;
  WriteLn ('----------------------------------');
  WriteLn;

  if n = 0 then begin
    WriteLn ('VI VIIGRALI !!!');
    WriteLn ('Vash viigrish: ', v:4:2);
  end
  else
    WriteLn ('Vi proigrali :(');

  ReadLn;
end.
Код:
const
  LoshadCount = 3;

var
  i, n, c: Integer;
  max: Real;
  v: array [1..LoshadCount] of Integer;
  s: array [1..LoshadCount] of Real;

begin
  // Stavki
  n := 0;
  repeat
    Write ('Vibirite loshad (ot 1 do ', LoshadCount,'): ');
    ReadLn (n);
  until n in [1..LoshadCount];

  // Zaezd
  Randomize;

  for i := 1 to LoshadCount do
    s[i] := 30 + round(Random*15*1000)/1000; // Iz-za ogranicheniy tochnosti izmereniya :)

  // Finish
  max := s[1];
  for i := 2 to LoshadCount do
    if s[i] > max then max := s[i];

  c := 0;
  for i := 1 to LoshadCount do
    if s[i] = max then begin
      Inc(c);
      v[c] := i;
    end;

  if c = 1 then begin
    c := v[1];
  end
  else begin
  // Fotofinish :)
    max := max + 0.001;
    c := Random(c) + 1;
    c := v[c];
    s[c] := max;
  end;

  // Resultat
  WriteLn;
  WriteLn ('----------------------------------');
  WriteLn ('           Srednaya');
  WriteLn (' Loshad    skorost,     Resultat');
  WriteLn ('           km/ch');
  WriteLn ('----------------------------------');
  for i := 1 to LoshadCount do begin
    Write (' ', i, s[i]:15:3);
    if i = c then Write ('       POBEDITEL');
    WriteLn();
  end;
  WriteLn ('----------------------------------');
  WriteLn;

  if c = n then
    WriteLn ('VI VIIGRALI !!!')
  else
    WriteLn ('Vi proigrali :(');

  ReadLn;
end.
Sibedir вне форума Ответить с цитированием
Старый 23.04.2013, 15:09   #3
KINGSTONE
Новичок
Джуниор
 
Регистрация: 23.04.2013
Сообщений: 2
По умолчанию

Sibedir, а на C++ код программы сможешь сделать?
KINGSTONE вне форума Ответить с цитированием
Старый 23.04.2013, 20:04   #4
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Можно. Но как?
Я пока еще паскалевец
Sibedir вне форума Ответить с цитированием
Старый 23.04.2013, 22:28   #5
KINGSTONE
Новичок
Джуниор
 
Регистрация: 23.04.2013
Сообщений: 2
По умолчанию

Ладно тогда, спасибо за внимание))
KINGSTONE вне форума Ответить с цитированием
Старый 23.04.2013, 22:40   #6
cleac
Пользователь
 
Аватар для cleac
 
Регистрация: 19.04.2013
Сообщений: 27
По умолчанию

Вам нужно с С++ реализацией помочь? В принципе, могу накнопать код
All rights reserved©.

Последний раз редактировалось cleac; 23.04.2013 в 22:50.
cleac вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль.Программа "Верификация", "Кака бригадиру разделить заработанные деньги?".Сложные Valik102 Помощь студентам 11 23.06.2009 15:30
Паскаль.Программа "Верификация", "Кака бригадиру разделить заработанные деньги?".Сложные Valik102 Паскаль, Turbo Pascal, PascalABC.NET 3 23.06.2009 09:11
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51