Johdatus PHP: n malleihin
Mikä on PHP: n ohjelmointiohjelma? Ohjelmointi on taito tulostaa jonkinlainen kuvio näytölle. Tämä voi olla sarja numeroita, kirjaimia tai erikoismerkkejä kuvion muodostamiseksi. Yksinkertaisin esimerkki kuviosta on Fibonacci-sarja (1, 1, 2, 3, 5, 8, 13, 21, 34 ja niin edelleen). Sitten on muitakin kuvioita, jotka ovat näytöllä kuvioita, sanovat esimerkiksi pyramidi tähtiä. Joten periaatteessa kuvio-ohjelmointi on yksinkertaisesti kuvion tulostamista näytölle.
Tätä artikkelia varten käytämme PHP: tä koodien koodaamiseen. Älä kuitenkaan huolestu. Kun olet hankkinut sen, vain syntaksi vaihtelee kielittäin. Logiikka on sama, aina.
Esimerkkejä kuviosta PHP: ssä
- Ennen kuin hyppäät suoraan ohjelmiin, ymmärrämme koodauskuvioiden peruslogiikka. Kuviot ohjelmoidaan aina sisäkkäisten silmukoiden kautta - useimmiten sisäkkäin silmukoiden kanssa. Tämä johtuu siitä, että silmukat ovat syntaktisesti helpompi ymmärtää ja ytimekäs.
- Ulompi silmukka koskee aina rivien lukumäärää. Oletetaan, että jos joudut tulostamaan viiden rivin kuvion, ulkoinen silmukka kulkee aina viisi kertaa.
- Sisempi silmukka koskee aina kunkin rivin elementtien lukumäärää. Oletetaan siis, että jos sinun on tulostettava 1 tähti ensimmäiselle riville, 2 tähteä toiselle riville ja niin edelleen, sisäinen silmukka hallitsee tätä logiikkaa.
- Kuviosta riippuen joskus on enemmän kuin yksi sisäinen silmukka tai kolme tasoa sisäkkäisiä silmukoita. Lisäksi on olemassa välilyöntejä ja välilehtiä halutun kuvion tuottamiseksi.
Joten pitämällä tämä kaikki mielessä, yritetään koodata mallit nyt.
1. Tähtipuoli pyramidi.
Tämä on yksinkertaisin tulostettava kuvio. Se tulostaa yhä enemmän tähtiä seuraavilla riveillä. 1 tähti ensimmäisellä rivillä, 2 tähteä toisella rivillä ja niin edelleen.
Koodataan tämä malli viidelle riville. Pidämme logiikan mielessä, ulkoinen silmukka toimii viisi kertaa. Koska kunkin rivin tähtien lukumäärä riippuu suoraan rivinumeroista, sisäinen silmukka tulee olemaan ulkosilmukassamme olevan säätömuuttujan funktio. Katsotaan kuinka.
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
Ja niin edelleen. Näin hallitsemme sisäpiiriä ulkoisten silmukoiden ohjausmuuttujan perusteella. Katsotaanpa ohjelma nyt toiminnassa.
Koodi
<_?phpfunction 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);
?>
lähtö:
2. Tähtipuoli pyramidi - peilattu.
Tämä on samanlainen kuin Tähtipuoli-pyramidi, paitsi että tähdet ovat oikein kohdistettuja.
Oikean sisennyksen saavuttamiseksi käytämme välilyöntejä ja tulostamme sitten tähdet. Joten, siellä olisi kaksi sisäistä silmukkaa - yksi ohjaamaan välilyöntien määrää ja toinen - tähtijen määrää.
Huomaa: Muista yksi asia, että k-silmukan välilyönti on kaksinkertainen. Tämä johtuu siitä, että tulostamme yhden tilan yhdessä tähtiä kanssa. Tämä antaa kuvioillemme lopullisen ilmeen ruuhkaisen tulosteen sijaan. Käytämme tätä vipuvaikutuksemme tulostaessamme kokonaisia pyramidia.
Koodi
<_?phpfunction 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);
?>
lähtö:
3. Tähtipuolinen pyramidi - käänteinen.
Tähän pyramidi-malliin kuuluvien tähteiden lukumäärä vähenee jatkuvasti jokaisella uudella rivillä. Ensimmäisellä rivillä on 5 tähteä, toisella rivillä on 4 tähteä ja niin edelleen.
Pidämme logiikan mielessä, että tiedämme, että ulomman silmukan on aina ohjattava linjojen määrää ja sisäisen silmukan on valvottava tähtien lukumäärää. Tätä logiikkaa ei voida muuttaa. Voidaan kuitenkin muuttaa, kuinka aloitamme silmukkaa, kasvattamalla tai vähentämällä järjestystä. Tämä tarkoittaa, että voimme joko silmukka 0: sta 5: een tai silmukka vähenevässä järjestyksessä välillä 5: stä. Joten tällaisten käänteisten kuvioiden tapauksessa tiedämme, että tähtiä on enemmän ensimmäisellä rivillä. Joten valitsemme vähentää tilaussilmukoita.
Koodi
<_?phpfunction 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);
?>
lähtö:
4. Tähtipuoli pyramidi - käänteinen peilattu.
Tämä kuvio on sisennetty käänteinen puolipyramidi. Tähtien lukumäärä pienenee jokaisella viivalla ja tähdet ovat kohdistettu oikein.
Uskon, että nyt voisit arvata tämän logiikan.
Koodi
<_?phpfunction 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);
?>
lähtö:
5. Täysi pyramidi.
Tämä kuvio tulostaa koko pyramidin. Tai toisin sanoen, se tulostaa tähti kolmion näytölle.
Tämä kuvio on olennaisesti yhdistelmä Half-pyramidia ja sen peiliä. Vaikka meillä on pieni käänne, kun koodaamme sitä. Käy muistiinpanossa peilatussa puolikkaassa. Muista, kuinka kaksoisväliä käytimme kuvion lopulliseen ilmeeseen? Käytämme tässä yksittäistä etäisyyttä siten, että tähdet ovat vuorotellen parittomat ja parilliset rivimäärät, mikä antaa meille todellisen kolmion kuvion.
Koodi
<_?phpfunction 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);
?>
lähtö:
6. Täht Diamond.
Tämä kuvio tulostaa täydellisen timantin muodon näytölle. Tähtien lukumäärä kasvaa määriteltyyn enimmäismäärään asti ja vähenee sitten takaisin arvoon 1, jolloin saadaan täysi timantin muoto.
Tämän kuvion tulostamiseksi meidän on jaettava kuvio kahteen puolikkaaseen. Yläosa - joka tulostaa kasvavan määrän tähtiä. Alempi puoli - joka tulostaa vähenevän tähdet. Tulostamme molemmat puoliskot käyttämällä kahta ulompaa silmukkaa ja vastaavia sisäpiirejä.
Koodi
<_?phpfunction 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);
?>
lähtö:
7. Numerokuvio.
Tulostamme tätä numerokaaviota varten numerot suhteessa rivinumeroon. Siten numero 1 tulostetaan kerran, 2 kahdesti, 3 kolme kertaa ja niin edelleen.
Jos olisit seurannut tätä opetusohjelmaa rivi riviltä, jo nyt sinun on ymmärrettävä hyvin sisäkkäisten silmukoiden toiminta kuvioiden tulostamiseen. Tämä malli noudattaa myös samaa logiikkaa. Tähtien sijasta tulostamme numeroita. Nyt kysyt, kuinka saamme numerot? Vastaus on yksinkertaisesti ohjausmuuttujien i ja j kautta.
Koodi
<_?phpfunction 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);
?>
lähtö:
8. Merkkikuvio.
Tulostamme tässä kuviossa ABCDE-aakkoset kuvioon. A-merkinnästä alkaen seuraavat rivit ottavat käyttöön uuden aakkosten kerrostettuina edellisten aakkosten väliin.
Ainoa temppu tässä kuviossa on saada merkkejä ohjausmuuttujista. Teemme tämän hyödyntämällä merkkien ASCII-arvoa. ASCII-arvo välillä A - Z on 65 - 90 . Joten laskemme ASCII-arvon jokaisessa iteraatiossa ja tulostamme vastaavan merkin. Chr () -toimintoa PHP: ssä käytetään merkin tulostamiseen ASCII-koodista.
Koodi
<_?phpfunction 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);
?>
lähtö:
Tulosta täydet aakkoset ja kuvio näyttää aika siistiltä.
9. Binaarinen tiimalasi - bonuskuvio.
Tämä kuvio on dynaaminen kuvio, joka tulostaa tiimalasin suhteessa kuluneeseen aikaan, mutta ei tosiasiallista laskelmaa. Esimerkiksi, jos yksi tunti on kulunut, se tulostaa yhden 0-rivin yläosaan ja yhden 1-rivin alaosaan.
Koodi
<_?phpfunction 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);
?>
Lähtö: 1 tunti on kulunut.
Lähtö: 2 tuntia on kulunut.
Lähtö: 3 tuntia on kulunut.
Ja niin edelleen.
johtopäätös
Kuvioilla on paljon leikkiä. Kyse on koodilogiikan pitämisestä mielessä. Kun koodilogiikka on täysin ymmärretty, kuviota ei voi tulostaa.
Suositellut artikkelit
Tämä on opas kuvioihin PHP: ssä. Tässä olemme keskustelleet yleiskatsauksista ja esimerkkeistä PHP: n malleista koodeilla ja tuotoksilla. Voit myös käydä annettujen artikkeleidemme läpi oppiaksesi lisää-
- Mikä on PHP?
- Muuttujat PHP: ssä
- Rakentaja PHP: llä
- Johdanto PHP: hen
- Katsaus JavaScriptin malleihin
- Esimerkkejä PHP-rekursiivisesta toiminnosta
- Lukumallit Java: ssa | Esimerkkejä koodin toteutuksesta