Muster in PHP

王林
王林Original
2024-08-29 13:11:271311Durchsuche

Was ist Musterprogrammierung in PHP? Es ist eine Kunst des Programmierens, eine Art Muster auf dem Bildschirm zu drucken. Dabei kann es sich um eine Reihe von Zahlen, Buchstaben oder Sonderzeichen handeln, die ein Muster 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 noch andere Muster, bei denen es sich um Designs auf dem Bildschirm handelt, beispielsweise eine Sternenpyramide. Im Grunde besteht die Musterprogrammierung also einfach darin, ein Muster auf dem Bildschirm auszudrucken.

WERBUNG Beliebter Kurs in dieser Kategorie PHP-ENTWICKLER - Spezialisierung | 8-Kurs-Reihe | 3 Probetests

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Für diesen Artikel würden wir PHP zum Codieren der Muster verwenden. Machen Sie sich aber keine Sorgen. Sobald Sie den Dreh raus haben, ist es nur noch die Syntax, die von Sprache zu Sprache unterschiedlich ist. Die Logik ist immer dieselbe.

Beispiele für Muster in PHP

  • Bevor wir uns direkt mit den Programmen befassen, wollen wir die grundlegende Logik von Codierungsmustern verstehen. Muster werden immer durch verschachtelte Schleifen programmiert – meist verschachtelte for-Schleifen. Dies liegt daran, dass Schleifen syntaktisch einfacher zu verstehen und prägnanter sind.
  • Die äußere Schleife befasst sich immer mit der Anzahl der Zeilen. Nehmen wir also an, wenn Sie ein Muster drucken müssen, das sich über fünf Zeilen erstreckt, wird die äußere Schleife immer fünf Mal durchlaufen.
  • Die innere Schleife befasst sich immer mit der Anzahl der Elemente in jeder Zeile. Nehmen wir also an, wenn Sie 1 Stern in der ersten Zeile, 2 Sterne in der zweiten Zeile usw. drucken müssen, würde die innere Schleife diese Logik steuern.
  • Je nach Muster gibt es manchmal mehr als eine innere Schleife oder drei Ebenen verschachtelter Schleifen. Außerdem sind Leerzeichen und Tabulatoren erforderlich, um das gewünschte Muster zu erzeugen.

Wenn wir das alles im Hinterkopf haben, versuchen wir jetzt, die Muster zu codieren.

1. Sternhalbpyramide

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

Muster in PHP

Kodieren 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 –> <em>j </em>=<em> 0</em>
Print star
Outer loop iteration 2  –> i<em> = 1</em>
Inner loop iteration 1 –> <em>j</em><em> =</em><em> 0</em>
Print Star
Inner loop iteration 2 -> <em>j</em> =<em> 1
</em>Print Star
Outer loop iteration 3  –> <em>i</em> =<em> 2
</em>Inner loop iteration 1 –> <em>j =</em> 0
Print Star
Inner loop iteration 2 -> <em>j = 1
</em>Print Star
Inner loop iteration 3 -> <em>j = 2
</em>Print Star

Und so weiter. Auf diese Weise steuern wir unsere innere Schleife basierend auf der Steuervariablen der äußeren 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:

Muster in PHP

2. Stern-Halbpyramide – gespiegelt

Dies ähnelt der Sternhalbpyramide, außer dass die Sterne rechtsbündig sind.

Muster in PHP

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

Hinweis: Bedenken Sie, dass die Anzahl der Leerzeichen in der k-Schleife doppelt so hoch ist. Dies liegt daran, dass wir zusammen mit den Sternen auch ein einzelnes Leerzeichen drucken. Dies verleiht unserem Muster ein fertiges Aussehen und keinen verstopften Druck. 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:

Muster in PHP

3. Sternhalbpyramide – Umgedreht

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

Muster in PHP

Unter Berücksichtigung der Logik wissen wir, dass die äußere Schleife immer die Anzahl der Zeilen und die innere Schleife die Anzahl der Sterne steuern muss. Diese Logik kann nicht geändert werden. Was jedoch geändert werden kann, ist die Art und Weise, wie wir die Schleifen starten, in aufsteigender oder absteigender Reihenfolge. Das bedeutet, dass wir entweder eine Schleife von 0 bis 5 oder eine Schleife in absteigender Reihenfolge von 5 bis 0 durchführen können. Bei umgekehrten Mustern wie diesem wissen wir also, dass die Anzahl der Sterne in der ersten Zeile höher ist. Daher entscheiden wir uns dafür, die Ordnungsschleifen 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:

Muster in PHP

4. Star Half Pyramid– Inverted Mirrored

This pattern is an indented inverted half pyramid. The number of stars decreases with each line and stars are right-aligned.

Muster in PHP

I believe by now you would be able to guess the logic for this one.

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

Output:

Muster in PHP

5. Star Full Pyramid

This pattern prints the full pyramid. Or in other words, it prints a triangle of stars on the screen.

Muster in PHP

This pattern is essentially a combination of Half pyramid and its mirror. Although there is a slight twist when we code it. Revisit the Note in Mirrored Half Pyramid. Remember, how we used double spacing to give a finished look to our pattern? Here we would use single spacing so that the stars are alternately aligned in odd and even number of rows, giving us a true triangular pattern.

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

Output:

Muster in PHP

6. Star Diamond

This pattern prints a complete diamond shape on the screen. The number of stars increases until the maximum defined and then decrease back to 1, giving us a full diamond shape.

Muster in PHP

To print this pattern, we would need to divide the pattern into two halves. The upper half – which prints the increasing number of stars. The lower half– which prints the decreasing number of stars. To print both the halves, we would use two outer loops and corresponding inner loops.

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

Output:

Muster in PHP

7. Number Pattern

For this number pattern, we will print the numbers in relation to the row number. Thus, digit 1 would be printed once, 2 twice, 3 thrice and so on.

Muster in PHP

If you would have followed this tutorial line by line, by now you must have understood very well the working of nested loops to print patterns. This pattern also follows the same logic. Instead of stars, we print numbers. Now you ask how do we get the numbers? The answer is- simply through our control variables i and 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);
?>

Output:

Muster in PHP

8. Character Pattern

In this pattern, we would print the alphabets ABCDE in a pattern. Starting with A, the subsequent rows would introduce a new alphabet sandwiched between the previous alphabets.

Muster in PHP

The only trick in this pattern is to get the characters from our control variables. We do this by leveraging the ASCII value of the characters. The ASCII value of A to Z is 65 to 90. So, we calculate the ASCII value in each iteration and print the corresponding character. The chr() function in PHP is used to print a character from the ASCII code.

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

Output:

Muster in PHP

Print for full alphabets and the pattern looks pretty cool.

Muster in PHP

9. The Binary Hourglass– Bonus Pattern

This pattern is a dynamic pattern that prints the hourglass relative to the time elapsed, not an actual calculation though. For e.g., if one hour has elapsed, it will print one line of 0s in the upper half and one line of 1s in the lower half.

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

Output: 1 hour has elapsed.

Muster in PHP

Output: 2 hours have elapsed.

Muster in PHP

Output: 3 hours have elapsed.

Muster in PHP

And so on.

Conclusion

There is a lot to play with patterns. It’s all about keeping the code logic in mind. Once you get the code logic completely understood, there is no pattern you can’t print.

Das obige ist der detaillierte Inhalt vonMuster in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Zeitstempel bis Datum in PHPNächster Artikel:Zeitstempel bis Datum in PHP