Përmbajtje:

Udhëzime Interesante të Programimit për Dizajnerin-Kontrolli i Procesit të Programit-Deklarata e Rrethit: 8 Hapa
Udhëzime Interesante të Programimit për Dizajnerin-Kontrolli i Procesit të Programit-Deklarata e Rrethit: 8 Hapa

Video: Udhëzime Interesante të Programimit për Dizajnerin-Kontrolli i Procesit të Programit-Deklarata e Rrethit: 8 Hapa

Video: Udhëzime Interesante të Programimit për Dizajnerin-Kontrolli i Procesit të Programit-Deklarata e Rrethit: 8 Hapa
Video: CS50 2014 – вторая неделя, продолжение 2024, Korrik
Anonim
Udhëzime interesante të programimit për Dizajnerin-Kontrolli i Procesit të Programit-Deklarata e Rrethit
Udhëzime interesante të programimit për Dizajnerin-Kontrolli i Procesit të Programit-Deklarata e Rrethit

Kontrolli i Procesit të Programit- Deklarata e Loop

Nga ky kapitull, ju do të kontaktoni me një deklaratë të rëndësishme dhe të fuqishme të njohurisë-Loop.

Para se të lexoni këtë kapitull, nëse doni të vizatoni 10,000 qarqe në program, mund të bëni vetëm me një metodë të tmerrshme. Kjo do të thotë të shkruash 10, 000 rreshta të kodit elips. Ata dizajnerë dembelë të kodit që duan të përmirësojnë efikasitetin me të gjitha mjetet, definitivisht nuk do të lejonin që kjo të ndodhte. Pra, krijohet deklarata e lakut. Me këtë deklaratë, ju mund të ndjeni intuitivisht fuqinë e automatizimit të kompjuterit.

Hapi 1: Për lak

Ka shumë deklarata loop, ndër të cilat më e përdorura është For Loop. Ne të gjithë e dimë se tërheqja e funksioneve funksionon vazhdimisht në qarkullim. Filloni nga fjalia e parë në fillim, ajo do të zbatohet nga lart poshtë deri në fjalinë e fundit. Pasi të përfundojë një operacion, do të fillojë përsëri nga fjalia e parë. Për deklaratën është pak e ngjashme me funksionin barazim. Kodi brenda për deklaratën mund të ekzekutohet në mënyrë të përsëritur.

Këtu është struktura e saj gramatikore:

Për (shprehja 1; shprehja 2; shprehja 3) {

Trup lak

}

Natyrisht, fjalitë brenda trupit të lakut janë ato që prisnim të zbatoheshin në mënyrë të përsëritur. Shprehja 1 përdoret për të inicializuar dhe caktuar vlerën e parë në variablin lak. Shprehja 2 është për gjendjen e lakut. Shprehja 3 do të përditësojë vlerën e ndryshueshme të lakut.

Çfarë është variabli lak? Actuallyshtë në të vërtetë ekuivalente me një ndryshore lokale. Le të hedhim një vështrim në një shkrim të plotë.

për (int i = 0; i <10; i ++) {

Trup lak

}

Për të realizuar funksionin e lakut, deklarata kryesisht mbështetet në një ndryshore lokale, e cila do të përdoret në përfundimin e lakut. Variabla lokale në shembullin e mësipërm është i. Shprehja 1 ka përfunduar fillimin e ndryshores lokale. Më vonë, çdo herë që cikli funksionon një herë, kjo ndryshore duhet të përditësohet. Ndër shembullin e mësipërm, i ++ në shprehjen 3 përdoret për të realizuar funksionin e përditësimit. Përmes tij, ndryshorja do të rritet 1 sa herë që azhurnohet. Në fund, kodi brenda trupit të lakut nuk mund të lakohet pafundësisht, përndryshe deklaratat e fundit nuk mund të ekzekutohen. Kështu, ne kemi nevojë për një kusht përfundimtar. Express 2 është vetëm për të. Këtu, programi do të gjykojë nëse unë jam më i vogël se 10. Nëse është, atëherë vazhdo operimin. Nëse nuk është, atëherë hidheni nga laku.

Prandaj, sekuenca e funksionimit të deklaratës është si kjo.

Shprehja 1 (Fillimi i ndryshores lokale)

Shprehja 2 (e kënaqur, pastaj vazhdoni të veproni)

Trupi i lakut (qarkullimi i parë)

Shprehja 3 (Përditëso)

Shprehja 2 (I kënaqur, pastaj vazhdoni të veproni)

Trupi i lakut (qarkullimi i dytë)

Shprehja 3 (Përditëso)

Shprehja 2 (I kënaqur, pastaj vazhdoni të veproni)

Trupi i lakut (Qarkullimi i tretë)…

Shprehja 3 (Përditëso)

Shprehja 2 (Nuk jam i kënaqur, pastaj hidheni nga laku)

Ju mund të simuloni këtë sekuencë të ekzekutimit në kokën tuaj për disa herë. Por është e pamundur të kuptosh vërtet kodin pa e shtypur me dorën tënde një herë. Kur duam të zbulojmë një koncept të çuditshëm, mund të printojmë vlerën në tastierë përmes deklaratës println.

Shembull Kodi (5-1): void setup () {

për (int i = 0; i <10; i ++) {

println ("drejtuar");

}

}

Mund të numëroni numrin e daljeve të ekzekutuara në tastierë. Këtu, është saktësisht 10. Kjo ju tregon se sa herë kodi në trupin e lakut është ekzekutuar. Sidoqoftë, ne ende nuk mund të zbulojmë se çfarë ndryshimesh kanë ndodhur në të vërtetë në lak. Kështu që ne mund të përpiqemi të ndryshojmë karakterin "drejtuar në ndryshoren" i "dhe të shohim se çfarë do të ndodhë.

Shembull Kodi (5-2): void setup () {

për (int i = 0; i <10; i ++) {

println (i);

}

}

Tani, ne mund të shohim që vlera i në trupin e lakut po rritet vazhdimisht. Më vonë, ne mund ta përdorim këtë vlerë për të kuptuar procesin aktual të lakut.

Në shembullin e kodit (5-2), vlera e i ndryshohet nga 0 në 9. Krahasuar me kohët aktuale të lakut, duket se gjithmonë ka 1 më pak. Nëse nuk jeni mësuar me të, shprehja brenda kllapës së deklaratës mund të shkruhet në vijim:

për (int i = 1; i <= 10; i ++)

Kështu, unë korrespondoj me të drejtë me kohët e lakut. Kuptimi i "<=" është më pak se dhe i barabartë me. Pra, kur jam i barabartë me 10, ai përsëri do të plotësojë kushtin. Prandaj, do të funksionojë edhe një herë në krahasim me atë të shkruar në i <10. Edhe pse fillon nga 1, kohët e lakut janë akoma 10. Sigurisht, nëse nuk nevojitet asgjë e veçantë, do të doja të sugjeroja që të miratonit metodën e shkrimit në shembull në fillim. Më vonë ne do t'ju prezantojmë vektorin ose grupin, të dyja të cilët marrin elementin e tij me nënshkrimin e tij. Dhe nënshkrimet e paracaktuara të gjitha fillojnë nga 0. Përcaktimi i vlerës fillestare të jetë 0 është praktikë relativisht e zakonshme.

Në shembullin e mësipërm, nëse shkruajmë i është përtej 0, grafiku do të rrëzohet. Për shkak se variabla po rritet në mënyrë konstante, ajo kurrë nuk do ta plotësojë këtë kusht. Kjo është ashtu siç nuk mund të ndalet kurrë në mënyrë që programi të futet në një lak të pafund.

Variablat lokalë në deklaratën for jo vetëm që mund të deklarojnë lloje plastike, por edhe të deklarojnë ndryshore në llojet e pikave lundruese. Për shembull, mund të shkruhet si (float i = 0; i <10; i + = 0.02).

Hapi 2: Përdorni për Loop për të zgjidhur probleme matematikore

A ju kujtohet akoma një histori e matematikanit Gaus në fëmijërinë e tij? Në atë kohë, Guass ishte 10 vjeç. Mësuesi i tij donte të caktonte një detyrë në klasë dhe pyetja ishte

1+2+3+4……+97+98+99+100=?

Nëse llogaritni me duart tuaja, do t'ju marrë shumë kohë. Por Guass duket se e ka kuptuar metodën e përmbledhjes së sekuencës aritmetike tashmë. Pra, menjëherë pasi të jetë dhënë pyetja, ai e tha përgjigjen me lehtësi, gjë që e kishte habitur shumë mësuesin e tij.

Tani, ne ende nuk mund të kujtojmë se cili është përmbledhja e sekuencës aritmetike, por ne mund ta marrim përgjigjen në një mënyrë primitive dhe të dhunshme. Dhe kjo është për lak. Meqenëse është vetëm një copë tortë e vogël për kompjuterët që të numërohen, ne duhet ta përshkruajmë pyetjen në një gjuhë që mund të njihet nga kompjuteri, atëherë ne lehtë mund të marrim përgjigjen tonë.

Shembull Kodi (5-3):

void setup () {

int përgjigje = 0;

për (int i = 1; i <= 100; i ++) {

përgjigje += i;

}

println (përgjigje);

}

Unë besoj se rezultati që merrni është i njëjtë me përgjigjen e raportuar nga Guass: është 5050!

Këshilla: Emri i variablave lokal në for loop mund të ndryshohet sipas dëshirës me kusht që të respektojë rregullat e emërtimit të variablave. Mund ta shkruani që të jetë (int k = 1; k <= 100; k ++). Nëse nuk ndodhin kushte specifike, ajo paracaktohet i si emri i ndryshores.

Hapi 3: Për vizatimin e lakut

Pas një serie krevatesh në dukje të mërzitshme, më në fund mund të hyjmë në një seksion më interesant. Kjo do të përdoret për lak për të vizatuar fotografi. Tani mund t'i lëmë mënjanë ato llogaritjet e lodhshme matematikore. Ne projektuesit jemi më të ndjeshëm ndaj grafikës.

Përdorni për lak për të vizatuar një grup rrethi

Kur duam të përdorim për lak për të përfaqësuar një grup elementësh të përsëritur, duhet të sigurohemi paraprakisht për raportin numerik të këtyre elementeve, atëherë mund të përdorim për lak për ta realizuar me lehtësi në vend që të bëjmë punë të përsëritura masive. Supozoni nëse duam të vizatojmë një rresht rrethi të përhapur në mënyrë të barabartë në drejtim horizontal. Koordinata e saj virtuale është e pandryshuar ndërsa koordinata e saj horizontale ndryshon. Dhe nga e majta në të djathtë, koordinata horizontale po rritet vazhdimisht dhe distanca në rritje është e njëjtë. Në këtë kohë, ne mund të përdorim lakin i in për të marrë koordinatën horizontale të secilit rreth.

Shembull Kodi (5-4): void setup () {

madhësia (700, 700);

sfond (83, 51, 194);

noStroke ();

}

tërheqje e pavlefshme () {

për (int i = 0; i <7; i ++) {

elips (50.0 + i * 100.0, lartësi/2.0, 80.0, 80.0);

}

}

50 qëndron për pozicionin fillestar të rrethit të parë në të majtë. 100 në i * 100 përfaqëson distancën në rritje.

Hapi 4: Përdorni për Loop për të nxjerrë një pikë të rrumbullakët të rastësishme

Pozicioni grafik i mësipërm është i parashikueshëm. Kjo do të minimizojë shumë interes. Ne mund të përdorim funksionin e rastësishëm që iu referuam në kapitullin e mëparshëm dhe të përpiqemi ta shkruajmë atë në funksionin e vizatimit.

Shembull Kodi (5-5):

void setup () {

madhësia (700, 700);

sfond (0);

noStroke ();

}

tërheqje e pavlefshme () {

sfond (0);

për (int i = 0; i <10; i ++) {

float randomWidth = random (60.0);

elips (e rastësishme (gjerësia), e rastësishme (lartësia), randomWidth, randomWidth);

}

}

Këtu, arsyeja pse pozicioni i rrethit po ndizet vazhdimisht është sepse çdo herë që funksioni i rastësishëm funksionon një herë, rezultati është i rastësishëm. Për shkak se vizatimi i funksionit është i paracaktuar për të ekzekutuar 60 korniza për sekondë, kështu që çdo 10 qarqe të vizatuara në një sekondë do të ndryshojë pozicionin e tij për 60 herë. Ky blic i shpejtë bën që fotografia të ketë më shumë se 10 qarqe. Ndryshimi i një vlere të thjeshtë në program do t'ju sjellë një efekt krejtësisht të ndryshëm. Ne mund të ndryshojmë kohët e lakut duke rishikuar gjendjen terminale. Gjendja terminale në figurën më poshtë është i <100

  1. Këtu është efekti kur gjendja terminale është i <1000:
  2. Farë e rastësishme
  3. Nëse nuk dua që pozicioni i rrethit të krijohet rastësisht si dhe ndezja e tij, çfarë mund të bëj? Një metodë është ndërtimi dhe ruajtja e variablave të pavarur për secilin rreth dhe inicializimi i këtyre variablave në konfigurim. Caktoni këtyre ndryshoreve një vlerë të rastësishme. Kështu, kur përdorim funksionin e vizatimit brenda barazimit, ajo që kemi thirrur është vlera e ruajtur në ndryshore. Nuk do të ndryshojë në asnjë moment. Për të vizatuar 10 qarqe ne thjesht mund ta përdorim këtë metodë. Por, çka nëse duam të vizatojmë 1000 qarqe, ose 10, 000 qarqe? Do të jetë mjaft e mundimshme nëse përdorim këtë metodë tradicionale për të ndërtuar këto ndryshore dhe për ta emëruar atë. Ne nuk duhet të mësojmë një metodë të re të ndërtimit të ndryshueshme. Këtu është një metodë fleksibël që mund të na ndihmojë të arrijmë këtë qëllim. Kjo do të thotë të përdorni randomSeed. Tani, le të hedhim një vështrim në efektin e tij pasi të përdoret. Shembull Kodi (5-6): [cceN_cpp theme = "agim"] konfigurim i pavlefshëm () {madhësia (700, 700); sfond (0); noStroke ();}
  4. tërheqje e pavlefshme () {

    sfond (0);

    farë e rastësishme (1);

    për (int i = 0; i <10; i ++) {

    float randomWidth = random (20.0, 60.0);

    elips (e rastësishme (gjerësia), e rastësishme (lartësia), randomWidth, randomWidth);

    }

    } [/cceN_cpp]

    Krahasuar me kodin e mëparshëm, ai nuk ka ndonjë ndryshim përveçse të bëjë që rrezja e rrezeve të rrethit të ndryshojë nga 10 në përtej 30 me një fjali vetëm tëSeedRandom. Pasi i shtohet kjo fjali, grafiku duket se bëhet statik.

    Formati i thirrjes:

    farë e rastësishme (a);

    Midis këtij formati, vendosja e a është fara. Ju duhet të mbushni një numër të plotë (shkruani vlerën e pikës fluturuese në P5, nuk do të shkojë keq, por do ta trajtoni si një numër të plotë) në të. Funksioni i randomSeed është të vendosë farën për një vlerë të rastësishme. Pastaj do të gjenerojë një grup të ndryshëm të rastësishëm sipas farës së ndryshme. Pas tij, ne thërrasim funksionin e rastësishëm në mënyrë që rezultati i kthimit të jetë i caktuar. Këtu, definitivi nuk është për rezultatin është një vlerë e caktuar, por për grupin e gjeneruar. Kjo do të thotë se rezultati i kthimit është i caktuar në krahasim me kohën e thirrjes.

    Shembull Kodi (5-7): [cceN_cpp theme = "agim"] konfigurim i pavlefshëm () {

    farë e rastësishme (0);

    për (int i = 0; i <5; i ++) {

    println (rastësore (10));

    }

    } [/cceN_cpp]

    Tani ne vazhdojmë të përdorim println për të bërë një eksperiment. Pas përdorimit të randomSeed, sa herë që mbyllni programin dhe rinisni programin, ai do të kthehet në një varg të të njëjtit rezultat. Vlera do të korrespondojë me sekuencën një nga një. Nëse e fshini, atëherë çdo herë do të kthehet në vlerë të ndryshme. Pse e ka këtë cilësim? Isshtë për shkak se vlera e rastësishme në program është pseudo e rastësishme. Rezultati duket i rastësishëm, por në fakt ai gjenerohet nga një metodë e llogaritjes fikse dhe e përsëritshme. Equivalentshtë ekuivalente me caktimin e një vlere primitive për randomSeed, atëherë rezultati i mëposhtëm do të llogaritet sipas kësaj farë. Sidoqoftë, nëse nuk e përcaktojmë farën, programi nuk do të përdorë kohën e tanishme të sistemit për të gjeneruar farë. Prandaj, rezultati i çdo operacioni është i ndryshëm. Shembulli më poshtë mund t'ju ndihmojë të kuptoni më mirë randomSeed.

    Shembull Kodi (5-8): [cceN_cpp theme = "agim"] konfigurim i pavlefshëm () {

    madhësia (700, 700);

    sfond (0);

    noStroke ();

    }

    tërheqje e pavlefshme () {

    farë e rastësishme (1);

    për (int i = 0; i <10; i ++) {

    noton randomWidth01 = rastësor (10, 60);

    elips (e rastësishme (gjerësia), e rastësishme (lartësia), randomWidth01, randomWidth01);

    println (randomWidth01);

    }

    farë e rastësishme (1);

    për (int i = 0; i <10; i ++) {

    noton randomWidth02 = rastësor (10, 60);

    elips (e rastësishme (gjerësia), e rastësishme (lartësia), randomWidth02, randomWidth02);

    println (randomWidth02);

    }

    } [/cceN_cpp]

    Mundohuni të rishikoni randomSeed -in e dytë (1) në randomSeed (0) dhe krahasoni rezultatet përfundimtare.

    Këshilla: Në P5, ne vetëm duhet të thërrasim funksionin noLoop në fund të barazimit në mënyrë që të mund të marrim të njëjtin efekt. Funksioni i tij është të përfundojë programin. Quiteshtë krejt ndryshe nga parimet e mësipërme të punës në natyrë.

Hapi 5: Përdorni për Loop to Draw Line

Pasi të kemi zotëruar përdorimin e randomSeed, mund të përpiqemi të ndryshojmë funksionin e vizatimit. Për shembull, ndryshoni vizatimin e rrethit në vizatim në vijë. Vetëm nëse hartojmë disa rregullore ndryshuese deri në fund të rreshtit, ne mund të përdorim shumë linja të ndërthurura për të bërë një model unik.

Shembull Kodi (5-9):

[cceN_cpp theme = "agim"] konfigurim i pavlefshëm () {

madhësia (700, 700);

sfond (0);

}

tërheqje e pavlefshme () {

farë e rastësishme (0);

për (int i = 0; i <2000; i ++) {

noton x1 = gjerësia/2.0;

noton x2 = rastësor (50.0, 650.0);

goditje (255, 20);

rresht (x1, 50, x2, 650);

}

} [/cceN_cpp]

Krijoni një furçë të thjeshtë

Kthehuni përsëri në lak për. Shembujt e mësipërm nuk janë ndërveprues. Nëse duam që rezultati të bëhet më interesant, nuk mund të harrojmë të kombinojmë mouseX dhe mouseY në kodin tonë.

Shembull Kodi (5-10):

[cceN_cpp theme = "agim"] konfigurim i pavlefshëm () {

madhësia (700, 700);

sfond (255);

noStroke ();

}

tërheqje e pavlefshme () {

për (int i = 0; i <1000; i ++) {

mbush (0, 30);

noton x = miuX + rastësor (-50, 50);

noton y = miuY + rastësor (-50, 50);

elips (x, y, 2, 2);

}

} [/cceN_cpp]

Krijohet një furçë "pika shpërndarëse". Për shkak se çdo pikë mini e rrumbullakët intensive është e vendosur në pozicionin e miut, ajo mund të lëvizë drejtime të kufizuara nga katër drejtimet e majta, të djathta, lart e poshtë. Pra, përhapja e formës përfundimtare të furçës është e ngjashme me një katror.

Shembull Kodi (5-11):

[cceN_cpp theme = "agim"] konfigurim i pavlefshëm () {

madhësia (700, 700);

sfond (255);

noStroke ();

}

tërheqje e pavlefshme () {

për (int i = 0; i <1000; i ++) {

raporti notues = gjerësia e miutX/(noton);

noton x = miuX + rastësor (-50, 50);

noton y = miuY + rastësor (-50, 50);

mbush (0, raporti * 255, 255 * (1 - raporti), 30);

elips (x, y, 2, 2);

}

}

[/cceN_cpp]

Nëse përdorim vlerën e mouseX për të ndikuar në ngjyrën e mbushjes, atëherë do të marrim një gradient shumë më magjik të ngjyrave.

Hapi 6: Për Loop Nested

Për lak mund të fole. Ju mund të shkruani një lak for përsëri në lak for. Kur keni nevojë të vizatoni një matricë pikë dy -dimensionale, ju mund të zgjidhni këtë metodë.

Shembull Kodi (5-12):

[cceN_cpp theme = "agim"] konfigurim i pavlefshëm () {

madhësia (700, 700, P2D);

sfond (202, 240, 107);

}

tërheqje e pavlefshme () {

mbush (0);

për (int i = 0; i <5; i ++) {

për (int j = 0; j <5; j ++) {

noton x = 150 + i * 100;

noton y = 150 + j * 100;

elips (x, y, 60, 60);

println (i + ":" + j);

}

}

}

[/cceN_cpp]

Për të përdorur lakin e mbivendosur për herë të parë, duhet të kuptoni marrëdhëniet logjike të tij. Zbatimi i kodit në program është gjithmonë nga lart poshtë. Prandaj, i pari i zbatuar është padyshim laku më i madh. Sa herë që laku i jashtëm funksionon një herë, laku i brendshëm do të funksionojë vazhdimisht derisa të mos e plotësojë më gjendjen. Pas kësaj, do të fillojë operacionin e dytë të lakut të jashtëm. Pas fillimit të operacionit të dytë, laku i brendshëm do të vazhdojë të zbatohet derisa të mos e plotësojë kushtin. Një përsëritje e tillë e bën derisa të gjitha kushtet nuk mund të plotësohen dhe të hidhet jashtë lakut.

Në kodin e mësipërm, trupi i lakut në lakin e jashtëm ka funksionuar 5 herë në total, ndërsa trupi i lakut në lakin e brendshëm ka operuar 25 herë. Brenda 25 herë, sipas ndryshimit të vlerës i, j, ne mund të sigurojmë veçmas koordinatën horizontale dhe vertikale të rrethit. Unë kam futur një seksion të shtypur, ju mund të vëzhgoni daljen e të dhënave dhe të mendoni për ndryshimin e tij. Vetëm me dy sythe të futura, ne mund të përjetojmë të gjitha kombinimet e të dhënave i, j.

Këshilla

Për lak në shtresën e dytë zakonisht kondensohet me Tab në fillim. Kjo mund ta bëjë strukturën e kodit më të qartë. Ju duhet të emërtoni ndryshoret lokale në dy shtresat e lakut for me emra të ndryshëm. Midis tij, "i", "j", "k" është më i zakonshmi.

Përdorimi fleksibël "i", "j"

Dy emrat e ndryshueshëm të "i", "j" përfaqësojnë ndryshoret lokale të dy shtresave të for loop. Shembulli më poshtë do të thellojë kuptueshmërinë tuaj për "i" "j". Sipas vlerës së ndryshme të "i", "j", ne mund të futim parametra për të grupuar elementët.

Shembull Kodi (5-13): [cceN_cpp theme = "agim"] konfigurim i pavlefshëm () {

madhësia (700, 700);

sfond (0);

noStroke ();

}

tërheqje e pavlefshme () {

sfond (0);

mbush (250, 233, 77);

për (int i = 0; i <7; i ++) {

për (int j = 0; j <7; j ++) {

pushMatrix ();

përkthe (50 + i * 100, 50 + j * 100);

// Vendosja 1

// këndi i notimit = sin (millis ()/1000.0) * PI/2;

// Vendosja 2

// raporti notues = i/7.0;

// këndi i notimit = sin (millis ()/1000.0 + raporti * (PI/2)) * PI/2;

// Vendosja 3

raporti notues = (i * 7 + j) /49.0;

këndi i notimit = sin (millis ()/1000.0 + raporti * (PI/2)) * PI/2;

rrotullohet (këndi);

rectMode (CENTER);

// Vizatoni figurën 1

drejt (0, 0, 80, 80);

// Vizatoni figurën 2

// rect (0, 0, 100, 20);

// Vizatoni figurën 3

// rect (0, 0, raporti * 50);

popMatrix ();

}

}

} [/cceN_cpp]

Shpjegimi i Kodit

rectMode (CENTER) mund të ndryshojë metodën e vizatimit të katrorit. Dy parametrat origjinal të rect janë përdorur për të përcaktuar koordinatën e këndit të sipërm të majtë të sqaure. Pasi ta fillojmë këtë komandë, këto dy parametra do të përdoren për të vendosur koordinatën për pikën qendrore katrore. Sepse këtu ne veprojmë me rrotullimin paterrn përmes rrotullimit, kështu që ne duhet të përdorim këtë metodë për të tërhequr pikën qendrore në pikën origjinale të koordinatës.

millis () merr kohën nga fillimi i programit e deri më tani. Njësia është ms. Kjo vlerë do të ndikojë në ndryshimin e shpejtësisë së vlerës së prodhimit sin. Nëse shkruajmë millis drejtpërdrejt, shkalla e ndryshimit është shumë e madhe. Kështu, ne duhet ta ndajmë atë me 1000.0.

Në këtë pjesë të kodit, ne përdorim simbolin e komentit "//" për të fshehur disa cilësime. Ju mund të zhvendosni efektet nga fillimi ose mbyllja. Për shembull, nëse fillojmë fjalitë prapa "Vendosja 3", duhet të përdorim simbolin e komentit për të mbyllur blloqet e kodit si "Vendosja 1" dhe "Vendosja 2". Sa për shembujt e kësaj strukture të ngjashme programi me ndryshore të ndryshme lokale, ne mund të shkruajmë në këtë format. Kështu që nuk kemi pse të ruajmë disa dokumente inxhinierike veç e veç. Ne mund ta përdorim këtë aftësi shpesh gjatë praktikës dhe krijimit dhe të ruajmë disa parametra të kënaqshëm parametrash.

Midis tij, ndikimi i vlerës i, j në program përfaqësohet kryesisht nga zhvendosja e "Cilësimit 1 (Vendosja 2) (Vendosja 3)". Ju mund të krahasoni rezultatet e prodhimit më poshtë.

Vizatoni figurën 1: Vendosja 1

Vizatoni figurën 1: Vendosja 2

Vizatoni figurën 1: Vendosja 3

Vizatoni figurën 2: Vendosja 1

Vizatoni figurën 2: Vendosja 2

Vizatoni figurën 2: Vendosja 3

Në vendosjen 1, ne nuk kemi përdorur i dhe j për të ndikuar në këndin e rrotullimit të secilit element. Kështu ne mund të shohim që lëvizja e çdo elementi është e njëjtë. Ndërsa në vendosjen 2, ne kemi përdorur vlerën i dhe si i dhe j në vendosjen 3. Së fundi ato kanë ndikuar në futjen e parametrave të funksionit sin përmes raportit. Kjo ka ndryshuar ndryshimin periodik të këndit. Për shkak të efektit aktual të vendosjes 2 dhe cilësimi 3 nuk është aq i dukshëm në grafikat e animuara, ne mund ta vëzhgojmë atë nga pamja e mëposhtme e ekranit.

Vizatoni figurën 2 (majtas: cilësimi 2; djathtas: cilësimi 3)

Vizatoni figurën 3 (majtas: cilësimi 2; djathtas: vendosja 3)

Në foton e parë, raporti përdoret për të ndikuar në këndin e rrotullimit katror. Ndërsa fotografia e dytë, është e nevojshme të kontrolloni rrezen e rrethit drejtpërdrejt. Ne mund të shohim që ajo ka përdorur fjalinë e vlerës:

raporti notues = i/7.0;

Ndryshimi i elementit vertikal të tij është konsistent. Për shkak se koordinata horizontale që kontrollon figurën varet vetëm nga vlera e i, kështu që pattermat me të njëjtën koordinatë horizontale do të jenë të njëjta. Dhe vlera e raportit, këndit të rrotullimit dhe rrezja e rrethit është gjithashtu e njëjtë.

Në të njëjtën kohë, ne përdorim fjalinë i, j:

raporti notues = (i * 7 + j) /49.0;

Mund të përshkruajë "gradient". Këtu, me metodën e shumëzimit të një faktori, ai ka kombinuar ndikimin e rreshtave dhe kolonave. Pra, secili element është i ndryshëm.

Hapi 7: Ndërsa Loop

Nuk është një vëlla për për lak. Kjo është ndërsa lak. Çfarë për loop mund të bëjë, ndërsa loop mund ta bëjë atë gjithashtu. Por frekuenca e përdorimit të lakut while në CreatCoding nuk është e lartë si për lak.

Shembull Kodi (5-14): [cceN_cpp theme = "agim"] konfigurim i pavlefshëm () {

int a = 0;

ndërsa (a <10) {

println (a);

a ++;

}

} [/cceN_cpp]

Struktura gramatikore e while është më e lehtë të kuptohet sesa për të. Ne mund të krijojmë ndryshore para deklaratës while. Pastaj plotësoni një shprehje brenda kllapës katrore. Kur të jetë i kënaqur, atëherë përdorni fjalitë brenda trupit të lakut. Së fundi, ne vendosim një shprehje në trupin e lakut për të azhurnuar variablat, pastaj ndërsa cikli përfundon. Sa i përket kohës së siguruar të lakut, ne shpesh përdorim për lak. Sa i përket vlerës së ndryshueshme të pafundme, ne ju rekomandojmë të përdorni ndërsa loop.

Mendoni:

Mundohuni të përdorni të gjitha llojet e elementeve bazë për të zëvendësuar elementët e vizatimit në lak për të krijuar furça të ndryshme të ndryshme.

Kombinojeni me funksionin trigonometrik të referuar në kapitullin e fundit, përpiquni të rishikoni furçën "pikat e shpërndarjes" në furçë në formë të rrumbullakët.

Mundohuni të bëni një matricë dy -dimensionale të pikave vetëm me një lak for.

Ashtu si me këtë kurs, do të gjeni çdo njohuri të re që mësoni, mundësia për të luajtur menjëherë do të rritet shumë. Programi është një kuti pandora. Çdo gjë që mund të imagjinoni, mund ta bëjë për ju. Pra, nuk ka asnjë arsye që ne të mos e mësojmë këtë gjuhë e cila mund të komunikojë me kompjuterë. Në kapitullin tonë të ardhshëm, ne do të prezantojmë një deklaratë tjetër të kontrollit të procesit nëse keni për ju. Mund të kontrollojë rrjedhën e procesit dhe të gjenerojë rezultate më të ndërlikuara dhe të ndryshueshme. Me deklaratën if, ju mund të krijoni me lehtësi lojërat tuaja të aventurës me tekst! Ky artikull vjen nga projektuesi Wenzy. Lexime relative: Udhëzime programimi interesante për projektuesin-përpunimi i prekjes fillestare Udhëzime interesante të programimit për projektuesin-Krijoni programin tuaj të parë të përpunimit Udhëzime interesante të programimit për projektuesin –Merrni fotografinë tuaj (Pjesa e parë) Udhëzime interesante të programimit për stilistin - Merrni fotografinë tuaj në punë (Pjesa e dytë)

Hapi 8: Burimi

Ky artikull është nga:

Nëse keni ndonjë pyetje, mund të kontaktoni : [email protected].

Recommended: