Programy wzorcowe w Java: Drukuj gwiazdę, piramidę i liczbę

⚡ Inteligentne podsumowanie

Programy wzorcowe w Java drukuj gwiazdy, cyfry lub litery o ustalonym kształcie, a każdy z nich jest zbudowany z zagnieżdżonych pętli, gdzie zewnętrzna pętla zlicza wiersze, a wewnętrzne pętle umieszczają spacje i znaki.

  • 🔘 Definicja: Drukowanie wzorów polega na układaniu symboli, cyfr lub liter w określony kształt na konsoli.
  • Kategorie: Istnieją trzy grupy: wzory gwiaździste, wzory liczbowe i wzory znaków.
  • Struktura: Pętla zewnętrzna steruje wierszami, natomiast pętle wewnętrzne obsługują wiodące spacje i drukowane znaki.
  • 🧪 Przykłady: Omówione są programy z połówkami trójkątów, klepsydrami, diamentami, trójkątami przeciwległymi i piramidami literowymi.
  • 🛠️. Technika: Kształty znaków rzucają ziarno int na znak, zaczynając od 65 dla litery A.
  • 📊 Korzyści: Pisanie wzorców rozwija umiejętność kontroli pętli, arytmetyki indeksów i przeprowadzania symulacji na potrzeby rozmów kwalifikacyjnych.

Programy wzorcowe w Java do drukowania kształtów gwiazd, piramid i cyfr

Programy do drukowania wzorów to projekty lub symbole zawierające litery lub inne znaki w określonym formacie. Java kodowanie wzorcowe zwiększa budowanie logiki programistów, co pomaga im stać się dobrymi programistami.

Każdy przykład tutaj wymaga tylko zagnieżdżonych pętli i podstawowych Java składnia.

Kategorie wzorów

Możemy narysować niepoliczalne wzory w Java, a wszystkie wzorce można wykonać na trzy różne sposoby.

Istnieją trzy główne kategorie używane do identyfikacji Java programy wzorcowe.

  • Wzór gwiazdy: In Java programy ze wzorami gwiazd, wzory gwiazd to seria gwiazdki (*) służy do tworzenia różnych kształtów, takich jak program wzorów piramidy, trójkąta, trójkąta lewego, kształtu rombu, kwadratu i wielu innych wzorów Java.
  • Wzór liczbowy: Do ćwiczenia instrukcji sterowania przepływem innym typem wzorca są programy wzorców liczbowych w JavaProgramy wzorców liczbowych składają się z liczb/liczenia. Najczęściej ustawiamy wartość „i”, która jest iteratorem pętli generującym liczby w programowaniu wzorców. Najmniejsza liczba pętli dla wzorca liczbowego to również dwa. Program wzorców liczbowych w Java działa również w systemie wierszy i kolumn.
  • Wzór postaci: Programowanie wzorców znaków składa się ze znaków znajdujących się w Alfabety angielskie. To kolejny sposób na poprawę umiejętności kodowania, ale tutaj mamy do czynienia ze znakami, a nie liczbami lub gwiazdkami. Wzór może mieć ten sam znak w całym wzorze lub może mieć różne znaki, w zależności od logiki, którą zastosujesz.

Poniższa tabela pokazuje różnice pomiędzy kategoriami.

Kategoria Jednostka drukowana Skąd pochodzi wartość drukowana Przykładowe wyjście
Wzór gwiazdy Gwiazdka Stały symbol, więc zmieniają się tylko granice pętli * * *
Numer wzór Digit Iterator pętli i lub j drukowany bezpośrednio 1 2 3
Wzór znaku List Ziarno int rzutowane na char, zaczynając od 65 dla A ABC

We wszystkich trzech przypadkach zewnętrzna pętla zlicza wiersze, jedna wewnętrzna pętla drukuje spacje, a druga drukuje widoczne znaki. Zmienia się tylko jednostka wydruku.

Te same umiejętności pętli napędzają inne klasyczne ćwiczenia, takie jak sortowanie przez wybór, sortowanie przez wstawianiei Liczba Armstronga program.

Wzory gwiaździste są na pierwszym miejscu, ponieważ symbol nigdy się nie zmienia, a liczą się tylko granice pętli.

Programy ze wzorami gwiazd w Java

Wzory gwiazdek drukują gwiazdkę na konsoli, kształt wzoru zależy całkowicie od napisanego kodu.

Program wzoru gwiazdy w połowie lewego trójkąta:

Poniższy program drukuje tę połowę lewego trójkąta:

Wyjście konsoli pokazujące połowę lewego trójkąta gwiazdek w sześciu rzędach

public class LeftStarPattern{    
public static void main(String args[]){    
 int i, j, row = 6;       
   for (i=0; i<row; i++)    {  
      for (j=2*(row-i); j>=0; j--)         
      {  System.out.print(" ");  
	  }   
        for (j=0; j<=i; j++ )   
		{   
			System.out.print("* "); 
		}   
	System.out.println();  
	}
  }
}

Code wyjaśnienie:

  • Ogłosić int ja, intj. Zadeklaruj i zainicjuj zmienną wiersza jako rząd wewnętrzny.
  • i jest iteratorem zewnętrznej pętli „for” i j jest iteratorem wewnętrznej pętli „for”, „wiersz” zawiera liczbę wierszy, jakie powinna mieć piramida.
  • W przypadku zagnieżdżenia zewnętrzne „for” reprezentuje wiersze, a wewnętrzne „for” reprezentuje kolumny.
  • W zewnętrznym „for” zainicjuj iterator „i” wartością 0, ustaw warunek i<wiersz i zwiększ i.
  • Teraz wewnętrzna pętla „for” jest inicjowana wartością 2*(wiersz-i) i zmniejszana.
  • Zagnieżdżone „for” drukuje miejsce na ekranie konsoli.
  • Na zewnątrz ciała zagnieżdżonego „for” umieszczona jest kolejna pętla „for”. To dla' drukuj gwiazdę po wykonaniu zagnieżdżonego „for”. Zapętla się, aż j<=i.

Program wzoru gwiazdy z klepsydry:

Dwie ułożone jedna na drugiej piramidy tworzą tę klepsydrę:

Wyjście konsoli pokazujące kształt klepsydry zbudowany z dwóch piramid gwiaździstych

public class Main
{
    public static void main(String[] args)
    {
        int rows = 5;            
        for (int i= 0; i<= rows-1 ; i++)
        {
            for (int j=0; j <i; j++)
            {
                System.out.print(" ");
            }
            for (int k=i; k<=rows-1; k++)
 { 
System.out.print("*" + " ");
 } 
System.out.println(""); 
} 
for (int i= rows-1; i>= 0; i--)
        {
            for (int j=0; j< i ;j++)
            {
                System.out.print(" ");
            }
            for (int k=i; k<=rows-1; k++)
            {
                System.out.print("*" + " ");
            }
            System.out.println("");
        }
        
    }
}

Code wyjaśnienie:

  • Code zaczyna się od publiczna statyczna pustka ręka int wierszy określi liczbę rzędów, które będzie zawierać klepka.
  • Istnieją dwa zagnieżdżone „for”, pierwszy wyświetli piramidę w dół, a drugi wyświetli piramidę w górę.
  • W przypadku zagnieżdżenia zewnętrzne „for” reprezentuje wiersze, a wewnętrzne „for” reprezentuje kolumny.
  • W zewnętrznych pętlach „for” aż do i<= wiersz-1, w wewnętrznych pętlach „for” do i. system drukowania drukuje spację na konsoli.
  • Druga pętla wewnętrzna wyświetla na konsoli gwiazdkę i spację.
  • Gdy pierwsza pętla wewnętrzna zostanie w pełni wykonana przy i=0, po pełnym wykonaniu drugiej pętli wewnętrznej.
  • Następnie pętla zewnętrzna zwiększała się. Cykl ten trwa, dopóki warunek nie stanie się fałszywy.
  • Druga zagnieżdżona pętla wyświetla piramidę skierowaną w górę, zmieniając jedynie inicjalizację i stan zewnętrznej pętli pierwszej zagnieżdżonej pętli.
  • Wyświetli piramidę skierowaną w górę. Zarówno piramidy skierowane w dół, jak i w górę sprawią, że wzór gwiazdy z klepsydry.

Program wzoru gwiazdy w kształcie rombu:

Piramida skierowana w górę i w dół daje ten diament:

Wyjście konsoli pokazujące diament gwiazd utworzony z dwóch piramid

public class Main
{
	public static void main(String args[])
	{
		int n, i, j, space_0 = 1;
		n = 6;
		space_0 = n - 1;
		for (j = 1; j<= n; j++)
		{
			for (i = 1; i<= space_0; i++)
			{
				System.out.print(" ");
			}
		space_0--;
		for (i = 1; i <= 2 * j - 1; i++)
		{ 
			System.out.print("*");
		}
		System.out.println(""); 
	}
	space_0 = 1;
	for (j = 1; j<= n - 1; j++)
	{
	for (i = 1; i<= space_0; i++)
	{
		System.out.print(" ");
	}
	space_0++;
	for (i = 1; i<= 2 * (n - j) - 1; i++)
	{
		System.out.print("*");
	}
	System.out.println("");
	}
  }
}

Code wyjaśnienie:

  • W wzór diamentowej gwiazdy, „n” to liczba wierszy przechowywanych n-1 w przestrzeni_0.
  • W przypadku zagnieżdżenia zewnętrzne „for” reprezentuje wiersze, a wewnętrzne „for” reprezentuje kolumny.
  • Pierwsze zagnieżdżone „for” wyświetla piramidę skierowaną w górę. Zewnętrzne pętle „for” do n i wewnętrzne pętle aż do space_0. Wewnętrzna pętla wyświetla spację na konsoli.
  • Istnieje jeszcze jedno wewnętrzne „for”, które zapętla się aż do i<= 2 * j – 1 i wyświetla gwiazdkę na zewnątrz. Ten wewnętrzny system drukowania „for” drukuje linię. Ta zagnieżdżona pętla drukuje górną piramidę.
  • Drugie zagnieżdżone „for” wyświetla piramidę skierowaną w dół. Zewnętrzne pętle „for” aż do i<=n-1, pierwsze wewnętrzne „for” wyświetla spację, a drugie wewnętrzne „for” wyświetla gwiazdkę.
  • Poza wewnętrznym „for” wydrukuj odstęp między liniami. zarówno piramida skierowana w górę, jak i w dół tworzy wzór rombu.

Program układu przestrzennego wzoru gwiazdy w trójkącie prostokątnym:

Moduł j i i wprowadza następujące przerwy:

Wyjście konsoli pokazujące trójkąt prostokątny gwiazd z odstępem opartym na module

public class AsterikProgramJava { 
 public static void main(String[] args) { 
  for(int i=1;i<=10;i++) 
  { 
    for(int j=1;j<=i+i;j++)
	{
		int mid; 
		mid=j%i; 
		if(mid==0) 
			System.out.print("* "); 
		else 
			System.out.print("*");
	}
	System.out.print("\n");
	}
 }
}

Code wyjaśnienie:

  • W powyższy wzór kod, zewnętrzne „for” zajmuje się liczbą wierszy, a wewnętrzne „for” utrzymuje kolumny.
  • Gdy zewnętrzne „for” wynosi 1, co oznacza pierwszy wiersz, a wewnętrzne „for” wynosi 1, oznacza to, że jest to pierwsza kolumna.
  • Wewnątrz wewnętrznego „for” zadeklaruj zmienną o nazwie mid i zapisz resztę j/i. To dzieli wartości i i j, aby uzyskać moduł.
  • Więc jeśli moduł wynosi 0, wyświetl gwiazdkę i spację; w przeciwnym razie wyświetl tylko gwiazdkę. Na zewnątrz wewnętrznego „for” wydrukuj linię.

Nowoczesne technologie Java Uwagi: od Java 11 pętle przestrzenne można zastąpić System.out.print(" ".repeat(n))i budując każdy rząd w StringBuilder przed jednym println() Wywołanie działa szybciej. Oryginalny kod pozostaje niezmieniony, ponieważ wyraźnie pokazuje działanie arytmetyczne.

Zamianaping Gwiazdka licznika pętli zamienia każdy kształt gwiazdy na kształt liczby.

Programy wzorców numerycznych w Java

Wzory liczbowe składają się z liczb; z wzorów liczbowych możemy narysować wiele różnych kształtów.

Program wzoru przeciwnego półtrójkąta:

Licząc w dół, a następnie w górę, otrzymujemy następujący trójkąt liczbowy:

Wyjście konsoli pokazujące przeciwną połowę trójkąta liczb

public class Number_p  {  
	public static void main(String[] args)   {  
	int i, j, rows_0=5;  
	for (i = rows_0; i >= 1; i--) 
	{  
		for (j = 1; j <= i; j++)  
		{  
			System.out.print(j+" "); 
		}  
		System.out.println();  
	}  
	for (i = 2; i <= rows_0; i++)   {  
		for (j = 1; j <= i; j++) {  
			System.out.print(j+" ");
		}  
		System.out.println(); 
		}
	}
}

Code wyjaśnienie:

  • Aby narysować ten wzór, użyjemy dwóch zagnieżdżonych pętli „for”. Jeden wydrukuje pierwszą piramidę, a drugi wyświetli drugą piramidę.
  • Ogłosić int ja, int j i int row_0 i zainicjuj wiersz żądaną liczbą wierszy. Tutaj wartość wiersza wynosi 5.
  • Ustaw zewnętrzną pętlę „for” pierwszego zagnieżdżonego „for”, zainicjuj i liczbą wierszy i iteruj, aż i >= i zmniejsz iterator. To zewnętrzne „for” dotyczy wierszy.
  • W wewnętrznym „for” ustaw warunek j=1 i powtarzaj, aż j<=i. W treści wewnętrznej pętli wyświetl zmienną j ze spacją.
  • Teraz w drugim zagnieżdżonym „for” zmień zewnętrzny warunek „for” pierwszego zagnieżdżonego „for”. Zainicjuj go przez 2 i pętla aż do wierszy i<=.
  • Wewnętrzna pętla iteruje, aż do osiągnięcia i. Następnie wyświetla komunikat na konsoli, taki sam jak w wewnętrznej pętli pierwszego zagnieżdżonego „for” poza treścią wewnętrznego for i wyświetla przestrzeń liniową.

Powtarzający się numer w kolumnie prawy trójkąt Program wzorcowy:

Zresetowanie licznika w każdym wierszu powoduje powtórzenie liczb:

Wyjście konsoli pokazujące trójkąt prostokątny z liczbami zaczynającymi się od 1 w każdym wierszu

public class Number_pattern  {  
	public static void main(String args[])   
	{   
		int i, j,number, n=7;   
	for(i=0; i<n; i++)  
	{   
		number=1;   
		for(j=0; j<=i; j++)  
		{   
			System.out.print(number+ " ");   
			number++; 
		}   
		System.out.println();   
	} 
  } 
}

Code wyjaśnienie:

  • W przykładowym kodzie zadeklaruj int ja, int j, liczba całkowitaber i int n.
  • Następnie zainicjuj n wartością liczby żądanych wierszy, tutaj jest to 7.
  • W zewnętrznym „for” rozpocznij pętlę od wartości 0 i powtarzaj, aż zostanie osiągnięte n.
  • Możesz zainicjować liczbę wewnątrz lub na zewnątrz pętli.
  • W wewnętrznym „for” iteruj, aż j będzie mniejsze lub równe osiągniętemu i. I wyświetl liczbę ze spacją.
  • Poza treścią wewnętrznego „for” wydrukuj odstęp między wierszami.
  • Wewnętrzne „for” iteruje, aż jego warunek zmieni się na fałszywy. Kiedy ten warunek zmieni się na fałszywy, zewnętrzna pętla ponownie zwiększa wartość i wykonuje wewnętrzne polecenie „for”, aż warunek stanie się fałszywy.
  • Ta procedura jest powtarzana, aż zewnętrzna pętla stanie się fałszywa.

Ten sam szkielet drukuje litery, gdy ziarno int zostanie rzucone na char.

Programy dotyczące wzorców znaków w Java

Wzory znaków składają się z alfabetów angielskich. Możemy tworzyć fajne i niesamowite programy do tworzenia wzorów znaków. Java Kilka z nich omówiono poniżej.

Program wzorca półpiramidy znakowej:

Rzutowanie typu int na typ char powoduje wydrukowanie następujących liter:

Wyjście konsoli pokazujące połowę piramidy wielkich liter od A do F

public class Character_p{
    public static void main(String[] args){
        int alphabet = 65;
        for (int i = 0; i <= 5; i++){
            for (int j = 0; j <= i; j++)
            {   
				System.out.print((char) alphabet + " ");}
				alphabet++;
				System.out.println();
			}
		}
}

Code wyjaśnienie:

  • Zadeklaruj alfabet i zainicjuj go wartością 65.
  • Zewnętrzna pętla rozpoczyna się od 0 i powtarza się, aż i osiągnie wartość 5 lub mniej.
  • Wewnątrz for pętla zaczyna się od 0 i powtarza, aż j będzie mniejsze lub równe i.
  • Następnie wydrukuj znak i spację na ekranie wyjściowym.
  • Aby wydrukować znaki, przenosimy alfabet z liczby całkowitej na znak.
  • Poza jego treścią zwiększ alfabet i wydrukuj linię na ekranie wyjściowym. The (char) konwertuje wartość alfabetu na znak.

Wzór piramidy/trójkąta w Java:

Pętla przestrzenna centruje litery w piramidzie:

Wyjście konsoli pokazujące wyśrodkowaną piramidę wielkich liter

public class CharacterPattern  
{              
	public static void main(String[] args){  
		for (int i = 0; i <= 8; i++)   
		{  
			int alphabet_0 = 65;   
			for (int j = 8; j > i; j--)  
			{  
				System.out.print(" ");  
			}  
			for (int k = 0; k <= i; k++)  
			{  
				System.out.print((char) (alphabet_0 + k) + " ");  
			}  
		System.out.println();  
	}  
  }  
} 

Code wyjaśnienie:

  • W tym przykładowym kodzie użyliśmy trzech pętli „for”, jedna to pętla zewnętrzna, a dwie pętle są zagnieżdżone wewnątrz zewnętrznej pętli „for”.
  • Zewnętrzne „for” zaczyna się od 0 i zapętla się, aż wartość osiągnie 8 lub mniej.
  • W treści zewnętrznego „for” zainicjowaliśmy zmienną alfabetu typu całkowitego o wartości 65 i zagnieżdżono w jej ciele drugą zmienną „for”.
  • Pierwsze wewnętrzne „for” jest odwrotnością zewnętrznej pętli „for”, a w jej treści znajduje się miejsce na wydruk na konsoli. Poza jego ciałem jest jeszcze jedno „za”. Iteruje jak pętla zewnętrzna.
  • W treści drugiej wewnętrznej pętli wypisz znak, wpisując alfabet +k i wydrukuj go ze spacją na konsoli. Na zewnątrz treści drugiego wewnętrznego „for” wydrukuj linię.

FAQ

Licz wstecz od całkowitej liczby wierszy. Kształt wyrównany do lewej nie wymaga żadnych wierszy, piramida wyśrodkowana wymaga wierszy pomniejszonych o bieżący indeks wiersza, a w powyższym przykładzie użyto 2*(wiersz-i).

Asystenci AI mogą porównywać oczekiwany i rzeczywisty tekst konsoli wiersz po wierszu i nazywać ograniczenia pętli, które różnią się o jeden. Uruchom ponownie poprawiony program samodzielnie, zanim zaufasz poprawkom.

Tak. Drugi pilot GitHub Generuje działający kształt z jednowierszowego opisu. Sprawdź pętlę spacji, ponieważ generowany kod często centruje figurę o jedną kolumnę.

Dodaj test graniczny wewnątrz pętli najbardziej wewnętrznej. Wypisz symbol tylko w pierwszym wierszu, ostatnim wierszu lub pierwszej i ostatniej kolumnie; wypisz spacje w pozostałych miejscach.

Tak. Jedna metoda rekurencyjna drukuje wiersz i wywołuje samą siebie ze zwiększoną liczbą, podczas gdy druga zarządza sekwencją. Dane wyjściowe są identyczne, ale pętle unikają dodatkowych ramek stosu.

Wydrukowanie trójkąta n-wierszowego wymaga około n²/2 zapisów znaków, więc koszt wynosi O(n²). Sam wynik rośnie kwadratowo, więc żaden algorytm nie wydrukuje tego samego znaku szybciej.

65 to kod ASCII i Unicode wielkiej litery A. Konwersja 65 na char daje A, a 66 daje B, więc zwiększanie int i konwersja przechodzą alfabet po kolei.

Ujawniają sterowanie pętlami, arytmetykę indeksów i możliwość testowania kodu na papierze, bez potrzeby korzystania z biblioteki. Kandydat, który traces jeden wiersz zwykle poprawnie rozumie zagnieżdżoną iterację.

Podsumuj ten post następująco: