Kā iemācÄ«t pārvarēt grÅ«tÄ«bas un tajā paŔā laikā rakstÄ«t ciklus

Neskatoties uz to, ka mēs runāsim par vienu no pamattēmām, Å”is raksts ir rakstÄ«ts pieredzējuÅ”iem speciālistiem. MērÄ·is ir parādÄ«t, kādi nepareizi priekÅ”stati ir iesācējiem programmÄ“Å”anas jomā. Praktiskiem izstrādātājiem Ŕīs problēmas jau sen ir atrisinātas, aizmirstas vai vispār nav pamanÄ«tas. Raksts var noderēt, ja pēkŔņi kādam jāpalÄ«dz ar Å”o tēmu. Rakstā tiek vilktas paralēles ar materiālu no dažādām Å ilda, Stroustrup, Okulova grāmatām par programmÄ“Å”anu.

Tēma par cikliem izvēlēta tāpēc, ka, apgÅ«stot programmÄ“Å”anu, no tās tiek izslēgti diezgan daudzi.

Å Ä« tehnika ir paredzēta vājiem skolēniem. Parasti stipri cilvēki Å”ajā tēmā neiespringst un viņiem nav jāizdomā Ä«paÅ”i paņēmieni. Raksta sekundārais mērÄ·is ir pārvietot Å”o paņēmienu no klases ā€œdarbi visiem skolēniem, bet tikai vienam skolotājamā€ uz klasi ā€œdarbi visiem skolēniem, visiem skolotājiemā€. Es nepretendēju uz absolÅ«tu oriÄ£inalitāti. Ja jÅ«s jau izmantojat lÄ«dzÄ«gu metodiku, lai mācÄ«tu Å”o tēmu, lÅ«dzu, uzrakstiet, kā jÅ«su versija atŔķiras. Ja nolemjat to izmantot, pastāstiet mums, kā tas gāja. Ja lÄ«dzÄ«gs paņēmiens ir aprakstÄ«ts grāmatā, lÅ«dzu, ierakstiet nosaukumu.


Pie Ŕīs tehnikas strādāju 4 gadus, individuāli mācoties ar dažāda lÄ«meņa sagatavotÄ«bas audzēkņiem. Kopumā ir ap piecdesmit skolēnu un divi tÅ«kstoÅ”i stundu nodarbÄ«bu. Sākumā skolēni vienmēr iestrēga pie Ŕīs tēmas un aizgāja. Pēc katra studenta tika koriģēta metodika un materiāli. Pēdējā gada laikā skolēni vairs nav iestrēguÅ”i pie Ŕīs tēmas, tāpēc nolēmu padalÄ«ties ar saviem atklājumiem.

Kāpēc tik daudz burtu? Cik elementāri ir!

Kā jau rakstÄ«ju iepriekÅ”, praktizējoÅ”iem izstrādātājiem un spēcÄ«giem studentiem cilpu jēdziena sarežģītÄ«bu var nenovērtēt. Piemēram, jÅ«s varat lasÄ«t garu lekciju, redzēt galvas, kas pamāja ar galvu, un saprātÄ«gas acis. Bet, mēģinot atrisināt jebkuru problēmu, sākas stupors un neizskaidrojamas problēmas. Pēc lekcijas studentiem, iespējams, bija tikai daļēja izpratne. Situāciju pasliktina tas, ka skolēni paÅ”i nevar izteikties, kas Ä«sti ir viņu maldiem.
Kādu dienu es sapratu, ka skolēni manus piemērus uztver kā hieroglifus. Tas ir, piemēram, nedalāmi teksta gabali, kuriem jāpievieno kāds ā€œburvjuā€ burts, un tas darbosies.
Dažkārt es pamanÄ«ju, ka studenti domā, ka, lai atrisinātu konkrētu problēmu, jums ir nepiecieÅ”ams kaut kas cits dizains, ko es vienkārÅ”i vēl neesmu aptvēris. Lai gan risinājums prasÄ«ja tikai nelielu piemēra modifikāciju.

Tāpēc man radās doma, ka uzmanÄ«bas centrā nevajadzētu bÅ«t izteiksmju sintaksi, bet gan idejai par atkārtota koda pārstrukturÄ“Å”anu, izmantojot cilpas. Kad skolēni ir apguvuÅ”i Å”o ideju, jebkuru sintaksi var uzlabot ar nelielu praksi.

Kam un kāpēc es mācu?

Tā kā iestājpārbaudījumu nav, klasēs var būt gan spēcīgi, gan ļoti vāji skolēni. Vairāk par maniem studentiem varat lasīt rakstā Vakara kursu studentu portrets
Es centos nodroÅ”ināt, lai visi, kas vēlas apgÅ«t programmÄ“Å”anu, to varētu apgÅ«t.
Manas nodarbÄ«bas notiek individuāli un par katru skolēns maksā savu naudu. Å Ä·iet, ka studenti optimizēs izmaksas un prasÄ«s minimumu. Taču cilvēki uz klātienes nodarbÄ«bām pie dzÄ«vā skolotāja dodas nevis paÅ”u zināŔanu, bet gan pārliecÄ«bas par apgÅ«to, progresa sajÅ«tas un eksperta (skolotāja) apstiprinājuma dēļ. Ja skolēni nejÅ«t progresu savās mācÄ«bās, viņi aizies. Kopumā nodarbÄ«bas var strukturēt tā, lai skolēni sajustu progresu pazÄ«stamo struktÅ«ru skaita palielināŔanā. Tas ir, vispirms mācāmies kamēr sÄ«ki, tad mācāmies, tad darām kamēr, un tagad mums ir gatavs tÅ«kstoÅ” un vienas nakts kurss, kurā divus mēneÅ”us tiek apgÅ«ti cikli vien un beigās - students, kurÅ” rakstÄ«ja. standarta bibliotēka ar diktātu. Taču, lai risinātu praktiskas problēmas, nepiecieÅ”amas ne tikai materiāla zināŔanas, bet arÄ« neatkarÄ«ba tā pielietoÅ”anā un jaunas informācijas meklÄ“Å”anā. Tāpēc klātienes kursiem, manuprāt, pareizs princips ir mācÄ«t minimumu un rosināt patstāvÄ«gi apgÅ«t nianses un saistÄ«tās tēmas. Cilpu tēmā par minimumu uzskatu konstrukciju while. Principu no tā var saprast. Zinot principu, jÅ«s varat apgÅ«t gan priekÅ” sevis, gan darÄ«Å”anas.

Lai vāji studenti apgÅ«tu materiālu, nepietiek ar sintakses aprakstu. Ir nepiecieÅ”ams sniegt vienkārŔākus, bet daudzveidÄ«gākus uzdevumus un sÄ«kāk aprakstÄ«t piemērus. Galu galā attÄ«stÄ«bas ātrumu ierobežo skolēna spēja pārveidot izteiksmes un meklēt modeļus. Gudrajiem studentiem lielākā daļa uzdevumu bÅ«s garlaicÄ«gi. Mācoties ar viņiem, jums nav jāuzstāj uz 100% problēmu atrisināŔanu. Manu materiālu var apskatÄ«t mans githubs. Tiesa, krātuve drÄ«zāk atgādina burvju grimuāru - neviens cits, izņemot mani, nesapratÄ«s, kas kur atrodas, un, ja neizdosies čekā, vari trakot

Metodoloģija ir orientēta uz praksi

Teorija tiek skaidrota, izmantojot problēmas risināŔanas piemēru. ProgrammÄ“Å”anas pamatu stundās, kur māca zarus un cilpas, veselas stundas garumā nolasÄ«t noderÄ«gu lekciju par vienu tēmu vienkārÅ”i nav iespējams. Jēdziena izskaidroÅ”anai pietiek ar 15-20 minÅ«tēm. Galvenās grÅ«tÄ«bas rodas, veicot praktiskos uzdevumus.
Iesācēji skolotāji var noburkŔķēt operatorus, zarus, cilpas un masÄ«vus vienā lekcijā. Taču viņu skolēni saskarsies ar Ŕīs informācijas asimilācijas problēmu.
NepiecieŔams ne tikai izstāstīt materiālu, bet arī pārliecināties, ka klausītāji to saprot.

Tēmas apguves faktu nosaka tas, kā students tiek galā ar patstāvīgo darbu.
Ja skolēnam izdevās atrisināt uzdevumu par tēmu bez skolotāja palÄ«dzÄ«bas, tad tēma ir apgÅ«ta. Lai nodroÅ”inātu paÅ”pārbaudi, katrs uzdevums ir aprakstÄ«ts tabulā ar testa scenārijiem. Uzdevumiem ir skaidra secÄ«ba. Nav ieteicams izlaist uzdevumus. Ja paÅ”reizējais uzdevums ir pārāk grÅ«ts, tad pāriet uz nākamo ir bezjēdzÄ«gi. Tas ir vēl sarežģītāk. Lai students varētu apgÅ«t paÅ”reizējo sarežģīto uzdevumu, viņam tiek izskaidroti vairāki paņēmieni, izmantojot pirmās problēmas piemēru. PatiesÄ«bā viss tēmas saturs ir atkarÄ«gs no grÅ«tÄ«bu pārvarÄ“Å”anas paņēmieniem. Cikli ir vairāk blakusparādÄ«ba.

Pirmais uzdevums vienmēr ir piemērs. Otrais nedaudz atŔķiras un tiek izpildÄ«ts ā€œpatstāvÄ«giā€ uzreiz pēc pirmās skolotāja uzraudzÄ«bā. Visi turpmākie uzdevumi ir vērsti uz to, lai pievērstu uzmanÄ«bu dažādiem sÄ«kumiem, kas var radÄ«t nepareizus priekÅ”status.

Piemēra skaidrojums ir dialogs, kurā skolēnam ir jāatsauc izplatÄ«Å”ana un savstarpējā validācija, lai pārliecinātos, ka viņŔ ir apguvis kādu materiāla daļu.

Es bÅ«Å”u banāls un teikÅ”u, ka pirmais piemērs par tēmu ir ļoti svarÄ«gs. Ja jums ir materiāls plaÅ”am patstāvÄ«gam darbam, pirmā piemēra izlaidumus var labot. Ja bez piemēra nav nekā cita, tad students, visticamāk, neapgÅ«s tēmu.

Kamēr vai uz laiku?

Viens no strÄ«dÄ«gajiem jautājumiem ir konstrukcijas izvēle piemēram: kamēr vai par. Reiz mans praktizējoÅ”ais draugs izstrādātājs bez mācÄ«Å”anas pieredzes pavadÄ«ja stundu, pārliecinot mani, ka for cilpa ir visvieglāk saprotama. Argumenti noveda pie tā, ka "viss tajā ir skaidrs un sakārtots savā vietā". Tomēr Ä«stu iesācēju grÅ«tÄ«bu galvenais cēlonis ir paÅ”a cikla ideja, nevis tā rakstÄ«Å”ana. Ja cilvēks Å”o domu nesaprot, tad viņam bÅ«s grÅ«tÄ«bas ar sintaksi. TiklÄ«dz ideja tiek realizēta, koda dizaina problēmas pazÅ«d paÅ”as no sevis.

Manos materiālos cilpu tēma seko zarojuma tēmai. Ja un kamēr ārējā lÄ«dzÄ«ba ļauj mums izdarÄ«t tieÅ”u analoÄ£iju: "ja nosacÄ«jums galvenē ir patiess, tad pamatteksts tiek izpildÄ«ts." VienÄ«gā cikla Ä«patnÄ«ba ir tā, ka Ä·ermenis tiek izpildÄ«ts daudzas reizes.

Mans otrais arguments ir tāds, ka, lai gan ir nepiecieÅ”ams mazāk formatÄ“Å”anas nekā priekÅ”. Mazāks formatējums nozÄ«mē mazāk stulbu kļūdu ar trÅ«kstoÅ”iem komatiem un iekavām. Iesācēji vēl nav attÄ«stÄ«juÅ”i pietiekami daudz uzmanÄ«bas un rÅ«pÄ«bas, lai automātiski izvairÄ«tos no sintakses kļūdām.
TreŔais arguments daudzās labās grāmatās ir izskaidrots kā pirmais arguments.

Ja skolēns var viegli pārveidot izteicienus, tad par to var runāt garāmejot. Pēc tam skolēns izvēlēsies to, kas viņam patÄ«k vislabāk. Ja pārvērtÄ«bas rada grÅ«tÄ«bas, tad labāk nenovērst uzmanÄ«bu. Ä»aujiet skolēnam vispirms visu atrisināt, izmantojot kamēr. Kad esat apguvis tēmu par cilpām, varat pārrakstÄ«t risinājumus, lai praktizētu konvertÄ“Å”anu while uz for.
PēcnosacÄ«juma cilpas ir diezgan rets zvērs. Es tam vispār netērēju laiku. Ja skolēns ir apguvis modeļu identificÄ“Å”anas un izteiksmju pārveidoÅ”anas idejas, viņŔ to var izdomāt bez manas palÄ«dzÄ«bas.

Demonstrējot pirmo piemēru spēcÄ«giem studentiem, vērÅ”u uzmanÄ«bu uz to, ka pirmajā piemērā ir svarÄ«gi fiksēt ne tikai risinājumu, bet arÄ« visu darbÄ«bu ķēdi, kas noveda pie rezultāta. Slinkie studenti var atstāt novārtā rakstÄ«Å”anu un kopēt tikai galÄ«go algoritmu. Viņiem jābÅ«t pārliecinātiem, ka kādu dienu viņus gaida grÅ«ts uzdevums. Lai to atrisinātu, jums bÅ«s jāveic darbÄ«bas, kas norādÄ«tas Å”ajā piemērā. Tāpēc ir svarÄ«gi reÄ£istrēt visus posmus. Turpmākajās problēmās bÅ«s iespējams atstāt tikai risinājuma galÄ«go versiju.

Automatizācijas galvenā ideja ir tāda, ka mēs uzticam datoram veikt rutÄ«nas darbus cilvēka vietā. Viens no pamata paņēmieniem ir cilpu rakstÄ«Å”ana. To lieto, ja programmā pēc kārtas ir ierakstÄ«tas vairākas identiskas darbÄ«bas, kas atkārtojas.

Skaidrs ir labāks nekā netieŔs

Var Ŕķist laba ideja parādÄ«t vienu un to paÅ”u frāzi vairākas reizes pirmajā cilpas uzdevumā. Piemēram:

Urā, tas darbojas!
Urā, tas darbojas!
Urā, tas darbojas!
Urā, tas darbojas!
Urā, tas darbojas!
Urā, tas darbojas!
Urā, tas darbojas!
Urā, tas darbojas!

Å Ä« opcija ir slikta, jo skaitÄ«tāja vērtÄ«ba nav redzama izvadē. Tā ir problēma iesācējiem. Nenovērtē viņu par zemu. Sākumā Å”is uzdevums bija pirmais, bet skaitļu sērijas atvasināŔana augoŔā secÄ«bā bija otrais. Bija nepiecieÅ”ams ieviest papildu terminus ā€œcikls N reizesā€ un ā€œcikls no A lÄ«dz Bā€, kas bÅ«tÄ«bā ir viens un tas pats. Lai neradÄ«tu nevajadzÄ«gas entÄ«tijas, es nolēmu parādÄ«t tikai piemēru ar skaitļu sērijas izvadi. Tikai dažiem cilvēkiem izdodas bez sagatavoÅ”anās iemācÄ«ties turēt galvā skaitÄ«tāju un modelēt programmas uzvedÄ«bu galvā. Daži studenti pirmo reizi sastopas ar garÄ«go modelÄ“Å”anu ciklu tēmai.
Pēc nelielas prakses es dodu uzdevumu atkārtot vienu un to paÅ”u tekstu, kas jāatrisina patstāvÄ«gi. Ja vispirms norādÄ«siet redzamu un pēc tam neredzamu skaitÄ«tāju, skolēniem bÅ«s mazāk problēmu. Dažreiz pietiek ar mājienu ā€œnerakstiet skaitÄ«tāju uz ekrānaā€.

Kā citi to izskaidro?

Lielākajā daļā izglÄ«tojoÅ”o materiālu internetā cikla sintakse ir sniegta kā daļa no ā€œlekcijasā€. Piemēram, vietnē developer.mozilla.org (paÅ”laik) kopā ar while cilpu ir aprakstÄ«tas vairākas citas konstrukcijas. Å ajā gadÄ«jumā veidņu veidā tiek sniegti tikai paÅ”i dizaini. To palaiÅ”anas rezultāts ir aprakstÄ«ts vārdos, bet nav ilustrācijas. Manuprāt, Ŕāda tēmas izklāsts Ŕādu materiālu lietderÄ«bu reizina ar nulli. Skolēns var pārrakstÄ«t kodu un palaist to pats, bet viņam joprojām ir nepiecieÅ”ams standarts salÄ«dzināŔanai. Kā var saprast, ka piemērs ir pārrakstÄ«ts pareizi, ja nav ar ko salÄ«dzināt rezultātu?
Kad tiek dota tikai veidne, bez piemēra, skolēnam kļūst vēl grÅ«tāk. Kā saprast, ka koda fragmenti ir pareizi ievietoti veidnē? Var mēģināt rakstÄ«t kaut kā, un tad palaist. Bet, ja nav standarta, lai salÄ«dzinātu rezultātu, tad arÄ« palaiÅ”ana nepalÄ«dzēs.

C++ kursā par intuitÄ«vu cilpas sintakse ir aprakta 4. lekcijas treÅ”ajā lappusē par tēmu ā€œoperatoriā€. Skaidrojot cilpu sintaksi, Ä«paÅ”s uzsvars tiek likts uz terminu ā€œoperatorsā€. Termins tiek parādÄ«ts kā faktu kopums, piemēram, ā€œsimbols; Å”is ir paziņojums", "{} ir salikts priekÅ”raksts", "cilpas pamattekstam jābÅ«t priekÅ”rakstam". Man Ŕī pieeja nepatÄ«k, jo Ŕķiet, ka tā slēpj svarÄ«gas attiecÄ«bas aiz viena termina. Programmas pirmkoda parsÄ“Å”ana terminos Å”ajā lÄ«menÄ« ir nepiecieÅ”ama kompilatoru izstrādātājiem, lai ieviestu valodas specifikāciju, bet ne studentiem kā pirmo tuvinājumu. ProgrammÄ“Å”anas jaunpienācēji reti ir pietiekami rÅ«pÄ«gi, lai pievērstu tik lielu uzmanÄ«bu terminiem. Rets cilvēks pirmo reizi atceras un saprot jaunus vārdus. GandrÄ«z neviens nevar pareizi pielietot tikko apgÅ«to terminu. Tāpēc skolēni saņem daudz kļūdu, piemēram, ā€œEs uzrakstÄ«ju, kamēr(a<7);{, bet programma nedarbojas.ā€
Manuprāt, sākumā konstrukcijas sintaksi labāk dot uzreiz ar iekavām. Opcija bez iekavām ir jāpaskaidro tikai tad, ja skolēnam ir konkrēts jautājums: "kāpēc nav iekavas un tas darbojas."

Okulova 2012. gada grāmatā ā€œProgrammÄ“Å”anas pamatiā€ ievads cilpās sākas ar paraugu, pēc tam sniedz ieteikumus tā lietoÅ”anai un pēc tam nekavējoties pāriet uz nodarbÄ«bas eksperimentālo sadaļu. Es saprotu, ka grāmata ir rakstÄ«ta tai ļoti spējÄ«go studentu mazākumam, kuri reti nāk uz manām nodarbÄ«bām.

Populārās grāmatās koda fragmentu rezultāts vienmēr ir rakstÄ«ts. Piemēram, Shildt ā€œJava 8. The Complete Guideā€ 2015. gada izdevums. Vispirms tiek dota veidne, pēc tam programmas paraugs un uzreiz pēc tās - izpildes rezultāts.

Piemēram, apsveriet kamēr cilpu, kas darbojas otrādi
atpakaļskaitÄ«Å”ana, sākot no 10, un tiek parādÄ«tas tieÅ”i 10 ā€œpasākumuā€ rindas:

//ŠŸŃ€Š¾Š“ŠµŠ¼Š¾Š½ŃŃ‚Ń€ŠøрŠ¾Š²Š°Ń‚ŃŒ ŠæрŠøŠ¼ŠµŠ½ŠµŠ½ŠøŠµ Š¾ŠæŠµŃ€Š°Ń‚Š¾Ń€Š° цŠøŠŗŠ»Š° while
class While {
    public static void main(String args []) {
        int n = 10;
        while (n > 0) {
            System.out.println("тŠ°Šŗт " + n);
            n--;
        }
    }
}

Pēc palaiÅ”anas Ŕī programma izvada desmit "ciklus" Ŕādi:
тŠ°Šŗт 10
тŠ°Šŗт 9
тŠ°Šŗт 8
тŠ°Šŗт 7
тŠ°Šŗт 6
тŠ°Šŗт 5
тŠ°Šŗт 4
тŠ°Šŗт 3
тŠ°Šŗт 2
тŠ°Šŗт 1

Veidnes, programmas parauga un programmas rezultāta aprakstÄ«Å”anas pieeja izmantota arÄ« grāmatā ā€œJavascript for Kidsā€ un js kursā vietnē w3schools.com. TÄ«mekļa lapas formāts pat ļauj Å”im piemēram bÅ«t interaktÄ«vam.

Stroustrup 2016. gada grāmata Principi un prakse, izmantojot C++ gāja vēl tālāk. Vispirms ir jāpaskaidro, kāds rezultāts jāiegÅ«st, un pēc tam tiek parādÄ«ts programmas teksts. Turklāt viņi kā piemēru ņem ne tikai nejauÅ”u programmu, bet arÄ« sniedz ekskursiju vēsturē. Tas palÄ«dz pievērst uzmanÄ«bu: ā€œLÅ«k, tas nav tikai bezjēdzÄ«gs teksts. JÅ«s redzat kaut ko nozÄ«mÄ«gu."

Kā iterācijas piemēru apsveriet pirmo programmu, kas izpildÄ«ta saglabātās programmas maŔīnā (EDSAC). To uzrakstÄ«ja Deivids VÄ«lers Kembridžas universitātes Datoru laboratorijā Anglijā 6. gada 1949. maijā. Å Ä« programma aprēķina un izdrukā vienkārÅ”u kvadrātu sarakstu.
0 0
1 1
2 4
3 9
4 16
...
98 9604
99 9801

Å eit katrā rindā ir skaitlis, kam seko tabulÄ“Å”anas rakstzÄ«me ('t') un Ŕī skaitļa kvadrāts. Å Ä«s programmas C++ versija izskatās Ŕādi:

//Š’ычŠøсŠ»ŃŠµŠ¼ Šø рŠ°ŃŠæŠµŃ‡Š°Ń‚Ń‹Š²Š°ŠµŠ¼ тŠ°Š±Š»Šøцу ŠŗŠ²Š°Š“рŠ°Ń‚Š¾Š² чŠøсŠµŠ» 0-99
int main()
{
    int i = 0; // ŠŠ°Ń‡ŠøŠ½Š°ŠµŠ¼ с Š½ŃƒŠ»Ń
    while(i < 100){
        cout << i << 't' << square(i) << 'n';
        ++i;
    }
}

Interesanti, ka sintakses modelis Å”ajā grāmatā nav aprakstÄ«ts. Stroustrup instruktora rokasgrāmatā (tulkojums) uzsver, ka tā ciena savu skolēnu inteliÄ£enci. Iespējams, spēja noteikt modeli vairākos piemēros tiek uzskatÄ«ta par Ŕādas inteliÄ£ences izpausmi.

Kā es pats paskaidroju

Stroustrup pieeja: rezultāta aprakstÄ«Å”ana, problēmas risināŔana un pēc tam neatkarÄ«ga studenta analÄ«ze - Ŕķiet visdomātākā. Tāpēc es nolēmu to ņemt par pamatu, bet pastāstÄ«t to, izmantojot mazāk vēsturisku piemēru - uzdevumu iegÅ«t ā€œsatura rādÄ«tājuā€. Tas veido atpazÄ«stamu enkuru, lai pēc tam varētu teikt ā€œatcerieties uzdevumu par satura rādÄ«tājuā€ un lai skolēni atcerētos tieÅ”i to. Savā piemērā es mēģināju novērst vēl divus visbiežāk sastopamos nepareizos priekÅ”status. Tālāk par tiem rakstÄ«Å”u sÄ«kāk.

Å ajā uzdevumā mēs tiekam iepazÄ«stināti ar sarežģītu problēmu risināŔanas paņēmieniem. Sākotnējais lēmums ir jāpieņem primitÄ«vs un vienkārÅ”s. Nu tad var domāt, kā Å”o risinājumu uzlabot.
Š’Š²ŠµŠ“ŠµŠ½ŠøŠµ
Š“Š»Š°Š²Š° 1
Š“Š»Š°Š²Š° 2
Š“Š»Š°Š²Š° 3
Š“Š»Š°Š²Š° 4
Š“Š»Š°Š²Š° 5
Š“Š»Š°Š²Š° 6
Š“Š»Š°Š²Š° 7
Š—Š°ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ

Pēc maniem novērojumiem, pieeja ā€œveidne-piemērs-rezultātsā€ dažādās kombinācijās joprojām noved pie tā, ka skolēni ciklu uztver kā hieroglifu. Tas izpaudās tajā, ka viņi nesaprata, kāpēc tur ir jāraksta nosacÄ«jums, kā izvēlēties starp i++ un iā€” un citām it kā paÅ”saprotamām lietām. Lai izvairÄ«tos no Å”iem maldÄ«gajiem priekÅ”statiem, runājot par cikliem, vajadzētu uzsvērt identisku darbÄ«bu atkārtoÅ”anas nozÄ«mi un tikai pēc tam formalizēt tās, izmantojot struktÅ«ru. Tāpēc, pirms sniedzat cilpas sintakse, problēma ir jāatrisina tieÅ”i. PrimitÄ«vs satura rādÄ«tāja problēmas risinājums izskatās Ŕādi:

Console.WriteLine("Š’Š²ŠµŠ“ŠµŠ½ŠøŠµ");
Console.WriteLine("Š“Š»Š°Š²Š° 1");
Console.WriteLine("Š“Š»Š°Š²Š° 2");
Console.WriteLine("Š“Š»Š°Š²Š° 3");
Console.WriteLine("Š“Š»Š°Š²Š° 4");
Console.WriteLine("Š“Š»Š°Š²Š° 5");
Console.WriteLine("Š“Š»Š°Š²Š° 6");
Console.WriteLine("Š“Š»Š°Š²Š° 7");
Console.WriteLine("Š—Š°ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ");

Kā to var uzlabot?
Nomainiet monotonās darbības ar ciklu.
Kādas darbības tiek atkārtotas pēc kārtas bez izmaiņām?
Å ajā fragmentā tādu nav. Tomēr komandas vārda ā€œChapterā€ parādÄ«Å”anai ar numuru ir ļoti lÄ«dzÄ«gas viena otrai.
Tāpēc nākamais posms ir atrast atŔķirÄ«bu starp fragmentiem. Tikai Å”ajā uzdevumā viss ir skaidrs, tad tiks atkārtotas nevis atseviŔķas komandas, bet gan 5 vai vairāk rindu koda bloki. Jums bÅ«s jāmeklē ne tikai komandu sarakstā, bet arÄ« atzaroÅ”anas vai cilpas konstrukcijās.
Piemērā atŔķirÄ«ba starp komandām ir ciparā aiz vārda ā€œChapterā€.
Kad atŔķirÄ«ba ir atrasta, jums ir jāsaprot pārmaiņu modelis. AtŔķirÄ«gais fragments ir numurs? Vai tas pastāvÄ«gi palielinās vai samazinās? Kā skaitļa vērtÄ«ba mainās starp divām komandām blakus?
Piemērā skaitlis aiz vārda ā€œChapterā€ palielinās ar soli 1. Tiek atrasta atŔķirÄ«ba, tiek atklāts modelis. Tagad jÅ«s varat aizstāt atŔķirÄ«go fragmentu ar mainÄ«go.
Šāds mainīgais ir jādeklarē pirms pirmā atkārtotā fragmenta. Šādu mainīgo parasti sauc par I vai j vai kaut ko detalizētāku. Tās sākotnējai vērtībai jābūt vienādai ar pirmo ekrānā parādīto vērtību. Piemērā pirmā vērtība ir 1.
Kāda sākotnējā vērtÄ«ba ir jāņem, lai parādÄ«tu skaitļu sēriju ā€œ100, 101, 102, 103, 104, 105ā€?
Pirmais cipars Å”ajā sērijā ir 100.
Pēc katras izvades komandas jums jāpalielina Ŕī mainÄ«gā vērtÄ«ba par 1. Å Ä« vienÄ«ba ir maiņas solis.
Kāds solis bÅ«s skaitļu virknē ā€œ100, 102, 104, 106ā€?
2. darbÄ«ba Å”ajā rindā.
Pēc atŔķirÄ«gā fragmenta aizstāŔanas ar mainÄ«go kods izskatÄ«sies Ŕādi:

Console.WriteLine("Š’Š²ŠµŠ“ŠµŠ½ŠøŠµ");
int i;
i = 0;
Console.WriteLine("Š“Š»Š°Š²Š° " + i);
i = i + 1;
Console.WriteLine("Š“Š»Š°Š²Š° " + i);
i = i + 1;
Console.WriteLine("Š“Š»Š°Š²Š° " + i);
i = i + 1;
Console.WriteLine("Š“Š»Š°Š²Š° " + i);
i = i + 1;
Console.WriteLine("Š“Š»Š°Š²Š° " + i);
i = i + 1;
Console.WriteLine("Š“Š»Š°Š²Š° " + i);
i = i + 1;
Console.WriteLine("Š“Š»Š°Š²Š° " + i);
i = i + 1;
Console.WriteLine("Š—Š°ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ");

Pēc tehnikas ā€œizteikt mainÄ«gā modeļaā€ izmantoÅ”anas kodā jÅ«s saņemat vairākas identisku darbÄ«bu grupas, kas notiek pēc kārtas. Tagad atkārtotas darbÄ«bas var aizstāt ar cilpu.

Problēmas risināŔanas secÄ«ba, kurā jāizmanto cilpas, sastāv no Ŕādām darbÄ«bām:

  1. Atrisiniet "uz priekŔu" ar daudzām atseviŔķām komandām
  2. Atrodiet modeli
  3. Izsakiet mainīgā modeli
  4. Sakārtot kā ciklu

Tālāk tiek ieviesti jauni termini, lai skolēns nenonāktu situācijā ā€œEs visu saprotu, bet nevaru pateiktā€:
ā€” skaitÄ«tājs vienmēr ir mainÄ«gais, kas nepiecieÅ”ams, lai izsekotu cilpas soļu skaitu. Parasti vesels skaitlis, kas tiek salÄ«dzināts ar ierobežojumu.
ā€” skaitÄ«tāja solis ā€” skaitÄ«tāja izmaiņu modeļa apraksts.
- ierobežojums - skaitlis vai mainīgais, ar kuru tiek salīdzināts skaitītājs, lai algoritms būtu galīgs. Skaitītāja vērtība mainās, lai tuvotos robežai.
ā€” cilpas korpuss ā€” komandu kopa, kas tiks atkārtota. Kad viņi saka: "komanda ir rakstÄ«ta cilpas iekÅ”pusē", viņi domā Ä·ermeni.
ā€” cilpas iterācija ā€” vienreizēja cilpas korpusa izpilde.
ā€” cilpas nosacÄ«jums ā€” loÄ£iska izteiksme, kas nosaka, vai tiks izpildÄ«ta cita iterācija. (Å eit var bÅ«t neskaidrÄ«bas ar sazarotām struktÅ«rām)
Jums jābÅ«t gatavam tam, ka sākumā studenti izmantos terminus citiem mērÄ·iem. Tas attiecas gan uz stiprajiem, gan vājajiem. KopÄ«gas valodas izveidoÅ”ana ir māksla. Tagad es uzrakstÄ«Å”u Ä«si: jums ir jāiestata uzdevums ā€œizcelt koda fragmentu ar <term>ā€ un pareizi jālieto Å”ie termini sarunā.
Pēc pārveidoÅ”anas ar cilpu fragmentu iegÅ«st:

Console.WriteLine("Š’Š²ŠµŠ“ŠµŠ½ŠøŠµ");
int i = 0;
while (i < 7) {
    Console.WriteLine("Š“Š»Š°Š²Š° " + i);
    i = i + 1;
}
Console.WriteLine("Š—Š°ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ");

Galvenais nepareizs priekŔstats

Viens populārs nepareizs uzskats skolēnu vidÅ« ir tāds, ka viņi veic darbÄ«bas, kas jāveic tikai vienu reizi. Piemēram, Ŕādi:

;
int i = 0;
while (i < 7) {
    Console.WriteLine("Š’Š²ŠµŠ“ŠµŠ½ŠøŠµ")
    Console.WriteLine("Š“Š»Š°Š²Š° " + i);
    i = i + 1;
    Console.WriteLine("Š—Š°ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ");
}

Studenti ar Å”o problēmu saskaras visu laiku, gan sākumā, gan sarežģītākas problēmas.
Galvenais padoms Ŕajā gadījumā:

Cik reizes jums vajadzētu atkārtot komandu: vienu vai vairākas reizes?

Komandas vārdu "Ievads" un "Nobeigums" drukāŔanai un mainÄ«gā i deklarÄ“Å”anai un inicializācijai nav lÄ«dzÄ«gas citām atkārtotām darbÄ«bām. Tie tiek izpildÄ«ti tikai vienu reizi, kas nozÄ«mē, ka tie ir jāraksta ārpus cilpas pamatteksta.

Visiem trim risinājuma posmiem ir jāpaliek kodā, lai jūs vēlāk varētu atsaukties uz tiem, ja rodas grūtības. Pietiek komentēt pirmos divus variantus, lai tie netraucē.
Studenta uzmanÄ«ba jāpievērÅ” Ŕādiem faktiem:
ā€” Cilpas stāvoklÄ« parasti tiek salÄ«dzināts skaitÄ«tājs un limits. SkaitÄ«tājs var mainÄ«ties cilpas korpusā, bet ierobežojums nevar. Lai pārkāptu Å”o noteikumu, jums ir jāformulē pārliecinoÅ”i iemesli.
ā€” Komandas vārdu ā€œIevadsā€ un ā€œNobeigumsā€ attēloÅ”anai atrodas ārpus cilpas pamatteksta. Mums tie ir jāveic 1 reizi. ā€œIevadsā€ - pirms darbÄ«bu atkārtoÅ”anas, ā€œSecinājumsā€ - pēc.
Å Ä«s tēmas nostiprināŔanas, nākamo apgÅ«Å”anas, kā arÄ« grÅ«tÄ«bu risināŔanas procesā pat spēcÄ«giem skolēniem ir lietderÄ«gi uzdot jautājumu: ā€œCik reižu Ŕī darbÄ«ba ir jāveic? Viens vai daudzi?

Papildu prasmju attīstīŔana

Studiju ciklu procesā studenti attÄ«sta arÄ« prasmi diagnosticēt un risināt problēmas. Lai veiktu diagnostiku, studentam jāuzrāda vēlamais rezultāts un jāsalÄ«dzina ar faktisko rezultātu. KorektÄ«vās darbÄ«bas ir atkarÄ«gas no atŔķirÄ«bas starp tām.
Tā kā studentiem Å”ajā posmā vēl ir maz priekÅ”stata par ā€œvēlamoā€ rezultātu, viņi var koncentrēties uz testa datiem. Parasti Å”ajā posmā neviens vēl nesaprot, kas var noiet greizi un kā ar to rÄ«koties. Tāpēc es pierakstu piezÄ«mju grāmatiņā tipisku problēmu aprakstu un vairākus to risināŔanas veidus. Izvēlēties piemērotāko ir paÅ”a skolēna uzdevums.
NepiecieÅ”ams ieraksts, lai jautātu ā€œvai notika gaidÄ«tais?ā€, ā€œKura no Ŕīm situācijām notika tagad?ā€, ā€œVai pielietotais risinājums palÄ«dzēja?ā€

  1. Darbību skaits ir par 1 mazāks vai vairāk nekā paredzēts. Risinājumi:
    ā€” palielināt skaitÄ«tāja sākotnējo vērtÄ«bu par 1.
    ā€” aizstāt stingrās salÄ«dzināŔanas operatoru (< vai >) ar nestingru operatoru (<= vai >=).
    ā€” mainÄ«t robežvērtÄ«bu uz 1.
  2. Darbības cilpā tiek veiktas bez apstāŔanās, bezgalīgi. Risinājumi:
    ā€” pievienojiet skaitÄ«tāja maiņas komandu, ja tās trÅ«kst.
    ā€” labojiet skaitÄ«tāja maiņas komandu tā, lai tās vērtÄ«ba tuvotos robežai.
    ā€” noņemiet ierobežojumu maiņas komandu, ja tā atrodas cilpas pamattekstā.
  3. DarbÄ«bu skaits ciklā ir par vairāk nekā 1 mazāks vai lielāks, nekā paredzēts. DarbÄ«ba cilpā netika izpildÄ«ta pat vienu reizi. Vispirms jums ir jānoskaidro mainÄ«go lielumu faktiskās vērtÄ«bas tieÅ”i pirms cilpas sākuma. Risinājumi:
    ā€” mainÄ«t ierobežojuma sākotnējo vērtÄ«bu
    ā€” mainÄ«t skaitÄ«tāja sākotnējo vērtÄ«bu

3. problēma parasti ietver nepareiza mainÄ«gā izmantoÅ”anu vai skaitÄ«tāja neatiestatÄ«Å”anu uz nulli.

Pēc Ŕī skaidrojuma skolēnam joprojām var rasties dažādi maldÄ«gi priekÅ”stati par cilpu darbÄ«bu.
Lai kliedētu visbiežāk sastopamos, es jums dodu Ŕādus uzdevumus:

  1. Kurā lietotājs ievada ierobežojumu, sākotnējo skaitītāja vērtību vai skaitītāja soli.
  2. Kurā skaitÄ«tāja vērtÄ«ba ir jāizmanto kādā aritmētiskā izteiksmē. Radikālā izteiksmē vai saucējā ieteicams izmantot skaitÄ«tāju, lai atŔķirÄ«ba bÅ«tu nelineāra.
  3. Kurā skaitÄ«tāja vērtÄ«ba netiek parādÄ«ta ekrānā, kamēr cilpa darbojas. Piemēram, vajadzÄ«gā skaita identisku teksta fragmentu attēloÅ”ana vai figÅ«ras zÄ«mÄ“Å”ana ar bruņurupuča grafikām.
  4. Kurā vispirms jāveic dažas atkārtotas darbības, pēc tam citas.
  5. Kurā jums jāveic citas darbÄ«bas pirms un pēc atkārtoÅ”anas

Katram uzdevumam ir jānorāda testa dati un gaidāmais rezultāts.

Lai saprastu, cik ātri jÅ«s varat pārvietoties, jums ir jāizlasa Å”o problēmu termini un jājautā: "Kā tie atŔķiras no piemēra?", "Kas piemērā ir jāmaina, lai tās atrisinātu?" Ja skolēns atbild jēgpilni, tad vismaz vienu lai viņŔ atrisina stundā, bet pārējo mājās pats. Ja risinājums ir veiksmÄ«gs, mēs varam sākt skaidrot nosacÄ«jumus cilpu iekÅ”ienē.
Ja jums ir problēmas ar problēmu risināŔanu paÅ”am, jums viss ir jāpārstrādā klasē. Lai problēmas risināŔana neatgādinātu pÅ«ces zÄ«mÄ“Å”anu, iesaku vispirms atrisināt problēmu neuniversālā veidā. Tas ir, lai risinājums izturētu pirmo pārbaudi un neizmantotu cilpas konstrukciju. Tad pielietojiet transformācijas, lai panāktu risinājuma universālumu.

Cilpas un zari

Manuprāt, ir lietderÄ«gi tēmu ā€œcikli filiālēsā€ dot atseviŔķi. Lai vēlāk jÅ«s varētu redzēt atŔķirÄ«bu starp stāvokļa pārbaudi vairākas reizes un vienreizēju pārbaudi.
Konsolidācijas uzdevumi būs par skaitļu izvadīŔanu no A līdz B, kurus lietotājs ievada:
- vienmēr augoŔā secÄ«bā.
- augoŔā vai dilstoŔā atkarÄ«bā no A un B vērtÄ«bām.

Tēmu ā€œzaru veidoÅ”anās cilpāsā€ vajadzētu pāriet tikai pēc tam, kad students ir apguvis metodes: ā€œparauga aizstāŔana ar mainÄ«goā€ un ā€œatkārtotu darbÄ«bu aizstāŔana ar cikluā€.
Galvenais iemesls zaru izmantoÅ”anai cilpu iekÅ”pusē ir modeļa anomālijas. VidÅ« tas saplÄ«st atkarÄ«bā no sākotnējiem datiem.
Tiem studentiem, kuri spēj meklēt risinājumu, kombinējot vienkārÅ”as tehnikas, pietiek pateikt ā€œzarojumu var rakstÄ«t cilpu iekÅ”pusēā€ un dot uzdevumu ā€œpiemēramā€ pilnÄ«bā atrisināt patstāvÄ«gi.
Uzdevuma piemērs:

Lietotājs ievada skaitli X. Kolonnā parādiet skaitļus no 0 līdz 9 un ielieciet zīmi "+" pretī skaitlim, kas ir vienāds ar X.

Ja tika ievadīts 00+
1
2
3
4
5
6
7
8
9

Ja tika ievadīts 60
1
2
3
4
5
6+
7
8
9

Ja tika ievadīts 90
1
2
3
4
5
6
7
8
9+

Ja tika ievadīts 7770
1
2
3
4
5
6
7
8
9

Ja ar Ä«su paskaidrojumu nepietiek, lai rakstÄ«tu ar cilpu, tad jums ir jāpanāk universāls tās paÅ”as problēmas risinājums bez cilpas.
Jūs iegūsit vienu no divām iespējām:
Vēlamais

string temp;
temp = Console.ReadLine();
int x;
x = int.Parse(temp);
if (x==0) {
    Console.WriteLine(0 + "+");
} else {
    Console.WriteLine(0);
}
if (x==1) {
    Console.WriteLine(1 + "+");
} else {
    Console.WriteLine(1);
}
if (x==2) {
    Console.WriteLine(2 + "+");
} else {
    Console.WriteLine(2);
}
if (x==3) {
    Console.WriteLine(3 + "+");
} else {
    Console.WriteLine(3);
}
if (x==4) {
    Console.WriteLine(4 + "+");
} else {
    Console.WriteLine(4);
}
if (x==5) {
    Console.WriteLine(5 + "+");
} else {
    Console.WriteLine(5);
}
if (x==6) {
    Console.WriteLine(6 + "+");
} else {
    Console.WriteLine(6);
}
if (x==7) {
    Console.WriteLine(7 + "+");
} else {
    Console.WriteLine(7);
}
if (x==8) {
    Console.WriteLine(8 + "+");
} else {
    Console.WriteLine(8);
}
if (x==9) {
    Console.WriteLine(9 + "+");
} else {
    Console.WriteLine(9);
}

Iespējams

string temp;
temp = Console.ReadLine();
int x;
x = int.Parse(temp);
if (x==0) {
    Console.WriteLine("0+n1n2n3n4n5n6n7n8n9");
}
if (x==1) {
    Console.WriteLine("0n1+n2n3n4n5n6n7n8n9");
}
if (x==2) {
    Console.WriteLine("0n1n2+n3n4n5n6n7n8n9");
}
if (x==3) {
    Console.WriteLine("0n1n2n3+n4n5n6n7n8n9");
}
if (x==4) {
    Console.WriteLine("0n1n2n3n4+n5n6n7n8n9");
}
if (x==5) {
    Console.WriteLine("0n1n2n3n4n5+n6n7n8n9");
}
if (x==6) {
    Console.WriteLine("0n1n2n3n4n5n6+n7n8n9");
}
if (x==7) {
    Console.WriteLine("0n1n2n3n4n5n6n7+n8n9");
}
if (x==8) {
    Console.WriteLine("0n1n2n3n4n5n6n7n8+n9");
}
if (x==9) {
    Console.WriteLine("0n1n2n3n4n5n6n7n8n9+");
}

LÄ«dzÄ«gu uzdevumu dodu jau iepriekÅ”, pētot sazaroÅ”anas tēmu.
Ja skolēns nāk klajā ar ā€œiespējamoā€ variantu, jums jāpasaka, ka vienai un tai paÅ”ai problēmai var bÅ«t daudz risinājumu. Tomēr tie atŔķiras ar izturÄ«bu pret izmaiņām prasÄ«bām. Uzdodiet jautājumu: "Cik vietas kodā bÅ«tu jālabo, ja man bÅ«tu jāpievieno cits numurs?" ā€œIespējamajāā€ versijā jums bÅ«s jāpievieno vēl viena filiāle un jāpievieno jauns numurs 10 citās vietās. ā€œVēlamajāā€ pietiek pievienot tikai vienu zaru.
Iestatiet uzdevumu reproducēt ā€œvēlamoā€ opciju, pēc tam atrodiet paraugu kodā, veiciet mainÄ«gā nomaiņu un uzrakstiet cilpu.
Ja jums ir ideja, kā citādi atrisināt Å”o problēmu bez cilpas, lÅ«dzu, rakstiet komentāros.

Cilpas cilpās

Å ajā tēmā jums jāpievērÅ” uzmanÄ«ba Ŕādiem jautājumiem:
ā€” iekŔējās un ārējās cilpas skaitÄ«tājiem jābÅ«t dažādiem mainÄ«gajiem.
ā€” iekŔējās cilpas skaitÄ«tājs ir vairākas reizes jāatiestata (tas ir, ārējās cilpas korpusā).
ā€” teksta izvades uzdevumos nevar vispirms uzrakstÄ«t vienu burtu vairākās rindās un pēc tam otru. Vispirms ir jāizdrukā visi pirmās rindas burti, pēc tam visi otrās rindas burti un tā tālāk.

Vislabāk ir sākt skaidrot tēmu par cilpām cilpās, paskaidrojot, cik svarīgi ir atiestatīt skaitītāju uz nulli.
Uzdevuma piemērs:

Lietotājs ievada divus ciparus: R un T. Izdrukājiet divas "#" rakstzīmju rindiņas. Pirmajā rindā jābūt R rakstzīmēm. Otrajā rindā ir T gabali. Ja kāds skaitlis ir negatīvs, parādiet kļūdas ziņojumu.

R = 5, T = 11#####
###########

R = 20, T = 3######################
# # #

R = -1, T = 6R vērtībai jābūt nenegatīvai

R = 6, T = -2T vērtībai jābūt nenegatīvai

AcÄ«mredzot arÄ« Å”ai problēmai ir vismaz divi risinājumi.
Vēlamais

string temp;
int R;
int T;
temp = Console.ReadLine();
R = int.Parse(temp);
temp = Console.ReadLine();
T = int.Parse(temp);
int i = 0;
while (i < R)
{
    Console.Write("#");
    i = i + 1;
}
Console.WriteLine();
i = 0;
while (i < T)
{
    Console.Write("#");
    i = i + 1;
}

Iespējams #1

string temp;
int R;
int T;
temp = Console.ReadLine();
R = int.Parse(temp);
temp = Console.ReadLine();
T = int.Parse(temp);
int i = 0;
while (i < R)
{
    Console.Write("#");
    i = i + 1;
}
Console.WriteLine();
int j = 0;
j = 0;
while (j < T)
{
    Console.Write("#");
    j = j + 1;
}

AtŔķirÄ«ba ir tāda, ka "iespējamā" risinājumā otrās rindas izvadÄ«Å”anai tika izmantots otrs mainÄ«gais. Jums vajadzētu uzstāt, lai abām cilpām izmantotu vienu un to paÅ”u mainÄ«go. Å o ierobežojumu var attaisnot ar to, ka risinājums ar vienu skaitÄ«tāju diviem cikliem bÅ«s termina ā€œskaitÄ«tāja atiestatÄ«Å”anaā€ ilustrācija. Å Ä« termina izpratne ir nepiecieÅ”ama, risinot Ŕādas problēmas. Kā kompromisu varat saglabāt abus problēmas risinājumus.

Tipiska problēma ar viena skaitÄ«tāja mainÄ«gā izmantoÅ”anu divām cilpām parādās Ŕādi:
R = 5, T = 11#####
######

RakstzÄ«mju skaits otrajā rindā neatbilst T vērtÄ«bai. Ja jums ir nepiecieÅ”ama palÄ«dzÄ«ba Ŕīs problēmas risināŔanā, jums ir jāiepazÄ«stas ar piezÄ«mēm par tipiskām cilpu problēmām. Å is ir simptoms #3. Tas tiek diagnosticēts, ja pievienojat skaitÄ«tāja vērtÄ«bas izvadi tieÅ”i pirms otrā cikla. Labots, atiestatot. Bet labāk to nestāstÄ«t uzreiz. Studentam jāmēģina formulēt vismaz vienu hipotēzi.

Protams, ir arī cits risinājums. Bet es to nekad neesmu redzējis studentu vidū. Ciklu apguves posmā stāsts par to novērsīs uzmanību. Varat pie tā atgriezties vēlāk, kad uzzināsit par virkņu funkcijām.
Iespējams #2

string temp;
int R;
int T;
temp = Console.ReadLine();
R = int.Parse(temp);
temp = Console.ReadLine();
T = int.Parse(temp);
Console.WriteLine(new String('#', R));
Console.WriteLine(new String('#', T));

Nākamais nepiecieŔamais uzdevums:

Parādiet skaitļus no 0 līdz 9. Katram ciparam ir jāatrodas savā rindā. Ciparu skaits rindā (W) tiek ievadīts no tastatūras.

W=10
1
2
3
4
5
6
7
8
9

W=100000000000
1111111111
2222222222
3333333333
4444444444
5555555555
6666666666
7777777777
8888888888
9999999999

Ja students ir apguvis mainÄ«gā aizvietoÅ”anas tehniku, tad viņŔ tiks galā diezgan ātri. Iespējamā problēma atkal bÅ«s mainÄ«gā atiestatÄ«Å”ana. Ja jÅ«s nevarat tikt galā ar transformāciju, tas nozÄ«mē, ka jÅ«s steidzāties un jums ir jāatrisina vienkārŔākas problēmas.

Paldies par jūsu uzmanību. Patīk un abonē kanālu.

PS Ja tekstā atrodat drukas kļūdas vai kļūdas, lÅ«dzu, informējiet mani. To var izdarÄ«t, atlasot teksta daļu un nospiežot ā€œāŒ˜+Enterā€ operētājsistēmā Mac un ā€œCtrl/Enterā€ klasiskajās tastatÅ«rās vai izmantojot privātas ziņas. Ja Ŕīs iespējas nav pieejamas, rakstiet par kļūdām komentāros. Paldies!

Aptaujā var piedalīties tikai reģistrēti lietotāji. Ielogoties, lūdzu.

Aptauja lasītājiem bez karmas

  • 20,0%Mācu profesionāli, +12

  • 10,0%Es pasniedzu profesionāli, -11

  • 70,0%Es nemācu, +17

  • 0,0%Es nemācu, -10

  • 0,0%Cits0

Nobalsoja 10 lietotāji. 5 lietotāji atturējās.

Avots: www.habr.com

Pievieno komentāru