Kalo te përmbajtja

7 min lexim

American Corners

Ciklet e ndërthurura dhe modelet

Një cikël brenda një cikli

Sapo ndihesh rehat me një cikël të vetëm, hapi tjetër është të vësh një cikël brenda një tjetri. Një cikël mund të rrijë brenda një cikli tjetër. Cikli i jashtëm numëron rreshtat; cikli i brendshëm numëron kolonat. Në secilin rresht, cikli i brendshëm ecën i tëri para se cikli i jashtëm të kalojë më tej. Kjo është pikërisht ajo që të duhet për një rrjetë, një tabelë ose një model me yje.

Gjëja kryesore për ta imagjinuar është koha. Cikli i jashtëm bën një hap, pastaj ndalon ndërsa cikli i brendshëm ecën nga fillimi në fund, pastaj cikli i jashtëm bën hapin tjetër dhe cikli i brendshëm ecën sërish i tëri. Nëse cikli i brendshëm ecën pesë herë, dhe cikli i jashtëm ecën pesë herë, blloku i brendshëm ekzekutohet njëzet e pesë herë gjithsej.

Një tabelë shumëzimi

Le të themi se do një tabelë shumëzimi për numrat 1 deri në 5. Të shkruaje një cikël për secilin rresht do të ishin pesë cikle të vendosur njëri mbi tjetrin, dhe një tabelë deri në 20 do të ishte njëzet. Mbivendosja e mbledh të gjithë atë:

for rreshti in range(1, 6):
    for kolona in range(1, 6):
        print(rreshti * kolona, end="\t")
    print()

Cikli i jashtëm zgjedh një rreshti. Për atë rresht, cikli i brendshëm ecën nëpër secilën kolona, duke shkruar rreshti * kolona me një tabulaturë (\t) mes tyre. Rreshti print() bosh pas ciklit të brendshëm e mbyll rreshtin, që tjetri të nisë nga e para. Rezultati është një rrjetë e rregullt 5 me 5, dhe të shkosh deri në 20 me 20 do të thotë të ndryshosh dy numra, jo të shkruash pesëmbëdhjetë rreshta të tjerë.

Të vizatosh modele

E njëjta ide vizaton forma me shkronja. Këtu dy cikle të ndërthurura shkruajnë një bllok të plotë yjesh, tre rreshta të lartë dhe tre kolona të gjerë:

for rreshti in range(3):
    for ylli in range(3):
        print("*", end="")
    print()

Cikli i brendshëm shkruan tre yje në një rresht, pa ndërruar rresht falë end="". Rreshti print() bosh pastaj e mbyll atë rresht, dhe cikli i jashtëm nis rreshtin tjetër. Ndrysho range-in e brendshëm dhe ndryshon gjerësinë; ndrysho range-in e jashtëm dhe ndryshon lartësinë. Një model në të vërtetë s'është veçse një rrjetë ku shkruan një shkronjë në vend të një numri.

Praktikë

Provoje ta kthesh bllokun në një trekëndësh. Shkruaj një cikël të ndërthurur ku cikli i jashtëm ecën 5 herë dhe cikli i brendshëm shkruan një yll më shumë në secilin rresht, kështu që rreshti 1 ka një yll dhe rreshti 5 ka pesë. Ndihmesë: cikli i brendshëm mund të jetë for ylli in range(rreshti): dhe e shkruan një yll pa ndërruar rresht, pastaj një print() të thjeshtë për ta mbyllur rreshtin.

Provo veten

  1. Në një cikël të ndërthurur që shkruan një tabelë shumëzimi, cili cikël zgjedh rreshtin dhe cili zgjedh kolonën, dhe sa herë ecën cikli i brendshëm për secilën ecje të vetme të ciklit të jashtëm?
  2. Një tabelë nga 1 deri në 5 kërkon një rrjetë 5 me 5, dhe pa mbivendosje do të vendosje pesë cikle të veçantë njëri mbi tjetrin. Me një cikël të ndërthurur, çfarë ndryshon që tabela të rritet në 20 me 20 në vend që të shkruash më shumë cikle?
  3. Në shembullin e bllokut me yje, çfarë pune bën rreshti print() bosh pas ciklit të brendshëm, dhe si do të dukej rezultati po ta hiqje atë?

Nga vjen ky mësim

Ndërtuar mbi

  • Programming in a Data World: dosja e Leksionit 3 (ciklet e mbivendosura) dhe Notebook-u i Leksionit

Kurset e alphaPlan ndërtohen mbi programe të zhvilluara në klasë, e nuk shpiken për web-in. Kur një pohim mbështetet mbi një standard të jashtëm ose mbi një rast të raportuar, ai emërtohet më sipër që ta kontrollosh vetë e të mos na besosh në fjalë.

Ky kurs u zhvillua nga alphaPlan Center mbi bazën e programeve të realizuara në partneritet me rrjetin American Corners.

Gjete diçka të paqartë, të vjetruar ose që mund të përmirësohet? Sugjero një përmirësim