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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2008, 18:02   #1
sverhuVniz
Пользователь
 
Аватар для sverhuVniz
 
Регистрация: 24.10.2008
Сообщений: 32
По умолчанию настольный теннис

я переделал 3 раза эту задачу но всё равно мало тестов проходит исправьте плиз ошибки.



условие:
Имя входного файла: a.in
Имя выходного файла: a.out
Максимальное время работы на одном тесте: 1 секунда
Максимальный объем используемой памяти: 64 мегабайта

В настольном теннисе в результате каждой подачи разыгрывается одно очко. Подача переходит от игрока к игроку каждые 5 подач, т.е. первые пять раз подает первый игрок, затем 5 раз - второй, затем снова первый и т.д.

Партия играется до тех пор, пока кто-нибудь из игроков не наберет 21 очко. Тот, кто набрал 21 очко, признается победителем, и игра заканчивается.

Вася и Петя играли в игру, и забыли, кто должен подавать в данный момент. Однако они помнят, что первую подачу делал Вася, и счет в настоящий момент a:b (a очков у Васи и b очков у Пети). Напишите программу, которая по данным a и b будет определять, чья подача или устанавливать, что игра закончена.

Формат входных данных

Вводятся два числа a и b. Числа соответствуют реальному счету, т.е. оба числа целые, от 0 до 21 и не равны 21 одновременно.

Формат выходных данных

Выведите одно из четырех сообщений:

* Vasya serves - если сейчас должен подавать Вася
* Petya serves - если сейчас должен подавать Петя
* Vasya wins - если игра завершена и выиграл Вася
* Petya wins - если игра завершена и выиграл Петя

моё решение:
program tennis;
var t,f:text;
a,b,n:integer;
c:string;
begin
assign(f,'a.in');
reset(f);
while not eof(f) do
read(f,a,b);
n:=a+b;
if a<>21 then
begin
if n mod 10=0 then c:='vasya serves'
else c:='petya serves';
end;
if a=21 then c:='vasya wins';
if b=21 then c:='petya wins';
close(f);
assign(t,'a.out');
rewrite(t);
append(t);
write(t,c);
close(t);
end.



жду вашей помощи!
___________________________________ ____________
ВОН ВЫГНАТЬ ПРОКЛЯТЫХ СПАММЕРОВ!
sverhuVniz вне форума Ответить с цитированием
Старый 14.11.2008, 19:47   #2
MalexG
Форумчанин
 
Регистрация: 06.11.2008
Сообщений: 100
По умолчанию

Насколько я понял в файле a.in находятся несколько входных данных a, b.
И по каждым входным значениям нужно в файл a.out вывести результаты.
Если понял правильно, то вот решение:
Код:
program tennis;
var 
  t, f: text;
  a, b, n: integer;
  x: integer;
  c: string;
begin
  assign(f, 'a.in');
  reset(f);
  assign(t, 'a.out');
  rewrite(t);
  while not eof(f) do
  begin
    readln(f, a, b);
    if b = 21 then 
      c := 'petya wins';
    if a = 21 then 
      c := 'vasya wins'
    else begin
      n := a + b;
      x := n div 5;
      case Odd(x) of
        true:  c := 'petya serves';
        false: c := 'vasya serves'
      end;	  
    end;
    writeln(t, c);
  end;
  close(t);
  close(f);
end.
MalexG вне форума Ответить с цитированием
Старый 15.11.2008, 15:44   #3
sverhuVniz
Пользователь
 
Аватар для sverhuVniz
 
Регистрация: 24.10.2008
Сообщений: 32
По умолчанию

спасибо огромное
___________________________________ ____________
ВОН ВЫГНАТЬ ПРОКЛЯТЫХ СПАММЕРОВ!
sverhuVniz вне форума Ответить с цитированием
Старый 15.11.2008, 15:59   #4
sverhuVniz
Пользователь
 
Аватар для sverhuVniz
 
Регистрация: 24.10.2008
Сообщений: 32
По умолчанию

моё решение прошло 34 теста, а это к сожалению не прошло не одного
___________________________________ ____________
ВОН ВЫГНАТЬ ПРОКЛЯТЫХ СПАММЕРОВ!
sverhuVniz вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разрабатываем игру теннис DeKot Gamedev - cоздание игр: Unity, OpenGL, DirectX 28 28.10.2011 19:05