Introduktion till mönster i PHP

Vad är mönsterprogrammering i PHP? Det är en konst att programmera att skriva ut ett slags mönster på skärmen. Detta kan vara en serie siffror, bokstäver eller specialtecken för att bilda ett mönster. Det enklaste exemplet på ett mönster är Fibonacci-serien (1, 1, 2, 3, 5, 8, 13, 21, 34 och så vidare). Sedan finns det andra mönster som är design på skärmen, säger en pyramid av stjärnor. Så i princip är mönsterprogrammering helt enkelt att skriva ut ett mönster på skärmen.

För den här artikeln använder vi PHP för att koda mönstren. Oroa dig dock inte. När du väl har tagit hand om det är det bara syntaxen som varierar från språk till språk. Logiken är alltid densamma.

Exempel på mönster i PHP

  • Innan vi hoppar rätt till programmen, låt oss förstå den grundläggande logiken för kodningsmönster. Mönster programmeras alltid genom kapslade slingor - främst kapslade för slingor. Detta beror på att slingor är syntaktiskt lättare att förstå och kortfattat.
  • Den yttre slingan handlar alltid om antalet rader. Så, låt oss säga om du måste skriva ut ett mönster som sträcker sig över fem rader, kommer den yttre slingan alltid att köras fem gånger.
  • Den inre slingan handlar alltid om antalet element i varje rad. Så, låt oss säga om du måste skriva ut en stjärna i den första raden, 2 stjärnor i den andra raden och så vidare, den inre slingan skulle kontrollera denna logik.
  • Beroende på mönster finns det ibland mer än en inre slingor eller tre nivåer av kapslade öglor. Det finns också inblandning av mellanslag och flikar för att producera det önskade mönstret.

Så, med allt detta i åtanke, låt oss försöka koda mönstren nu.

1. Star Half Pyramid.

Detta är det enklaste mönstret att skriva ut. Den skriver ut det ökande antalet stjärnor i efterföljande rader. 1 stjärna i den första raden, 2 stjärnor i den andra raden och så vidare.

Låt oss koda detta mönster för fem rader. Med tanke på logiken kommer vår yttre slinga att köras fem gånger. Eftersom antalet stjärnor i varje rad är direkt beroende av linjenumret kommer vår inre slinga att vara en funktion av styrvariabeln i vår yttre slinga. Låt oss se hur.

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

Och så vidare. Så här kontrollerar vi vår inre slinga baserad på den yttre slingans kontrollvariabel. Låt oss se programmet i aktion nu.

Koda

<_?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);
?>

Produktion:

2. Star Half Pyramid– Mirrored.

Detta liknar Star Half Pyramid, förutom att stjärnorna är högerorienterade.

För att uppnå rätt intryck skulle vi använda mellanslag och sedan trycka stjärnor. Så det skulle finnas två inre öglor - en för att kontrollera antalet utrymmen och andra för att kontrollera antalet stjärnor.

Obs: Tänk på en sak att antalet utrymmen i k-slingan är dubbelt utrymme. Det beror på att vi också skriver ut ett enda utrymme tillsammans med stjärnorna. Detta ger en färdig look på vårt mönster snarare än ett överbelastat tryck. Vi kommer att använda detta för att utnyttja oss när vi skriver ut fullständiga pyramider.

Koda

<_?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);
?>

Produktion:

3. Star Half Pyramid - Inverterad.

För detta pyramidmönster minskar antalet stjärnor med varje ny linje. Den första raden har 5 stjärnor, den andra linjen har 4 stjärnor och så vidare.

Med tanke på logiken vet vi att den yttre slingan alltid måste kontrollera antalet rader och den inre slingan måste kontrollera antalet stjärnor. Denna logik kan inte ändras. Men vad som kan ändras är hur vi startar slingorna, ökar eller minskar ordningen. Det betyder att vi antingen kan slinga från 0 till 5 eller att vi kan slinga i minskande ordning från 5 till 0. Så för inverterade mönster som denna, vet vi att antalet stjärnor är mer i den första raden. Så vi väljer att minska orderslingorna.

Koda

<_?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);
?>

Produktion:

4. Star Half Pyramid - Inverterad spegel.

Detta mönster är en intryckt inverterad halvpyramid. Antalet stjärnor minskar med varje linje och stjärnor är högerjusterade.

Jag tror nu att du skulle kunna gissa logiken för den här.

Koda

<_?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);
?>

Produktion:

5. Star Full Pyramid.

Detta mönster skriver ut hela pyramiden. Eller med andra ord, det skriver ut en triangel av stjärnor på skärmen.

Detta mönster är i huvudsak en kombination av Halvpyramiden och dess spegel. Även om det är en liten vridning när vi kodar det. Gå igenom anteckningen i Mirrored Half Pyramid. Kom ihåg, hur vi använde dubbelavstånd för att ge ett färdig utseende på vårt mönster? Här skulle vi använda enstaka avstånd så att stjärnorna växelvis anpassas i udda och jämna antal rader, vilket ger oss ett riktigt triangulärt mönster.

Koda

<_?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);
?>

Produktion:

6. Star Diamond.

Detta mönster skriver ut en komplett diamantform på skärmen. Antalet stjärnor ökar tills det högsta definieras och minskar sedan tillbaka till 1, vilket ger oss en full diamantform.

För att skriva ut detta mönster måste vi dela upp mönstret i två halvor. Den övre halvan - som skriver ut det ökande antalet stjärnor. Den nedre halvan - som skriver ut det minskande antalet stjärnor. För att skriva ut båda halvorna använder vi två yttre öglor och motsvarande inre öglor.

Koda

<_?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);
?>

Produktion:

7. Nummermönster.

För detta nummermönster kommer vi att skriva ut siffrorna i förhållande till radnumret. Sålunda skulle siffran 1 skrivas ut en gång, 2 två gånger, tre gånger och så vidare.

Om du skulle ha följt denna handledning rad för rad måste du nu ha förstått mycket väl arbetet med kapslade slingor för att skriva ut mönster. Detta mönster följer också samma logik. Istället för stjärnor, skriver vi ut siffror. Nu frågar du hur får vi siffrorna? Svaret är helt enkelt genom våra kontrollvariabler i och j.

Koda

<_?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);
?>

Produktion:

8. Karaktärsmönster.

I detta mönster skulle vi skriva ut alfabeten ABCDE i ett mönster. Från och med A skulle de efterföljande raderna införa ett nytt alfabet som är inklämt mellan de föregående alfabeten.

Det enda tricket i detta mönster är att få karaktärerna från våra kontrollvariabler. Vi gör detta genom att utnyttja teckenens ASCII-värde. ASCII-värdet från A till Z är 65 till 90 . Så vi beräknar ASCII-värdet i varje iteration och skriver ut motsvarande tecken. Funktionen chr () i PHP används för att skriva ut ett tecken från ASCII-koden.

Koda

<_?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);
?>

Produktion:

Skriv ut för hela alfabet och mönstret ser ganska coolt ut.

9. Det binära timglaset - Bonusmönster.

Detta mönster är ett dynamiskt mönster som skriver ut timglaset relativt den förflutna tiden, men inte en faktisk beräkning. Till exempel, om en timme har gått, kommer den att skriva ut en rad med 0s i den övre halvan och en rad av 1s i den nedre halvan.

Koda

<_?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);
?>

Utgång: 1 timme har gått.

Utgång: 2 timmar har gått.

Utgång: 3 timmar har gått.

Och så vidare.

Slutsats

Det är mycket att spela med mönster. Det handlar om att ha kodlogiken i åtanke. När du har förstått kodlogiken helt, finns det inget mönster som du inte kan skriva ut.

Rekommenderade artiklar

Detta har varit en guide till mönster i PHP. Här har vi diskuterat Översikter och exempel på Mönster i PHP med koder och utdata. Du kan också gå igenom våra givna artiklar för att lära dig mer-

  1. Vad är PHP?
  2. Variabler i PHP
  3. Konstruktör i PHP
  4. Introduktion till PHP
  5. Översikt över mönster i JavaScript
  6. Exempel på rekursiv funktion PHP
  7. Antalmönster i Java | Exempel med implementering av kod

Kategori: