Miundo ya udhibiti wa kimsingi. Miundo ya udhibiti. Taarifa ya IF yenye masharti

Ufafanuzi: Miundo ya udhibiti wa lugha ya C inazingatiwa: "ikiwa-mwingine" na "ikiwa-ikiwa" matawi, "wakati" na "kwa" loops. Pia kuna miundo ambayo ni bora kuepukwa: "kubadili", "fanya-wakati", "goto". Uwasilishaji wa programu kwa namna ya seti ya kazi, prototypes ya kazi, mbinu za kuhamisha vigezo vya pembejeo na pato huzingatiwa. Aina tofauti za kumbukumbu zimeorodheshwa: tuli, stack, dynamic (lundo) na njia za kufanya kazi na kumbukumbu katika C. Aina ya data ya mchanganyiko "muundo" huletwa. Nyenzo hiyo inaonyeshwa na mifano mingi ya programu: kusuluhisha equation ya quadratic, kuhesabu mzizi wa mraba, kuhesabu gcd ya nambari mbili na algoriti ya Euclidean iliyopanuliwa, kuchapisha nambari kuu za N, upitishaji wa mti unaorudiwa, nk.

Miundo ya udhibiti

Uundaji wa udhibiti hukuruhusu kupanga matanzi na matawi katika programu. Kuna miundo machache tu katika C, na nusu yao haihitaji kutumiwa (hutekelezwa kupitia wengine).

Braces

Braces za curly hukuruhusu kuchanganya taarifa kadhaa za msingi katika taarifa moja ya kiwanja, au kuzuia. Katika miundo yote ya kisintaksia, opereta ambatani inaweza kutumika badala ya rahisi.

Katika C, unaweza kuweka maazimio ya vigezo vya ndani mwanzoni mwa kizuizi. Vigezo vya ndani vilivyotangazwa ndani ya kizuizi huundwa wakati wa kuingia kwenye kizuizi na kuharibiwa wakati wa kuondoka.

Katika C++, anuwai za ndani zinaweza kutangazwa mahali popote, sio tu mwanzoni mwa kizuizi. Walakini, kama vile katika C, huharibiwa kiotomatiki wakati wa kuondoka kwenye kizuizi.

Hapa kuna kipande cha programu ambacho hubadilishana maadili ya anuwai mbili halisi:

mara mbili x, y; . . . (tmp mbili = x; x = y; y = tmp;)

Hapa, ili kubadilishana maadili ya vigezo viwili x na y, kwanza tunahifadhi thamani ya x katika tmp ya ziada ya kutofautisha. Kisha thamani ya y imeandikwa kwa x, na thamani ya awali ya x iliyohifadhiwa katika tmp imeandikwa kwa y. Kwa kuwa utofauti wa tmp unahitajika tu ndani ya kipande hiki, tulikifunga kwenye kizuizi na kutangaza utofauti wa tmp ndani ya kizuizi hicho. Baada ya kuondoka kwenye kizuizi, kumbukumbu iliyochukuliwa na tofauti ya tmp itaachiliwa.

kama kauli

Taarifa ya if hukuruhusu kupanga matawi katika programu. Ina namna mbili: kauli ya "ikiwa" na kauli ya "kama... sivyo". Opereta "ikiwa" ana fomu

ikiwa (hali) hatua;

opereta "ikiwa...mwingine" ana fomu

ikiwa (hali) hatua1; hatua nyingine2;

Unaweza kutumia usemi wowote wa aina ya kimantiki au nambari kamili kama sharti. Kumbuka kwamba unapotumia usemi kamili, thamani "kweli" inalingana na thamani yoyote isiyo ya sifuri. Wakati wa kutekeleza taarifa ya "ikiwa", usemi wa masharti baada ya if hutathminiwa kwanza. Ikiwa ni kweli, basi hatua inafanywa, ikiwa ni uongo, basi hakuna kinachotokea. Kwa mfano, katika kipande kifuatacho, thamani ya juu ya vigezo x na y imeandikwa kwa kutofautiana m:

mara mbili x, y, m; . . . m = x; ikiwa (y > x) m = y;

Wakati wa kutekeleza taarifa ya "ikiwa ... sivyo" wakati hali ni kweli, kitendo kilichoandikwa baada ya if kinatekelezwa; vinginevyo, hatua baada ya nyingine inatekelezwa. Kwa mfano, sehemu iliyotangulia imeandikwa tena kama ifuatavyo:

mara mbili x, y, m; . . . ikiwa (x > y) m = x; mwingine m = y;

Wakati unahitaji kufanya vitendo kadhaa kulingana na ukweli wa hali, unapaswa kutumia braces curly, kuchanganya taarifa kadhaa katika block, kwa mfano,

mara mbili x, y, d; . . . ikiwa (d > 1.0) ( x /= d; y /= d; )

Hapa vigezo x na y vimegawanywa na d ikiwa tu thamani ya d ni kubwa kuliko moja.

Braces curly inaweza kutumika hata wakati kuna taarifa moja tu baada ya kama au vinginevyo. Wanaboresha muundo wa maandishi ya programu na kuwezesha marekebisho yake iwezekanavyo. Mfano:

mara mbili x, y; . . . ikiwa (x != 0.0) (y = 1.0;)

Ikiwa tunahitaji kuongeza kitendo kingine kinachofanya ikiwa "x sio sifuri", basi tutaongeza tu mstari ndani ya braces zilizopinda.

Chagua kutoka kwa chaguzi kadhaa: ikiwa ... vinginevyo ikiwa...

Nyingi kama...vinginevyo kauli zenye masharti zinaweza kuandikwa kwa kufuatana (yaani, kitendo baada ya kingine kinaweza tena kuwa taarifa ya masharti). Matokeo yake, ni barabara chaguo kutoka kwa chaguzi kadhaa. Muundo wa uteuzi hutumiwa mara nyingi sana katika programu. Mfano: ukipewa utofauti halisi wa x, unahitaji kuandika thamani ya alama ya kukokotoa(x) kwenye kigezo halisi y.

Katika mazingira ya MATLAB

Kwa mujibu wa dhana ya programu iliyopangwa iliyopendekezwa na N. Wirth, mpango wowote ni muundo uliojengwa kutoka kwa aina tatu za miundo ya msingi:

utekelezaji wa mlolongo - utekelezaji wa wakati mmoja wa shughuli kwa utaratibu ambao umeandikwa katika maandishi ya programu;

matawi - utekelezaji mmoja wa moja ya shughuli mbili au zaidi, kulingana na utimilifu wa hali fulani;

mzunguko - utekelezaji unaorudiwa wa operesheni sawa hadi hali fulani iliyoainishwa ifikiwe - hali ya kuendelea na mzunguko.

Katika mpango huo, miundo ya msingi inaweza kuunganishwa kwa kila mmoja kwa njia yoyote, lakini hakuna njia nyingine za kudhibiti mlolongo wa shughuli zinazotolewa.

Opereta wa tawi (maagizo ya masharti, mwendeshaji wa masharti) ni muundo wa lugha ya programu ambayo inahakikisha utekelezaji wa amri fulani au seti ya amri ikiwa tu usemi fulani wa kimantiki ni kweli, au utekelezaji wa amri moja kutoka kwa seti ya amri kulingana na thamani. ya usemi fulani.

Kuna aina mbili kuu za matumizi ya opereta ya tawi inayopatikana katika lugha za programu: opereta wa masharti na opereta mwenye thamani nyingi.

Opereta mwenye masharti hutekeleza utekelezaji wa amri fulani mradi tu usemi fulani wa kimantiki (hali) unachukua thamani "kweli".

Kwa ujumla, syntax ya taarifa ya masharti na tawi moja katika mazingira ya programu ya MATLAB ni kama ifuatavyo.

kama<условие>

<операторы 1>

<операторы2>

Seti ya taarifa inawakilisha mwili wa usemi, waendeshaji 1 hutekelezwa tu ikiwa hali ni ya kweli, ikiwa hali ni ya uwongo, basi hutekelezwa waendeshaji 2. Kutumia muundo kwa kutumia amri mwingine waendeshaji 2.

Ikiwa kuna hali kadhaa, ujenzi wa mwendeshaji wa masharti una fomu ifuatayo:

kama<условие1>

<операторы1>

vinginevyo<условие2>

<операторы2>

vinginevyo<условие3>

<операторы3>

<операторыn>

Waendeshaji wafuatao wa kulinganisha wanaweza kutumika katika MATLAB:

< - chini;

<= - chini au sawa;

> - zaidi;

>= - zaidi au sawa;

= - sawa;

~= - sio sawa.

Katika MATLAB inawezekana kufanya shughuli zifuatazo za kimantiki:

& - mantiki "na" (na);

| - kimantiki "au" (au);

~ - kukanusha kimantiki (sio).

Matokeo ya shughuli za kimantiki ni nambari: 0 ikiwa hali ni ya uwongo na 1 ikiwa hali ni kweli.


Opereta iliyochaguliwa yenye thamani nyingi ina matawi mengi na hutekeleza tawi moja maalum kulingana na thamani ya usemi muhimu unaotathminiwa. Tofauti ya kimsingi kati ya ujenzi huu na opereta kwa masharti ni kwamba usemi unaoamua chaguo la tawi linaloweza kutekelezwa haurudishi kimantiki, bali thamani kamili, au thamani ambayo aina yake inaweza kutumwa kwa nambari kamili.

Sintaksia ya opereta ya uteuzi yenye thamani nyingi katika mazingira ya programu ya MATLAB ni kama ifuatavyo:

kubadili<выражение>

kesi<значение 1>

<операторы 1>

kesi<значение 2>

<операторы 2>

Vinginevyo

<операторы n>

Kutumia muundo kwa kutumia amri vinginevyo sio lazima ikiwa hakuna n waendeshaji.

Mzunguko- aina ya muundo wa udhibiti katika lugha za kiwango cha juu cha programu, iliyoundwa kupanga utekelezaji wa mara kwa mara wa seti ya maagizo.

Mlolongo wa maagizo yaliyopangwa kutekelezwa mara nyingi huitwa mwili wa kitanzi. Utekelezaji mmoja wa mwili wa kitanzi unaitwa kurudia.Semi inayoamua kama marudio yatatekelezwa tena au kitanzi kitaisha kinaitwa hali ya kutoka au hali ya mwisho ya kitanzi (au hali ya kuendelea, kulingana na jinsi ukweli wake unavyofasiriwa - kama ishara ya hitaji la kukamilisha au. endelea kitanzi). Tofauti inayohifadhi nambari ya kurudia ya sasa inaitwa kaunta ya kurudia kitanzi au kwa urahisi kaunta ya mzunguko. Kitanzi hakiwezi kuwa na kihesabu: hali ya kuondoka kwenye kitanzi inaweza kuamua na hali ya nje (kwa mfano, kuwasili kwa wakati fulani).

Utekelezaji wa kitanzi chochote huhusisha awali kuanzisha viambajengo vya kitanzi, kuangalia hali ya kutoka, kutekeleza kitanzi, na kusasisha utofauti wa kitanzi kwa kila marudio. Kwa kuongezea, lugha nyingi za programu hutoa vifaa vya udhibiti wa mapema wa kitanzi, kwa mfano, taarifa za kukomesha kitanzi, ambayo ni, kutoka kwa kitanzi bila kujali ukweli wa hali ya kutoka, na taarifa za kuruka mara kwa mara.

Kitanzi kisicho na masharti (isiyo na kikomo).- mzunguko, njia ya kutoka ambayo haijatolewa na mantiki ya programu. Kwa sababu ya asili yao ya kawaida, lugha za programu haitoi njia maalum za kisintaksia za kuunda vitanzi visivyo na mwisho, kwa hivyo vitanzi kama hivyo huundwa kwa kutumia miundo iliyoundwa kuunda vitanzi vya kawaida.

Aina za kawaida za vitanzi katika mazingira ya kompyuta ya MATLAB ni kitanzi cha hesabu au kitanzi chenye kaunta na kitanzi cha masharti au kitanzi chenye sharti la awali.

Kitanzi na counter- kitanzi ambacho kutofautiana fulani hubadilisha thamani yake kutoka kwa thamani ya awali ya awali hadi thamani ya mwisho na hatua fulani, na kwa kila thamani ya kutofautiana hii mwili wa kitanzi unatekelezwa mara moja.

Ili kupanga vitanzi vya kukabiliana katika mazingira ya programu ya MATLAB, mlolongo wa taarifa na syntax ifuatayo hutumiwa:

forj=j1:k:jn

<операторы>

Wapi: j- kudhibiti kutofautisha (kaunta) ya mzunguko, j1,jn- maadili ya awali na ya mwisho ya kihesabu cha mzunguko, mtawaliwa; k- nyongeza ya kaunta ya mzunguko, chaguo-msingi ni 1.

Kitanzi kilicho na masharti- kitanzi ambacho hutekelezwa huku hali fulani iliyobainishwa kabla ya kuanza kwake ni kweli. Hali hii inachunguzwa kabla ya mwili wa kitanzi kutekelezwa, hivyo mwili hauwezi kutekelezwa hata mara moja (ikiwa hali ni ya uongo tangu mwanzo).

Ili kupanga vitanzi na masharti katika mazingira ya programu ya MATLAB, mlolongo wa taarifa zilizo na syntax ifuatayo hutumiwa:

wakati<условие>

<операторы>

Kitanzi chenye sharti la awali huhakikisha kuwa taarifa za kitengo cha kitanzi zinatekelezwa mradi tu hali inayojaribiwa ni ya kweli.

Katika MATLAB, kama ilivyo katika lugha nyingi za kiwango cha juu cha programu, inawezekana kupanga kitanzi ndani ya mwili wa kitanzi kingine. Mzunguko kama huo utaitwa kitanzi kiota. Kitanzi kilichowekwa kiota kuhusiana na kitanzi ambacho kimewekwa ndani ya mwili wake kitaitwa kitanzi cha ndani, na kinyume chake, kitanzi katika mwili ambacho kuna kitanzi kilichowekwa kitaitwa nje kwa kiota. Ndani ya kitanzi kilichowekwa kiota, kitanzi kingine kinaweza kuwekewa kiota, na kutengeneza ngazi inayofuata ya kuatamia, na kadhalika. Idadi ya viwango vya kutaga kwa kawaida sio mdogo.

Ili kutoka kwa kitanzi cha ndani au cha nje mapema, tumia amri mapumziko. Ili kuendelea na utekelezaji wa kitanzi, tumia amri kurudi. Amri inaweza kutumika kusitisha utekelezaji wa programu pause- sitisha hadi kitufe chochote kibonyezwe; timu pause(n)- kusimamishwa kwa n sekunde au amri kibodi- kusimamishwa na uwezo wa kutekeleza karibu amri yoyote na kurudi kwa programu kwa amri kurudi.

s1.indexOf(subS)

faharisi ya nafasi ambapo katika safu mlalo s1 ni ya kwanza

subS ya mlolongo ilikutana

faharasa ya nafasi ambapo katika safu mlalo ya 1 in

s1.lastindexOf(subS)

mwisho

alikutana

mlolongo wa subS

inarudi kweli wakati

mlolongo

wahusika,

mlolongo

wahusika,

sawa, lakini wakati wa kulinganisha masharti

s1.equalsIgnoreCase(subS)

kupuuzwa

tofauti

katika rejista

herufi (herufi ndogo na kubwa

usitofautiane)

inarudisha kamba kulingana na kamba s1 ,

s1.replaceFirst(oldSubS,n

ambayo ya kwanza ilibadilishwa

matukio ya herufi katika mfuatano wa oldSubS umewashwa

herufi za kamba newSubS

Mbali na njia hizi, darasa la String pia lina njia zingine ambazo zinaweza kutumika kufanya shughuli ngumu kabisa kwenye kamba. Ili kupata maelezo zaidi kuhusu darasa la kamba, angalia mfumo wa kumbukumbu wa darasa la Java na kumbukumbu.

Kwa kumalizia, tunaona kwamba Java ina darasa la StringBuffer, ambalo lina idadi kubwa ya mbinu za usindikaji wa kamba ngumu.

2.9. Miundo ya udhibiti

Inajulikana kutoka kwa mazoezi ya programu kwamba kutekeleza algorithm ngumu zaidi au chini katika programu, kama sheria, haitoshi kutumia tu mlolongo wa mstari wa amri. Kupanga michakato ya matawi, uteuzi, vitanzi, na usumbufu, ujenzi wa udhibiti hutumiwa katika programu. Uundaji wa udhibiti hukuruhusu kubadilisha mlolongo wa utekelezaji wa vizuizi vya taarifa katika programu, ukichagua kizuizi kimoja au kingine cha nambari kulingana na hali.

2.9.1. Opereta kiwanja

KATIKA mpango, mara nyingi inahitajika kutekeleza sio taarifa moja lakini mlolongo wa taarifa kadhaa. Kwa kawaida, mfuatano mzima wa kauli huunganisha vikundi pamoja kwa kutumia viunga vilivyopinda{} .

Opereta kiwanja- mlolongo wa waendeshaji wa Pi iliyofungwa katika braces curly.

(P1; P2; P3; ...Pn)

Mwisho wa mwendeshaji wa kiwanja, haupaswi kuweka alama ";" , kama inavyofanywa kwa waendeshaji wengine.

2.9.2. Masharti ikiwa taarifa

KATIKA opereta wa masharti ya jumla if- else inaweza kuwakilishwa kama ifuatavyo:

ikiwa (hali) () vinginevyo (

Opereta hubainishwa kwa kutumia neno kuu ikiwa, hali, mabadiliko ya kimantiki au isiyobadilika ya boolean. Hali pia inaweza kuwa usemi uliokokotolewa ambao unarudisha thamani ya boolean, kwa mfano (x+5>y) . Ikiwa hali ni kweli, kizuizi kilichopo baada ya hali kutekelezwa, ikiwa thamani ni ya uongo, basi kizuizi kinachofuata neno kuu la pili kinatekelezwa.

Ikiwa kuna kauli moja tu katika block, si lazima kutumia braces curly, lakini inashauriwa kufanya hivyo ili kuhakikisha bora kusoma code.

Kizuizi kingine ni cha hiari na kinaweza kukosa. Mfano.

x*y; Katika kesi hii, inachukuliwa kuwa vigeu vya x na y ni vya aina ya boolean na usemi uliotathminiwa "pekee au" hutumiwa kama sharti. Operesheni x*y itafanywa tu ikiwa x na y zina thamani tofauti (kigeu kimoja ni kweli na kingine ni cha uwongo au kinyume chake), vinginevyo hakuna kitakachofanyika.

Kurekodi kipande katika fomu

ikiwa (hali) operesheni1; operesheni2;

operesheni3;

haikubaliki, kwa sababu mkusanyaji, bila kupata brace ya ufunguzi wa curly, ataamua kuwa ujenzi wa masharti una mwendeshaji mmoja na, kupata semicolon (;) baada ya operator1, humaliza kizuizi cha masharti na atasubiri neno kuu lingine au amri zingine ambazo hazihusiani na mwendeshaji wa masharti.

Operesheni2 itafanywa kwa thamani yoyote ya hali, kwa sababu haitumiki kwa taarifa ya masharti. Ikiwa mkusanyaji atakutana na neno kuu lingine, ataripoti kosa, kwa sababu taarifa ya awali ya masharti iliisha, lakini mpya haikuanza. Kwa kesi hii

Unahitaji kuchanganya operation1 na operation2 kwa kutumia braces curly:

ikiwa (hali) ( operesheni1; operesheni2;

) operesheni nyingine3;

KATIKA Katika kesi hii, tunapata hitilafu ya syntax; mkusanyaji anaweza kuitambua haraka na kuiripoti.

Kesi hiyo ni ngumu zaidi unaposahau kutenga kizuizi kinachohitajika katika sehemu nyingine, kama ilivyojadiliwa katika mfano.

ikiwa (hali) operesheni1;

operesheni nyingine 2;

operesheni3;

Mkusanyaji hatapata hitilafu ya kisintaksia, ingawa hali inahitaji kwamba operesheni2 na operesheni3 ifanywe katika kizuizi kingine. Kwa kuwa kizuizi kingine hakina viunga vilivyopinda, inamaanisha kuwa kina taarifa moja tu (operesheni2), na operesheni3 haijajumuishwa kwenye kizuizi hiki na itatekelezwa kama taarifa inayofuata.

2.9.3. Opereta ya uteuzi

Taarifa ya uteuzi wa kubadili hutumiwa unapotaka kuchagua kutoka kwa seti ya chaguo, kulingana na thamani ya thamani fulani ambayo usemi utachukua.

Unaweza kupanga uteuzi huu kwa kauli kadhaa ikiwa, ukiweka kila moja inayofuata katika uzuiaji mwingine wa ule uliopita, au kwa mfululizo, moja baada ya nyingine. Walakini, suluhisho hili halisomi, ingawa linafanya kazi.

Ili kufanya operesheni iliyochaguliwa katika Java, taarifa ya kubadili hutumiwa, ambayo ina syntax ifuatayo:

badilisha (maneno) ( thamani ya kesi1:

mwendeshaji;

kesi thamani2: operator; mwendeshaji;

kesi thamani: operator;

…………………

mwendeshaji;

mwendeshaji;

Usemi huo unaweza kuwa usemi wa msingi (kigeu, thabiti, halisi) au usemi uliokokotolewa. Kesi ya neno kuu imeandikwa kwa kila chaguo. Baada ya kila neno kisa, thamani maalum imebainishwa, neno halisi ambalo lazima lilingane na aina ya usemi. Hii inafuatwa na koloni ikifuatiwa na waendeshaji mmoja au zaidi. Seti za taarifa zinatenganishwa kutoka kwa kila mmoja na taarifa

mapumziko.

Baada ya kusahau kuandika amri ya kuvunja, tunakabiliwa na "kushindwa" katika utafutaji; ikiwa hakuna amri ya kuvunja, taarifa za kesi zinazofuata hazizingatiwi, na taarifa zote zinatekelezwa, kuanzia na kesi ambayo hali hiyo inakabiliwa.

Ikiwa hakuna kesi inayolingana na thamani ya usemi, basi kikundi cha taarifa baada ya neno msingi msingi kutekelezwa. Parameta hii haihitajiki katika programu, kwa hivyo inaweza kukosa. Kisha hakuna kitendo kitakachofanywa na udhibiti utahamishiwa kwenye taarifa ya programu inayofuata.

agiza javax.swing.JOptionPane; darasa la umma Oceanka (

utupu tuli wa umma (String args) ( Kamba vvod;

vvod = JOptionPane.showInputDialog("Ingiza nambari kutoka 1 hadi 5");

otm = Byte.parseByte(vvod); kubadili (otm) (

kesi ya 1: JOptionPane.showMessageDialog(null, "Kitengo"); mapumziko; kesi ya 2: JOptionPane.showMessageDialog(null, "Mbili"); mapumziko; kesi ya 3: JOptionPane.showMessageDialog (null , "Tatu"); mapumziko; kesi ya 4: JOptionPane.showMessageDialog(null, "Four"); mapumziko; kesi ya 5: JOptionPane.showMessageDialog(null, "Five"); mapumziko;

Kutoka kwa mfumo.(0);

2.9.4. Kauli za kitanzi

Vitanzi ni miundo inayotumiwa kurudia seti fulani ya amri tena na tena. Kitanzi kinadhibitiwa kwa kutumia nambari kamili au tofauti halisi inayoitwa parameta ya kitanzi. Thamani ya parameter ya kitanzi inaweza kutumika katika mahesabu na katika kuamua mwisho wa hali ya kitanzi.

Kitanzi kinaweza kugawanywa katika sehemu nne: uanzishaji, mwili wa kitanzi, hali, iteration.

Uanzishaji ni seti ya maadili ya parameta ambayo lazima ipewe mwanzoni mwa kitanzi. Mwili wa kitanzi una seti ya taarifa ambazo zitatekelezwa mara kwa mara wakati wa utekelezaji wa kitanzi. Hali ni thamani ya kimantiki ambayo inaangaliwa baada au kabla ya kutekeleza mwili wa kitanzi kulingana na utekelezaji wake, uamuzi unafanywa kwa hatua inayofuata ya kitanzi. Kurudia ni hatua katika kitanzi, au utekelezaji mmoja wa mwili wa kitanzi, kawaida kudhibitiwa na parameta ya kitanzi.

huku kauli

Taarifa ya wakati ni mwendeshaji wa msingi wa kufanya vitendo vya kujirudia katika Java.

Sintaksia ya taarifa ya wakati iliyo na sharti ni:

[kuanzisha] wakati (hali) (mwili wa kitanzi;

Kizuizi (hali) kinataja hali ya kutekeleza kitanzi, ambacho kawaida huhesabiwa katika programu. Ikiwa hali ni kweli, basi taarifa zilizojumuishwa kwenye mwili wa kitanzi huanza kutekelezwa. Ifuatayo, hali hiyo inaangaliwa tena, na ikiwa ni kweli, mchakato wa utekelezaji unaendelea. Ikiwa hali ni ya uwongo, basi mwili wa kitanzi utarukwa na mkalimani wa Java, na udhibiti utahamishiwa kwa taarifa inayofuata. Kitanzi kitatoka.

Hebu tuangalie mfano:

int a = int mpya; int i = 0;

wakati (a[i]<5){ a[i]+=1;

System.out .print(a[i]+" "); ikiwa (i==5) i=0;

Katika mfano huu, vipengele vyote vya safu a huongezeka kwa hatua kwa hatua na 1 na kuchapishwa kwenye console.

Taarifa ya muda iliyo na sharti kwanza hujaribu ukweli wa usemi wa hali kisha kutekeleza kiini cha kitanzi.

kufanya operator

Syntax ya taarifa ya wakati na postcondition ni:

wakati (hali);

Taarifa ya muda iliyo na postcondition kwanza hutekeleza mwili wa kitanzi kisha hujaribu ukweli wa usemi wa sharti.

Katika kesi ya kitanzi kilicho na hali ya posta, mwili wa kitanzi utatekelezwa angalau mara moja kwa thamani yoyote ya hali hiyo.

kwa taarifa

Taarifa ya kitanzi ina idadi fulani ya nyakati na ina syntax ifuatayo:

kwa (initialization; condition; increment) (mwili wa kitanzi;

Kwa opereta hutumika kurudia mwili wa kitanzi, nambari inayoweza kuhesabika inayoamuliwa na thamani ya kigezo cha kitanzi kutoka kwa safu fulani. Mara tu parameta ya kitanzi inakwenda zaidi ya anuwai fulani ya maadili, utekelezaji wa kitanzi utaisha.

agiza javax.swing.JOptionPane;

darasa la umma ForEx (

utupu tuli wa umma (String args) (

ndani i;

iter = JOptionPane.showInputDialog("Ingiza chaguo

i=Integer.parseInt(iter);

kwa (int j=0;j

JOptionPane.showMessageDialog (null , "Hii ni hatua ya "+(j+1)+"

Kitanzi cha for hutumika kurudia kupitia vipengele vya fulani

orodha au maadili yaliyoamuliwa na muundo wa hisabati. Misemo yote kwenye kichwa cha kitanzi ni ya hiari.

Kwa hivyo, ikiwa utaruka yoyote kati yao, kama vile uanzishaji au nyongeza, basi sehemu inayolingana ya kitanzi haitatekelezwa. Ukiruka sharti, itakabidhiwa thamani ya kweli kiotomatiki.

Wacha tuangalie kipengele kimoja zaidi cha opereta: ndani ya kichwa unaweza kuelezea kigezo ambacho kitafanya kazi ndani ya mwendeshaji huyu.

public static void main(String args) ( kwa (int i=1; i<=10; i++) {

System.out .print(i+" ");

Miundo ya udhibiti

Utangulizi

Katika sura nne za kwanza za mfululizo huu, tulizingatia uchanganuzi wa maneno ya hisabati na waendeshaji wa kazi. Katika sura hii, tutaangazia mada mpya na ya kusisimua: uchanganuzi na tafsiri ya miundo ya udhibiti kama vile taarifa za IF.

Mada hii ninaipenda sana kwa sababu ni mabadiliko kwangu. Nilicheza kwa uchanganuzi wa kujieleza kama tulivyofanya katika mfululizo huu, lakini bado nilihisi kama bado nilikuwa mbali sana kuweza kuunga mkono lugha kamili. Baada ya yote, lugha halisi zina matawi, vitanzi, subroutines na yote hayo. Labda ulishiriki baadhi ya mawazo haya. Wakati fulani uliopita, hata hivyo, ilinibidi kutekeleza uundaji wa udhibiti wa kitayarishaji cha mkusanyiko nilichokuwa nikiandika. Fikiria mshangao wangu nilipogundua kuwa hii ilikuwa rahisi zaidi kuliko usemi wa kuchanganua ambao nilikuwa tayari nimepitia. Nakumbuka nikifikiria, "Halo, hii ni rahisi!" Baada ya kumaliza somo hili, niko tayari kuweka dau kuwa utahisi vivyo hivyo.

Kutoka kwa kitabu Hebu Tujenge Mkusanyaji! na Crenshaw Jack

Udhibiti Huunda Utangulizi Katika sura nne za kwanza za mfululizo huu, tuliangazia uchanganuzi wa misemo ya hisabati na waendeshaji kazi. Katika sura hii tutazingatia mada mpya na ya kusisimua: kuchanganua na

Kutoka kwa kitabu The C# 2005 Programming Language and the .NET 2.0 Platform. na Troelsen Andrew

Inaunda Iterative Lugha zote za programu hutoa miundo ambayo hutoa uwezo wa kurudia vizuizi vya msimbo wa programu hadi sharti la kukamilishwa kwa marudio litimizwe. Ikiwa una uzoefu wa programu, basi taarifa za kitanzi katika C # zitakuwa kwako

Kutoka kwa kitabu cha Delphi. Kujifunza kwa mfano mwandishi Parizhsky Sergey Mikhailovich

wakati na fanya/wakati inajenga Kitanzi cha wakati ni muhimu wakati kizuizi cha taarifa lazima kitekelezwe hadi hali maalum ifikiwe. Kwa kweli, hii inahitaji kwamba wigo wa kitanzi cha wakati ufafanue hali ya kumaliza kitanzi, vinginevyo wewe.

mwandishi Raymond Eric Stephen

Tawi hujenga Miundo ya matawi hufanya mpito kwa mojawapo ya vizuizi vya msimbo wa programu kulingana na kuangalia hali fulani. Hizi ni pamoja na ikiwa na

Kutoka kwa kitabu Sanaa ya Kupanga kwa Unix mwandishi Raymond Eric Stephen

Miundo ya baisikeli Kupanga utekelezaji wa mzunguko wa vizuizi vya programu katika lugha ya Object Pascal, aina tatu za ujenzi wa mzunguko hutumiwa: kwa-kufanya, wakati-kufanya na kurudia-mpaka. Wanatofautiana katika asili ya mwanzo na mwisho

Kutoka kwa kitabu MySQL: Mwongozo wa Mtaalamu mwandishi Pautov Alexey V

Kutoka kwa kitabu Kozi "Lugha ya Kupanga PHP" mwandishi Savelyeva Nina Vladimirovna

20.3. Mpango wa 9 wa Matatizo ya Usanifu wa Unix husafisha Unix, lakini huongeza dhana moja pekee (nafasi ya majina ya kibinafsi) kwenye seti yake ya msingi ya mawazo ya kubuni. Hata hivyo, kuna matatizo makubwa na mawazo haya ya msingi? Sura ya 1 ilijadili kadhaa

Kutoka kwa kitabu XSLT Technology mwandishi Valikov Alexey Nikolaevich

5.2.10. Udhibiti wa Mtiririko huunda miundo ya IF, KESI, KITANZI, HUKU, RUDISHA ITERATE, na LEAVE inatekelezwa kikamilifu Mengi ya miundo hii ina taarifa nyingine, kama inavyoonyeshwa na vipimo vya sarufi katika sehemu zifuatazo. Miundo kama hiyo inaweza kuwekwa. Kwa mfano,

Kutoka kwa kitabu Computerra PDA N151 (12/24/2011-12/30/2011) mwandishi Magazeti ya Computerra

Kutoka kwa kitabu Msingi Algorithms na Miundo ya Data huko Delphi mwandishi Bucknell Julian M.

Miundo ya XML Mbali na vipengele, sifa, na maandishi, hati zinaweza pia kuwa na miundo mingine kama vile maoni, maagizo ya usindikaji, na sehemu za data ya wahusika. Vipengele hivi vya msingi hutumiwa ili kubadilika, lakini kwa kufuata madhubuti

Kutoka kwa kitabu Firebird DATABASE DEVELOPER'S GUIDE na Borri Helen

Idara ya Vannakh: Zawadi na Miundo Mwandishi: Mikhail Vannakh Limechapishwa Desemba 27, 2011 Shida ni jambo la kuchosha. Lakini kuna kipindi ambacho shida ni za kupendeza. Vipindi ni vya mtu binafsi wakati unatayarisha siku ya kuzaliwa ya mtu. Au vipindi vya furaha nyingi,

Kutoka kwa kitabu The Art of Shell Scripting Language Programming na Cooper Mendel

Je! ni miundo gani ya kushangaza ya $ifdef kwenye nambari? Msimbo wote wa mfano uliowasilishwa katika kitabu, pamoja na vighairi vichache vilivyobainishwa maalum, vitaundwa katika Delphi 1, 2, 3, 4, 5 na 6, pamoja na Kylix 1. (Hata hivyo, matoleo yajayo ya wakusanyaji yanapaswa kuungwa mkono.

Kutoka kwa kitabu The End of the Holy War. Pascal dhidi ya C mwandishi Krivtsov M. A.

Muundo wa Kutayarisha Sehemu zifuatazo zinajadili miundo ya programu inayotambuliwa na PSQL. ANZA ... END Blocks PSQL ni lugha iliyoundwa. Baada ya matamko tofauti, taarifa za kiutaratibu huambatanishwa katika mabano ya taarifa ya BEGIN na END. Inaendelea

Kutoka kwa kitabu cha mwandishi

Mfano 16-9. Kuelekeza kwingine ikiwa/kisha itaunda #!/bin/bashif [ -z "$1" ]kisha Filename=names.data # Kwa chaguo-msingi ikiwa faili haijabainishwa.else Filename=$1fiTRUE=1if [ "$TRUE" ] # hutengeneza "ikiwa ni kweli" na "ikiwa:" pia zinakubalika kabisa basi soma jina echo $namefi<"$Filename"# ^^^^^^^^^^^^# Читает только первую строку из файла.exit

Kutoka kwa kitabu cha mwandishi

Kutoka kwa kitabu cha mwandishi

2. Miundo ya programu 2.1. Tawi (chaguo)

8.Kupanga programu.

Upangaji wa muundo inaweza kufafanuliwa kama programu ambayo inalenga kufanya programu rahisi kuandika na kuelewa kwa watu badala ya kompyuta. Inafuata malengo yafuatayo: kuandika programu za ugumu mdogo, kulazimisha programu kufikiria kwa uwazi, kufanya programu iwe rahisi kuelewa. Ili kufikia malengo haya, mpango wa kimuundo lazima ukidhi mahitaji ya msingi yafuatayo.

    Maandishi ya programu lazima yawe na muundo wa miundo mitatu kuu: uunganisho wa mfululizo (ufuatao), sentensi ya masharti (matawi) na kurudia (mzunguko).

    Matumizi ya waendeshaji GOTO inapaswa kuepukwa popote inapowezekana (ikiwa nafasi na vikwazo vya wakati wa utekelezaji sio muhimu, basi kila mahali). Matumizi mabaya zaidi ya GOTO ni kuruka kwa taarifa iliyo juu (mapema) katika maandishi ya programu.

    Ikiwezekana, epuka kutumia taarifa ya ELSE Kawaida sio lazima kwa sababu ni sawa na taarifa ya IF (sio<условие>) BASI. Kifungu cha ELSE kinahitajika tu katika hali adimu ambapo kifungu cha THEN kinabadilisha mojawapo ya vigeu katika hali.

    Mpango lazima uandikwe kwa mtindo unaokubalika ambao hurahisisha kuelewa na kurekebisha.

    Kila moduli lazima iwe na pembejeo moja na pato moja.

    Mpango huo ni suluhisho rahisi na wazi kwa tatizo.

8.1.Kudhibiti miundo ya programu zilizopangwa.

Programu za kimuundo zinajumuisha miundo mitatu kuu ya kusimamia mchakato wa kompyuta:

    kufuata- inaashiria utekelezaji wa mlolongo wa vitendo;

    matawi- inalingana na uchaguzi wa moja ya chaguzi mbili za vitendo kulingana na hali (thamani ya predicate);

    kitanzi na masharti- huamua kurudia kwa vitendo mpaka hali maalum inakiukwa, utimilifu wa ambayo ni checked kabla ya kuanza kwa kila marudio.

Mbali na zile za msingi, miundo mitatu zaidi ya udhibiti inaweza kutumika, ambayo inatekelezwa kwa urahisi kwa msingi wao:

    chaguo- inaashiria uchaguzi wa chaguo moja la hatua kutoka kwa kadhaa kulingana na thamani ya wingi au hali fulani;

    kitanzi na postcondition- huamua kurudia kwa vitendo mpaka hali fulani itafikiwa, ambayo inachunguzwa baada ya kila kurudia;

    mzunguko na idadi fulani ya marudio (mzunguko wa kuhesabu) - huamua marudio ya vitendo idadi maalum ya nyakati.

Vitendo ambavyo ni vipengee vya miundo ya uundaji programu ni waendeshaji rahisi wa lugha inayotumiwa (kwa mfano, kazi, ingizo, pato, waendeshaji simu za kawaida), au vipande vya programu ambavyo ni muundo wa miundo msingi ya udhibiti.

    Muundo wa muundo wa programu

8.2 Dhana ya mtindo wa programu na sifa zake.

Mtindo wa programu ni njia ambayo msanidi hutumia lugha ya programu wakati wa kuandika na kupanga maandishi ya programu. Mtindo mzuri ni ule unaorahisisha programu kwa watu kutambua na kuelewa. Mtindo wa programu una sifa ya viashiria viwili kuu: uwazi wa programu na jinsi lugha inavyotumiwa.

Kuzingatia kanuni ya uwazi wa programu ni sharti la msingi kwa mtindo mzuri wa programu na inahitaji, wakati wa kuandika msimbo wa programu, kusisitiza urahisi na uelewa wa maandishi kwa gharama ya kupuuza vigezo muhimu zaidi, kama vile ufupi au ufanisi wa mashine. Ili kuboresha uwazi wakati wa kuandika programu, lazima uzingatie sheria za msingi zifuatazo.

    Kila kitu cha programu lazima kiwe na maana, jina la maana ambalo linafafanua kusudi lake.

    Vitu vya programu haipaswi kuwa na majina sawa, kwa mfano, tofauti tu katika kesi ya tabia au herufi moja au mbili. Pia huwezi kutumia manenomsingi ya lugha na tahajia zilizo karibu nazo kama majina.

    Vigezo vya kati visivyohitajika vinapaswa kuepukwa.

    Ili kuepuka utata, lazima utumie mabano ili kufafanua utaratibu wa uendeshaji.

    Haupaswi kuweka kauli nyingi za lugha kwenye mstari mmoja.

    Maandishi ya programu lazima yaandikwe kwa kutumia mapumziko ya mstari na indentations.

    Maandishi ya programu yanapaswa kutolewa maoni katika sehemu zote ambazo uelewa wake unaweza kuwa mgumu au maana ya msimbo uliotolewa sio dhahiri. Maoni yanapaswa kuwa na habari inayoelezea kanuni na kuonyesha madhumuni ya kufanya vitendo fulani na matokeo ambayo yanaongoza. Kwa kuongeza, inashauriwa kutumia maoni wakati wa kutangaza vitu vya programu.

    Unapaswa kuambatana na mtindo mmoja wakati wa kuandika nambari ya programu.

    Ikiwa katika mazoezi ya kutumia lugha ya programu mtindo zaidi au chini ya uhakika wa mpango wa mpango umetengenezwa, basi inashauriwa kuitumia ikiwa haipingana na viwango vilivyopitishwa katika shirika au timu ambayo maendeleo hufanyika.

Tabia ya pili muhimu ya mtindo wa programu imedhamiriwa na jinsi msanidi hutumia zana na uwezo unaotolewa na lugha ya programu. Mapendekezo ya kimsingi kuhusu matumizi ya zana za lugha ni kwamba ni muhimu kusoma na kuelewa sifa zote za lugha na kuepuka zile zinazoweza kupunguza uwazi wa programu, hasa zile zinazohusisha vipengele visivyofikiriwa vyema au kutekelezwa na ambavyo hutegemea. juu ya utekelezaji wa hila mbalimbali.

9. Njia rasmi za kuwakilisha michakato ya udhibiti
katika mipango ya miundo.

9.1. Michoro ya kuzuia (block diagrams) na miundo yao.

Miundo ifuatayo ya msingi hutumiwa kuelezea programu kwa kutumia chati za mtiririko.

    Miundo ya msingi ya kuunda michoro za block

1) Zuia "Mwanzilishi / Terminator". Inatumika kuonyesha mwanzo na mwisho wa mchoro wa block. Kila mzunguko lazima uanze na mwisho na ujenzi huu.

2) Zuia "Mchakato". Inatumika kuashiria kitendo kimoja au zaidi ambacho kinahakikisha mabadiliko (uchakataji) wa data, fomu yake ya uwasilishaji au eneo. Ili kuboresha uwazi wa mchoro, vitalu kadhaa vile vinaweza kuunganishwa kuwa moja.

3) Zuia "Suluhisho". Inatumika kuwakilisha uendeshaji wa udhibiti wa uhamisho kulingana na hali maalum. Kwa kila block hiyo, hali halisi (swali) lazima ielezwe, ambayo huamua mpango wa maendeleo zaidi ya mchakato wa computational, pamoja na matokeo iwezekanavyo ya kuangalia hali hii (majibu), sambamba na chaguzi za uhamisho wa udhibiti.

4) Zuia "Ingizo / Pato". Inatumika kuashiria shughuli zinazohusiana na ingizo au utoaji wa data. Vizuizi tofauti lazima vilingane na vifaa vya kimantiki vya kibinafsi au kazi za mawasiliano. Kila kizuizi kinaonyesha operesheni inayofanywa, aina ya kifaa au faili, na aina ya data inayohusika katika ubadilishanaji.

5)–6) Huzuia “Mchakato uliofafanuliwa mapema”. Inatumika kuonyesha simu za kawaida. Kizuizi kilicho na laini ya mlalo kinakusudiwa kuelezea simu kwa subroutines ambazo zilitengenezwa mahsusi kwa programu na ambazo zinawakilishwa katika hati na mchoro wao wa kuzuia. Kizuizi kilicho na mistari ya wima kinaonyesha wito kwa subroutines nje ya mpango, kwa mfano, wale waliojumuishwa katika mazingira ya mfumo wa uendeshaji.

7) Zuia "Kiunganishi". Inatumika wakati, kutokana na ukubwa wake mkubwa, ni muhimu kugawanya mchoro wa miundo katika sehemu kadhaa zilizowekwa kwenye karatasi tofauti. Katika kesi hii, mwishoni mwa karatasi moja, kizuizi hiki kinawekwa, ambacho mstari wa kuunganisha huingia, na mwanzoni mwa karatasi inayofuata, kizuizi sawa kinatumiwa, ambacho mstari wa kuunganisha hutoka.

8) kizuizi cha "Maoni". Inakuruhusu kuingiza katika mchoro maelezo muhimu kwa vitalu fulani. Idadi kubwa ya vitalu vile inaweza kupunguza uwazi wa mchoro wa muundo.

Ubaya wa michoro za kuzuia kwa heshima na mahitaji ya programu iliyoundwa ni kwamba wanaruhusu utumiaji wa njia zisizo za kimuundo za uhamishaji wa udhibiti kwenye michoro, mfano ambao katika mpango ni kutoka mapema kutoka kwa kitanzi au utumiaji usio na masharti. kuruka opereta kama GOTO.

9.2.Mtiririko-fomu (michoro ya mtiririko).

Fomu za mtiririko ni nukuu ya kielelezo iliyoundwa kuelezea programu zilizoundwa kwa kutumia miundo iliyoangaziwa ambayo huondoa hitaji la mistari ya udhibiti na hivyo uwezo wa kuwakilisha mabadiliko yasiyo ya kimuundo katika programu. Kila kipengele cha fomu kinalingana na muundo mmoja wa udhibiti na kinaonyeshwa kwa sura ya mstatili, ambayo inaweza kuwa sehemu ya kipengele kingine na, kwa upande wake, ni pamoja na sehemu nyingine za fomu. Mstatili wa asili, unaofunga fomu nzima, unaashiria mpango unaoelezewa. Kila kipengele cha umbo kina maandishi katika lugha ya asili au rasmi ambayo hufafanua madhumuni ya kipengele hicho. Ifuatayo ni miundo ya kimsingi ya fomu za Flow zinazotumika katika kuelezea programu.

    Miundo ya kimsingi ya fomu za Flow

9.3.Michoro ya Nassi-Schneiderman.

Miradi ya Nussi-Schneiderman ni ukuzaji wa fomu za Mtiririko. Tofauti yao kuu ni kwamba katika vitalu vinavyowakilisha matawi na chaguo, pembetatu hutumiwa kuonyesha hali, ambayo inaruhusu uwazi zaidi katika kuelezea mpango. Miundo ya msingi ya michoro ya Nussi-Schneiderman imepewa hapa chini.

    Miundo ya msingi ya michoro ya Nussi-Schneiderman

Faida ya fomu za Mtiririko na michoro ya Nussi-Schneiderman ni kwamba hukuruhusu kuonyesha wazi kiota cha miundo. Hasara ya kawaida ya mipango hii ya graphical ni ugumu wa kuelezea programu kubwa kwa msaada wao kutokana na ugumu wa miundo inayotumiwa kwa hili.

10.Mtazamo unaolenga kitu kwa upangaji.

10.1.Dhana za kimsingi na kanuni za mbinu inayolengwa na kitu kwenye upangaji programu.

Asili mbinu ya kitu inajumuisha matumizi ya msingi ya mtengano wa kitu kuelezea na kuunda programu. Aidha, kazi za mfumo huo wa programu zinaonyeshwa kwa njia ya uendeshaji kwenye vitu katika ngazi tofauti za uongozi, i.e. mtengano wao kimsingi inategemea mtengano wa vitu. Chini ya mbinu yenye mwelekeo wa kitu ina maana mbinu ya msingi wa kitu kwa kuzingatia maelezo ya vitu katika eneo la somo na ujenzi wa mifano yao, ambayo hasa hutumia vitu vyenye kazi, yaani, vitu vinavyojumuisha sehemu za programu ambazo zinaweza kuwa katika mchakato wa utekelezaji. Mbinu inayolenga kitu katika ukuzaji wa programu inajumuisha hatua kuu tatu:

    Uchambuzi unaolenga kitu. Mfano unaoelekezwa kwa kitu wa kikoa cha somo cha mfumo wa programu huundwa, ambapo vitu vya mfano vinawakilisha vitu halisi au vya dhana, na shughuli zinazofanywa juu yao pia zinafafanuliwa.

    Muundo unaolenga kitu. Mfano wa programu inayolenga kitu (usanifu wa mfumo) unatengenezwa kwa kuzingatia mahitaji yaliyopo, ambayo ufafanuzi wa vitu vyote umewekwa chini ya kutatua tatizo fulani.

    Upangaji unaolenga kitu. Usanifu (mfano) wa mfumo unatekelezwa kwa kutumia lugha ya programu inayolenga kitu.

Uwakilishi unaolengwa na kitu na mtengano wa mfumo wa programu unatokana na kanuni za uondoaji, ujumuishaji, ustadi na mpangilio wa hali ya juu. Ufupisho inakuja kwa malezi ya vifupisho. Kila kifupi hunasa sifa za kimsingi za baadhi ya kitu ambacho hukitofautisha na aina nyingine za vitu na kutoa mipaka ya dhana iliyo wazi. Abstraction inazingatia uwakilishi wa nje wa kitu na hukuruhusu kutenganisha jambo kuu katika tabia ya kitu kutoka kwa utekelezaji wake. Ufungaji ina na inaficha utekelezaji wa kitu ambacho hutoa tabia yake. Ufungaji hupatikana kupitia usiri wa habari. Kawaida muundo wa vitu na maelezo ya utekelezaji wao hufichwa. Modularity huamua uwezo wa mfumo kuoza kuwa idadi ya moduli zilizounganishwa kwa nguvu na zilizounganishwa kwa urahisi. Moduli hutumika kama vyombo halisi ambamo vipengele vya mfumo wa programu vinatangazwa. Umuhimu hufafanua njia ya kupanga vifupisho vinavyohusiana kimantiki. Shirika la kihierarkia imekusudiwa kuunda muundo wa hierarkia kutoka kwa vifupisho. Shirika la uongozi hubainisha uwekaji wa vifupisho katika viwango mbalimbali vya maelezo ya mfumo. Zana mbili muhimu za shirika la uongozi katika OOP ni: utambuzi wa mahusiano ya "jumla-hasa" na mahusiano "sehemu nzima". Mara nyingi, uongozi wa "umma-binafsi" hujengwa kwa kutumia urithi. Hierarkia ya sehemu nzima inategemea uhusiano wa kujumlisha.

10.2.Mtazamo wa mwelekeo wa kitu kwa programu: dhana ya kitu na sifa zake, uhusiano kati ya vitu.

Kitu ni kiwakilishi madhubuti cha ufupisho. Darasa linafafanua muundo na tabia ya vitu sawa / sawa, i.e. inaelezea ufupisho wao. Kitu kina utu, hali, na tabia. Mtu binafsi ni sifa ya kitu ambacho hukitofautisha na vitu vingine vyote. Jimbo ya kitu ni orodha ya mali/sifa zake zote na maadili ya sasa ya kila moja yao. Tabia inaangazia jinsi kitu kinavyoathiri (au kuathiriwa na) vitu vingine kwa suala la mabadiliko katika hali yake na uwasilishaji wa ujumbe. Tabia ya kitu inategemea hali yake na seti ya shughuli zinazolingana nayo. Uendeshaji inawakilisha huduma ambayo kitu hutoa kwa matumizi. Aina tano za shughuli kwenye kitu zinawezekana: kurekebisha - kubadilisha hali ya kitu; kichaguzi - hutoa ufikiaji wa serikali, lakini haibadilishi; iterator - hutoa upatikanaji wa yaliyomo ya kitu katika sehemu, kwa utaratibu uliowekwa madhubuti; mjenzi - huunda kitu na kuanzisha hali yake; mharibifu - huharibu kitu na kuachilia rasilimali inayochukua. Kufanya operesheni inahakikisha kwamba sambamba ujumbe, ambayo inaweza kutumwa kwa kitu hiki. Njia za utekelezaji wa shughuli ni subroutines (mbinu). Kwa hivyo, ujumbe ni wito kwa subroutine fulani ambayo hutekelezea moja ya shughuli asili katika kitu. Seti ya taratibu zinazotekeleza shughuli za kitu huitwa yake itifaki au kiolesura (ujumbe).

Mwingiliano wa vitu hutegemea uhusiano kati yao, ambayo inategemea habari ya pamoja kuhusu shughuli zinazoruhusiwa na tabia inayotarajiwa. Muhimu zaidi ni aina mbili za uhusiano kati ya vitu: miunganisho na mkusanyiko. Uhusiano ni uhusiano wa kimwili au wa kimawazo kati ya vitu. Uhusiano unaashiria muunganisho ambao kipengee cha mteja hualika utendakazi wa kitu cha mtoa huduma (hupitisha ujumbe kwake) au kitu kimoja huhamisha data hadi kwa kitu kingine. Kuna aina nne za mwonekano kati ya vitu: kitu cha mtoaji ni cha kimataifa kwa mteja, kitu cha mtoa huduma ni kigezo cha operesheni ya mteja, kitu cha mtoa huduma ni sehemu ya kitu cha mteja, na kitu cha mtoa huduma ni kitu kilichotangazwa ndani. operesheni ya mteja. Kujumlisha inawakilisha uhusiano wa vitu katika uongozi wa "sehemu nzima" na hutoa uwezo wa kuhama kutoka kwa jumla (jumla) hadi sehemu zake (mali). Kitu ambacho ni sehemu (mali) ya kitu kingine (jumla) kina uhusiano na jumla yake. Kupitia muunganisho huu, kitengo kinaweza kutuma ujumbe kwake. Ujumlisho unaweza kurejelea ujumuishaji wa kimwili wa kitu kimoja ndani ya kingine, lakini si lazima.

10.3.Mtazamo unaozingatia kitu kwa programu: dhana ya darasa na sifa zake, mahusiano kati ya madarasa.

Darasa- maelezo ya seti ya vitu vinavyoshiriki mali sawa, shughuli, mahusiano na semantics. Kitu chochote ni mfano wa darasa. Darasa limegawanywa katika uwakilishi wa nje (interface) na muundo wa ndani (utekelezaji). Kiolesura inaelezea uwezo (huduma) za darasa, i.e. inatoa kwa mazingira ya nje uondoaji wa darasa, muonekano wake "unaoonekana". Kiolesura kinajumuisha matamko ya utendakazi yanayoungwa mkono na matukio ya darasa, matamko ya aina, vigeu, vibadilishi, na vighairi ambavyo vinabainisha uondoaji ambao darasa linaonyesha. Interface inaweza kugawanywa katika sehemu tatu: wazi au umma ( umma), ambao matangazo yao yanapatikana kwa wateja wote; kulindwa ( kulindwa), ambaye maazimio yake yanapatikana tu kwa darasa yenyewe, madaraja yake na marafiki; imefungwa au ya faragha ( Privat), ambao matangazo yao yanapatikana tu kwa darasa lenyewe na marafiki zake. Hali ya kitu imebainishwa katika darasa lake kupitia ufafanuzi wa viambatisho au vigeu vilivyowekwa katika sehemu yake ya ulinzi au ya faragha. Kwa hivyo, zimefichwa (zimefunikwa) na mabadiliko yao hayaathiri wateja. Utekelezaji darasa huonyesha sifa za tabia yake. Inajumuisha maelezo ya kina (utekelezaji) ya shughuli zote zilizofafanuliwa katika kiolesura cha darasa.

Vifupisho vya kila eneo la somo viko katika uhusiano tofauti na kila mmoja, na kusababisha uundaji wa muundo wa darasa la mfumo. Kuna aina nne kuu za uhusiano kati ya madarasa: ushirika - unakamata uhusiano wa muundo, i.e. uhusiano kati ya matukio ya darasa; utegemezi - huonyesha ushawishi wa darasa moja kwa lingine; generalization-specialization - mahusiano ya "jumla-hasa"; sehemu nzima - mahusiano ya mkusanyiko/ujumuishi. Ili kuelezea aina hizi za uhusiano, lugha nyingi zinazoelekezwa na kitu zinaunga mkono michanganyiko kadhaa ya aina zifuatazo za uhusiano: ushirika, urithi, mkusanyiko, utegemezi, uvumbuzi, metaclass, utekelezaji. Muungano inaashiria uhusiano wa kisemantiki (wa dhana) wa njia mbili kati ya madarasa. Ni uhusiano wa jumla na usio wazi, kwani hauonyeshi mwelekeo na utekelezaji halisi wa uhusiano huo. Urithi- uhusiano ambao darasa moja linashiriki muundo na tabia iliyofafanuliwa katika mwingine (urithi moja) au katika madarasa mengine kadhaa (urithi nyingi). Urithi ni aina ya uhusiano wa jumla na utaalam. Dhana ya upolimishaji inahusishwa na urithi. Polymorphism- huu ni uwezo wa kutumia jina moja kuashiria shughuli kutoka kwa madarasa tofauti, lakini ni mali ya superclass moja. Kuita huduma kwa jina la polymorphic husababisha utekelezaji wa operesheni moja kutoka kwa seti fulani inayolingana na uongozi wa urithi wa darasa. Uhusiano mkusanyiko kati ya madarasa ni sawa na yale kati ya vitu. Uraibu- uhusiano unaoonyesha kuwa mabadiliko katika tabaka moja (huru) yanaweza kuathiri tabaka lingine (tegemezi) linaloitumia. Utegemezi hukuruhusu kufafanua mteja ni yupi na mtoa huduma fulani ni yupi. Vipimo- mchakato wa kujaza au kubinafsisha template (darasa la jumla au la vigezo) ili kupata darasa ambalo inawezekana kuunda matukio. Concretization huonyesha aina nyingine ya uhusiano wa jumla-utaalamu. Metaclass- darasa la madarasa, i.e. darasa ambalo mifano yake inawakilisha madarasa. Utekelezaji- uhusiano ambao darasa lengwa hutoa utekelezaji wake wa kiolesura cha darasa lingine la chanzo.

11.Usalama programu.

11.1 Dhana ya mpango sahihi na wa kuaminika. Dhana za msingi za kuendeleza programu za kuaminika. Dhana ya programu ya kujihami.

Mpango ni sahihi, ikiwa inakidhi vipimo vya nje, i.e. hutoa majibu yanayotarajiwa kwa michanganyiko fulani ya thamani za data ya ingizo. Mpango ni kuaminika, ikiwa ni sahihi, hujibu kwa kukubalika kwa pembejeo zisizo sahihi, na hufanya kazi kwa kuridhisha chini ya hali isiyo ya kawaida.

Katika mchakato wa kuunda programu, watengenezaji wanajaribu kutarajia hali zote zinazowezekana na kuandika programu ili iwajibu kwa kuridhisha kabisa. Kanuni na mbinu nyingi za maendeleo ya programu (kwa mfano, programu zilizopangwa na za kawaida, aina za data za abstract na encapsulation, nk) kwa kiwango kimoja au kingine hufuata lengo la kuunda programu za kuaminika, i.e. zinalenga kupunguza uwezekano wa makosa kuonekana katika programu iliyomalizika na kupunguza athari zao. Kwa kuwa kwa ujumla haiwezekani kuendeleza programu ambayo ni ya kuaminika kabisa na isiyo na makosa, mchakato muhimu ni kuangalia usahihi na uaminifu wa programu. Inajumuisha kukagua hati za muundo na maandishi ya programu, kuchambua maandishi ya programu kwa makosa, na majaribio. Hitilafu zilizopatikana kutokana na hundi lazima ziondolewe, baada ya hapo lazima iwe sehemu au upya kabisa.

Kutokana na ukweli kwamba wakati wa maendeleo ya programu kwa kawaida haiwezekani kuepuka makosa yote, ni vyema kuingiza zana za kugundua kwao katika programu inayoundwa. Hii hukuruhusu kupunguza athari za kosa kwenye utendakazi wa programu na shida zinazofuata kwa mtu ambaye atalazimika kupata habari kuhusu kosa hili, kupata eneo lake na kusahihisha. Baada ya kosa kugunduliwa, ama kosa yenyewe au matokeo yake lazima kusahihishwa na programu, ambayo mbinu mbalimbali zinaweza kutumika. Kwa hivyo, matumizi ya njia na zana zinazofaa hufanya iwezekanavyo kuhakikisha utendaji wa mfumo wa programu hata ikiwa ina makosa.

Upangaji unaotumia mbinu maalum za kuonya, kugundua mapema na kugeuza makosa huitwa kinga au programu isiyo na makosa. Mbinu hizi zinazingatia kulinda programu na vipengele vyake kutoka kwa uingizaji usio sahihi, pamoja na njia za kutambua, kutenganisha na kushughulikia makosa.

11.2.Aina za makosa yanayohusiana na data chanzo na mbinu za ulinzi dhidi yao.

Aina zifuatazo za makosa zinazohusiana na data chanzo zinajulikana:

    Hitilafu za uhamisho- husababishwa na vifaa ambavyo, kwa mfano kutokana na malfunction, vinaweza kuharibu data. Makosa kama hayo kawaida hudhibitiwa na vifaa.

    Hitilafu za uongofu- kutokea kwa sababu ya ukweli kwamba programu inabadilisha vibaya data kutoka kwa umbizo la pembejeo kuwa la ndani la kufanya kazi. Ili kulinda dhidi ya makosa kama haya, data ya pembejeo inayosababishwa kawaida huonyeshwa mara moja kwa mtumiaji (kinachojulikana kama "toto la mwangwi"). Katika kesi hii, ubadilishaji unafanywa kwanza kwa umbizo la ndani, na kisha kurudi. Hata hivyo, kwa kawaida ni vigumu sana kuzuia makosa yote ya uongofu. Kwa hiyo, unapaswa kutumia mbinu nyingine za programu za kujihami, na uunda kwa uangalifu na ujaribu vipande vya programu husika.

    Andika upya makosa- husababishwa na ukweli kwamba mtumiaji anafanya makosa wakati wa kuingia data, kwa mfano, huingia tabia ya ziada au tofauti. Hitilafu kama hizo zinaweza kugunduliwa na kusahihishwa kwa kutumia data isiyohitajika, kama vile hesabu, na vizuizi maalum juu ya maadili na muundo wa data ya uingizaji, kama vile vipindi vya thamani vinavyokubalika. Unapaswa kuangalia data iliyoingia kwa mujibu wa vikwazo vilivyowekwa na, ikiwa kuna hitilafu, ama kurekebisha kiotomatiki au kumwuliza mtumiaji kwa maadili mapya.

    Makosa ya data- husababishwa na mtumiaji kuingiza data isiyo sahihi. Makosa kama hayo yanaweza kugunduliwa tu na mtumiaji, kwa hivyo ni busara kumwonyesha data iliyoingia wakati wa mchakato wa kuingiza na kuomba uthibitisho wa kufanya shughuli zaidi, haswa katika hali ambapo haitawezekana kusahihisha habari isiyo sahihi katika siku zijazo.

11.3 Njia za msingi za kuzuia makosa.

Dhana za kimsingi za kuzuia makosa kutokea katika programu inayoendesha ni pamoja na:

    kuangalia usahihi wa data ya pembejeo na shughuli za I/O;

    kuangalia kuruhusiwa kwa matokeo ya kati;

    kuzuia mkusanyiko wa makosa.

Mawazo haya yanalenga kudhibiti usahihi wa data ya awali au ya kati ya programu. Data batili inaweza kutokana na hitilafu ya ndani, kama vile kifaa cha I/O au hitilafu ya programu, au hitilafu ya nje, kama vile hitilafu ya mtumiaji au hitilafu ya programu ya kuingiliana.

Mbinu moja ya utetezi wa programu ni kutenga makosa ambayo yanaweza kutokea kwa sababu ya data isiyo sahihi ya ingizo. Kwa kusudi hili, kiolesura maalum cha programu (kwa mfano, seti ya taratibu zinazochakata data ya ingizo) inaweza kutengenezwa, kutumika kama aina ya ganda la "kinga" kwa msimbo uliosalia. Kuangalia usahihi wa data na usindikaji wa makosa yanayolingana hufanywa kwa kiwango cha kiolesura hiki, na data iliyopitishwa kupitia hiyo inachukuliwa kuwa salama. Njia hiyo hiyo inatumika katika kiwango cha moduli ya mtu binafsi au darasa. Taratibu za umma za moduli au darasa huchukulia kuwa data inaweza kuwa na hitilafu na inawajibika kuziangalia na kuzirekebisha. Ikiwa data imethibitishwa na mbinu za umma, mbinu za faragha zinaweza kuichukulia kama salama.

Kuangalia matokeo ya kati hukuruhusu kupunguza uwezekano wa udhihirisho wa marehemu wa sio makosa tu katika data iliyofafanuliwa vibaya, lakini pia makosa kadhaa yaliyofanywa katika hatua ya muundo na usimbaji. Ili kuandaa hundi hiyo, ni muhimu kutumia vigezo katika programu ambayo kuna vikwazo vya aina yoyote, kwa mfano, kuhusiana na sifa za eneo la somo. Inapaswa kuzingatiwa kuwa shughuli zozote za ziada zinahitaji matumizi ya rasilimali za ziada (kwa mfano, wakati au kumbukumbu) na inaweza pia kuwa na makosa. Kwa hiyo, ni vyema kuangalia matokeo ya kati tu katika hali ambapo si vigumu na kwa kweli inakuwezesha kuchunguza makosa. Kwa mfano:

    thamani ya parameta ya pembejeo ya subroutine iko katika muda maalum wa nambari au sanjari na moja ya maadili yaliyoainishwa;

    index ya kipengele cha safu iko ndani ya mipaka inayokubalika;

    thamani ya kutofautiana ambayo huamua idadi ya marudio ya kitanzi sio hasi;

    faili inayohitajika ipo au inaweza kufunguliwa kwa kusoma/kuandika;

    pointer ya faili iko mwanzoni au mwisho, nk.

Ili kupunguza makosa katika matokeo ya hesabu, inashauriwa:

    epuka kuondoa nambari za karibu (zero ya mashine);

    epuka kugawanya idadi kubwa na ndogo;

    anza kuongeza mlolongo mrefu wa nambari na wale ambao wana thamani ndogo kabisa;

    usitumie hali ya usawa kwa nambari halisi;

    jitahidi kupunguza idadi ya shughuli iwezekanavyo;

    tumia njia zilizo na makadirio ya makosa yanayojulikana;

    habari Muhtasari

    Mipango ya michakato ya kiteknolojia. Teknolojia kiotomatiki usindikaji habari imejengwa juu ya kanuni zifuatazo... mzunguko habarimifumoDhana mzunguko wa maisha ni moja ya msingi dhana mbinu za kubuni habari ...