Модели в PHP - Прегледи - 9 Примери за модел в PHP

Съдържание:

Anonim

Въведение в моделите в PHP

Какво е модел за програмиране в PHP? Изкуството на програмирането е да се отпечатва някакъв шаблон на екрана. Това може да бъде поредица от цифри, букви или специални знаци, които да образуват шаблон. Най-простият пример за модел е серията на Фибоначи (1, 1, 2, 3, 5, 8, 13, 21, 34 и така нататък). След това има други модели, които са дизайн на екрана, да речем пирамида от звезди. Така че, основно програмирането на модели е просто отпечатване на шаблон на екрана.

За тази статия ще използваме PHP за кодиране на моделите. Не се притеснявайте обаче. След като разберете, че синтаксисът варира от език на език. Логиката винаги е една и съща.

Примери за модел в PHP

  • Преди да скочим право върху програмите, нека разберем основната логика на кодирането на модели. Моделите винаги се програмират чрез вложени контури - най-вече вложени за контури. Това е така, защото контурите са синтактично по-лесни за разбиране и сбитост.
  • Външният контур винаги се отнася до броя на линиите. Да речем, ако трябва да отпечатате шаблон, обхващащ пет реда, външният цикъл винаги ще се изпълнява пет пъти.
  • Вътрешният цикъл винаги се занимава с броя на елементите във всеки ред. Да речем, ако трябва да отпечатате 1 звезда в първия ред, 2 звезди във втория ред и т.н., вътрешният цикъл ще контролира тази логика.
  • В зависимост от модела, понякога има повече от една вътрешна бримка или три нива на вложени контури. Също така, има участие на интервали и раздели, за да се получи желаният модел.

Така че, имайки предвид всичко това, нека се опитаме да кодираме моделите сега.

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. Звездна полупирамида - огледална.

Това е подобно на Star Half Pyramid, само че звездите са правилно подравнени.

За да постигнем правилния отстъп, ще използваме интервали и след това ще отпечатваме звезди. Така че ще има две вътрешни контури - една за контрол на броя на пространствата, а друга за контрол на броя на звездите.

Забележка: Имайте предвид, че броят на интервалите в k-контура е двойно пространство. Това е така, защото отпечатваме и едно пространство, както и звездите. Това придава завършен вид на нашия модел, а не задръстен печат. Ще използваме това за нашия лост, когато отпечатваме пълни пирамиди.

код

<_?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 два пъти, 3 три пъти и така нататък.

Ако щяхте да следвате този урок ред по ред, досега сигурно сте разбрали много добре работата на вложени цикли за отпечатване на модели. Този модел също следва същата логика. Вместо звезди отпечатваме числа. Сега питате как да вземем числата? Отговорът е - просто чрез нашите контролни променливи i и j.

код

<_?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. Модел на характера.

В този шаблон щяхме да отпечатваме азбуките ABCDE по образец. Започвайки с A, следващите редове ще въведат нова азбука, запечатана между предишните азбуки.

Единственият трик в този модел е да вземем героите от нашите контролни променливи. Правим това, като използваме ASCII стойността на знаците. ASCII стойността от A до Z е 65 до 90 . Така че, изчисляваме стойността на ASCII при всяка итерация и отпечатваме съответния символ. Функцията chr () в PHP се използва за отпечатване на символ от ASCII кода.

код

<_?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. Моделът с двоен часовник - бонус.

Този модел е динамичен модел, който отпечатва часовниците спрямо изминалото време, но не е действително изчисление. Например, ако изтече един час, той ще отпечата един ред от 0s в горната половина и един ред от 1s в долната половина.

код

<_?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 часа са изминали

И така нататък.

заключение

Има много да се играе с шарки. Всичко е в това да се има предвид логиката на кода. След като напълно разберете логиката на кода, няма шаблон, който не можете да отпечатате.

Препоръчителни статии

Това е ръководство за Моделите в PHP. Тук сме обсъдили Прегледи и примери за Pattern в PHP с кодове и изход. Можете също да прегледате нашите статии, за да научите повече-

  1. Какво е PHP?
  2. Променливи в PHP
  3. Конструктор в PHP
  4. Въведение в PHP
  5. Преглед на шаблоните в JavaScript
  6. Примери за PHP рекурсивна функция
  7. Брой шаблони в Java | Примери с изпълнение на код