Ap/Py/Figūrų konstravimas

Iš wiki.angis.net.
Jump to navigation Jump to search

Pilnas šios treniruotės Python kodas yra čia

Užduočių su figūromis nauda

Žinioms apie ciklus įtvirtinti gerai tinka simbolių dėliojimo pratimai, kai priklausomai nuo pasirinktos figūros pačiam mokiniui reikia atrasti simbolių kitimo dėsnius. Gerai įtvirtinamas ir parametrų supratimas, kai sprendimas konstruojamas ne konkrečiam dydžiui, o apibendrintam. Tada keičiant parametrus galima paprastai keisti figūros vaizdą. Programos derinimas yra vaizdus, padaryti netikslumai aiškiai matomi ir lengvai taisomi. Pačias užduotis formuluoti yra lengva, pakanka pateikti figūros vaizdą.

Figvaizdai.jpg

Tokiems uždaviniams yra daug sprendimų internete, tai galima palyginti savo sprendimo efektyvumą su kitais sprendimais. Mokiniams reikia siekti galimai paprastesnio ir aiškesnio sprendimo, gana greitai susifomuoja tipiniai sprendimo ir derinimo įgūdžiai.

Operacijos su simboliais

Pamokos pradžioje supažindima su + ir * operacijomis, kurios Pythono kalboje yra naudojamos tiek su skaičiais, tiek su simboliais. Sudėties operacija simbolinių kintamųjų atveju atlieka tiesiog simbolių sujungimą. Ypač patogi daugybos operacija, kai atliekamas simbolių eiluės pakartojimas nuorodytą kartų skaičių. Tai naudinga, kai reikia suformuoti skirtingų ilgių simbolių eilutes. Simbolių eilutės nuosekliam ilginimui tinka += operacija. Susipažinkite su šios funkcijos veikimo rezultatais.

def demo_veiksmai(a, b, c, kiek_kartų):
    rez1 = a + b + c
    rez2 = rez1 * kiek_kartų
    print(f"{rez1=} | {rez2=}")

Toliau sekančios programos eilutės rodo, kad dauginant iš skaičiaus, kuris yra neigiamas arba lygus nuliui, nesuformuojama jokia eilutė. Atkreipkite dėmesį kaip yra formuojamos veidrodinio atspindžio eilutės.

Pirmieji pavyzdžiai

Pradedame nuo paprasčiausių stačiakampių. Programų pavyzdžiuose naudojami tokie kintamieji:

  • es - empty_symbol - tuščios vietos simbolis. Juo gali būti tarpas, taškas, minusas, Jį patogu naudoti, kad vizualiai pamatyti, ar teisingai konstruojamos figūros;
  • fs - fill_symbol - pildymo simbolis, kuris parenkamas pagal figūros siluetą. Dažnai būna *, #, X, O, / ar \. Tokiu būdu yra gaunama išraiškingesnė figūra 🙂;
  • w, h - width, height - reiškia figūros plotį ir aukštį;

Pastaba: norint užrašyti atvirkščią pasvirusį brūkšnį \ (back_slash), jį tenka rašyti du kartus kadangi simbolių rašyboje yra sutarta, jog visų nematomų simbolių rašyboje naudojamas \ ženklas (pvz. naujos eilutės simbolis '\n').

Formuojant stačiakampį pakanka suformuoti reikiamo ilgio eilutę ir ją atspausdinti tiek kartų, koks yra aukštis. Šiuo atveju ciklo kintamojo nereikia ir jo vietoje rašomas pabraukimo simbolis.

Tuo tarpu formuojant lygiagretainius, kiekvieną eilutę reikia pastumti į šoną ir čia praverčia simbolių daugybos operacija. Kad būtų aiškiau, kievienoje eilutėje dar parodoma indekso reikšmė

Rekomenduojamos užduotys

Pačiame programos tekste jau įdėta nuoroda į rekomenduojamus pavzdžius: [1]

Ši tema skatina ir mokinių savarankiškumą, galima pasižiūrėti sprendimų ir kitomis programavimo kalbomis. Tam pakanka į Google paiešką įvesti žodius „Program pattern“, įsijungti vaizdų režimą ir pasirinkti patikusius sprendimus. Būtent todėl šioje temoje yra skatinama naudoti angliškus figūrų pavadinimus. Dar įdomi užduotis yra šachmatų lentos spausdinimas, kai modeliuojama juodo ir balto langelio kaita. Šią užduotį galima atlikti keliais būdais, rašant skirtingas funkcijas.

Labiau motyvuotiems mokiniams tinka ir sudėtingesnės figūros: [2] [3] [4]
O gal pavyks sukurti ir originalų lietuvišką piešinį 🙂.
Toliau galite rasti dar užduočių ir sprendimų:

Šablonai sprendimui  
*
**
***
****
*****
+\
+\+\
+\+\+\
+\+\+\+\
+\+\+\+\+\
+\+\+\+\+\+\
+\+\+\+\+\+\+\
>>
>>>>
>>>>>>
>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>>>
>>>>
>>
    <
   <<
  <<<
 <<<<
<<<<<
 <<<<
  <<<
   <<
    <
      #           #           #           #           #      
     ###         ###         ###         ###         ###     
    #####       #####       #####       #####       #####    
   #######     #######     #######     #######     #######   
  #########   #########   #########   #########   #########  
 ########### ########### ########### ########### ########### 
  #########   #########   #########   #########   #########  
   #######     #######     #######     #######     #######   
    #####       #####       #####       #####       #####    
     ###         ###         ###         ###         ###     
      #           #           #           #           #      
      O           O           O           O           O      
     O O         O O         O O         O O         O O     
    O   O       O   O       O   O       O   O       O   O    
   O     O     O     O     O     O     O     O     O     O   
  O       O   O       O   O       O   O       O   O       O  
 O         O O         O O         O O         O O         O 
O           O           O           O           O           O
Galimas sprendimas  

Sprendimus rasite čia.

Turinys