Ваш браузер устарел. Рекомендуем обновить его до последней версии.




 


 

 

Построение первых приложений для устройств на базе Android

Квадратная матрица и закономерности расположения элементов в ней. Обработка нажатия на виджет textView. Логические операторы   _17_

Двумерный массив в котором число строк совпадает с числом столбцов называют квадратной матрицей. Рассмотрим закономерности определяющие характерное расположение элементов в квадратной матрице. Очевидно, что для элемента расположенного на главной диагонали номер его строки равен номеру его столбца i = j. Для элемента расположенного на побочной диагонали справедливо i + j = n + 1, где n — размер квадратной матрицы. Проверьте справедливость этого равенства.

Для элементов расположенных выше главной диагонали справедливо утверждение i < j, то есть номер строки элемента обязательно меньше номера его столбца. Для нижних элементов справедливо: i > j. Выше побочной диагонали — i + j < n + 1, ниже соответственно —  i + j > n + 1.

Если рассматривать положение элемента в квадратной матрице относительно обеих диагоналей, то он может находиться в одной из четвертей при условии:

1 четверть — (i < j) и (i + j < n + 1)

2 четверть — (i < j) и (i + j > n + 1)

3 четверть — (i > j) и (i + j > n + 1)

4 четверть — (i > j) и (i + j < n + 1)

 

 

 

 

 

 

 

 

 

 

 

 

 

Первое приложение формирует квадратную матрицу из случайных чисел и находит суммы элементов в главной и побочной диагоналях. А так же суммы выше и ниже главной диагонали.

Для перезапуска приложения меняйте ориентацию устройства с вертикальной на горизонтальную и наоборот.

_______________MainActivity.java_______________   Пример 1
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

import java.util.Random;

public class MainActivity extends AppCompatActivity {

TextView textView;
TextView textView3;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

textView = (TextView) findViewById(R.id.textView);
textView3 = (TextView) findViewById(R.id.textView3);

Random random = new Random();

setTitle("Квадратная матрица");

int a[][] = new int[9][9]; // объявление двухмерного массива размером 10х10
int g = 0; // сумма в главной диагонали
int p = 0; // сумма в побочной диагонали
int vg = 0; // сумма элементов выше главной диагонали
int ng = 0; // сумма элементов ниже главной диагонали

int n = 8; // размер матрицы

for (int i = 1; i <= n; i++) // внешний цикл строк
{
for (int j = 1; j <= n; j++) // внутренний цикл столбцов
{
a[i][j] = (random.nextInt(10)); //положить в массив случайное число от 0 до 9
}
}

textView.setText(""); // очистка текстового поля
textView3.setText(""); // очистка текстового поля

for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
textView.append(a[i][j] + " "); // вывод массива на экран
if (i == j) g = g + a[i][j]; // суммирование в главной диагонали
if (i + j == n + 1) p = p + a[i][j];
if (i < j) vg = vg + a[i][j];
if (i > j) ng = ng + a[i][j];
}
textView.append("\n"); // перенос в следующую строку
}

textView3.append("Главная диагональ " + g);
textView3.append("\n" + "Побочная диагональ " + p);
textView3.append("\n" + "Выше главной " + vg);
textView3.append("\n" + "Ниже главной " + ng);
}
}

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

 

 

 

 

Эта программа находит сумму всех элементов в 1-ой четверти. Подсчитывает произведение элементов во 2-ой четверти. Определяет число выпавших пятерок в 3-ей четверти. В 4-ой четверти находится среднее арифметическое всех ее элементов.

_______________MainActivity.java_______________ Пример 2
importandroid.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import java.util.Random;

public class MainActivity extends AppCompatActivity {

TextView textView;
TextView textView2;
ImageView imageView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

textView = (TextView) findViewById(R.id.textView);
textView2 = (TextView) findViewById(R.id.textView2);
imageView = (ImageView) findViewById(R.id.imageView);

// обработчик нажатия на изображение
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
imageView.setVisibility(View.INVISIBLE); // скрыть второе изображение
}
});

// обработчик нажатия на текстовое поле
textView2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

Random random = new Random();

setTitle("Случайная квадратная матрица");

int a[][] = new int[9][9]; //объявление двухмерного массива
int b1 = 0; // сумма элементов в 1 четверти
int b2 = 1; // произведение элементов во 2 четверти
int b3 = 0; // число пятерок в 3 четверти
double b4 = 0; // подсчет среднего арифметического в 4 четверти
int n1 = 0; // число элементов в 4 четверти

int n = (random.nextInt(6) + 3); // размер матрицы случайный от 3 до 8

for (int i = 1; i <= n; i++) // внешний цикл строк
{
for (int j = 1; j <= n; j++) // внутренний цикл столбцов
{
a[i][j] = (random.nextInt(10)); //положить в массив случайное число от 0 до 9
}
}

textView.setText(""); // очистка текстового поля
textView2.setText(""); // очистка текстового поля

for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
textView.append(a[i][j] + " "); // вывод массива на экран

if ((i < j) & (i + j < n + 1)) // просмотр элементов в 1 четверти
{
b1 = b1 + a[i][j]; // суммирование в 1 четверти
}

if ((i < j) & (i + j > n + 1)) // просмотр элементов во 2 четверти
{
b2 = b2 * a[i][j]; // произведение во 2 четверти
}

if ((i > j) & (i + j > n + 1)) // просмотр элементов в 3 четверти
{
if (a[i][j] == 5) b3 = b3 + 1; // число пятерок в 3 четверти
}

if ((i > j) & (i + j < n + 1)) // просмотр элементов в 4 четверти
{
b4 = b4 + a[i][j]; // сумма в 4 четверти
n1 = n1 + 1; // подсчет элементов в 4 четверти
}
}
textView.append("\n"); // перенос в следующую строку
}

b4 = b4 / n1; // вычисление среднего арифметического

textView2.append("____ Размер матрицы = " + n + " ____");
textView2.append("\n" + "1 четверть Сумма = " + b1);
textView2.append("\n" + "2 четверть Произведение = " + b2);
textView2.append("\n" + "3 четверть Пятерок " + b3);
textView2.append("\n" + "4 четверть Среднее = " + b4);
}
});
}
}

 

 

 

 

 

 

 

 

 

 

 

 

 

                                                      Логические операторы

==  равно

!=  не равно

<  меньше

<=  меньше или равно

>  больше

>=  больше или равно

&  логическое и

|  логическое или

^  логическое исключающее или

!  отрицание

&&  условное и

||  условное или

&=, |=, ^=  присваивание с аналогичным оператором

Первые шесть операторов называются операторами сравнения. Они позволяют сравнивать числа и возвращают либо значение true, либо — false. Последующие четыре оператора работают с данным типа boolean, но по работе схожи с аналогичными битовыми операторами, только надо заменить бит 0 на false, а бит 1 на true.

Следующие два оператора используются для двух условий сразу, т.е. указаны два условия и между ними ставится оператор “условное и”. Если они оба будут равны true, то выводится значение true, если хотя бы одно из них будет false, то итог будет false. Оператор “условное или” будет возвращать значение true, если хотя бы одно из условий будет true. Они обычно используются в конструкции if.


 

 

 

 

 

Flag Counter
200stran.ru: показано число посетителей за сегодня, онлайн, из каждой страны и за всё время
Яндекс.Метрика
Besucherzahler russain brides
счетчик посещений

Выбери лучшее!

allbest