Java как нарисовать треугольник

Треугольник из звёздочек: Рисуем в Java

Автор: yasidoch
Дата записи

Рассмотрим способы, которыми можно нарисовать треугольник в Java из чисел или других символов. Приведу пару примеров кода. Чтобы не оказывать медвежью услугу тем, кто ищет помощь в решении, но хочет все-таки решить самостоятельно, первый вариант будет наглядным, а еще один — в виде инструкции-объяснения.

Пример 1. Рисуем треугольник. Используем String и цикл for.

Объявляем переменную s типа String, запускаем цикл от 0 до 9 включительно, выводим на экран переменную s до тех пор, пока i будет меньше 9. Первая итерация: i=0, следовательно выводим на печать *. Вторая итерация: i=1, следовательно выводим на печать s + «*», а это уже два символа.

Таким образом совершается 10 проходов

И в результате мы получаем следующее:Java как нарисовать треугольникВ случае, если мы хотим перевернуть треугольник, мы меняем цикл. Подумайте, что надо изменить, чтобы перевернуть треугольник.

Пример 2. При помощи двух циклов for.

Первый проход внешнего цикла: i=0;

Внутренний цикл: j = 0;

«j» меньше или равно «i» ? Если «Да», то добавляем к «j» единицу, выводим «*» .

Теперь j=1. «j» все еще меньше или равно «i» ?
Нет, завершаем внутренний цикл.

Внешний цикл: i=0 ; «i» меньше 10 ? Ответ «Да», добавляем к «i» единицу, переносим строчку.

Итог после первой итерации: *
Вторая итерация внешнего цикла: i=1
Внутренний цикл: j = 0;
«j» меньше или равно «a» ?
Да, добавляем к «j» единицу, выводим «*».
Теперь j=1. «j» все еще меньше или равно «i» ?

Да, добавляем к «j» единицу, печатаем еще одну «*» .
Теперь j=2.
«j» все еще меньше или равно «i» ? Нет, закончили внутренний проход.

Внешний цикл: i=1 ; «i» меньше 10 ? «Да», добавляем к «i» единицу, переносим строчку. Теперь i=2.

Итог после второй итерации:
*
**

Это описание принципа действия программы Java, написанной при помощи двух циклов for. Сперва выполняется внутренний цикл, за ним внешний. После каждой проверки условия внешнего цикла for внутренний цикл «сбрасывается».

Видео:Java - урок 5.3 (Практика - построение пирамиды)Скачать

Java - урок 5.3 (Практика - построение пирамиды)

Создание треугольника с циклами for в Java

Изучите несколько способов печати треугольников в Java с помощью циклов for.

  • Автор записи

Автор: Catalin Burcea
Дата записи

Видео:Java - Структура - Треугольник ПаскаляСкачать

Java - Структура - Треугольник Паскаля

1. введение

В этом уроке мы рассмотрим несколько способов печати треугольника на Java.

Естественно, существует много типов треугольников. Здесь мы рассмотрим только несколько из них: правый и равнобедренный треугольники.

Видео:КАК НАРИСОВАТЬ ТРЕУГОЛЬНИК В КОНСОЛИ C# | C# ДОМАШНИЕ ЗАДАНИЯ | #5Скачать

КАК НАРИСОВАТЬ ТРЕУГОЛЬНИК В КОНСОЛИ C# | C# ДОМАШНИЕ ЗАДАНИЯ | #5

2. Построение прямоугольного треугольника

Прямоугольный треугольник-это самый простой тип треугольника, который мы будем изучать. Давайте быстро взглянем на результат, который мы хотим получить:

Здесь мы замечаем, что треугольник состоит из 5 рядов, каждый из которых имеет количество звезд, равное текущему номеру строки. Конечно, это наблюдение можно обобщить: для каждой строки от 1 до N мы должны вывести r звезды , где r – текущая строка и N – общее количество строк.

Итак, давайте построим треугольник, используя две петли for :

Видео:Математика это не ИсламСкачать

Математика это не Ислам

3. Построение Равнобедренного треугольника

Теперь давайте посмотрим на форму равнобедренного треугольника:

Что мы видим в этом случае? Мы замечаем, что, в дополнение к звездам, нам также нужно напечатать несколько пробелов для каждой строки. Итак, мы должны выяснить, сколько пробелов и звездочек мы должны напечатать для каждой строки. Конечно, количество пробелов и звездочек зависит от текущей строки.

Во-первых, мы видим, что нам нужно напечатать 4 пробела для первой строки, и, когда мы спускаемся по треугольнику, нам нужно 3 пробела, 2 пробела, 1 пробел и вообще никаких пробелов для последней строки. Обобщая, нам нужно напечатать N – r пробелы для каждой строки .

Во-вторых, сравнивая с первым примером, мы понимаем, что здесь нам нужно нечетное количество звезд: 1, 3, 5, 7…

Итак, нам нужно напечатать r x 2 – 1 звезды для каждой строки .

3.1. Использование вложенных циклов for

Основываясь на приведенных выше наблюдениях, давайте создадим наш второй пример:

3.2. Использование одного цикла for

На самом деле, у нас есть другой способ, который состоит только из одного для цикла – он использует библиотеку Apache Commons Lang 3 .

Мы собираемся использовать цикл for для перебора строк треугольника, как мы делали в предыдущих примерах. Затем мы будем использовать метод StringUtils.repeat () , чтобы сгенерировать необходимые символы для каждой строки:

Или мы можем проделать ловкий трюк с методом substring ()|/.

Мы можем извлечь методы StringUtils.repeat() выше, чтобы построить вспомогательную строку, а затем применить к ней метод String.substring () . Вспомогательная строка-это конкатенация максимального количества пробелов и максимального количества звезд, которые нам нужны для печати строк треугольника.

Глядя на предыдущие примеры, мы замечаем, что нам нужно максимальное количество N – 1 пробелов для первой строки и максимальное количество N x 2 – 1 звезды для последнего ряда:

Например, когда N и r , нам нужно напечатать ” *****”, который включен в переменную helperString . Все, что нам нужно сделать, это найти правильную формулу для метода substring () .

Теперь давайте рассмотрим полный пример:

Точно так же, немного поработав, мы могли бы перевернуть треугольник вверх ногами.

Видео:Java - Структура программы - Треугольник ПаскаляСкачать

Java - Структура программы - Треугольник Паскаля

4. Сложность

Если мы еще раз взглянем на первый пример, мы заметим, что внешний цикл и внутренний цикл имеют максимум N шагов. Следовательно, у нас есть O(N^2) временная сложность, где N – количество строк треугольника.

Второй пример аналогичен — с той лишь разницей, что у нас есть два внутренних цикла, которые являются последовательными и не увеличивают временную сложность.

В третьем примере, однако, используется только цикл for с N шагами. Но на каждом шаге мы вызываем либо метод StringUtils.repeat () , либо метод substring() в вспомогательной строке, каждый из которых имеет O(N) сложность. Таким образом, общая временная сложность остается прежней.

Наконец, если мы говорим о вспомогательном пространстве, мы можем быстро понять, что для всех примеров сложность остается в переменной StringBuilder . Добавляя весь треугольник к переменной result , мы не можем иметь меньше O(N^2) сложности.

Конечно, если бы мы непосредственно печатали символы, у нас была бы постоянная сложность пространства для первых двух примеров. Но в третьем примере используется вспомогательная строка, и сложность пространства будет O(N) .

Видео:Java для начинающих. Урок 23(продолжение): Форматирование строк в JavaСкачать

Java для начинающих. Урок 23(продолжение): Форматирование строк в Java

5. Заключение

В этом уроке мы узнали, как печатать два распространенных типа треугольников в Java.

Во-первых, мы изучили прямоугольный треугольник, который является самым простым типом треугольника, который мы можем напечатать на Java. Затем, мы исследовали два способа построения равнобедренного треугольника. Первый использует только для циклов, а другой использует преимущества метода StringUtils.repeat() и String.substring() и помогает нам писать меньше кода.

Наконец, мы проанализировали сложность времени и пространства для каждого примера.

Как всегда, все примеры можно найти на GitHub .

Видео:Урок 85 - Рисование в Java, фигуры. Evil NerdСкачать

Урок 85 - Рисование в Java, фигуры. Evil Nerd

Java – нарисуйте треугольник

Эй, я знаю, что просто рисовать овал/прямоугольник и заполнять его, используя

но как рисовать треугольник? Было бы лучше, если бы у него были случайные координаты.

Есть как минимум два основных способа, которыми вы можете достичь, исходя из ваших потребностей.

Вы можете использовать Polygon или вы можете использовать API 2D-графики

Который вы можете выбрать, сводится к вашим требованиям. Polygon требует, чтобы вы заранее знали положение точек в трехмерном пространстве, где API Shape дает вам больше свободы для определения формы, не заботясь о позиции заранее.

Это делает API Shape более гибким, поскольку вы можете определить форму один раз и просто перевести контекст Graphics мере необходимости и перерисовать его.

Java как нарисовать треугольник

Красный – Polygon , зеленый – это Shape , которая переведена в положение…

Используя устаревший класс Graphics , это будет сделано с использованием устаревшего метода
drawPolygon(int[] x, int[] y, int pointCount) .

Новый класс Graphics2D поддерживает гораздо более Path2D реализацию с использованием Path2D . Вам понадобится метод draw(Shape) или fill(Shape) . Учитывая тот факт, что почти везде в Java объект Graphics самом деле является объектом Graphics2D , вы можете его отличить, это путь, ИМХО.

🔍 Видео

Java для начинающих. Урок 5: Цикл for.Скачать

Java для начинающих. Урок 5: Цикл for.

JavaScript v.2.0 Циклы While и Do whileСкачать

JavaScript v.2.0 Циклы While и Do while

Java swing: Рисование линии на форме, урок 24!Скачать

Java swing: Рисование линии на форме, урок 24!

Java для начинающих. Урок 14: Классы и объекты.Скачать

Java для начинающих. Урок 14: Классы и объекты.

часто встречаемые домашние задание в "Java" треугольникиСкачать

часто встречаемые домашние задание в "Java" треугольники

Урок по Java 121: AWT 1: ShapesСкачать

Урок по Java 121: AWT 1: Shapes

Java для начинающих. Урок 11: Массивы в Java.Скачать

Java для начинающих. Урок 11: Массивы в Java.

#11 Концепция объектно-ориентированного программирования (ООП) | Java для начинающихСкачать

#11 Концепция объектно-ориентированного программирования (ООП) | Java для начинающих

часто встречаемые домашние задание в "Java" треугольникиСкачать

часто встречаемые  домашние задание в "Java" треугольники

Топ 3 худших программиста на YouTube! #код #айти #программистСкачать

Топ 3 худших программиста на YouTube! #код #айти #программист

Java для начинающих. Урок 41: Абстрактные классы.Скачать

Java для начинающих. Урок 41: Абстрактные классы.

Треугольник Паскаля программаСкачать

Треугольник Паскаля программа
Поделиться или сохранить к себе: