Mist
Задача 1. Поворот матрицы на 90 градусов по часовой стрелке Описание Научимся поворачивать матрицу с равными сторонами. Этот алгоритм мог бы быть использован в графических редакторах вроде Photoshop для поворота изображений. Дано: двумерная матрица 8 на 8 из случайных чисел от 0 до 255 (спектр цветов GrayScale). Напишите алгоритм "поворота" такой матрицы на 90 градусов по часовой стрелке. Функционал программы Создание матрицы в программе; Вывод матрицы до поворота; Разворот матрицы; Вывод матрицы после поворота на 90 градусов. Пример Дана следующая матрица: 114 112 148 83 204 22 125 31 192 231 245 128 63 246 139 17 61 128 224 45 91 57 239 34 219 237 167 191 236 146 144 117 35 199 102 124 208 195 21 147 52 229 126 32 24 145 19 39 107 43 190 43 47 172 18 19 62 221 6 208 241 198 187 85 Вывод: 62 107 52 35 219 61 192 114 221 43 229 199 237 128 231 112 6 190 126 102 167 224 245 148 208 43 32 124 191 45 128 83 241 47 24 208 236 91 63 204 198 172 145 195 146 57 246 22 187 18 19 21 144 239 139 125 85 19 39 147 117 34 17 31 Пример реализации Итак, у нас есть матрица с размерами 8x8, которую нужно повернуть на 90 градусов по часовой стрелке. Для начала создадим матрицу (размерность матрицы сохраним в переменной filedSize). int SIZE = 8; int[][] colors = new int[SIZE][SIZE]; Теперь заполним матрицу случайными значениями в диапазоне от 0 до 255: Random random = new Random(); for (int i = 0; i< SIZE; i++) { for (int j = 0; j< SIZE; j++) { // для случайных значений воспользуемся готовым решением из библиотеки java.util.Random colors[i][j] = random.nextInt(256); } } Выводим матрицу на экран: for (int i = 0; i< SIZE; i++) { for (int j = 0; j< SIZE; j++) { // %4d означает, что мы под каждый номер резервируем 4 знака // (незанятые будут заполнены пробелами) // таким образом, у нас получится ровная таблица System.out.format("%4d", colors[i][j]); } // Переход на следующую строку System.out.println(); } Для повернутой матрицы создадим пустой массив той же размерности: int[][] rotatedColors = new int[SIZE][SIZE]; Новая матрица должна принять значения ячеек первой матрицы, но с поворотом на 90 градусов по часовой стрелке. Это значит, что значение первой ячейки rotatedColors[0][0] (первая строка, первое значение) новой матрицы должно быть равно первому значению ячейки последней строки матрицы colors (colors[SIZE-1][0]). Исходя из вышесказанного нужно: написать циклы, при помощи которых можно пробежаться по матрицам, каждому элементу новой матрицы rotatedColors присвоить соответствующее значение из имеющейся colors матрицы. Перебор элементов матрицы можно организовать встроенными циклами так же, как вы вывели значения на экран colors матрицы. Задача 1*. Поворот матрицы на 90/180/270 градусов Добавьте в задачу #1 возможность вводить угол поворота (кратный 90) с клавиатуры.
Mist
Задача 1. Поворот матрицы на 90 градусов по часовой стрелке Описание Научимся поворачивать матрицу с равными сторонами. Этот алгоритм мог бы быть использован в графических редакторах вроде Photoshop для поворота изображений. Дано: двумерная матрица 8 на 8 из случайных чисел от 0 до 255 (спектр цветов GrayScale). Напишите алгоритм "поворота" такой матрицы на 90 градусов по часовой стрелке. Функционал программы Создание матрицы в программе; Вывод матрицы до поворота; Разворот матрицы; Вывод матрицы после поворота на 90 градусов. Пример Дана следующая матрица: 114 112 148 83 204 22 125 31 192 231 245 128 63 246 139 17 61 128 224 45 91 57 239 34 219 237 167 191 236 146 144 117 35 199 102 124 208 195 21 147 52 229 126 32 24 145 19 39 107 43 190 43 47 172 18 19 62 221 6 208 241 198 187 85 Вывод: 62 107 52 35 219 61 192 114 221 43 229 199 237 128 231 112 6 190 126 102 167 224 245 148 208 43 32 124 191 45 128 83 241 47 24 208 236 91 63 204 198 172 145 195 146 57 246 22 187 18 19 21 144 239 139 125 85 19 39 147 117 34 17 31 Пример реализации Итак, у нас есть матрица с размерами 8x8, которую нужно повернуть на 90 градусов по часовой стрелке. Для начала создадим матрицу (размерность матрицы сохраним в переменной filedSize). int SIZE = 8; int[][] colors = new int[SIZE][SIZE]; Теперь заполним матрицу случайными значениями в диапазоне от 0 до 255: Random random = new Random(); for (int i = 0; i< SIZE; i++) { for (int j = 0; j< SIZE; j++) { // для случайных значений воспользуемся готовым решением из библиотеки java.util.Random colors[i][j] = random.nextInt(256); } } Выводим матрицу на экран: for (int i = 0; i< SIZE; i++) { for (int j = 0; j< SIZE; j++) { // %4d означает, что мы под каждый номер резервируем 4 знака // (незанятые будут заполнены пробелами) // таким образом, у нас получится ровная таблица System.out.format("%4d", colors[i][j]); } // Переход на следующую строку System.out.println(); } Для повернутой матрицы создадим пустой массив той же размерности: int[][] rotatedColors = new int[SIZE][SIZE]; Новая матрица должна принять значения ячеек первой матрицы, но с поворотом на 90 градусов по часовой стрелке. Это значит, что значение первой ячейки rotatedColors[0][0] (первая строка, первое значение) новой матрицы должно быть равно первому значению ячейки последней строки матрицы colors (colors[SIZE-1][0]). Исходя из вышесказанного нужно: написать циклы, при помощи которых можно пробежаться по матрицам, каждому элементу новой матрицы rotatedColors присвоить соответствующее значение из имеющейся colors матрицы. Перебор элементов матрицы можно организовать встроенными циклами так же, как вы вывели значения на экран colors матрицы. Задача 1*. Поворот матрицы на 90/180/270 градусов Добавьте в задачу #1 возможность вводить угол поворота (кратный 90) с клавиатуры.
Как можно решить задачу, подскажите пожалуйста
Pêcheur
Задача 1. Поворот матрицы на 90 градусов по часовой стрелке Описание Научимся поворачивать матрицу с равными сторонами. Этот алгоритм мог бы быть использован в графических редакторах вроде Photoshop для поворота изображений. Дано: двумерная матрица 8 на 8 из случайных чисел от 0 до 255 (спектр цветов GrayScale). Напишите алгоритм "поворота" такой матрицы на 90 градусов по часовой стрелке. Функционал программы Создание матрицы в программе; Вывод матрицы до поворота; Разворот матрицы; Вывод матрицы после поворота на 90 градусов. Пример Дана следующая матрица: 114 112 148 83 204 22 125 31 192 231 245 128 63 246 139 17 61 128 224 45 91 57 239 34 219 237 167 191 236 146 144 117 35 199 102 124 208 195 21 147 52 229 126 32 24 145 19 39 107 43 190 43 47 172 18 19 62 221 6 208 241 198 187 85 Вывод: 62 107 52 35 219 61 192 114 221 43 229 199 237 128 231 112 6 190 126 102 167 224 245 148 208 43 32 124 191 45 128 83 241 47 24 208 236 91 63 204 198 172 145 195 146 57 246 22 187 18 19 21 144 239 139 125 85 19 39 147 117 34 17 31 Пример реализации Итак, у нас есть матрица с размерами 8x8, которую нужно повернуть на 90 градусов по часовой стрелке. Для начала создадим матрицу (размерность матрицы сохраним в переменной filedSize). int SIZE = 8; int[][] colors = new int[SIZE][SIZE]; Теперь заполним матрицу случайными значениями в диапазоне от 0 до 255: Random random = new Random(); for (int i = 0; i< SIZE; i++) { for (int j = 0; j< SIZE; j++) { // для случайных значений воспользуемся готовым решением из библиотеки java.util.Random colors[i][j] = random.nextInt(256); } } Выводим матрицу на экран: for (int i = 0; i< SIZE; i++) { for (int j = 0; j< SIZE; j++) { // %4d означает, что мы под каждый номер резервируем 4 знака // (незанятые будут заполнены пробелами) // таким образом, у нас получится ровная таблица System.out.format("%4d", colors[i][j]); } // Переход на следующую строку System.out.println(); } Для повернутой матрицы создадим пустой массив той же размерности: int[][] rotatedColors = new int[SIZE][SIZE]; Новая матрица должна принять значения ячеек первой матрицы, но с поворотом на 90 градусов по часовой стрелке. Это значит, что значение первой ячейки rotatedColors[0][0] (первая строка, первое значение) новой матрицы должно быть равно первому значению ячейки последней строки матрицы colors (colors[SIZE-1][0]). Исходя из вышесказанного нужно: написать циклы, при помощи которых можно пробежаться по матрицам, каждому элементу новой матрицы rotatedColors присвоить соответствующее значение из имеющейся colors матрицы. Перебор элементов матрицы можно организовать встроенными циклами так же, как вы вывели значения на экран colors матрицы. Задача 1*. Поворот матрицы на 90/180/270 градусов Добавьте в задачу #1 возможность вводить угол поворота (кратный 90) с клавиатуры.
Кто тебе такое задание дал?
Mist
Кто тебе такое задание дал?
Это на учебном портале где я учусь. Домашние задание.
Anonymous
Задача 1. Поворот матрицы на 90 градусов по часовой стрелке Описание Научимся поворачивать матрицу с равными сторонами. Этот алгоритм мог бы быть использован в графических редакторах вроде Photoshop для поворота изображений. Дано: двумерная матрица 8 на 8 из случайных чисел от 0 до 255 (спектр цветов GrayScale). Напишите алгоритм "поворота" такой матрицы на 90 градусов по часовой стрелке. Функционал программы Создание матрицы в программе; Вывод матрицы до поворота; Разворот матрицы; Вывод матрицы после поворота на 90 градусов. Пример Дана следующая матрица: 114 112 148 83 204 22 125 31 192 231 245 128 63 246 139 17 61 128 224 45 91 57 239 34 219 237 167 191 236 146 144 117 35 199 102 124 208 195 21 147 52 229 126 32 24 145 19 39 107 43 190 43 47 172 18 19 62 221 6 208 241 198 187 85 Вывод: 62 107 52 35 219 61 192 114 221 43 229 199 237 128 231 112 6 190 126 102 167 224 245 148 208 43 32 124 191 45 128 83 241 47 24 208 236 91 63 204 198 172 145 195 146 57 246 22 187 18 19 21 144 239 139 125 85 19 39 147 117 34 17 31 Пример реализации Итак, у нас есть матрица с размерами 8x8, которую нужно повернуть на 90 градусов по часовой стрелке. Для начала создадим матрицу (размерность матрицы сохраним в переменной filedSize). int SIZE = 8; int[][] colors = new int[SIZE][SIZE]; Теперь заполним матрицу случайными значениями в диапазоне от 0 до 255: Random random = new Random(); for (int i = 0; i< SIZE; i++) { for (int j = 0; j< SIZE; j++) { // для случайных значений воспользуемся готовым решением из библиотеки java.util.Random colors[i][j] = random.nextInt(256); } } Выводим матрицу на экран: for (int i = 0; i< SIZE; i++) { for (int j = 0; j< SIZE; j++) { // %4d означает, что мы под каждый номер резервируем 4 знака // (незанятые будут заполнены пробелами) // таким образом, у нас получится ровная таблица System.out.format("%4d", colors[i][j]); } // Переход на следующую строку System.out.println(); } Для повернутой матрицы создадим пустой массив той же размерности: int[][] rotatedColors = new int[SIZE][SIZE]; Новая матрица должна принять значения ячеек первой матрицы, но с поворотом на 90 градусов по часовой стрелке. Это значит, что значение первой ячейки rotatedColors[0][0] (первая строка, первое значение) новой матрицы должно быть равно первому значению ячейки последней строки матрицы colors (colors[SIZE-1][0]). Исходя из вышесказанного нужно: написать циклы, при помощи которых можно пробежаться по матрицам, каждому элементу новой матрицы rotatedColors присвоить соответствующее значение из имеющейся colors матрицы. Перебор элементов матрицы можно организовать встроенными циклами так же, как вы вывели значения на экран colors матрицы. Задача 1*. Поворот матрицы на 90/180/270 градусов Добавьте в задачу #1 возможность вводить угол поворота (кратный 90) с клавиатуры.
поворот матрицы это транспонирование, просто найди на вики или еще где алгоритм и переложи на язык на котором пишешь, или найди готовую библиотеку гденить на гитхабе и посмотри как делают там, скопируй часть кода и разберись как работает. сначала попробуй хоть на листике бумаги изобразить как это должно выглядеть для человека. и потом уже перекладывай в алгоритм для работы с массивом.
Anonymous
Это на учебном портале где я учусь. Домашние задание.
https://overcoder.net/q/1682956/%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BF%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%B4%D0%B2%D0%BE%D0%B9%D0%BD%D1%83%D1%8E--%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86%D1%83-%D1%81-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8-java первая же ссылка в гугле.
Mist
Спасибо я не знал что это называется транспонирование...(
Anonymous
Это на учебном портале где я учусь. Домашние задание.
Для начала научись составлять алгоритм, и почитай хотябы примерно как в памяти организованы массивы, имхо надо начинать с более низкоуровневых языков в которых для начала понабивать шишек, ява допускает возможность делать очень громоздкий и ресурсожрущий код, и вырабатывает стиль кодирования когда человек не задумывается о ресурсах и оптимальных алгоритмах.
Roman
Ребята, помогите понять по какой причине происходит задержка срабатывания. Должен запуститься код из класса MyAlarm сразу, а он срабатывает с задержкой то в минуту то в пол минуты, то в несколько секунд... 😐 https://pastebin.com/eiNdv6wC
Anonymous
Ребята, помогите понять по какой причине происходит задержка срабатывания. Должен запуститься код из класса MyAlarm сразу, а он срабатывает с задержкой то в минуту то в пол минуты, то в несколько секунд... 😐 https://pastebin.com/eiNdv6wC
для этого надо хотябы версию апи еще указывать, может у тебя андроид 10й в дозер моде и тогда точность будет когда планировщик разбудит телефона, а не когда ты запланировал.
Anonymous
это всё есть, установлено
https://stackoverflow.com/questions/51399353/doze-mode-battery-optimization-whitelist-alarmmanager-more-frequent-than-9-min
Anonymous
это всё есть, установлено
https://stackoverflow.com/questions/55540823/android-notifications-triggered-by-alarm-manager-not-firing-when-app-is-in-doze
Игорь
Всем привет. Подскажите как поступить. Нужно в следующей версии приложения добавить большой список данных в базу данных room,больше 15тыс. записей. Будет ли тормозить приложение при запуске,когда поменяет версию,в методе onUpgrade() или может есть другие варианты как это сделать?
Anonymous
поставил доп. флаги, всё также..
Method to register alarm manger(use set exact time instead of repeating) public static void registerAlarm(Context context){ final int FIVE_MINUTES_IN_MILLI = 300000; final int THIRTY_SECOND_IN_MILLI = 30000; long launchTime = System.currentTimeMillis() + FIVE_MINUTES_IN_MILLI; AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); Intent i = new Intent(context, BroadcastAlarmManger.class); PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) am.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, launchTime, pi); else am.setExact(AlarmManager.RTC_WAKEUP, launchTime, pi); Utility.printLog("timestamp "+launchTime); }
Віталій
Можно как-то изменить время timeout в ретрофит?
Віталій
А то когда начинает загрузка изображения на сервер через 10 сек timeout выбивает
Віталій
Віталій
в okhttp прокидывай timeout
Можно где-то пример глянуть?
Roman
так пробовал?
Выставил условие на API, теперь работает, спасибо! Но не пойму почему только последнее выставленное значение времени срабатывает. 😐
Данил
Можно где-то пример глянуть?
https://stackoverflow.com/questions/25953819/how-to-set-connection-timeout-with-okhttp
Никита
Всем привет. Как сохранять позицию вкладки tablayout, при смене ориентации
Anonymous
Выставил условие на API, теперь работает, спасибо! Но не пойму почему только последнее выставленное значение времени срабатывает. 😐
потому что дозер мод экономит типа батарею, поэтому единственный вариант выполнения в точное время это рекурсивно ставить с новым периодом после сработки. но думаю гугл и эту возможность потом зарубит.
Anonymous
но будильник в телефоне можно же много выставить значений времени, как же так?
будильник у гугла в вайтлисте, ему можно, а тебе нет, как то так.
Anonymous
как и FCM =(
он вообще часть гуглапи. и даже сокеты может в слипмоде держать открытыми.
Minmaxminor
Беру учебный код отсюда http://developer.alexanderklimov.ru/android/notification.php#oldactivity. Не работает. Знает кто почему?
Anonymous
нет, а где вписать?
в манифесте добавить до аппликешена <uses-permission android:name="android.permission.WAKE_LOCK" />
Anonymous
я тебе выше давал ссылку на статью на стековерфлоу там все было расписано.
Minmaxminor
Данил
Первый код на сайте
Ну и что не работает? Какая ошибка?
Roman
я тебе выше давал ссылку на статью на стековерфлоу там все было расписано.
не спасает, так же только последнее значение запоминает
Minmaxminor
Ну и что не работает? Какая ошибка?
Никакая. Просто не работает.
Данил
Никакая. Просто не работает.
Не может быть. там вполне все рабочее, смотрите у себя, дебажте
Юрий
Каналы прописаны?
Minmaxminor
Не может быть. там вполне все рабочее, смотрите у себя, дебажте
Смотрю. На api 28 нет ошибок и не работает. На 21 апи android.app.RemoteServiceException: Bad notification posted from package com.radio.radiorock: Couldn't create icon: StatusBarIcon(pkg=com.radio.radiorockuser=0 id=0x7f06006d level=0 visible=true num=0 )
Minmaxminor
Каналы прописаны?
21 и 28,. Да канал есть, только 1.
K
Здравствуйте, почему не отображается кнопка?
K
после запуска
Данил
ну смотри верстку, я вот не вижу container и с чем ты там merge используешь
SE
Стоит ли использовать DataBinding и ViewBinding в одном проекте? Не приведёт ли это каким ни будь ошибкам или проблемам? Изначально проект писался с помощью DataBinding, потом добавили в проект ViewBinding, чтобы уменьшить время компиляции, так как проект большой.
Minmaxminor
notify id вроде должен быть string
Нет, тогда студия предлагает конвертировать в инт.
Данил
Нет, тогда студия предлагает конвертировать в инт.
NotificationChannel не хватает для Android 8.0 и выше
Ravshan
Всем привет. Подскажите как можно отправить day, month, year в TextView. ?
Minmaxminor
NotificationChannel не хватает для Android 8.0 и выше
Куда пихнуть? А почему тогда на 5 андроиде выдаёт bad notification?
Данил
Куда пихнуть? А почему тогда на 5 андроиде выдаёт bad notification?
Что вы в качестве картинки используете?
Ravshan
textView.setText
Вот проблема, как брать day, month, year из DialogFragment?
Minmaxminor
Что вы в качестве картинки используете?
Просто картинка в формате png
Egor
Вот проблема, как брать day, month, year из DialogFragment?
Ну создай поля в этом классе и присваивай this.year = calendar.get...
Kombain
чем отследить трафик, точнее запросы в Andoid SDK эмуляторе? Посмотреть куда стучится приложение
Никита
Ravshan
Ну создай поля в этом классе и присваивай this.year = calendar.get...
Мне нужно сделать в методе onDateSet при выборе необходимого числа
Данил
Мне нужно сделать в методе onDateSet при выборе необходимого числа
пример как сделать https://github.com/danilshik/Schedule/blob/master/app/src/main/java/ru/ddstudio/schedule/ui/time_picker/TimePickerFragment.kt
死は終わりではない
Пацаны
死は終わりではない
Intent intent = new Intent(this, MainActivity.class);
死は終わりではない
так указывается класс
死は終わりではない
а как указывается фрагмент?
死は終わりではない
или фрагмент это и есть класс?
Данил
Для Fragment есть FragmentManager и FragmentTransaction
Egor
Intent intent = new Intent(this, MainActivity.class);
Указывается активити