Сегодня эти задачи мы разбирали с салаватавцами и пензенцами (правда, Скайп работал неважно, увы...)
Я эти две задачи выкладываю в блог, чтобы желающие могли порешать -- задачки хорошие и, на мой взгляд, не самые вот уж какие сложные. Но требуют быть очень внимательными)))
----------------------
Задача №9
Метод проверит, существует ли правая диагональная тройка, начинающаяся в этой позиции. Если да, метод вернет значение true, иначе – вернет значение false.
Метод проверит, существует ли единичная правая диагональная тройка, начинающаяся в этой позиции. Если да, метод вернет значение 1, иначе – вернет значение 0.
Я эти две задачи выкладываю в блог, чтобы желающие могли порешать -- задачки хорошие и, на мой взгляд, не самые вот уж какие сложные. Но требуют быть очень внимательными)))
----------------------
Задача №9
Дан
двумерный массив размером m×n, содержащий целые числа.
Определим
правую диагональную тройку массива, которая начинается в позиции [i][j]
следующим образом:
три элемента массива:
― первый элемент –
в позиции [i][j],
― второй элемент –
на одну строку вниз и на один столбец вправо от первого элемента,
― третий элемент -
на одну строку вниз и на один столбец вправо от второго элемента
Например,
в приведенном ниже массиве размером 5×6 обозначена правая диагональная
тройка, которая начинается в позиции [1][3].
|
0
|
3
|
6
|
7
|
1
|
0
|
|
17
|
1
|
1
|
2
|
5
|
1
|
|
23
|
8
|
9
|
6
|
7
|
1
|
|
1
|
1
|
85
|
9
|
1
|
12
|
|
0
|
43
|
1
|
31
|
4
|
1
|
Дан
двумерный массив размером m×n, содержащий только числа 0 и 1.
Определим
единичную правую диагональную тройку массива, которая начинается
в позиции [i][j] следующим образом: существует правая диагональная тройка,
начинающаяся в позиции [i][j], и значения всех элементов этой тройки равны 1.
Например,
в приведенном ниже массиве размером 5×6 обозначена единичная правая
диагональная тройка, которая начинается в позиции [1][2].
|
0
|
0
|
0
|
0
|
1
|
0
|
|
1
|
1
|
1
|
0
|
0
|
1
|
|
0
|
0
|
0
|
1
|
0
|
1
|
|
1
|
1
|
1
|
1
|
1
|
0
|
|
0
|
0
|
1
|
0
|
0
|
0
|
А.
Напишите
метод, который получит:
― двумерный массив, содержащий только числа 0 и 1.
― два целых числа, обозначающие позицию элемента массива
(первое число обозначает строку, второе число обозначает столбец).
Метод проверит, существует ли правая диагональная тройка, начинающаяся в этой позиции. Если да, метод вернет значение true, иначе – вернет значение false.
Б.
Напишите
метод, который получит:
― двумерный массив, содержащий только числа 0 и 1.
― два целых числа, обозначающие позицию элемента массива
(первое число обозначает строку, второе число обозначает столбец).
Метод проверит, существует ли единичная правая диагональная тройка, начинающаяся в этой позиции. Если да, метод вернет значение 1, иначе – вернет значение 0.
Вы должны
использовать метод, написанный в пункте А.
В. Дан двумерный массив размером 36×52, содержащий только числа 0 и
1.
Напишите программу, которая подсчитает и выведет на экран количество единичных правых диагональных троек в данном массиве.
Вы должны использовать метод, написанный в пункте Б.
Напишите программу, которая подсчитает и выведет на экран количество единичных правых диагональных троек в данном массиве.
Вы должны использовать метод, написанный в пункте Б.
Замечание:
Нет
необходимости вводить данные в массив.
Нет необходимости проверять корректность данных в массиве.
Нет необходимости проверять корректность данных в массиве.
Задача №10.
В
бассейне есть три разных аттракциона: трамплин, джакузи и сауна.
Прыгать
с трамплина можно начиная с 12 лет.
Пользоваться
джакузи можно начиная с 16 лет.
Пользоваться
сауной можно начиная с 18 лет.
А.
Напишите метод, который получит
возраст посетителя бассейна. Метод вернет одномерный массив из 3 целых чисел,
каждое из которых соответствует одному из аттракционов бассейна. В массиве
будет содержаться число 1 для тех аттракционов, которые разрешены данному
посетителю, и число 0 для запрещенных ему аттракционов.
Б.
Напишите программу, которая для
определенного дня примет с клавиатуры возраст каждого из посетителей бассейна.
Программа подсчитает число посетителей, которые имели право пользоваться каждым
из аттракционов, и выведет полученные числа на экран.
Ввод данных завершится, когда будут введены данные о посетителе, которому нельзя пользоваться ни одним из аттракционов.
Вы должны использовать метод, написанный Вами в пункте А.
Ввод данных завершится, когда будут введены данные о посетителе, которому нельзя пользоваться ни одним из аттракционов.
Вы должны использовать метод, написанный Вами в пункте А.
Примечание:
нет необходимости проверять корректность вводимых данных

Этот комментарий был удален автором.
ОтветитьУдалитьimport java.util.Scanner;
ОтветитьУдалитьpublic class N9 {
static Scanner reader=new Scanner(System.in);
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int []data=new int[4];//массив для данных
System.out.println("Введите размеры массива и координаты ячейки");
for(int i=0;i<4;i++)
data[i]=reader.nextInt();
int [][]arr=new int [data[0]][data[1]];//наш массив
System.out.println(a(arr,data[2],data[3]));
}
public static boolean a(int arr[][],int i,int j)
{
int k,l;
k=arr[0].length;
l=arr[1].length;
if (i+1<k&&j+<l)
return true;
else return false;
}
}
import java.util.Scanner;
ОтветитьУдалитьpublic class N9 {
static Scanner reader=new Scanner(System.in);
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int []data=new int[4];//массив для данных
System.out.println("Введите размеры массива и координаты ячейки");
for(int i=0;i<4;i++)
data[i]=reader.nextInt();
int [][]arr=new int [data[0]][data[1]];//наш массив
//System.out.println(a(arr,data[2],data[3]));
if(a(arr,data[2],data[3]))
System.out.print(b(arr,data[2],data[3]));
}
public static boolean a(int arr[][],int i,int j)
{
int k,l;
k=arr[0].length;
l=arr[1].length;
if (i<(k-1)&&j<(l-1))
return true;
else return false;
}
public static int b(int arr[][],int i,int j)
{ int count=0,q,e;
for(q=i,e=j;q<i+3;q++,e++)
if(arr[q][e]==1)count++;
return count==3?1:0;
}
}
import java.util.Random;
ОтветитьУдалитьimport java.util.Scanner;
public class number9 {
static Scanner reader=new Scanner(System.in);
/**
* @param args
*/
static Random r=new Random();
public static void main(String[] args) {
// TODO Auto-generated method stub
final int hei=36,wei=52;
int [][]ar=new int[hei][wei];
int ct=0;
for(int i=0;i<hei;i++)
for(int j=0;j<wei;j++){
ar[i][j]=r.nextInt(2);
System.out.print(ar[i][j]);
if(j==wei-1)
System.out.println();}
for(int i=0;i<hei-2;i++)
for(int j=0;j<wei-2;j++)
if(a(ar,i,j)) ct+=b(ar,i,j);
System.out.println(ct);
}
public static int b(int arr[][],int i,int j)
{ int count=0,q,e;
for(q=i,e=j;q<i+3;q++,e++)
if(arr[q][e]==1) count++;
return count==3?1:0;
}
public static boolean a(int arr[][],int i,int j)
{
int k,l;
k=arr[0].length;
l=arr[1].length;
return (i<(k-2)&&j<(l-2))?true:false;
}
}
import java.util.Arrays;
ОтветитьУдалитьimport java.util.Scanner;
public class n10 {
//10 A
/**
* @param args
*/
static Scanner reader=new Scanner(System.in);
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.print("Введите возраст\n");
System.out.print(Arrays.toString(A(reader.nextInt())));
}
static int[] A(int age){
int allow []=new int [3];
allow[0]=age>=12?1:0;
allow[1]=age>=16?1:0;
allow[2]=age>=18?1:0;
return allow;
}
}
import java.util.Arrays;
ОтветитьУдалитьimport java.util.Scanner;
public class n10 {
//10 A
/**
* @param args
*/
public static int []count=new int[3];
static Scanner reader=new Scanner(System.in);
public static void main(String[] args)
{
// TODO Auto-generated method stub
int age,c=0;
do{
System.out.print("Введите возраст посетителя бассейна\n");
age=reader.nextInt();if(age<12)break;
sum(A(age));c++;
}
while(true);System.out.println("Всего пользователей:"+c);
System.out.println("Количество посетителей, имеющик право прыгать с трамплина:"+count[0]);
System.out.println("Количество посетителей, имеющик право пользоваться джакузи:"+count[1]);
System.out.println("Количество посетителей, имеющик право пользоваться сауной:"+count[2]);
}
static int[] A(int age){
int allow []=new int [3];
allow[0]=age>=12?1:0;
allow[1]=age>=16?1:0;
allow[2]=age>=18?1:0;
return allow;}
public static void sum(int []allow){
count[0]+=allow[0];
count[1]+=allow[1];
count[2]+=allow[2];
}
}
Уф,вроде бы все.
ОтветитьУдалитьТам все задачи по порядку.
Я их просто забывал нумеровать))