Увод у обрасце у ПХП-у

Шта је програмирање узорака у ПХП-у? Уметност је програмирања да се на екрану штампају некакви обрасци. Ово може бити низ бројева, слова или посебних знакова да би се формирао образац. Најједноставнији пример обрасца је Фибонаццијева серија (1, 1, 2, 3, 5, 8, 13, 21, 34 и тако даље). Затим су ту и други обрасци који су дизајнирани на екрану, рецимо пирамида звезда. Дакле, у основи програмирање узорака је једноставно штампање узорка на екрану.

У овом чланку користићемо ПХП за кодирање образаца. Не брините ипак. Једном када то схватите, само се синтакса разликује од језика до језика. Логика је увек иста.

Примери обрасца у ПХП-у

  • Пре скока право на програме, разумемо основну логику образаца кодирања. Обрасци се увијек програмирају кроз угнијежђене петље - углавном су угнијежђени за петље. То је зато што је петље синтактички лакше разумјети и сажетије.
  • Спољна петља се увек брине о броју линија. Рецимо, ако морате да штампате узорак који обухвата пет линија, спољна петља ће се увек покретати пет пута.
  • Унутрашња петља увек се односи на број елемената у свакој линији. Рецимо, ако морате да штампате 1 звезду у првом реду, две звездице у другој линији и тако даље, унутрашња петља би управљала овом логиком.
  • Овисно о обрасцу, понекад постоји више од једне унутрашње петље или три нивоа угнијежђених петљи. Такође, постоји укључивање размака и табулатора за производњу жељеног узорка.

Имајући то у виду, покушајмо сада да кодирамо обрасце.

1. Половна пирамида звезда.

Ово је најједноставнији образац за штампање. У наредним линијама штампа све већи број звезда. 1 звезда у првој линији, 2 звездице у другој линији и тако даље.

Кодирајмо овај образац за пет линија. Имајући у виду логику, наша спољашња петља радиће пет пута. Пошто је број звезда у свакој линији директно зависан од броја линије, наша унутрашња петља ће бити функција контролне променљиве у нашој спољној петљи. Да видимо како.

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

И тако даље. На овај начин контролирамо своју унутрашњу петљу на основу променљиве спољне петље. Погледајмо сада програм у акцији.

Код

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

Излаз:

2. Звезда половина пирамида - огледало.

Ово је слично пирамиди Звезде Пола, само што су звезде исправне.

Да бисмо постигли праву удубину, користили бисмо размаке, а затим исписали звезде. Дакле, постојале би две унутрашње петље - једна за контролу броја простора, а друга за контролу броја звезда.

Напомена: Имајте на уму да је број размака у к-петљи дупли размак. То је зато што исписујемо и један свемир заједно са звездама. То даје довршен изглед нашем узорку, а не загушеним отиском. То ћемо искористити за своју корист када исписујемо пуне пирамиде.

Код

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

Излаз:

3. Звезда половина пирамида - обрнуто.

За овај узорак пирамиде, број звезда се смањује са сваком новом линијом. Прва линија има 5 звездица, друга линија 4 звездице и тако даље.

Имајући у виду логику, знамо да спољна петља увек мора да контролише број линија, а унутрашња петља да контролише број звезда. Ову логику није могуће променити. Мада, оно што се може променити је како покрећемо петље, повећавајући или смањујући редослед. То значи да можемо или петљати са 0 на 5 или се петљати у опадајућем редоследу од 5 до 0. Дакле, за обрнути обрасце попут ове, знамо да је у првом реду број звезда више. Дакле, одлучујемо да смањимо петље налога.

Код

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

Излаз:

4. Звезда половина пирамида - обрнуто огледало.

Овај образац је разведена обрнута половина пирамида. Број звезда се смањује са сваком линијом и звезде су поравнате право.

Вјерујем да бисте до сада могли погодити логику овог.

Код

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

Излаз:

5. Звезда пуна пирамида.

Овај узорак штампа пуну пирамиду. Или другим ријечима, на екрану се исписује троугао са звијездама.

Овај образац је у основи комбинација Половне пирамиде и њеног огледала. Иако постоји благи заокрет када га кодирамо. Поново прочитајте биљешку у огледалној половици пирамиде. Сећате се како смо користили двоструки размак да бисмо добили готов изглед нашег узорка? Овде бисмо користили један размак тако да су звезде наизменично поредане у непарном и парном броју редова, што нам даје прави трокутни узорак.

Код

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

Излаз:

6. Стар Диамонд.

Овај узорак штампа комплетан облик дијаманата на екрану. Број звезда расте до максимално дефинисаног, а затим се смањује на 1, што нам даје облик дијаманата.

Да бисмо штампали овај образац, морали бисмо га поделити на две половине. Горња половина - која исписује све већи број звезда. Доња половина - која исписује опадајући број звезда. За испис обе половине користили бисмо две спољне петље и одговарајуће унутрашње петље.

Код

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

Излаз:

7. Број образаца.

За овај образац бројева исписат ћемо бројеве у односу на број реда. Дакле, цифра 1 би се штампала једном, 2 два пута, три пута и тако даље.

Ако бисте пратили овај водич по ред, до сада сте вероватно добро разумели рад угнијежђених петљи за штампање образаца. Овај образац такође следи исту логику. Уместо звезда штампамо бројеве. Сада се питате како долазимо до бројева? Одговор је - једноставно кроз наше контролне променљиве и и ј.

Код

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

Излаз:

8. Узорак карактера.

У овом обрасцу исписали бисмо абецеде АБЦДЕ у обрасцу. Полазећи од А, наредни редови би уносили нову абецеду у коју је забрањена претходна абецеда.

Једини трик у овом обрасцу је да добијемо ликове из наших контролних променљивих. То радимо тако што користимо АСЦИИ вредност ликова. АСЦИИ вредност од А до З је 65 до 90 . Дакле, израчунавамо АСЦИИ вредност у свакој итерацији и исписујемо одговарајући знак. Цхр () функција у ПХП-у користи се за испис знака из АСЦИИ кода.

Код

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

Излаз:

Штампајте за пуне абецеде, а узорак изгледа прилично цоол.

9. Бинарни пешчани сат - образац бонуса.

Овај образац је динамичан образац који штампа пешчане плочице у односу на протекло време, а не стварни прорачун. На пример, ако прође један сат, штампаће се један ред од 0 у горњој половини и један ред од 1 у доњој половини.

Код

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

Излаз: прошло је 1 сат

Излаз: прошла су 2 сата.

Резултат: 3 сата су прошла.

И тако даље.

Закључак

Пуно се може играти са узорцима. Све је у томе да се има на уму логика кода. Једном када потпуно схватите логику кода, не постоји образац који не можете исписати.

Препоручени чланци

Ово је водич за обрасце у ПХП-у. Овде смо расправљали о прегледима и примерима обрасца у ПХП-у са кодовима и излазима. Можете и да прођете кроз наше дате чланке да бисте сазнали више -

  1. Шта је ПХП?
  2. Променљиве у ПХП-у
  3. Конструктор у ПХП-у
  4. Увод у ПХП
  5. Преглед образаца у ЈаваСцрипт-у
  6. Примери ПХП рекурзивне функције
  7. Број образаца на Јави | Примери примене кода

Категорија: