Scóip

Aimsigh na Difríochtaí

Smaoinigh ar an ríomhchlár seo a leanas, cad a scríobhann sé?

x := 2
 x > 1 {
    x = 3
    scríobh(x)
}
scríobh(x)

Bain triail as anois: An raibh an ceart agat?

Anois féach ar an ríomhchlár seo: tá difríocht an-bheag idir é agus an ríomhchlár roimhe seo. Smaoinigh arís ar cad a scríobhann sé.

x := 2
 x > 1 {
    x := 3
    scríobh(x)
}
scríobh(x)

Bain triail as arís:

An raibh an ceart agat?

Scríobh an chéad ríomhchlár “3” agus “3”, ach scríobh an dara ríomhchlár “3” agus “2”. Cad é an difríocht eatarthu?

Tabhair faoi deara an tríú líne sa dá ríomhchlár:

  • An chéad ríomhchlár: x = 3.
  • An dara ríomhchlár: x := 3.

Mar is eol duit, cruthaíonn := athróg nua, agus cuireann = luach nua in athróg éigin. Is é sin an difríocht idir an dá ríomhchlár.

Tuilleadh Sonraí

Féachaimis arís ar an gcéad ríomhchlár:

x := 2
 x > 1 {
    x = 3
    scríobh(x)
}
scríobh(x)

struchtúr an ríomhchláir seo an-simplí:

  1. Cruthaítear athróg x := 2 ar an gcéad líne.
  2. Tá an slonn x > 1 fíor, mar sin ritear an cód sa bhloc .
  3. Athraíonn an líne x = 3 luach an athróg x go 3.
  4. Scríobhann an gcéad líne eile an athróg x, atá cothrom le 3.
  5. Ansin scríobhann an líne deireanach x arís.

Anois féachaimis ar an dara ríomhchlár:

x := 2
 x > 1 {
    x := 3
    scríobh(x)
}
scríobh(x)
  1. Cruthaítear athróg x := 2 ar an gcéad líne.
  2. Tá an slonn x > 1 fíor, mar sin ritear an cód sa bloc .
  3. Cruthaítear athróg nua x := 3.
  4. Anois ritear an líne scríobh(x), ach cad is brí le x anseo? Tá dhá athróg againn ar a dtugtar x. Nuair a ritheamar an ríomhchlár níos luaithe scríobh sé “3”, dá bhrí sin caithfidh go ciallaíonn an x seo an dara athróg: An ceann atá sainmhínithe sa bhloc .
  5. Is é scríobh(x) an líne deireanach freisin. Cad is brí le x anois? Má ritheann tú an ríomhchlár scríobhfaidh an líne seo “2”. Caithfidh go ciallaíonn an x seo an athróg x ar an gcéad líne.
Scóip

Cad atá ag tarlú anseo?

Cad é Scóip?

Nuair a chruthaíonn tú athróg, cad iad na suíomhanna sa ríomhchlár is féidir leat an athróg a úsáid? Tugaimid scóip na hathróige ar na suíomhanna sin.

Go coitianta, ní féidir leat athróg a úsáid sula gcruthóidh tú é, ach tá roinnt sonraí eile le thuiscint.

Mar shampla, féach ar an gcód seo:

scríobh("Táim i mo chónaí i")
tír := "Éire"
scríobh(tír)

Is féidir linn an athróg tír a úsáid i líne a trí, mar tá líne a trí tar éis líne a dó. Níl an ríomhchlár seo a leanas ceart mar ní féidir linn an athróg a úsáid sula gcruthaímid é.

scríobh("Táim i mo chónaí i")
scríobh(tír)
tír := "Éire"

Éiríonn rudaí níos casta nuair a bhainimid úsáid as , nuair-a, le idir agus gníomhartha.

Féach ar an gcód seo:

 fíor {
    x := 2
}
scríobh(x)

An bhfuil an cód sin ceart? Níl sé: Tá scóip x teoranta. Nuair a chruthaíonn tú athróg i mbloc cóid (cód idir { agus }), ní féidir leat an athróg sin a úsáid ón taobh amuigh. Áfach, is féidir leat é a úsáid i mbloc cóid eile atá neadaithe isteach sa bhloc, mar seo:

 fíor {
    x := 2
    le i idir (0, 2) {
        scríobh(x + i)
    }
}

Tá na rialacha seo i gceist le gníomhartha agus creatlacha freisin. Mar shampla, smaoinigh ar an ríomhchlár seo: Cad a scríobhfaidh sé?

ainm := "Niamh"
gníomh dia_duit() {
    scríobh("Dia duit", ainm)
}

dia_duit()

ainm = "Oisín"

dia_duit()

 1 == 1 {
   ainm := "Fionn" 

   dia_duit()
}

Bain triail as!

An raibh tú ceart? Oibríonn an líne ainm = "Oisín" ach ní dhéanann an líne ainm := "Fionn" aon rud. Tharlaíonn é sin mar tá ainm sa ghníomh dia_duit i scóip an chéad athróg ainm, agus cruthaíonn an líne ainm := "Fionn" athróg eile le scóip eile: Níl aon tionchar aige.

Sa pictiúr seo, tá dath difriúil bainte le gach athróg ar leith, tabhair faoi deara nach n-úsáidtear an dara athróg ainm in aon áit.

Scóip Ghnímh

Scáthú

Cad a tharlaíonn nuair a cruthaímid dhá athróg leis an ainm céanna? Chonaiceamar é seo sa ríomhchlár ag barr an leathanach:

x := 2
 x > 1 {
    x := 3
    scríobh(x)
}
scríobh(x)

Tá an 4ú líne (scríobh(x)) i scóip an dhá athróg x; An ceann ar an gcéad líne agus an ceann ar an 3ú líne. Sa chás seo úsáideann sé an ceann is cóngaraí (an ceann sa bhloc is faide isteach).

Tá an chuma air go gcuireann an dara athróg an chéad cheann i bhfolach. Tugaimid scathú ar an tionchar seo mar nuair a cruthaímid an athróg nua agus úsáidimid ainm atá ag athróg eile cheana, ní féidir linn an sean athróg a fheiceáil a thuilleadh.

Áfach, go coitianta is drochchleachtas é athróg a chruthú a fholaíonn athróg eile. Ba chóir duit ainm ar leith a úsáid le gach athróg: Éiríonn rudaí mearbhlach má scáthaíonn tú athróg le athróg eile.

NB: Ní féidir leat athróg nua a chruthú le ainm ata á úsáid cheana sa bhloc céanna. Mar shampla, ní oibríonn cód mar seo:

Athchúrsáil

Is féidir le gníomh éigin é féin a ghlaoch, tugaimid athchúrsáil ar an bpróiseas seo. Mar shampla, seo ríomhchlár a scríobhann “10”, “9”, “8” síos go “1”.

Nuair a ghlaoitear ar scríobh_uimhir(10), scríobhann sé “10” ar an gconsól, ansin déanann sé seic an bhfuil 10 níos mó ná 1, ar ndóigh tá sé, dá bhrí sin glaonn sé ar scríobh_uimhir(9). Scríobhann é sin “9” agus glaonn sé ar scríobh_uimhir(8), ansin glaonn sé ar scríobh_uimhir(7), scríobh_uimhir(6) srl. go dtí go sroicheann sé scríobh_uimhir(1). Ag an bpointe sin níl x > 1 a thuilleadh agus stopann sé.

Má chruthaítear athróg sa ghníomh, cruthaítear leagan ar leith gach uair a ghlaoitear ar an gníomh. Go sonrach, nuair a ghlaonn gníomh air é féin, ní roinneann na glaonna a n-athróga. Féach ar an ríomhchlár seo:

Nuair a ghlaoimid ar f(2), cruthaíonn sé athróg nua y atá cothrom le 2. Ansin déanann sé seic an bhfuil x > 1, agus tá sé. Ansin glaonn sé ar f(1). Cruthaítear athróg nua anois y atá cothrom le 1, tá an athróg seo difriúil leis an athróg y a chruthaíomar cheana. Níl 1 níos mó ná 1, mar sin ní ghlaoitear ar f(0). Ansin scríobhann sé y ar an gconsól, mar sin scríobhann sé “1”. Ansin téann sé ar ais go dtí an gníomh roimhe f(2) agus leanann sé ar aghaidh. Is é scríobh(y) an gcéad líne eile, ach níl y cothrom le 1 anois, mar tá an athróg y difriúil leis an y a scríobhamar cheana. Tá an y seo cothrom le 2, dá bhrí sin scríobhann sé “2” ar an gconsól.

An Scóip Uilíoch

Tá scóip speisialta i Setanta, an scóip uilíoch. Tá scóip uilíoch ag athróg atá sainmhínithe ag an barrleibhéal: sa bhloc ag barr an ríomhchlár. Mar shampla, tá scóip uilíoch ag x, mo_ghníomh agus MoChreatlach sa ríomhchlár a leanas, ach níl scóip uilíoch ag an athróg áitiúil.

creatlach MoChreatlach {
    gníomh ainm() {
        scríobh("Setanta")
    }
}

gníomh mo_ghníomh() {
    áitiúil := "Dia duit"
    toradh áitiúil
}

x := 3

Tá athróga uilíocha speisialta, mar is féidir leat iad a úsáid sula gcruthaíonn tú iad nuair a úsáideann tú iad i gníomh éigin. Féachaimis ar cúpla sampla:

Oibríonn an cód seo: Bain triail as!

Ní oibríonn cód mar sin ach amháin sa scóip uilíoch, mar shampla, ní oibríonn cód mar seo: Má ritheann tú é, gheobhaidh tú earráid.

Is féidir linn é seo a úsáid chun dhá ghníomh a cruthú mar seo: Tá an péire gníomh seo beagán ait - is dócha go n-oibríonn siad, ach b’fhiú iad a mhíniú

gníomh uimhir_ré(x) {
     x == 0 {
        toradh fíor
    }
    toradh uimhir_corr(x - 1)
}

gníomh uimhir_corr(x) {
     x == 0 {
        toradh bréag
    }
    toradh uimhir_ré(x - 1)
}

Glaonn uimhir_ré ar uimhir_corr, agus glaonn uimhir_corr ar uimhir_ré. Oibríonn sé sin mar is féidir an ghníomh uimhir_ré tagairt a dhéanamh do uimhir_corr cé nach bhfuil uimhir_corr sainmhínithe fós.

Tuilleadh Setanta

Comhghairdeas! Shroich tú deireadh an teagaisc. Go raibh míle maith agat as ucht do suim i Setanta, tá súil agam gur bhain tú taitneamh as.

Níl le dhéanamh anois ach dul go dtí an eagarthóir agus triail a bhaint as an teanga. Tá cúpla sampla ar fáil agus níos mó eolais ar fáil ar docs.try-setanta.ie.

Má tá aon eolas de dhíth agat, nó má tá fadhb ar bith agat, is féidir teachtaireacht a sheoladh go cabhair@try-setanta.ie.