Я хочу обновить тут две последних задачи из экзамена за 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) является перекрестком.
- Напиши
метод, которые получает в качестве параметра массив размером 17Х17, содержащий
целые числа, и два целых числа, указывающих ячейку в этом массиве (номер
строки и номер столбца). Метод должен проверять, является ли значение в
указанной ячейке массива перекрестком и возвращает 1, если это
действительно так, в противном случае метод возвращает 0.
- Напиши
класс, который определяет, какое количество перекрестков содержится
в массиве размером 17Х17 – и выводит итог проверки на экран. Обязательно
использовать метод, написанные для пункта 1.
Задача №10
- Напиши метод
с именем elapsedTime и следующими условиями входа и выхода:
·
Условие
входа – два целых четырехзначных числа в переменных first и second, каждое из которые
представляет момент времени в промежутке от 12:00 до 23:59. Две первых цифры
каждого числа – час, две последних – минуты: нгапример, число 1354 представляет
время 13:45. Можно считать заранее известным, что значение переменной first меньше значения
переменной srcond.
·
Условие
выхода – промежуток времени между first и second в минутах.
- В отборочных
соревнованиях на право участия в марафоне стартовали 127 спортсменов.
Каждый из участников начал забег после 12:00, и закончил до 23:59.
Напиши класс,
который принимает с клавиатуры для каждого участника два параметра: время
старта участника и время его финиша. Класс должен использовать метод elapsedTime из пункта 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;
}
}
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;
}
}
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;
}
}
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;
}
}