Uvod u uzorke u PHP-u

Što je programiranje uzoraka u PHP-u? Umijeće programiranja ispisati nekakav uzorak na ekranu. To mogu biti niz brojeva, slova ili posebni znakovi radi formiranja uzorka. Najjednostavniji primjer uzorka je Fibonaccijeva serija (1, 1, 2, 3, 5, 8, 13, 21, 34 i tako dalje). Zatim su tu i drugi obrasci koji su dizajnirani na ekranu, recimo piramida zvijezda. Dakle, u osnovi programiranje uzoraka jednostavno je ispis uzorka na zaslon.

U ovom ćemo članku koristiti PHP za kodiranje obrazaca. Ali ne brinite se. Jednom kada to zaključite, samo se sintaksa razlikuje od jezika do jezika. Logika je uvijek ista.

Primjeri uzorka u PHP-u

  • Prije skoka pravo na programe, razumjet ćemo osnovnu logiku obrazaca kodiranja. Uzorci se uvijek programiraju kroz ugniježđene petlje - uglavnom su ugniježđeni za petlje. To je zato što je petlje sintaktički lakše razumjeti i sažetije.
  • Vanjska petlja uvijek se bavi brojem linija. Recimo, ako morate ispisati uzorak koji obuhvaća pet linija, vanjska petlja uvijek će se izvoditi pet puta.
  • Unutarnja petlja uvijek se odnosi na broj elemenata u svakom retku. Recimo, ako morate ispisati 1 zvijezdu u prvom retku, 2 zvjezdice u drugom retku i tako dalje, unutarnja petlja bi upravljala ovom logikom.
  • Ovisno o obrascu, ponekad postoji više od jedne unutarnje petlje ili tri razine ugniježđenih petlji. Također postoji uključivanje razmaka i kartica za proizvodnju željenog uzorka.

Dakle, imajući sve to na umu, pokušajmo sad šifrirati obrasce.

1. Zvijezda polovine piramide.

Ovo je najjednostavniji uzorak za ispis. U sljedećim crtama ispisuje sve veći broj zvijezda. 1 zvijezda u prvom redu, 2 zvjezdice u drugoj liniji i tako dalje.

Kodirajmo ovaj uzorak za pet redaka. Imajući na umu logiku, naša će se vanjska petlja pokrenuti pet puta. Budući da je broj zvijezda u svakom retku izravno ovisan o broju linije, naša će unutarnja petlja biti funkcija upravljačke varijable u našoj vanjskoj petlji. Da vidimo kako.

Our outer control variable is i and inner control variable is j .
Outer loop iteration 1 –> i = 0
Inner loop iteration 1 –> j = 0
Print star
Outer loop iteration 2 –> i = 1
Inner loop iteration 1 –> j = 0
Print Star
Inner loop iteration 2 -> j = 1
Print Star
Outer loop iteration 3 –> i = 2
Inner loop iteration 1 –> j = 0
Print Star
Inner loop iteration 2 -> j = 1
Print Star
Inner loop iteration 3 -> j = 2
Print Star

I tako dalje. Na taj način upravljamo unutarnjom petljom na temelju kontrolne varijable vanjske petlje. Pogledajmo sada program u akciji.

Kodirati

<_?php
function print_pattern($num)
(
// Outer loop handles number of rows
for ($i = 0; $i < $num; $i++)
(
// inner loop handles number of columns
for($j = 0; $j <= $i; $j++ )
(
// Print stars
echo "* ";
)
// go to new line after each row pattern is printed
echo "\n";
)
)
//Call function and send number of lines as parameter
$num = 5;
print_pattern($num);
?>

Izlaz:

2. Zvijezda Polovna piramida - zrcalo.

To je slično piramidi Zvijezdene polufone, samo što su zvijezde pravocrtne.

Da bismo postigli pravu udubinu, koristili bismo razmake, a zatim ispisali zvijezde. Dakle, postojale bi dvije unutarnje petlje - jedna za kontrolu broja prostora, a druga za kontrolu broja zvijezda.

Napomena: Imajte na umu da je broj razmaka u k-petlji dvostruki. To je zato što ispisujemo i jedan svemir zajedno sa zvijezdama. To daje dorađeni izgled našem uzorku, a ne zagušeni otisak. To ćemo iskoristiti za svoju korist kada ispisujemo pune piramide.

Kodirati

<_?php
function print_pattern($num)
(
// Outer loop handles number of rows
for ($i = 0; $i < $num; $i++)
(
// inner loop handles indentation
for($k = $num; $k > $i+1; $k-- )
(
// Print stars
echo " ";
)
// inner loop handles number of stars
for($j = 0; $j <= $i; $j++ )
(
// Print stars
echo "* ";
)
// go to new line after each row pattern is printed
echo "\n";
)
)
//Call function and send number of lines as parameter
$num = 5;
print_pattern($num);
?>

Izlaz:

3. Zvijezda Polovna piramida - obrnuto.

Za ovaj se uzorak piramida broj zvijezda smanjuje sa svakom novom linijom. Prva linija ima 5 zvjezdica, druga linija 4 zvijezde i tako dalje.

Imajući na umu logiku, znamo da vanjska petlja uvijek mora kontrolirati broj linija, a unutarnja petlja da kontrolira broj zvijezda. Ta se logika ne može promijeniti. Iako se može promijeniti kako započinjemo petlje, povećavajući ili smanjujući redoslijed. To znači da možemo ili petljati od 0 do 5 ili možemo petlju smanjivati ​​od 5 do 0. Dakle, za obrnuti uzorke poput ove, znamo da je u prvom retku više zvijezda. Dakle, odlučujemo smanjiti petlje reda.

Kodirati

<_?php
function print_pattern($num)
(
// Outer loop handles number of rows
for ($i = $num; $i > 0; $i--)(
// inner loop handles number of stars
for($j = 0; $j < $i; $j++ )
(
// Print stars
echo "* ";
)
// go to new line after each row pattern is printed
echo "\n";
)
)
//Call function and send number of lines as parameter
$num = 5;
print_pattern($num);
?>

Izlaz:

4. Zvijezda polovina piramida - obrnuto zrcalo.

Ovaj je uzorak razvedena obrnuta polovica piramida. Broj zvijezda se smanjuje sa svakom linijom i zvijezde su ispravne.

Vjerujem da biste do sada mogli pogoditi logiku ovog.

Kodirati

<_?php
function print_pattern($num)
(
// Outer loop handles number of rows
for ($i = $num; $i > 0; $i--)
(
// inner loop handles indentation
for($k = $i; $k < $num; $k++ )
(
// Print stars
echo " ";
)
// inner loop handles number of stars
for($j = 0; $j < $i; $j++ )
(
// Print stars
echo "* ";
)
// go to new line after each row pattern is printed
echo "\n";
)
)
//Call function and send number of lines as parameter
$num = 5;
print_pattern($num);
?>

Izlaz:

5. Zvijezda puna piramida.

Ovaj uzorak ispisuje cijelu piramidu. Ili drugim riječima, na ekranu se ispisuje trokut zvijezda.

Ovaj je uzorak u osnovi kombinacija Polovne piramide i njenog zrcala. Iako postoji mali zaokret kada ga kodiramo. Ponovno pročitajte bilješku u zrcalnoj polovici piramide. Sjetite se kako smo upotrijebili dvostruki razmak da bismo dobili gotov izgled našeg uzorka? Ovdje bismo koristili jednostruki razmak tako da su zvijezde naizmjenično poredane u neparan i paran broj redova, što nam daje pravi trokutasti uzorak.

Kodirati

<_?php
function print_pattern($num)
(
// Outer loop handles number of rows
for ($i = 0; $i < $num; $i++)
(
// inner loop handles indentation
for($k = $num; $k > $i+1; $k-- )
(
// Print spaces
echo " ";
)
// inner loop handles number of stars
for($j = 0; $j <= $i; $j++ )
(
// Print stars
echo "* ";
)
// go to new line after each row pattern is printed
echo "\n";
)
)
//Call function and send number of lines as parameter
$num = 5;
print_pattern($num);
?>

Izlaz:

6. Zvjezdani dijamant.

Ovaj uzorak ispisuje potpun oblik dijamanta na zaslonu. Broj zvijezda raste do maksimalno definiranog, a zatim se smanjuje na 1, čime dobivamo potpuno dijamantni oblik.

Da bismo ispisali ovaj uzorak, morali bismo podijeliti uzorak na dvije polovice. Gornja polovica - koja ispisuje sve veći broj zvijezda. Donja polovica - koja ispisuje opadajući broj zvijezda. Za ispis obje polovice koristili bismo dvije vanjske petlje i odgovarajuće unutarnje petlje.

Kodirati

<_?php
function print_pattern($num)
(
// The Upper Half Pattern
// Outer loop handles number of rows
for ($i = 0; $i < $num; $i++)
(
// inner loop handles indentation
for($k = $num; $k > $i+1; $k-- )
(
// Print spaces
echo " ";
)
// inner loop handles number of stars
for($j = 0; $j <= $i; $j++ )
(
// Print stars
echo "* ";
)
// go to new line after each row pattern is printed
echo "\n";
)
// The Lower Half Pattern
// Outer loop handles number of rows
for ($i = $num-1; $i > 0; $i--)
(
// inner loop handles indentation
for($k = $num-1; $k >= $i; $k-- )
(
// Print spaces
echo " ";
)
// inner loop handles number of stars
for($j = 0; $j < $i; $j++ )
(
// Print stars
echo "* ";
)
// go to new line after each row pattern is printed
echo "\n";
)
)
//Call function and send number of lines as parameter
$num = 5;
print_pattern($num);
?>

Izlaz:

7. Broj obrazaca.

Za ovaj uzorak brojeva ispisat ćemo brojeve u odnosu na broj redaka. Dakle, znamenka 1 ispisala bi se jednom, 2 dva puta, tri puta i tako dalje.

Ako biste slijedili ovaj vodič svaki redak, do sada ste sigurno već dobro razumjeli rad ugniježđenih petlji za ispis uzoraka. Ovaj obrazac također slijedi istu logiku. Umjesto zvijezda ispisujemo brojeve. Sad se pitate kako dolazimo do brojeva? Odgovor je - jednostavno kroz naše kontrolne varijable i i j.

Kodirati

<_?php
function print_pattern($num)
(
// Outer loop handles number of rows
for ($i = 1; $i <= $num; $i++)
(
// inner loop handles indentation
for($k = $num; $k > $i; $k-- )
(
// Print spaces
echo " ";
)
// inner loop handles number of stars
for($j = 1; $j <= $i; $j++ )
(
// Print numbers
echo $i." ";
)
// go to new line after each row pattern is printed
echo "\n";
)
)
//Call function and send number of lines as parameter
$num = 5;
print_pattern($num);
?>

Izlaz:

8. Uzorak lika.

U ovom bi uzorku ispisali abecede ABCDE u obrascu. Počevši od A, sljedeći će redovi uvoditi novu abecedu koja je iskrivljena između prethodnih abeceda.

Jedini trik u ovom obrascu je dobivanje znakova iz naših kontrolnih varijabli. To radimo pomoću utjecaja ASCII vrijednosti znakova. ASCII vrijednost od A do Z je 65 do 90 . Dakle, u svakoj iteraciji izračunavamo ASCII vrijednost i ispisujemo odgovarajući znak. Chr () funkcija u PHP-u koristi se za ispis znaka iz ASCII koda.

Kodirati

<_?php
function print_pattern($num)
(
// Outer loop handles number of rows
for ($i = 1; $i <= $num; $i++)
(
// inner loop handles indentation
for($k = $num; $k > $i; $k-- )
(
// Print spaces
echo " ";
)
// inner loop handles number of stars
for($j = 1; $j <= $i; $j++ )
(
// Print characters
echo chr(64+$j)." ";
)
for($j = $i-1; $j >= 1; $j-- )
(
// Print characters
echo chr(64+$j)." ";
)
// go to new line after each row pattern is printed
echo "\n";
)
)
//Call function and send number of lines as parameter
$num = 5;
print_pattern($num);
?>

Izlaz:

Ispišite za pune abecede, a uzorak izgleda prilično cool.

9. Uzorak binarnog sata - bonus.

Ovaj uzorak je dinamičan uzorak koji ispisuje satni sat u odnosu na proteklo vrijeme, ali nije stvarni izračun. Na primjer, ako je prošao jedan sat, on će ispisati jedan redak od 0 u gornjoj polovici i jedan red od 1 u donjoj polovici.

Kodirati

<_?php
function print_pattern($num, $hour)
(
// Outer loop handles number of rows
for ($i = $num; $i > 0; $i--)
(
// inner loop handles indentation
for($k = $num; $k > $i; $k-- )
(
// Print spaces
echo " ";
)
// inner loop handles number of stars
for($j = 0; $j < $i; $j++ )
(
// Print characters
if($num-$i < $hour)
echo "0 ";
else
echo "1 ";
)
// go to new line after each row pattern is printed
echo "\n";
)
for ($i = 1; $i < $num; $i++)
(
// inner loop handles indentation
for($k = $num-1; $k > $i; $k-- )
(
// Print spaces
echo " ";
)
// inner loop handles number of stars
for($j = 0; $j <= $i; $j++ )
(
// Print characters
if($num-$i <= $hour)
echo "1 ";else
echo "0 ";
)
// go to new line after each row pattern is printed
echo "\n";
)
)
//Call function and send number of lines as parameter
$num = 8;
$hour = 3;
print_pattern($num, $hour);
?>

Izlaz: proteklo je 1 sat.

Izlaz: prošlo je 2 sata.

Izlaz: proteklo je 3 sata.

I tako dalje.

Zaključak

Puno se može igrati s uzorcima. Sve je u vidu logike koda. Kad potpuno shvatite logiku koda, ne postoji obrazac koji ne možete ispisati.

Preporučeni članci

Ovo je vodič za obrasce u PHP-u. Ovdje smo raspravljali o pregledima i primjerima uzorka u PHP-u s kodovima i izlazima. Možete i proći kroz naše članke da biste saznali više -

  1. Što je PHP?
  2. Varijable u PHP-u
  3. Konstruktor u PHP-u
  4. Uvod u PHP
  5. Pregled obrazaca u JavaScript-u
  6. Primjeri PHP rekurzivne funkcije
  7. Broj obrasca u Javi | Primjeri za implementaciju koda

Kategorija: