Как нарисовать треугольник в джава

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

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

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

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

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

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

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

Пример 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 - Структура - Треугольник ПаскаляСкачать

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

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

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

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

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

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

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

1. введение

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

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

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

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

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

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

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

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

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

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

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 () .

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

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

Видео:JavaScript v.2.0 Циклы While и Do whileСкачать

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

4. Сложность

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

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

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

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

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

Видео:Java - цикл for; вложенные циклы for; использование forСкачать

Java - цикл for; вложенные циклы for; использование for

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как нарисовать треугольник в джава

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

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

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

🎬 Видео

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

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

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

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

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

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

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

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

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

Геометрия - Построение правильного треугольника

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

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

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

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

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

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

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

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

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

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

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

Java для начинающих. Урок 12: Цикл for each, Массивы строк.
Поделиться или сохранить к себе: