Авторские Материалы о событиях в Израиле на Ближнем Востоке и в мире

IsraMir.com - Израильская журналистика

Default color brown color green color red color blue color
Вы сейчас тут: Новости arrow Техотдел arrow Свет ученья arrow Экзамен-2004
Skip to content
Экзамен-2004 Версия для печати Отправить на e-mail
Tuesday, 20 June 2006 | Зэев Фрайман, д-р Евгений Канель для раздела Ученье – свет
Экзамен-2004JAVAisramir.comМы публикуем еще одну подборку задач – на этот раз они взяты из государственного экзамена 2004 года (уровень «две учебных единицы из пяти»). И в этот раз мы не стали использовать все задачи экзамена, а только те, которые в той ли иной степени требуют написания программного кода, метода или полного класса. Естественно, что задачи были «заточены» под PASCAL и С, но мы немного изменили формулировки, адаптировав их под Java. Это – вторая часть подборки.
 
Задача №9
Дан двумерный массив размером 12х12, содержащий целые числа из диапазона от 1 до 30 (включительно). В массиве имеется "квадрат К", если имеется подмассив размером 2х2, содержащий значение К.
Например, в приведенном примере (массив размером 5х5) имеется "квадрат 9":
 
1
3
2
2
8
2
9
9
6
1
12
9
9
1
4
17
6
8
5
2
1
3
5
7
1
 
Напиши метод, который принимает в качестве параметров массив размером 12х12 и число К – и возвращает значение 1, если имеется в массиве "квадрат К"; в противном случае – возвращает значение 0.
Напиши программу, которая находит в массиве размером 12х12 наибольшее число К из тех, для которых в массиве существуют "квадраты" – и распечатывает его. В случае, если в массиве нет ни одного "квадрата", программа должна напечатать соответствующее текстовое сообщение.
 
class exer2004_10{
           
            static boolean rectK (int[][] m, int i, int j){
                        if ((m[i][j]==m[i+1][j])&&(m[i][j]==m[i][j+1])&&(m[i][j]==m[i+1][j+1])) return true;
                        else return false;
            }
           
            public static void main (String args[]) {
                        int i,j,max=-1;
                        boolean flag;
                        int m[][]=new int[12][12];
                        for (i=0;i<12;i++)
                                   for (j=0;j<12;j++)
                                               m[i][j]=(int)(3*Math.random()+1);
                        for (i=0;i<12;i++){
                                   for (j=0;j<12;j++) IO.write(m[i][j]+" ");
                                   IO.writeln();
                        }
                        for (i=0;i<11;i++)
                                   for (j=0;j<11;j++) {
                                               flag=rectK(m,i,j);
                                               if (flag==true) IO.writeln(m[i][j]+" "+i+" "+j);
                                               if (m[i][j]>max) max=m[i][j];
                                   }
                        IO.writeln("Max K="+max);
            }
}
 
 
 

Добавить комментарий

:D:lol::-);-)8):-|:-*:oops::sad::cry::o:-?:-x:eek::zzz:P:roll::sigh:


Автотранслитерация: выключена

Защитный код

Powered by jComments