Einführung in Patterns in PHP

Was ist Pattern-Programmierung in PHP? Es ist eine Kunst des Programmierens, eine Art Muster auf den Bildschirm zu drucken. Dies kann eine Reihe von Zahlen, Buchstaben oder Sonderzeichen sein, um ein Muster zu bilden. Das einfachste Beispiel für ein Muster ist die Fibonacci-Reihe (1, 1, 2, 3, 5, 8, 13, 21, 34 usw.). Dann gibt es andere Muster, die Muster auf dem Bildschirm sind, beispielsweise eine Pyramide von Sternen. Bei der Musterprogrammierung wird also einfach ein Muster auf den Bildschirm gedruckt.

In diesem Artikel würden wir PHP verwenden, um die Muster zu codieren. Mach dir aber keine Sorgen. Sobald Sie den Dreh raus haben, ist es nur die Syntax, die von Sprache zu Sprache variiert. Die Logik ist immer dieselbe.

Beispiele für Pattern in PHP

  • Bevor wir uns direkt mit den Programmen befassen, lassen Sie uns die grundlegende Logik der Codierung von Mustern verstehen. Patterns werden immer durch verschachtelte Schleifen programmiert - meistens für Schleifen verschachtelt. Dies liegt daran, dass Schleifen syntaktisch einfacher zu verstehen und zu präzisieren sind.
  • Bei der äußeren Schleife geht es immer um die Anzahl der Leitungen. Angenommen, Sie müssen ein fünfzeiliges Muster drucken, dann wird die äußere Schleife immer fünfmal ausgeführt.
  • Die innere Schleife bezieht sich immer auf die Anzahl der Elemente in jeder Zeile. Angenommen, Sie müssen 1 Stern in der ersten Zeile, 2 Sterne in der zweiten Zeile usw. drucken, dann würde die innere Schleife diese Logik steuern.
  • Je nach Muster gibt es manchmal mehr als eine innere Schleife oder drei Ebenen von verschachtelten Schleifen. Es gibt auch die Einbeziehung von Leerzeichen und Tabulatoren, um das gewünschte Muster zu erzeugen.

Unter Berücksichtigung all dieser Aspekte versuchen wir nun, die Muster zu codieren.

1. Stern-Halbpyramide.

Dies ist das am einfachsten zu druckende Muster. Es gibt die zunehmende Anzahl von Sternen in nachfolgenden Zeilen aus. 1 Stern in der ersten Zeile, 2 Sterne in der zweiten Zeile und so weiter.

Codieren wir dieses Muster für fünf Zeilen. Unter Berücksichtigung der Logik wird unsere äußere Schleife fünfmal ausgeführt. Da die Anzahl der Sterne in jeder Zeile direkt von der Zeilennummer abhängt, ist unsere innere Schleife eine Funktion der Steuervariablen in unserer äußeren Schleife. Mal sehen wie.

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

Und so weiter. Auf diese Weise steuern wir unsere innere Schleife basierend auf der Steuervariablen für die äußere Schleife. Lassen Sie uns das Programm jetzt in Aktion sehen.

Code

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

Ausgabe:

2. Star Half Pyramid - Mirrored.

Dies ähnelt der Stern-Halbpyramide, mit der Ausnahme, dass die Sterne rechtsbündig sind.

Um die richtige Einrückung zu erzielen, verwenden wir Leerzeichen und drucken dann Sterne. Es gäbe also zwei innere Schleifen - eine zur Steuerung der Anzahl der Felder und andere zur Steuerung der Anzahl der Sterne.

Hinweis: Beachten Sie, dass die Anzahl der Leerzeichen in der k-Schleife doppelt so groß ist. Dies liegt daran, dass wir auch ein Leerzeichen zusammen mit den Sternen drucken. Dies verleiht unserem Muster ein vollendetes Aussehen und keinen überfüllten Ausdruck. Wir werden dies zu unserem Vorteil nutzen, wenn wir vollständige Pyramiden drucken.

Code

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

Ausgabe:

3. Star Half Pyramid - Inverted.

Bei diesem Pyramidenmuster nimmt die Anzahl der Sterne mit jeder neuen Zeile ab. Die erste Zeile hat 5 Sterne, die zweite Zeile hat 4 Sterne und so weiter.

Unter Berücksichtigung der Logik wissen wir, dass die äußere Schleife immer die Anzahl der Linien und die innere Schleife die Anzahl der Sterne steuern muss. Diese Logik kann nicht geändert werden. Was jedoch geändert werden kann, ist, wie wir die Schleifen starten, in aufsteigender oder absteigender Reihenfolge. Dies bedeutet, dass wir entweder eine Schleife von 0 bis 5 oder eine Schleife in absteigender Reihenfolge von 5 bis 0 ausführen können. Bei umgekehrten Mustern wie diesem wissen wir also, dass die Anzahl der Sterne in der ersten Zeile größer ist. Wir beschließen also, die Bestellschleifen zu verringern.

Code

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

Ausgabe:

4. Star Half Pyramid - Inverted Mirrored.

Dieses Muster ist eine eingerückte umgekehrte Halbpyramide. Die Anzahl der Sterne nimmt mit jeder Linie ab und die Sterne sind rechtsbündig.

Ich glaube, dass Sie jetzt in der Lage sind, die Logik für diesen einen zu erraten.

Code

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

Ausgabe:

5. Stern-Vollpyramide.

Dieses Muster druckt die gesamte Pyramide. Mit anderen Worten, es wird ein Dreieck aus Sternen auf dem Bildschirm gedruckt.

Dieses Muster ist im Wesentlichen eine Kombination aus Halbpyramide und ihrem Spiegel. Obwohl es eine leichte Drehung gibt, wenn wir es codieren. Besucht die Notiz in der gespiegelten halben Pyramide noch einmal. Erinnern Sie sich, wie wir doppelte Abstände verwendet haben, um unserem Muster ein fertiges Aussehen zu verleihen? Hier würden wir einen einfachen Abstand verwenden, damit die Sterne abwechselnd in ungeraden und geraden Reihen angeordnet werden und so ein echtes Dreiecksmuster erhalten.

Code

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

Ausgabe:

6. Star Diamond.

Dieses Muster druckt eine vollständige Rautenform auf den Bildschirm. Die Anzahl der Sterne erhöht sich bis zum festgelegten Maximum und verringert sich dann wieder auf 1, wodurch wir eine vollständige Rautenform erhalten.

Um dieses Muster zu drucken, müssten wir es in zwei Hälften teilen. Die obere Hälfte - die die zunehmende Anzahl von Sternen druckt. Die untere Hälfte - gibt die abnehmende Anzahl von Sternen aus. Um beide Hälften zu drucken, würden wir zwei äußere Schleifen und entsprechende innere Schleifen verwenden.

Code

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

Ausgabe:

7. Nummernmuster.

Für dieses Nummernmuster werden die Nummern in Bezug auf die Zeilennummer gedruckt. Somit würde die Ziffer 1 einmal, zweimal, dreimal und so weiter gedruckt.

Wenn Sie diesem Tutorial Zeile für Zeile gefolgt wären, müssen Sie die Arbeitsweise von verschachtelten Schleifen zum Drucken von Mustern inzwischen sehr gut verstanden haben. Dieses Muster folgt ebenfalls der gleichen Logik. Anstelle von Sternen drucken wir Zahlen. Nun fragen Sie, wie wir die Zahlen bekommen? Die Antwort ist einfach durch unsere Steuervariablen i und j.

Code

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

Ausgabe:

8. Zeichenmuster.

In diesem Muster würden wir die Buchstaben ABCDE in einem Muster drucken. Beginnend mit A, würden die folgenden Zeilen ein neues Alphabet zwischen den vorherigen Alphabeten einfügen.

Der einzige Trick in diesem Muster besteht darin, die Zeichen aus unseren Steuervariablen abzurufen. Dazu nutzen wir den ASCII-Wert der Zeichen. Der ASCII-Wert von A bis Z liegt zwischen 65 und 90 . Also berechnen wir den ASCII-Wert in jeder Iteration und geben das entsprechende Zeichen aus. Die chr () -Funktion in PHP wird verwendet, um ein Zeichen aus dem ASCII-Code zu drucken.

Code

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

Ausgabe:

Drucken Sie für vollständige Alphabete und das Muster sieht ziemlich cool aus.

9. Die binäre Sanduhr - Bonusmuster.

Dieses Muster ist ein dynamisches Muster, das die Sanduhr relativ zur verstrichenen Zeit druckt, jedoch keine tatsächliche Berechnung. Wenn beispielsweise eine Stunde verstrichen ist, wird in der oberen Hälfte eine Zeile mit 0 und in der unteren Hälfte eine Zeile mit 1 ausgegeben.

Code

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

Ausgabe: 1 Stunde ist vergangen.

Leistung: 2 Stunden sind vergangen.

Leistung: 3 Stunden sind vergangen.

Und so weiter.

Fazit

Es gibt viel mit Mustern zu spielen. Es geht darum, die Code-Logik im Auge zu behalten. Sobald Sie die Codelogik vollständig verstanden haben, gibt es kein Muster mehr, das Sie nicht drucken können.

Empfohlene Artikel

Dies war eine Anleitung zu Patterns in PHP. Hier haben wir Übersichten und Musterbeispiele in PHP mit Codes und Ausgaben besprochen. Sie können auch in unseren Artikeln nachlesen, um mehr zu erfahren.

  1. Was ist PHP?
  2. Variablen in PHP
  3. Konstruktor in PHP
  4. Einführung in PHP
  5. Übersicht über Muster in JavaScript
  6. Beispiele für rekursive PHP-Funktionen
  7. Zahlenmuster in Java | Beispiele mit Code-Implementierung