Добавить в корзинуПозвонить
Найти в Дзене
Программы от меня

Моя вторая программа на Android Studio: а теперь подойдем серьёзно

Здравствуйте дорогие друзья! И снова работаем в Android Studio. Некоторое время назад вышла статья Моя первая программа на Android Studio: как я чуть не проклял Гугл, кота и создателя Gradle , где с юмором и чего греха таить, в манере "полного трэша" было описано создание первой программы для Android, и сложности создания Прочитав этот комментарий, я решил проверить, а действительно есть ли более простые способы, немного покумекал с кодами Java и режимами Android Studio, и сделал вывод:
всё не так страшно!
А теперь серьезно. Всё совсем-совсем не страшно, если подходить с умом и делать всё, не торопясь и пошагово. Заинтриговал? Ну что ж, тогда приступим.
Android Studio, я надеюсь, был установлен еще заранее, во время чтения первой статьи цикла (кто не установил, установите, на этот счет есть хорошая инструкция на metanit - вот она), и...
И Вы ждете от меня указания типа : "Открываем Android Studio и выбираем тип создаваемого нового проекта" или чего-то в этом роде. А вот и ... не
Оглавление

Здравствуйте дорогие друзья! И снова работаем в Android Studio. Некоторое время назад вышла статья Моя первая программа на Android Studio: как я чуть не проклял Гугл, кота и создателя Gradle , где с юмором и чего греха таить, в манере "полного трэша" было описано создание первой программы для Android, и сложности создания

Прочитав этот комментарий, я решил проверить, а действительно есть ли более простые способы, немного покумекал с кодами Java и режимами Android Studio, и сделал вывод:

всё не так страшно!

-2

А теперь серьезно.



А теперь серьезно. Всё совсем-совсем не страшно, если подходить с умом и делать всё, не торопясь и пошагово. Заинтриговал? Ну что ж, тогда приступим.
Android Studio, я надеюсь, был установлен еще заранее, во время чтения первой
статьи цикла (кто не установил, установите, на этот счет есть хорошая инструкция на metanit - вот она), и...
И Вы ждете от меня указания типа : "
Открываем Android Studio и выбираем тип создаваемого нового проекта" или чего-то в этом роде. А вот и ... не будет такого указания!!!

Нет! Без раздумий кидаться в IDE - не наш метод!
Нет! Без раздумий кидаться в IDE - не наш метод!

Как так? А вот так. Берем листок бумаги, карандаш и проработаем нашу программу на уровне идеи. А потом основные процессы реализуем на Java. И только после этого - Android Studio.




Программа для Android Studio ... без Android Studio

Итак, что же мы создадим. Создадим мы калькулятор, но... необычный. На нем будут всего четыре кнопки: возведение числа в квадрат, возведение числа в куб, извлечение квадратного корня, извлечение кубического корня. Цифровые кнопки делать не будем, они появятся сами на клавиатуре Андроида при вводе в поле.

В чём практическая "польза" такого калькулятора? Да весь Дзен пестрит статьями типа "дети разучились считать", "россияне разучились считать в уме" и прочее (наберите в поисковике Дзена "дети разучились считать" и насладитесь этой ужасной статистикой ). И чтобы не дать нашему молодому населению "деградировать", мы создадим калькулятор нового типа (тем более материалами, как создать калькулятор "старого" типа, инет тоже переполнен, сам сколько раз грешил на эту тему). Сложение, вычитание, умножение и деление можно реализовать визуально при помощи палочек или других предметов (см фото, где автор на момент написания статьи реализовал сложение и умножение)

-4

А вот со степенями сложнее. Визуально это реализовать конечно можно, на порядок сложнее, да и для отображения результатов понадобится бОльшее число палочек. Поэтому автоматизируем этот процесс. Сделаем для таких расчетов калькулятор.

Внешний вид.


Берем листок бумаги и карандаш, (сойдет и Paint). Выглядеть калькулятор будет так:

-5

Т.е. поле ввода и четыре кнопки


Программный код.



Напишем и откомпилируем его без Android Studio (в любой удобной для вас среде -
eclipse, netbeans, Intelj Idea , можно просто в Notepad++ и запустить через Java).

Код выглядит так:

-6

Результат выглядит так:

-7

Как работает наш код. Вводим с клавиатуры число, но оно получается текстовым, его надо еще перевести в числовой формат (чтобы без ошибок производить математические операции). Переводим командой in.NextInt введенные данные в число,а потом производим над результатом операции функцией Math.pow(num, exp):

квадрат -
Math.pow(num, 2)

куб - Math.pow(num, 3)

извлечение квадратного корня - Math.pow(num, 1.0/2.0)
извлечение кубического корня -
Math.pow(num, 1.0/3.0)

В чем недостаток такого подхода. Во-первых, вводимое число может быть не только целым, но и дробным, и более корректным будет использование числового формата Float (или double) . Во-вторых ( и это самое главное ) пользователь может ввести с клавиатуры что угодно, и при получении некорректных введенных данных программа может выпасть в ошибку:


-8

Поэтому необходимо ввести обработчик "для дурака" : обрамить выполнение кода обработчиком try ... catch (в catch будем выводить просто сообщение "Ошибка ввода, без вывода текста ошибки).
С учетом вышесказанного изменим код:

-9

и получим результат при корректном вводе:

-10

и при некорректном:

-11

Итак, на Java всё вроде бы как хорошо. Правда, надо будет для каждой кнопки писать функцию выполнения отдельной операции (отдельно квадрат, отдельно куб и т.д.), но это уже детали. Код работает, и можно переходить на Android Studio. Но это уже мы сделаем в следующей статье цикла. Следите за продолжением и подписывайтесь, если еще не подписались.