понедельник, 30 января 2012 г.

Экзамен 2008-го года, третья часть

Я хочу обновить тут две последних задачи из экзамена за 2008-й год, на аттестат зрелости (первый год обучения): там как раз и методы, и массивы, и массив массивов ("двумерный").


Как раз хватит голову поломать)))






Задача №9
Значение, находящееся в одной из ячеек двумерного массива, называется перекрестком, если сумма всех значений в столбце, в котором находится это значение-перекресток, равно сумме всех значений в строке, в которой находится значение-перекресток.

Например, для массива

-4
0
7
14
-3
10
-2
11
9
2
1
8
6
0
10
-7
4
9
2
15
2
3
-1
5
0

Выделенное значение (9) является перекрестком.
  1. Напиши метод, которые получает в качестве параметра массив размером 17Х17, содержащий целые числа, и два целых числа, указывающих ячейку в этом массиве (номер строки и номер столбца). Метод должен проверять, является ли значение в указанной ячейке массива перекрестком и возвращает 1, если это действительно так, в противном случае метод возвращает 0.
  2. Напиши класс, который определяет, какое количество перекрестков содержится в массиве размером 17Х17 – и выводит итог проверки на экран. Обязательно использовать метод, написанные для пункта 1.

Задача №10
  1. Напиши метод с именем elapsedTime и следующими условиями входа и выхода:
·         Условие входа – два целых четырехзначных числа в переменных first и second, каждое из которые представляет момент времени в промежутке от 12:00 до 23:59. Две первых цифры каждого числа – час, две последних – минуты: нгапример, число 1354 представляет время 13:45. Можно считать заранее известным, что значение переменной first меньше значения переменной srcond.
·         Условие выхода – промежуток времени между first и second в минутах.
  1. В отборочных соревнованиях на право участия в марафоне стартовали 127 спортсменов. Каждый из участников начал забег после 12:00, и закончил до 23:59.
Напиши класс, который принимает с клавиатуры для каждого участника два параметра: время старта участника и время его финиша. Класс должен использовать метод elapsedTime из пункта 1 и вывести на экран результат забега участника.
Класс также должен определять лучшее время забега и выводить его на экран.

4 комментария:

  1. import java.util.Random;
    import java.util.Scanner;
    public class temp {
    static Scanner reader=new Scanner(System.in);
    static Random r=new Random();
    /**
    * @param args
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    int [][] a=new int[17][17];
    for(int i=0;i<17;i++){
    for(int j=0;j<17;j++){
    a[i][j]=r.nextInt(8);
    System.out.print(a[i][j]+" ");
    if (j==16)System.out.println();}}
    System.out.println(meth(a,5,5));


    }
    static int meth(int [][]arr, int x, int y){
    int sumx=0,sumy=0;
    for(int i=0;i<17;i++){
    sumx+=arr[x][i];
    sumy+=arr[i][y];}
    if(sumx==sumy)return 1;else return 0;
    }

    }

    ОтветитьУдалить
  2. import java.util.Random;
    import java.util.Scanner;
    public class N9-2 {
    static Scanner reader=new Scanner(System.in);
    static Random r=new Random();
    /**
    * @param args
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    int [][] a=new int[17][17];
    int count=0;
    for(int i=0;i<17;i++){
    for(int j=0;j<17;j++){
    a[i][j]=r.nextInt(8);
    System.out.print(a[i][j]+" ");
    if (j==16)System.out.println();}}

    for(int i=0;i<17;i++)
    for(int j=0;j<17;j++)
    count+=meth(a,i,j);
    System.out.print(count);



    }
    static int meth(int [][]arr, int x, int y){
    int sumx=0,sumy=0;
    for(int i=0;i<17;i++){
    sumx+=arr[x][i];
    sumy+=arr[i][y];}
    if(sumx==sumy)return 1;else return 0;
    }

    }

    ОтветитьУдалить
  3. import java.util.Random;
    import java.util.Scanner;
    public class N10-1 {
    static Scanner reader=new Scanner(System.in);
    static Random r=new Random();
    /**
    * @param args
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    int t1=reader.nextInt();
    int t2=reader.nextInt();
    System.out.print(elapsedTime(t1,t2));
    }
    static int elapsedTime (int first,int second){int sec;
    int t1=first/100*60+first%100;
    int t2=second/100*60+second%100;
    sec=t2-t1;
    return sec;
    }
    }

    ОтветитьУдалить
  4. import java.util.Random;
    import java.util.Scanner;
    public class N10-2 {
    static Scanner reader=new Scanner(System.in);
    static Random r=new Random();
    /**
    * @param args
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    int [][]time=new int[3][127];
    int min=2359,imax=0;;
    for(int i=0;i<127;i++){
    System.out.println("Введите данные");
    time[0][i]=reader.nextInt();
    time[1][i]=reader.nextInt();
    if(time[0][i]/100>23||time[0][i]%100>59||time[1][i]/100>23||time[1][i]%100>59)
    {System.out.println("Введены некорректные данные ");i--;continue;}
    time[2][i]=elapsedTime(time[0][i],time[1][i]);
    if(min>time[2][i]) {imax=i;min=time[2][1];}
    System.out.println("Результат "+(i+1)+" участника:"+time[2][i]);}
    System.out.println("Наилучший результат у участника №"+imax+":"+min);
    }

    static int elapsedTime (int first,int second){int sec;
    int t1=first/100*60+first%100;
    int t2=second/100*60+second%100;
    sec=t2-t1;
    return sec;
    }
    }

    ОтветитьУдалить