Matryoshka C. Nidaamka luqadda barnaamijka lakabka ah

Aynu isku dayno inaan qiyaasno kiimiko la'aanteed Mendeleev's Periodic Table (1869). Immisa walxood ayay ahayd in maskaxda lagu hayo, oo aan nidaam gaar ah lahayn... (Markaa - 60.)

Si tan loo sameeyo, kaliya ka fikir hal ama dhowr luqadood oo barnaamij ah hal mar. Dareen isku mid ah, isku fowdo hal abuur leh.

Oo hadda waxaan dib u soo noolayn karnaa dareenka farmashiistaha qarnigii XNUMXaad markii loo soo bandhigay aqoontooda oo dhan, iyo in yar oo dheeraad ah, hal Jadwal xilliyeed ah.

Matryoshka C. Nidaamka luqadda barnaamijka lakabka ah


Buuga "Matryoshka C. Nidaamka luuqada barnaamijka ee lakabka leh" wuxuu soo bandhigayaa dhammaan cutubyada luqadda C ee jaleecada. Tani waxay kuu ogolaaneysaa inaad abaabusho, saxdo macluumaadka duugoobay, iyo xitaa inaad caddeyso fikradda barnaamijka.

Maanta, macluumaadka barnaamijyadu waxay u baahan yihiin nidaamin xitaa in ka badan walxaha kiimikaad ee 150 sano ka hor.

Baahida koowaad waa waxbaridda. Mendeleev wuxuu bilaabay inuu abuuro nidaamkiisa markii uu la kulmay su'aasha ah cunsur uu ku bilaabayo casharrada: O, H, N, He, Au Jaamacadda St. Petersburg. Barnaamuj-samaynta ayaa horeba loogu dhigaa dugsiga oo waxa ay dhawaan bilaabmi doontaa dugsiga barbaarinta.

Baahida labaad waa hab cilmiyeysan. Iyada oo la kaashanayo shaxda xilliyeedka, waxaa la helay waxyaabo cusub, waxaana la saxay macluumaadka ku saabsan kuwii hore. Waxay ka caawisay abuurista qaabka atamka (1911). Iyo wixi la mida.

Baahida saddexaad waa in la caddeeyo fikradda barnaamijka.

Barnaamijyada casriga ahi waxa ay hal cag ku dheggan tahay 50aadkii qarnigii XNUMXaad. Waagaas, barnaamijyadu way fududaayeen, laakiin mashiinnada iyo luqadaha mishiinadu way adag yihiin, sidaa darteed wax kastaa waxay ku wareegayeen mashiinnada iyo luqadaha.

Hadda wax walba waa habka kale: barnaamijyadu waa adag yihiin iyo kuwa aasaasiga ah, luuqaduhu waa kuwo fudud oo sare. Tan waxaa loo yaqaan habka loo dabaqay, kaas oo qof walba u muuqdo inuu yaqaan. Laakiin ardayda iyo horumariyayaashu waxay sii wadaan inay ku qancaan in wax walba ay isku mid yihiin.

Taas oo dib inoogu soo celinaysa muxaadaradii ugu horaysay ee Privatdozent Mendeleev. Maxaa loo sheegaa ardayda cusub? Aaway runtu? Taasi waa su'aasha.

Buugga "Matryoshka C" wuxuu bixiyaa jawaabta su'aashan. Nidaamka lakabka ee luqadda barnaamijka". Waxaa intaa dheer, waxaa loola jeedaa ma aha oo kaliya in ardayda, laakiin sidoo kale in ay barnaamijyo tababaran, tan iyo markii ay yihiin, taas oo ah, annagu, waa in aan raadiyo runta iyo beddelo aragtida caalamka.

Waxa soo socda oo kooban buugga.

1. Horudhac

Sannadkii 1969-kii, waxaa la sameeyay luqadda C, taasoo noqotay luuqadda aasaasiga ah ee barnaamijka waxayna sii jirtay 50 sano. Maxay tani sidaas u tahay? Marka hore, sababtoo ah C waa codsatay luqadda bixisay barnaamijka dadnimo bal eeg mashiinka. Guulahan waxaa lagu sugay luqadaha qoyska C: C++, JavaScript, PHP, Java, C # iyo kuwa kale. Marka labaad, waa af gaaban oo qurux badan.

Si kastaba ha ahaatee, luqadda C lafteedu waxay caadi ahaan ku dhex darsan tahay mashiinka, taas oo adkeynaysa oo xumaynaysa aragtideeda. Xagga kale waa "falsafad" gaar ah oo luqadda lagu soo rogo: hab-raac, shay, shaqeyn, la ururiyay, la turjumay, la qoray, iwm. Tani waxay ku daraysaa shucuur, laakiin ma caawinayso in si fiican loo qeexo luqadda.

Runtu waa dhexda, iyo luqadda C waxay si adag ugu jirtaa dhexda u dhexeeya falsafada iyo aragtida mashiinka.

Luuqadda C ma aha mid madaxbannaan, waxay adeecdaa luqadda caadiga ah ee qoran, isla markaana waxay maamusho luqadda kulanka lafteeda. Booskani wuxuu qeexayaa Qaabka hadalka ee barnaamijka, sida uu barnaamijku u qaybsan yahay saddex nooc oo hoose: hadal, code, amar. Luuqadda C ayaa mas'uul ka ah nooca koodka labaad.

Markaad go'aamisay meesha luqadda ee barnaamijka, waxaad abaabuli kartaa macluumaadka ku saabsan, taas oo ka dhigaysa Nidaamka luqadda barnaamijka lakabka ah, oo matalaya luqadda C ee ruuxa nidaamka xilliyeed - hal bog.

Nidaamka waa la dhisay iyadoo la tixgelinayo bulshooyinka luqadaha lagu dabaqo, oo ka dhashay hoos-u-dhigiddooda. Mid ka mid ah cutubyada Matryoshka C ayaa kuu oggolaanaya inaad sharaxdo oo aad isbarbar dhigto luuqado kala duwan, abuurista taxane ah Matryoshkas: C ++, PHP, JavaScript, C #, MySQL, Python iyo wixii la mid ah. Waxaa mudan oo sax ah in luqado kala duwan lagu qeexo cutubyo ka mid ah luqadda aasaasiga ah.

2. CUTUBKA 1. Qaabka hadalka ee barnaamijka. Nadiifi C

Cutubka kowaad wuxuu soo bandhigayaa qaabka hadalka ee barnaamijka, oo ka tarjumaysa hab lagu dabaqay. Sida laga soo xigtay isaga, barnaamijku wuxuu leeyahay saddex nooc oo taxane ah oo cad:

  1. hadalka - hadalka tooska ah ee barnaamijka xallinaya dhibaatada,
  2. codeed - dejinta xal qaab xisaabeed luqadda C (ama mid kale)
  3. iyo amarka - amarrada mashiinka tooska ah.

Qaabka hadalka wuxuu sharxayaa sababta C u tahay luqad fudud oo la fahmi karo. Xi waxa uu ku dhisan yahay sawirka iyo u ekaanshaha hadalka bani-aadmiga ee nala yaqaan.

Nooca koowaad ee barnaamijku waa hadalka tooska ah ee barnaamijka. Hadalku wuxuu u dhigmaa fikirka aadanaha. Barmaamijiyeyaasha bilowga ah waxay qoraan barnaamijyo iyagoo isticmaalaya hadal - marka hore Ruush, ka dibna tallaabo tallaabo u tarjumaya ficillada luqadda code. Oo waxay si sax ah ugu jirtaa qaabkan in luqadda C la abuuray.

Gabagabada barnaamijka, oo lagu muujiyay hadalka, ayaa loo rogaa qaab lambareed la suray. Isbeddelkan waa in loogu yeeraa milicsi, mar haddii hadalka iyo xeerku isku dabeecad yihiin (milicsiga - dhalashada - jinsiga). Tani waa wax iska cad haddii aan is barbar dhigno hadalka (bidixda) iyo code-ka (midig) noocyada barnaamijka.

Matryoshka C. Nidaamka luqadda barnaamijka lakabka ah

Waxaa la yaab leh in milicsiga uu si fudud u dhaco - oo leh laba nooc oo tibaaxo ah.

Si kastaba ha ahaatee, tilmaanta casriga ah ee luqadda C (laga bilaabo 1978) kuma jiraan liis ku filan oo magacyo ah oo lagu sifeynayo luqadda guud ahaan, ama gaar ahaan hawsha milicsiga. Sidaa darteed, waxaa nalagu qasbay inaan hal abuur yeelano oo aan soo bandhigno magacyadan.

Doorashada erayadu waa inay ahaataa mid sax ah oo cad. Tani waxay u baahday hab gaar ah, oo si kooban loogu qeexay sida soo socota: isticmaalka adag ee afka hooyo. Ingriiska waxay noqon lahayd Ingiriis, laakiin Ingiriisi ma nihin. Markaa waxaanu isticmaali doonaa waxa aanu haysano oo aanu isku dayno inaanu ku hadalno Ruushka.

Milicsiga waxaa lagu sameeyaa laba nooc oo tibaaxo:

  1. xisaabin (HF) - waxay ka tarjumaysaa isbeddelka sifooyinka shay. Hantida shay waxaa lagu muujiyay lambar, ka dibna ficilka hantida waa fal ku saabsan nambar - hawlgal.
  2. hoosaysiin (Pch) - waxay ka tarjumaysaa isbeddelka habka ficilada. Tusaalaha Pch waa jumlad kakan hadalka, sidaa darteed badi noocyada Pch waxay ku bilowdaan isku xidhka hoosaynta "haddii", "haddii kale", "halka", "for". Noocyada kale ee kombuyuutarrada ayaa iyaga kaabaya.

By habka, ma rumaysan kartaa in sharaxaadda C ma jiro magac xisaabinta tibaaxaha - waxaa si fudud loogu yeeraa "muujiyeyaal"? Taas ka dib, la yaab ma noqon doonto in aan la helin magac iyo urur nooca hoos-tagga ah, iyo runtii yaraanta magacyada, qeexitaannada iyo guud ahaan guud ahaan. Tani waa sababta oo ah K/R caanka ah ("Luqadda C", Kernighan/Ritchie, 1978) maaha sharraxaad, laakiin waa hagaha adeegsiga luqadda.

Si kastaba ha ahaatee, waxaan weli jeclaan lahaa in aan helo sharaxaad luqadda. Sidaa darteed isaga ayaa loo soo bandhigay Nidaamka luqadda barnaamijka lakabka ah.

3. CUTUBKA 2. Nidaamka lakabka. Kooban C

Tilmaan kasta waa inay noqotaa mid sax ah oo aad u kooban. Marka laga hadlayo luqadda barnaamijka, sharraxaadda hore waa adag tahay.

Halkan waxaan ku haynaa barnaamij. Waxay ka kooban tahay modules. Modules waxay ka kooban yihiin subroutines iyo ururin (dhisme). Subroutines waxay ka kooban yihiin tibaaxo gaar ah: caddayn, xisaabin, hoosaysiin. Waxaa jira ilaa toban nooc oo hoos-u-dhac ah. Hoos-u-dhisku wuxuu isku xiraa sublevels iyo subrutines. Waxa kale oo jira dhawr xayaysiisyo. Si kastaba ha ahaatee, bayaannada kuma jiraan kaliya kuwa hoose iyo kuwa hoose, laakiin sidoo kale qaybaha iyo ururinta. Inta badan tibaaxuhu waxay ka kooban yihiin kelmado ay adag tahay in la qeexo oo sida caadiga ah si fudud loogu bixiyo laba liis - erayo asal ah iyo kuwo asal ah, kuwaas oo aad baran doonto inta aad baranayso iyo isticmaalka afka. Aynu tan ku darno calaamadaha xarakaynta iyo tibaaxo kale oo badan.

Bandhiga noocaas ah, ma fududa in la fahmo cidda ku dul istaagtay.

Habka kala sareynta tooska ah ee lagu sifeeyo luqadda ayaa noqon doonta mid aad u adag. Baadi goob wareeg ah waxay keentaa sharaxaadda luqadda oo ku salaysan dabeecadda hadalka iyo dhinaca amarka. Sidaa darteed, Nidaamka lakabka ayaa dhashay, qayb ahaan waxay ku beegan tahay Nidaamka Muddada ee Mendeleev, kaas oo sidoo kale ah. dabool. Sida ay soo baxday 42 sano ka dib markii la daabacay (1869), muddada nidaamka waxay la xiriirtaa elektarooniga lakabyo (1911, Bohr-Rutherford qaabka atamka). Sidoo kale, nidaamyada lakabka ah iyo kuwa xilliyada ah waxay la mid yihiin habaynta shaxda ee dhammaan cutubyada hal bog.

Sharaxaadda cutubyada luqaddu waa mid kooban - kaliya 10 nooc oo tibaaxo ah iyo 8 nooc oo cutubyo kale ah, iyo sidoo kale macno iyo muuqaal. Inkasta oo aan caadi ahayn isbarashada koowaad.

Cutubyada luqadda waxaa loo qaybiyaa 6 heer:

  1. cutubyo - safafka miiska
  2. waaxaha - kooxaha gaarka ah ee genera (qaybaha xariiqda koowaad)
  3. genus - unugyada (heerka ugu weyn ee qaybinta)
  4. superspecies - noocyada kala soocida (heerka naadir)
  5. noocyada - qaacidooyinka cutubka hoose ee unugga ama si gooni gooni ah
  6. qaababka - cutubyada laftooda (ereyada kaliya)

Tusaalaha ereyada ayaa qeexaya ereyada - Nidaam hoose oo gooni ah oo ka kooban lix heer oo isku mid ah.

Qaybta hadalka ee luqadda C waa wax iska cad, in kasta oo ay weli u qalanto sharraxaad. Laakiin qaybta taliska ee luqaddu waxay si sax ah ula xiriirtaa xakamaynta isku-darka, inta lagu jiro nooca saddexaad ee barnaamijka la abuuray - amarka. Halkan waxaan ku nimid dhinaca ugu xiisaha badan ee luqadda C: quruxda.

4. CUTUBADA SOO SOCDA. Quruxda Si

Luuqadda C waa saldhigga barnaamijyada casriga ah. Waa maxay sababtu? Marka hore, sababtoo ah waraaqaha ugu weyn ee hadalka. Marka labaad, sababtoo ah waxay si qurux badan u dhaaftay xaddidaadda farsamaynta lambarka mashiinka.

Maxaa saxda ah ee Xi soo jeediyay? Sawirka iyo lakabka.

Erayga "image" waa tarjumaadda ereyga Ingiriisiga "nooca", kaas oo ka yimid Giriigga "prototype" - "nooca". Luqadda Ruushka, ereyga "nooc" ma gudbinayo rukunka fikradda la muujiyay, waxaa intaa dheer, waxay ku wareersan tahay macnaha kaaliyaha "nooc".

Markii hore, sawirku wuxuu xalliyey dhibaatada xisaabinta mashiinka, ka dibna wuxuu noqday dariiqa ay ku ordaan dhalashada luqadaha shayga.

Lakabku wuxuu isla markiiba xalliyay dhibaatooyin dhowr ah - labadaba mashiinka iyo codsatay. Sidaa darteed, tixgelintu waxay ku bilaaban doontaa sawir hal-hawleed ah waxayna u gudbi doontaa lakab hawlo badan.

Mid ka mid ah astaamaha aan fiicnayn ee barnaamijyada taariikhiga ah ayaa ah in fikradaha badankood, oo ay ku jiraan kuwa aasaasiga ah, la bixiyo iyada oo aan la qeexin. "Luqadda barnaamijka (magaca webiyada) waxay leedahay noocyo lambarro ah oo sabbaynaya..." wayna sii xagteen. Looma baahna in la qeexo waxa "nooc" (sawir) yahay, sababtoo ah qorayaasha laftoodu si buuxda uma fahmeen arrintan waxayna hoos u dhigi doonaan "caddaynta awgeed." Haddii lagu dhejiyo gidaarka, waxay bixin doonaan qeexitaan aan caddayn oo aan faa'iido lahayn. Waxay wax badan ka taraysaa in la qariyo erayada qalaad: qorayaasha Ruushka - ka dambeeya Ingiriisi (nooca), Ingiriisi - ka dambeeya Faransiis (subroutine), Giriig (polymorphism), Laatiinka (encapsulation) ama isku-darkooda (ad-hoc polymorphism).

Laakiin tani maaha aayahayaga. Doorashadeenu waa qeexitaanno leh muuqaal sare oo Ruush saafi ah.

Sawir

Sawir waa magac horudhac ah oo tiro ah, oo qeexaya 1) sifooyinka asaasiga ah ee tirada iyo 2) xulashada hawlgallada tirada.

Erayga "nooca" (nooca) waxa uu u dhigma qaybta koowaad ee qeexidda: "Astaamha gudaha ee tirada." Laakiin macnaha ugu weyn ee sawirku waa qaybta labaad: "doorashada hawlgallada ilaa tiro."

Meesha laga bilaabayo soo bandhigida sawirka C waa xisaabinta caadiga ah, sida hawlgalka isku-darka.

Warqad Xisaabta, ha ahaato mid gacanta lagu qoro ama ha noqoto mid daabacan, wax badan kama kala soocaan noocyada tirooyinka, inta badan waxay u maleeyaan inay dhab yihiin. Sidaa darteed, hawlgalladoodu waa kuwo aan mugdi ku jirin.

Mashiinka Xisaabtu waxay si adag u kala qaybisaa tirooyinka isugeynta iyo jajabyada. Noocyo kala duwan oo nambaro ah ayaa si kala duwan loogu kaydiyaa xusuusta waxaana lagu farsameeyaa tilmaamo kala duwan oo processor-ka. Tusaale ahaan, tilmaamaha lagu darayo tirooyin iyo jajabyo waa laba tilmaamood oo kala duwan oo u dhiganta laba nood oo kala duwan oo processor-ka ah. Laakin ma jiro amar lagu darayo doodaha isugeynta iyo jajabka.

Codsaday xisaabta, taas oo ah, luqadda C, waxay kala saartaa noocyada nambarada, laakiin waxay isku daraysaa hawlgallada: isku-darka isku-darka iyo/ama jajabyada waxaa lagu qoraa hal calaamad.

Qeexitaanka cad ee sawirka fikradda wuxuu noo ogolaanayaa inaan si dhab ah uga hadalno laba fikradood oo kale: qiime и hawlgal.

Baaxadda iyo hawlgalka

Qiimaha - tirada laga baaraandegayo.

Hawlgalka - ka baaraandegida qiyamka qiyamka bilowga ah (doodaha) si loo helo tirada ugu dambeysa (wadarta).

Weynaanta iyo hawlgalku waa isku xidhan yihiin. Qalliin kastaa waa tiro sababtoo ah waxay leedahay natiijo tirooyin ah. Qiimo kastaa waa natiijada ka soo wareejinta qiimaha diiwaanka processor-ka, taas oo ah, natiijada hawlgalka. Inkasta oo xidhiidhkan, waxa ugu muhiimsan waa suurtogalnimada sharraxaaddooda gaarka ah, inkastoo ay ku celceliyaan hal eray oo ku jira qaybaha kala duwan ee qaamuuska, taas oo ah waxa ku dhacaya MA3.

Habka mashiinka ayaa u qaybiyay dhammaan tirooyinka uu isticmaalo barnaamij-sameeyaha amarrada и xogta. Markii hore, labadooduba waxay ahaayeen tirooyin, tusaale ahaan, amarrada waxaa lagu qori jiray nambaro tirooyin ah. Si kastaba ha ahaatee, luqadaha lagu dabaqo, amarrada waxay joogsadeen inay noqdaan lambarro waxayna noqdeen ereyo и calaamadaha ficilka. Kaliya "xog" ayaa ku sii jira lambaro ahaan, laakiin waa wax aan macquul ahayn in la sii wado in loogu yeero habkaas, sababtoo ah u wareejinta mashiinka ilaa aragtida xisaabta, tirooyinka waa tirooyin loo qaybiyay asalka (xogta) iyo final (loo baahan yahay). "Unknown datum" waxay u ekaan doontaa nacasnimo.

Kooxuhu waxa kale oo loo qaybiyey laba nooc oo hawleed: xisaab iyo adeeg. Ficilada xisaabta - hawlgallada. Waxyaalaha rasmiga ah dib ayaan ka heli doonaa

Luqadaha C, waraaqaha caadiga ah iyo mishiinka aan madmadow lahayn, ama hal, hawlo xisaabeed ku dhawaad ​​caalami ahaan waxay noqdaan kuwo badan.

Hawlgallada badan waa dhowr hawlgal oo isku magac ah oo leh noocyo kala duwan oo doodo ah iyo kala duwanaansho, isku mid macne, ficil.

Doodaha isku dhafka ah waxay u dhigmaan hawlgal dhan, doodaha jajabkuna waxay u dhigmaan hawlgal jajab ah. Farqigani wuxuu si gaar ah u cad yahay inta lagu jiro hawlgalka qaybinta, marka tibaaxaha 1/2 uu bixiyo wadar ahaan 0, ma aha 0,5. Qoraallada noocan oo kale ah uma dhigna xeerarka xisaabta waraaqaha, laakiin luqadda C kuma dadaaleyso inay u hoggaansamaan iyaga (si ka duwan Fortran) - waxay u ciyaareysaa si waafaqsan keeda. codsatay xeerar.

Marka la eego isku dhafka shaandhada iyo jajabyada, midka kaliya ee saxda ah ayaa lagu daraa tuurista qiyamka doodda - beddelka xulashada qiimaha hal sawir una beddelo mid kale. Runtii, marka lagu daro tiro jajab ah iyo tiro jajab ah, natiijadu waa jajab, markaa sawirka hawlgalka soo qaado Hawlgalka loogu beddelayo doodda isdhaafsiga ee qiimaha jajabka.

Tiro hawlgallo ah ayaa hadhay Jamaciyo hal. Hawlgallada noocan oo kale ah waxaa lagu qeexaa oo kaliya hal nooc oo doodo ah: qaybinta soo hartay - doodaha isugeynta, isugeynta (hawlaha bitwise) - isugeynta dabiiciga ah. Ma3 waxay tusinaysaa tirada badan ee hawlgallada oo wata calaamado (#^) oo tilmaamaya sawirada hawlgalka loo qeexay. Tani waa hanti muhiim ah laakiin markii hore la ilduufay hawl kasta.

Dhammaan hawluhu waa hawlgallo unug aan sabab lahayn. Waxa ka reebban hawl-wadeennada - hawlaha aan xidhnayn, oo lagu dhisay luqadda (hawlaha asalka ah).

Gargaarka

Gargaarka - ficil la socda hawlgalka.

Haddii aan tixgelinno hawlgalka sida ficilka ugu weyn, markaa waxaan kala saari karnaa laba ka mid ah kuwa la socda ee bixiya hawlgalka oo ka duwan. Kuwani waa 1) xakamaynta doorsoomiyaha iyo 2) hoosaadka. Ficilkan waxaa loo yaqaan gargaar.

Halkan waxaan u baahannahay inaan si gooni gooni ah u niraahno tarjumaada Ruushka ee buugaagta barnaamijyada. Kelmad cusub ayaa lagu soo bandhigay qoraalka K/R si loo duubo falalka qoraal (muujin), kaas oo isku dayay inuu u qaybiyo fikradaha amarka mashiinka ficillo kala duwan: 1) hawlgalka, 2) caddaynta, iyo 3) hoos-u-dhigga (loo yaqaan "xakamaynta constructs"). Isku daygan waxaa aasay tarjumaano Ruush ah, iyagoo ku bedelay "muujinta" ereyga "operator", kaas oo:

  1. waxay la mid noqotay ereyga mashiinka "amar",
  2. waxay isu rogtay inay la mid tahay weedha "calaamadaha ficilka",
  3. oo sidoo kale helay tiro aan xadidnayn oo qiimayaal dheeraad ah. Yacni waxay isu rogtay wax la mid ah maqaalkii ingiriisiga ahaa ee “uhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

Tixgeli ficilada la socda, ama gargaar.

Xakamaynta isbeddelka leh

Xakamaynta isbeddelka leh (UP) - abuurista/tirtirka unugyada doorsooma.
UE waxay u dhacdaa si aan toos ahayn marka lagu dhawaaqayo doorsoome, kaas oo horey loogu qoray sabab kale - si loo muujiyo sawirka qiimaha. Hal aragti oo keliya ayaa si cad loo maareeyaa doorsoomayaal dheeraad ah iyadoo la isticmaalayo malloc() iyo free() hawlaha.

Waa in la ogaadaa in ficillada daahsoon ay aad ugu habboon yihiin qorista, maadaama aysan u baahneyn wax qoraal ah haba yaraatee, laakiin way adag tahay in la fahmo - way adag tahay in la tixgeliyo oo la tarjumo.

Hoos-u-dhigid

Hoos-u-dhigid - xidhid/dami qaybaha lakabka.

Luqadda C waxay bixisay hab lagu dhaqmo oo lagu xakameynayo sida ay u kala horreeyaan falalka, oo ka duwan soo-ururinta - hoos-u-dhigga. Waxay ka tarjumaysaa oo ay horumarisaa jumlad adag oo hadal ah oo si cad u qaybsanaysa qaybta ugu muhiimsan (qodob hoosaadka) iyo qaybta hoose (qaybaha hoose/hoosaadka).

Bayaanka iyo soo gudbinta labaduba waxay ku dhisan yihiin fikradda lakabka.

Lakabka

Lakabka waa tibaaxo xaddidan oo hal-heer ah.

Lakabku wuxuu si cad oo badheedh ah u qaaday hawlo dhawr ah hal mar:

  1. abaabulka barnaamijka
  2. xaddidaya muuqalka magacyada (si aan toos ahayn),
  3. maaraynta doorsoomayaasha (unugyada xusuusta) (si cad),
  4. qeexidda faqradaha hoose ee hoos yimaada,
  5. qeexidda shaqooyinka iyo xulashada iyo kuwa kale.

Ma jirin fikrad ah lakabka luqadaha mashiinka, sidaas darteed kama muuqan K/R, iyo haddii wax aan jirin, ka dibna soo bandhigida buugaagta soo socda waxay noqon doontaa faasiqnimo iyo xornimo. Sidaa darteed, fikradda lakabka gabi ahaanba ma muuqan, inkasta oo ay tahay mid aad u faa'iido leh oo cad.

Lakab la'aan, suurtagal maaha in si kooban oo cad loo sharaxo qaar badan oo ka mid ah ficilada iyo xeerarka barnaamijka. Tusaale ahaan, maxay goto u fududdahay sida saddex kopecks xun, iyo inta khiyaano leh ayaa wanaagsan. Waxaad ku dhaaran kartaa oo kaliya si aan waxtar lahayn, sida Dijkstra uu sameeyay ("xirfadeedka barnaamij-sameeyaha waa shaqo ka duwan waxay ku xiran tahay inta jeer ee dhacdooyinka goto ee barnaamijyadooda." Marka la soo koobo, riyaha kaliya ayaa isticmaala goto. Heerka caddayntu waa Ilaah.) Run, tani maaha mid cabsi leh haddii buugaagtaada aynaan u baahnayn inaan sharaxno wax kasta, laakiin, sida aan horeyba u sheegnay, tani maahan aayahayaga.

By habka, waxaa loo qaadan karaa in Dan Ritchie ka tagay goto si sax ah sida furaha raadinta qaar ka mid ah fikradda aan la magacaabin, sababtoo ah ma jirin baahi ama qurux in tibaaxaha goto. Laakiin waxaa jiray baahi loo qabo sharraxaad fudud oo la fahmi karo oo ku saabsan mabaadi'da cusub ee luqadda, kaas oo Richie qudhiisu uusan rabin inuu bixiyo, oo si sax ah ugu saleysan fikradda. lakabka.

leexasho

leexasho - bedelida guryaha caadiga ah ee magaca cusub.

Weecinta ugu muhiimsan waxay si sax ah ula xiriirtaa sifooyinka lakabka ee barnaamijka, waxaana lagu qeexay hal erey "static", kaas oo macne kala duwan ku leh nooc kasta oo lakab ah.

5. CUTUBKA DANBE. Midnimada luqadaha lagu dabaqo

Luuqadaha lagu dabaqay waa tusaale ahaan luqadaha (oo leh sawir, "qoran"). Waxay ku saleysan yihiin isticmaalka tooska ah ama isticmaalka muuqaalka ah. Intaa waxaa dheer, halkan mar kale khilaaf ayaa u muuqda: sawir cad ayaa la fahmi karaa, laakiin ku habboon, iyo liddi ku ah.

Matryoshka C. Nidaamka luqadda barnaamijka lakabka ah

(Nashqada miiska weli lama keenin, marka shaxda waxaa lagu muujiyay sawir.)

C ka dib, horumarinta luqadaha lagu dabaqo waxay qaadatay dariiqa kordhinta qiyaasitaankooda. Waxa ugu muhiimsan fahamka sawirka sare waa faraca tooska ah ee C - luqadda C++. Waxa uu horumariyaa fikradda ah doorasho aan loo meel dayin ee hawlgallada ee tirada iyo waxa uu ku salaysan yahay xulashada hadal synthetic, kaas oo helay magac cusub - shay. Si kastaba ha ahaatee, C++ maaha mid kooban oo u muujin sida C taas oo ay ugu wacan tahay culayska badan ee noocyada ururinta cusub iyo xeerarkooda la xidhiidha. By habka, aan ka hadalno ku saabsan "overload".

rarka xad-dhaafka ah iyo polymorphism

Erayga "overload" waa erey barasho mashiinka oo duugoobay oo abuurista hawlgallo badan.

Mashiinnada (nidaamka) barnaamijyada jamacnimo Hawlgallada waxay noqon karaan kuwo aad looga xumaado: "Maxay calaamadan (+) ka dhigan tahay: isku-darka isku-darka, ku-darka jajabyada, ama xitaa beddelidda?! Waqtigeena sidaas uma ay qorin!” Sidaa awgeed macnaha xun ee ereyga la doortay ("daal badan", "daal"). Barnaamij-sameeyaha codsiga, hawlgallo badan ayaa ah tiirka, guusha ugu weyn iyo dhaxalka luqadda C, si dabiici ah oo inta badan aan la aqoonsan.

Luuqada C++ jamacnimo ma aha oo kaliya in lagu kordhiyo hawlgallada asalka ah, laakiin sidoo kale si ay u shaqeeyaan - labadaba shakhsi ahaan iyo isku dhafan ee fasalada - hababka. Iyada oo habab badan ay la timid awooddii lagaga takhalusi lahaa fasallada la dheereeyey, kaas oo si aan caddayn loo yaqaan "polymorphism." Isku darka polymorphism-ka iyo culeyska xad-dhaafka ah ayaa soo saaray isku dhafka qarxa oo u kala jabay laba polymorphisms: "run" iyo "ad-hoc." Waa suurtogal in la fahmo tan kaliya inkastoo magacyada loo qoondeeyay. Waddada loo maro xayaysiisyada waxaa lagu xardhay magacyo shisheeye.

Ku dhawaaqida qaabka "load" ayaa si fiican loogu muujiyay ereyga ogeysiis dheeraad ah - ku darista caddayn shaqo isku magac ah oo leh doodo sawir kala duwan leh.

Ku dhawaaqida qaabka "polymorphism" ayaa si fiican loogu yeeraa dib-u-sheegid - bayaan is dulsaaran oo lakabka kordhinta cusub ee shaqo isku magac ah oo leh doodo isku sawir ah.

Markaas way fududahay in la fahmo in hababka isku midka ah ee sawirada kala duwan (dood) - intaa lagu dhawaaqay, iyo hal sawir - dib loogu dhawaaqay.

Ereyada Ruush ayaa go'aamiya.

Runway

Tixgelinta fikradaha afafka aadka u sarraysa waxay xaqiijinaysaa muhiimadda qeexid cad ee fikradaha aasaasiga ah. Marka si sax ah loo sharraxo C, barashada luqadaha sarsare waxay noqon doontaa mid fudud oo xiiso leh.

Tani waxay si gaar ah muhiim ugu tahay afaf maldahan oo sarsare (PHP, JavaScript). Iyaga, muhiimada walxaha (sawirrada isku dhafan) ayaa xitaa ka sarreeya C++, laakiin fikradda sawirku waxay noqotaa mid qarsoon oo aan muuqan. Marka laga eego dhinaca ku habboonaanta, way fududaayeen, laakiin dhinaca fahamka, way sii adkaadeen.

Sidaa darteed, waa inaad bilowdaa inaad ku barato luqadaha barnaamijyada luqadda C oo aad u sii socotid sida ay u muuqdaan luqadaha qoyska C.

Si la mid ah sida loo qeexo luqadaha. Luqadaha kala duwani waxay leeyihiin isku mid, ama ka yar, oo ka kooban jinsi unug marka loo eego luqadda C. Tirada noocyada iyo muunadaha ayaa ku kala duwanaan kara labada dhinac: C++ way ka noocyo badan yihiin C, halka JavaScript uu ka yar yahay.

Luuqadda MySQL waxay mudan tahay xus gaar ah. Waxay u egtahay in aysan jirin wax la mid ah, laakiin waxaa si fiican u sharaxay Matryoshka, iyo in la barto isaga ayaa noqda mid dhakhso badan oo sahlan. Taas oo muhiim u ah, marka loo eego muhiimada ay u leedahay shabakada - wadada cuntada ee barnaamijyada casriga ah. Iyo meesha MySQL ku taal, waxaa jira SQLs kale. Waa hagaag, dhammaan noocyada Fortran-Pascal-Python waxaa sidoo kale lagu tilmaamay Matryoshka, isla marka ay gacmahooda ku helaan.

Sidaa darteed, waxyaabo waaweyn ayaa ina sugaya - sharraxaadda luqadda C iyo sharraxaadda midaysan ee luqadaha raacaya. “Hadafkeena waa cad yihiin, howsheenna waa la qeexay. Shaqada gal saaxiibayaal! (Duufaan, sacab daba dheeraatay, sacab isu rogaya. Qof kastaa wuu kacaa)."

Fikradahaaga waxaa lagu dhagaysan doonaa si aad u fiirsi badan, caawintaada abuurista bogga caruusadaha buul-ku-jirka ah ayaa lagu heli doonaa mahadnaq weyn. Macluumaad dheeraad ah oo dhammaystiran oo ku saabsan buuggu waxay yaalliin bogga internetka, oo si xariif ah ugu qarsoon Matryoshka C.

Source: www.habr.com

Add a comment