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

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> [Java] Пулеметчицы против кавалеристок, игра в футбол
Shashlyk
сообщение 28.05.2011 22:14
Сообщение #1


Новичок
*

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

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


Добрый Вечер!!!
Помогите Пожалуйста переписать код с Паскаля на Ява:
program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;

Var
i: Integer;
ch: Char;
Home: Boolean;
scored, conceded, goal1, goal2, t, j: Integer;
s: String;

begin
Read(t);
for j := 1 to t do
Begin
for i := 1 to 27 do Read(ch);
if ch = 'h' then Home := True;
for i := 1 to 17 do Read(ch);
read(scored);
for i := 1 to 21 do Read(ch);
read(conceded);
Readln;
if Home then
Begin
if scored > conceded then
Begin
goal1 := 0;
goal2 := conceded + 30 - scored;
End
else //goal > Accept
Begin
goal1 := conceded - scored + 1;
goal2 := conceded + 29 - scored;
End
End
else //if not home
Begin
if scored > conceded then
Begin
goal1 := 0;
goal2 := conceded + 29 - scored;
End
else //goal > Accept
Begin
goal1 := conceded - scored;
goal2 := conceded + 30 - scored;
End;
End;
Write(IntToStr(goal1) + ' ' + IntToStr(goal2));
End;
end.


У меня что-то не получается:
import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner con=new Scanner (System.in);
char [] a;
boolean Home = false;
String s;
s = con.nextLine();
a = new char[s.length()];
a = s.toCharArray();
int i, scored, conceded, goal1 = 0, goal2 = 0, t, j;
t = con.nextInt();
for( j = 1; j< t; j++){
for (i = 1; i < 27; i++){
if (a[i] = 'h'){Home = true;}}
for (i = 1; i< 17; i++ ) Read(ch);
read(scored);
for i := 1 to 21 do Read(ch);
read(conceded);

if (Home){
if( scored > conceded )
{ goal1 = 0;
goal2 = conceded + 30 - scored;}
else //goal > Accept
{goal1 = conceded - scored + 1;
goal2 = conceded + 29 - scored;}
}
else //if not home

{
if (scored > conceded)
{goal1 = 0;
goal2 = conceded + 29 - scored;}
else //goal > Accept
{goal1 = conceded - scored;
goal2 = conceded + 30 - scored;}
}
}
System.out.println(String.valueOf(goal1) + " " + String.valueOf(goal2));

}
}


Особенно не получается перевести :
for i := 1 to 27 do Read(ch);
if ch = 'h' then Home := True;
for i := 1 to 17 do Read(ch);
read(scored);
for i := 1 to 21 do Read(ch);
read(conceded);
Readln;


Добавлено через 10 мин.
Раньше изучал Паскаль, сейчас изучаю Яву... задачу нужно сдавать на Яве, но на ней плохо программирую(
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
IUnknown
сообщение 29.05.2011 21:32
Сообщение #2


a.k.a. volvo877
*****

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

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


package shashlyk;

import java.io.*;
import java.util.regex.Pattern;
import java.util.regex.Matcher;

/**
* @author Vlady
*/
public class Shashlyk {

/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {

BufferedReader br;
br = new BufferedReader(new InputStreamReader(System.in));

// Console console = System.console();
Pattern p = Pattern.compile("[0-9]+");
int t = Integer.parseInt(br.readLine());

for(int i = 0; i < t; i++)
{
String s = br.readLine();
Matcher m = p.matcher(s);
m.find();
int scored = Integer.parseInt(m.group());
m.find();
int conceded = Integer.parseInt(m.group());

Boolean Home = s.substring(26, 30).equals("home");
int goal1, goal2;
if(Home)
{
if(scored > conceded)
{
goal1 = 0; goal2 = conceded + 30 - scored;
}
else
{
goal1 = conceded - scored + 1; goal2 = conceded + 29 - scored;
}
}
else
{
if(scored > conceded)
{
goal1 = 0; goal2 = conceded + 29 - scored;
}
else
{
goal1 = conceded - scored; goal2 = conceded + 30 - scored;
}
}
System.out.println(goal1 + " " + goal2);
}
}
}



Данные получает, исключений не бросает:
Прикрепленное изображение

, но работает по-прежнему не так, как ожидается... Исправляй...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Shashlyk
сообщение 30.05.2011 9:30
Сообщение #3


Новичок
*

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

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


Цитата(IUnknown @ 29.05.2011 22:32) *

package shashlyk;

import java.io.*;
import java.util.regex.Pattern;
import java.util.regex.Matcher;

/**
* @author Vlady
*/
public class Shashlyk {

/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {

BufferedReader br;
br = new BufferedReader(new InputStreamReader(System.in));

// Console console = System.console();
Pattern p = Pattern.compile("[0-9]+");
int t = Integer.parseInt(br.readLine());

for(int i = 0; i < t; i++)
{
String s = br.readLine();
Matcher m = p.matcher(s);
m.find();
int scored = Integer.parseInt(m.group());
m.find();
int conceded = Integer.parseInt(m.group());

Boolean Home = s.substring(26, 30).equals("home");
int goal1, goal2;
if(Home)
{
if(scored > conceded)
{
goal1 = 0; goal2 = conceded + 30 - scored;
}
else
{
goal1 = conceded - scored + 1; goal2 = conceded + 29 - scored;
}
}
else
{
if(scored > conceded)
{
goal1 = 0; goal2 = conceded + 29 - scored;
}
else
{
goal1 = conceded - scored; goal2 = conceded + 30 - scored;
}
}
System.out.println(goal1 + " " + goal2);
}
}
}



Данные получает, исключений не бросает:
Прикрепленное изображение

, но работает по-прежнему не так, как ожидается... Исправляй...


Исправил на :
if(Home){
if(scored > conceded){
goal1 = 0;
goal2 = conceded + 30 - scored - 1;
}
else {
goal1 = conceded - scored + 1;
goal2 = conceded + 29 - scored;
}
}
else {
if(scored > conceded){
goal1 = 0;
goal2 = conceded + 29 - scored;
}
else {
goal1 = conceded - scored;
goal2 = conceded + 30 - scored;
}
}

Отправил решение на проверку контесту, первый тест (и собственно говоря тот, который написан в качестве примера) спокойно проходит, а вот на втором тесте контест ругается wacko.gif
Если Вам не трудно, помогите Пожалуйста подкорректировать код! smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 31.05.2011 9:16
Сообщение #4


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(Shashlyk @ 30.05.2011 10:30) *
Отправил решение на проверку контесту, первый тест (и собственно говоря тот, который написан в качестве примера) спокойно проходит, а вот на втором тесте контест ругается wacko.gif
Если Вам не трудно, помогите Пожалуйста подкорректировать код! smile.gif
Спокойно, значит, проходит?..
Ну, что ж, поможем..

Цитата
Исправил на :
if(Home){
if(scored > conceded){
goal1 = 0;
goal2 = conceded + 30 - scored - 1;
}

Вот, смотри.. Допустим, scored=30, а conceded=0, сыграно at home. Оба условия "проходят спокойно" (С), мы присваиваем goal1=0, а goal2 будет равно 0 + 30 - 30 - 1.
В результате имеем, что пулеметчицы должны забить -1 гол. Ты знаешь, что такое футбол? и что там нет отрицательных результатов (как, например, в гольфе)?

Послушай, Merhaba, когда ты выложил весьма неплохой код (чего я не замечал за тобой раньше), я удивился, но промолчал. Когда же ты стал делать к нему заплатки (типа, -1 к строчке), все встало на свои места. Код не твой, и исправлять его для тебя лично я - завязываю. Учишься программировать? Вот и учись программировать, а не подсовывать другим чужие коды для переделки.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Shashlyk
сообщение 31.05.2011 19:49
Сообщение #5


Новичок
*

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

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


Цитата(Lapp @ 31.05.2011 10:16) *

Спокойно, значит, проходит?..
Ну, что ж, поможем..
Вот, смотри.. Допустим, scored=30, а conceded=0, сыграно at home. Оба условия "проходят спокойно" (С), мы присваиваем goal1=0, а goal2 будет равно 0 + 30 - 30 - 1.
В результате имеем, что пулеметчицы должны забить -1 гол. Ты знаешь, что такое футбол? и что там нет отрицательных результатов (как, например, в гольфе)?

Послушай, Merhaba, когда ты выложил весьма неплохой код (чего я не замечал за тобой раньше), я удивился, но промолчал. Когда же ты стал делать к нему заплатки (типа, -1 к строчке), все встало на свои места. Код не твой, и исправлять его для тебя лично я - завязываю. Учишься программировать? Вот и учись программировать, а не подсовывать другим чужие коды для переделки.

Подскажите хотя бы Пожалуйста, нужно исправить числа в этом коде или это неправильный код, и нужно полностью переписывать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



- Текстовая версия 24.06.2025 7:21
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"