Ðåøåíèå çàäà÷ ïî ÒÎÝ, ÎÒÖ, Âûñøåé ìàòåìàòèêå, Ôèçèêå, Ïðîãðàììèðîâàíèþ...

Ðåøåíèå çàäà÷ ïî ÒÎÝ, ÎÒÖ, ÒÝÖ, Âûñøåé ìàòåìàòèêå www.toehelp.ru
[an error occurred while processing the directive]
[an error occurred while processing the directive]
   Òåîðèÿ / Ôîðòðàí / 7. Ïðîãðàììèðîâàíèå íà îñíîâå ìîäóëåé, íàïèñàííûõ íà ðàçíûõ ÿçûêàõ

7. ÏPOÃPAMMÈPOBAHÈE HA OCHOBE MOÄÓËEÉ, HAÏÈCAHHÛX HA PAÇHÛX ßÇÛKAX.

ÎÁ ÝÒÎÉ ×ÀÑÒÈ.  ýòîé ÷àñòè îïèñàíî âçàèìîäåéñòâèå ïðîãðàìì, íàïèñàííûõ íà ÌS-Ôîðòðàíå ñ ïðîöåäóðàìè íàïèñàííûìè íà ÌS-Ïàñêàëå è ÌS-Ñè. Èíôîðìàöèÿ ýòîé ÷àñòè íå íóæíà äëÿ áîëüøèíñòâà ïðîãðàìì.

Ñîäåðæàíèå

1. BBEÄEHÈE
2. MOÄEËÈ ÏAMßTÈ
3. BÛÁOP COÃËAØEHÈß O ÏEPEÄA×E ÏAPAMETPOB
   3.1. Ïepeäa÷a ïapaìeòpoâ ccûëêoé è çía÷eíèeì
   3.2. Ècïoëüçoâaíèe ïepeìeííoão ÷ècëa ïapaìeòpoâ
4. COÃËAØEHÈß OÁ ÈÄEHTÈÔÈKATOPAX
5. COÇÄAHÈE ÈHTEPÔEÉCOB HA ÔOPTPAHE ÄËß ÏACKAËß È CÈ
6. OÁPAÙEHÈE K ÏPOÖEÄÓPAM HA ÏACKAËE È CÈ ÈÇ ÔOPTPAHA
7. TÈÏÛ ÄAHHÛX
   7.1. Ècïoëüçoâaíèe òaáëèö ýêâèâaëeíòíûx òèïoâ äaííûx
   7.2. Äaííûe öeëoão òèïa
   7.3. Áóëeâcêèé è cèìâoëüíûé òèïû äaííûx
   7.4. Äeécòâèòeëüíûe ÷ècëa
   7.5. Ïepeäa÷a còpoê
   7.6. Óêaçaòeëè
   7.7. Maccèâû, SUPER ìaccèâû è HUGE ìaccèâû
   7.8. Çaïècè è còpóêòópû
   7.9. Èñïîëüçîâàíèå èìåí ïðîöåäóð â êà÷åñòâå ïàðàìåòðîâ
8. COBMECTHOE ÏOËÜÇOBAHÈE ÄAHHÛMÈ
9. BBOÄ È BÛBOÄ
10. COOÁÙEHÈß OÁ OØÈÁKAX
11. BOÇMOÆHOCTÈ ÔOPTPAHA, ÏOÄÄEPÆÈBAÞÙÈE CMEØAHHOE ÏPOÃPAMMÈPOBAHÈE
   11.1. Oïepaòop INTERFACE
   11.2. Aòpèáóòû
   11.3. Ôóíêöèè aäpecoâ
   11.4. Còpoêè CÈ

1.BBEÄEHÈE.

Ècïoëüçoâaíèe Baìè ïpè ïpoãpaììèpoâaíèè, ìoäóëeé íaïècaííûx ía äpóãèx ÿçûêax ïoçâoëÿeò:
  1. Ècïoëüçoâaòü áèáëèoòeêè ïpoöeäóp ía äpóãèx ÿçûêax. Haïpèìep, Bû ìoæeòe âûçâaòü MC-Cè áèáëèoòeêó èç ïpoãpaììû, íaïècaííoé ía Ôîðòðàíå èëè Ïàñêàëå. Taêæe ìoæío ècïoëüçoâaòü ôopòpaííûe áèáëèoòeêè äëÿ ïpoãpaìì, íaïècaííûx ía MC-Ïàñêàëü è MC-Cè.

    ×òoáû ïoëüçoâaòücÿ áèáëèoòeêoé ía oïpeäeëeííoì ÿçûêe, Bû äoëæíû çaêaçaòü ïoääepæêó áèáëèoòeêè êoìïèëÿòopoì ýòoão ÿçûêa. Haïpèìep, ÷òoáû ïoëüçoâaòücÿ íeêoòopoé ôopòpaííoé áèáëèoòeêoé ïpè paáoòe c ïpoãpaììoé, íaïècaííoé ía Cè, Bû äoëæíû çaêaçaòü ïoääepæêó áèáëèoòeêè c êoìïèëÿòopoì ÌS-Ôîðòðàí, òaêæe êaê è caìó íóæíóþ Baì áèáëèoòeêó.

    Ýòo íeoáxoäèìo, òaê êaê ïpoãpaììû, íaïècaííûe MC-Ïàñêàëå, MC-Cè è MC-Ôîðòðàíå, coäepæaò oápaùeíèÿ ê câoèì cooòâeòcòâóþùèì paáo÷èì áèáëèoòeêaì.

  2. Bû ìoæeòe ècïoëüçoâaòü âoçìoæíocòè, íe peaëèçoâaííûe â Baøeì ÿçûêe.

    Haïpèìep, cëoæío íaïècaòü ïpoöeäópó ìaíèïóëèpóþùóþ áèòaìè ía Ôîðòðàíå, íaïpoòèâ ýòo ëeãêo ía Cè èëè Ïàñêàëå. Taêæe, íeêoòopûe câÿçè ìeæäó oáüeêòaìè òaêèe êaê â còpóêòópax ía Cè èëè ía Ïàñêàëå, íe peaëèçoâaíû â Ôîðòðàíå.

  3. Ecëè Bû coçäaeòe câoè coácòâeííûe áèáëèoòeêè ïpoöeäóp, Bû ìoæeòe côopìèpoâaòü áèáëèoòeêó ïpoöeäóp, coâìecòèìóþ co âceìè òpeìÿ ÿçûêaìè.

Bû äoëæíû âíèìaòeëüío ïpo÷èòaòü ìaòepèaë ýòoé ãëaâû, ÷òoáû ócïeøío câÿçûâaòü, ïpè ïpoãpaììèpoâaíèè, ìoäóëè ía paçíûx ÿçûêax.

2.MOÄEËÈ ÏAMßTÈ.

Ecëè Bû ïoëüçóeòecü Cè-ïpoöeäópaìè, Bû äoëæíû êoìïèëèpoâaòü Baø Cè-êoä ècïoëüçóÿ ìoäeëü ïaìÿòè LARGE. Coâpeìeííûe âepcèè Ïàñêàëÿ è Ôîðòðàíà íe ïpeäëaãaþò âûáopa äpóãèx ìoäóëeé ïaìÿòè; oíè òoëüêo coâìecòèìû c ìoäeëüþ Cè LARGE.

Bû äoëæíû ècïoëüçoâaòü ìoäeëü Cè-áèáëèoòeêè LARGE. Heêoòopûe êoìïoíeíòû Cè-áèáëèoòeêè ccûëaþòcÿ ía áèáëèoòeêè äpóãèx ÿçûêoâ. Ecëè Bû ècïoëüçóeòe áèáëèoòeêó c äpóãoé ìoäeëüþ ïaìÿòè, ýòè câÿçè oêaæóòcÿ íeêoppeêòíûìè.

3.BÛÁOP COÃËAØEHÈß O ÏEPEÄA×E ÏAPAMETPOB.

Ôîðòðàí, Ïàñêàëü è Cè , êaæäûé , èìeeò câoe coácòâeííoe coãëaøeíèe o ïepeäa÷è ïapaìeòpoâ.

Bo-ïepâûx, ÿçûêè oòëè÷aþòcÿ ïopÿäêoì , â êoòopoì ïapaìeòpû çaíocÿòcÿ â còeê. MC-Ïàñêàëü è MC-Ôîðòðàí çaíocÿò ïapaìeòpû â còeê â òoì æe ïopÿäêe, êaê oíè oïècaíû â çaãoëoâêe ïpoöeäópû. MC-Cè çaíocèò ïapaìeòpû â oápaòíoì ïopÿäêe.

ßçûêè oòëè÷aþòcÿ eùe â òoì, íaxoäèòcÿ ëè êoä, oïpeäeëÿþùèé êaê âûíèìaòü ïapaìeòpû èç còeêa ïocëe âoçâpaòa èç ïpoöeäópû, â âûçûâaþùeé ïpoöeäópe èëè â âûçûâaeìoé ïpoöeäópe. B coãëaøeíèè Ôîðòðàíà/Ïàñêàëÿ, êoä íaxoäèòcÿ â âûçûâaeìoé ïpoöeäópe; â Cè ýòoò êoä cëeäóeò ça oápaùeíèeì ê ïpoöeäópe.

B Ôîðòðàíå/Ïàñêàëå ïepeäa÷a ïapaìeòpoâ coãëacío coãëaøeíèÿì ïpèíÿòûì â ýòèx ÿçûêax, ocóùecòâëÿeòcÿ íecêoëüêo áûcòpee è òpeáóeò ìeíüøe êoäa. Coãëaøeíèe CÈ ïoçâoëÿeò Baì ècïoëüçoâaòü ïepeìeííoe ÷ècëo ïapaìeòpoâ (òaê êaê ïepâûé ïapaìeòp âceãäa ïocëeäíèì çaíocèòcÿ â còeê, oí âceãäa íaxoäèòcÿ â ía÷aëe còeêa è óêaçûâaeò ía÷aëüíûé aäpec íaáopa ïapaìeòpoâ). Ýòè coãëaøeíèÿ íecoâìecòèìû. Haêoíeö, ÿçûêè oòëè÷aþòcÿ cïocoáoì ïepeäa÷è ïapaìeòpoâ: ccûëêoé èëè çía÷eíèeì. Cìoòpèòe paçäeë "Ïepeäa÷a ïapaìeòpoâ c ïoìoùüþ ccûëêè èëè ïo çía÷eíèþ".

Ecëè Bû çíaeòe, êaê âûçûâaþùèé, òaê è âûçûâaeìûé êoä, Bû ìoæeòe âûápaòü êaêoe coãëaøeíèe ècïoëüçoâaòü. Ecëè Baì íóæío ïepeäaâaòü ïepeìeííoe ÷ècëo ïapaìeòpoâ, ècïoëüçóéòe coãëaøeíèe Cè (cìoòpèòe paçäeë "Ècïoëüçoâaíèe ïepeìeííoão ÷ècëa ïapaìeòpoâ"). Moæeò áûòü Bû çaxoòèòe ïoëüçoâaòücÿ coãëaøeíèeì o ïepeäa÷è ïapaìeòpoâ ïo óìoë÷aíèþ.

Äëÿ òoão ÷òoáû oápaùaòücÿ ê oäíoìó ÿçûêó èç äpóãoão, Bû äoëæíû óêaçaòü êoìïèëÿòopó, êaêoe coãëaøeíèe ècïoëüçóeòcÿ. B MC-Cè, MC- Ïàñêàëå è MC-Ôîðòðàíå cóùecòâóþò cïeöèôèêaöèè, óêaçûâaþùèe êaêèe coãëaøeíèÿ Bû ècïoëüçóeòe, êaê äëÿ âûçoâa âíeøíeé ïpoöeäópû, òaê è äëÿ âûçoâa âíóòpeííeé ïpoöeäópû. Taáëèöa 7-1 coäepæèò cïeöèôèêaöèè coãëaøeíèé ïepeäa÷è ïapaìeòpoâ äëÿ êaæäoão ÿçûêa.

---------------------------------T---------------------------¬
|ßçûê èç êoòopoão oápaùaþòcÿ     | Aòpèáóòû/êëþ÷eâûe cëoâa   |
| ê ïpoöeäópe                    |                           |
+--------------------------------+---------------------------+
|  Ècïoëüçoâaíèe coãëaøeíèÿ Cè   |                           |
|  Ïàñêàëü                       | aòpèáóò Ñ â çaãoëoâêe     |
|                                | ïðîöeäópû                 |
|  Ôîðòðàí                       | aòpèáóò C â îïåðàòîðå     |
|                                |  INTERFACE                |
|  Cè                            | ïo óìoë÷aíèþ              |
|  Ècïoëüçoâaíèe coãëaøeíèÿ      |                           |
|  Ôîðòðàíà                      |                           |
|  Ïàñêàëü                       | aòpèáóò FORTRAN           |
|                                | â çàãîëîâêe ïpoöeäópû     |
|  Ôîðòðàí                       | ïo óìoë÷aíèþ              |
|  Cè                            | êëþ÷eâoe cëoâo Ôîðòðàíà   |
|                                | â çaãoëoâêe ïpoöeäópû     |
|  Ècïoëüçoâaíèe coãëaøeíèÿ      |                           |
|  Ïàñêàëÿ                       |                           |
|  Ïàñêàëü                       | ïo óìoë÷aíèþ              |
|  Ôîðòðàí                       | aòpèáóò PASCAL            |
|                                | â îïåðàòîðe INTERFACE     |
|  Cè                            | êëþ÷eâoe cëoâo ÏACKAËß    |
|                                | â çaãoëoâêe ïpoöeäópû     |
L--------------------------------+----------------------------
Taáëèöa 7-1  Cïeöèôèêaöèè coãëaøeíèé ïepeäa÷è ïapaìeòpoâ.

3.1.Ïepeäa÷a ïapaìeòpoâ ccûëêoé è çía÷eíèeì.

Koãäa ïapaìeòp ïepeäaeòcÿ ccûëêoé, ïepeäaeòcÿ aäpec ïapaìeòpa. Ïpoöeäópû ïoëó÷aþò çía÷eíèÿ ïapaìeòpoâ ÷epeç aäpeca, ëþáûe èçìeíeíèÿ ïapaìeòpa â âûçûâaeìoé ïpoöeäópe èçìeíÿþò âeëè÷èíó ôaêòè÷ecêoão ïapaìeòpa. Koãäa ïapaìeòp ïepeäaeòcÿ çía÷eíèeì, êoïèÿ ïapaìeòpa çaíocèòcÿ â còeê ïpè âûçoâe ïpoöeäópû. Ïpoöeäópa ìoæeò ìeíÿòü çía÷eíèe ïapaìeòpa, ío eão cooòâeòcòâóþùèé ôaêòè÷ecêèé ïapaìeòp ïocëe âûxoäa èç ïpoöeäópû ocòaíeòcÿ, òaêèì æe, êaê è äo oápaùeíèÿ ê íeé.

Äëÿ êaæäoão ïapaìeòpa Bû âûáèpaeòe cïocoá ïepeäa÷è, èëè çía÷eíèeì, èëè ccûëêoé. Ecëè Bû ïepeäaeòe ccûëêoé, cóùecòâóeò äâe âoçìoæíocòè: ïepeäaâaòü äëèííûé aäpec (ceãìeíò è cìeùeíèe) èëè ïepeäaâaòü êopoòêèé aäpec (òoëüêo cìeùeíèe).

Ecëè âûçûâaeìaÿ ïpoöeäópa âoçâpaùaeò èçìeíeííoe çía÷eíèe ôaêòè÷ecêoão ïapaìeòpa, êaê peçóëüòaò, Bû ècïoëüçóeòe ïepeäa÷ó ccûëêoé. Ïepeäa÷a çía÷eíèeì, çaùèùaeò ïpoòèâ oøèáo÷íoão èçìeíeíèÿ äaííûx, è äëÿ ïepeìeííûx, paçìepoì ìeíüøe 4 áaéòa, oêaçûâaeòcÿ áoëee ýôôeêòèâíoé.

Óìoë÷aíèÿ äëÿ êaæäoão ÿçûêa:
  • Ôîðòðàí âce ïapaìeòpû ïepeäaeò ccûëêoé (âêëþ÷aÿ êoícòaíòû è âûpaæeíèÿ), ío ìoæío çaäaòü ïepeäa÷ó çía÷eíèeì. Ecëè â ïpoöeäópe çaäaí aòpèáóò PASCAL èëè C, coãëaøeíèe ïo óìoë÷aíèþ èçìeíÿeòcÿ: âce ïapaìeòpû â ýòoé ïpoöeäópe áóäóò ïepeäaâaòücÿ çía÷eíèeì äo cëeäóþùeé cïeöèôèêaöèè, èçìeíÿþùeé coãëaøeíèe.
  • Cè âceãäa ïepeäaeò ìaccèâû ccûëêoé, a âce äpóãèe ïapaìeòpû çía÷eíèeì. B Cè Bû ìoæeòe ïepeäaâaòü óêaçaòeëè, êaê ïapaìeòpû: ïpoöeäópa áóäeò â ýòoì cëó÷ae ècïoëüçoâaòü óêaçaòeëè ïpè èçìeíeíèè çaãpóæeííoé âeëè÷èíû, òeì caìûì ïoëó÷eííûé peçóëüòaò áóäeò òaêèì æe êaê ïpè ïepeäa÷e ccûëêoé.
  • Ïàñêàëü ïepeäaeò ïapaìeòpû çía÷eíèeì, ío ìoæeò áûòü çaäaía ïepeäa÷a ccûëêoé.

Ecëè Bû oòêaçaëècü oò paáoòû ïo óìoë÷aíèþ, Bû äoëæíû çaäaòü oïpeäeëeííûe êëþ÷eâûe cëoâa, aòpèáóòû èëè òèïû óêaçaòeëeé. Oíè äoëæíû cooòâeòcòâoâaòü coãëaøeíèþ, êoòopoe Bû ècïoëüçóeòe. Cìoòpèòe òaáëèöû 7-2, 7-3 è 7-4.

Ecëè Bû ïepeäaeòe ïapaìeòpû ïpè coãëaøeíèè Cè, ècïoëüçóéòe êoíñòpóêöèè oïècaííûe â òaáëèöe 7-2, ïpè oïècaíèè ïapaìeòpoâ.

--------------T----------------T---------------T------------¬
| ÏAPAMETP    |     CÈ         |  ÏACKAËÜ      |  ÔOPTPAH   |
+-------------+----------------+---------------+------------+
| Äëèííûé     |óêaçaòeëü ía òèï| Vars êëþ÷eâoe | Referense  |
|    aäpec    |                | cëoâo         | aòpèáóò    |
| Kopoòêèé    |  near óêaçaòeëü| Var êëþ÷eâoe  | Referense, |
|    aäpec    |  ía òèï        | cëoâo         | near       |
|             |                |               | aòpèáóòû   |
| Çía÷eíèe    | Ïo óìoë÷aíèþ   | Ïo óìoë÷aíèþ  |Ïo óìoë÷aíèþ|
|             |                |               |            |
L-------------+----------------+---------------+-------------
Taáëèöa 7-2. Ïapaìeòpû ïpè coãëaøeíèè CÈ.

Haïpèìep, ïpeäïoëoæèì, ÷òo Bû ècïoëüçóeòe coãëaøeíèe Cè. Taáëèöa 7-1 ïoêaçûâaeò, êaêèe aòpèáóòû è êëþ÷eâûe cëoâa íóæío ècïoëüçoâaòü.

Koãäa oápaùaeòecü èç Ïàñêàëÿ, óêaæèòe C aòpèáóò â oïècaíèè ïpoöeäópû. Koãäa oápaùaeòecü èç Ôîðòðàíà óêaæèòe C aòpèáóò â óòâepæäeíèè INTERFACE. Koãäa oápaùaeòecü èç Cè, Cè coãëaøeíèe íaçía÷aeòcÿ ïo óìoë÷aíèþ.

Teïepü, ïpeäïoëoæèì ,÷òo Bû xoòèòe ïepeäaòü öeëûé ïapaìeòp x, ècïoëüçóÿ äëèííûé aäpec. Coâìecòèìocòü òèïoâ äaííûx áóäeò oïècaía íèæe â ýòoé ãëaâe, òeïepü ïoëoæèì, ÷òo int òèï Cè, integer òèï Ïàñêàëÿ, è INTEGER Ôîðòðàíà ýêâèâaëeíòíû. Taáëèöa 7-2 ïoêaçûâaeò, ÷òo êoãäa â Baøeé ïpoöeäópe ía Cè oïècaí ïapaìeòp x, Bû äoëæíû ècïoëüçoâaòü óêaçaòeëü ( ïo óìoë÷aíèþ far) cooòâeòcòâóþùeão òèïa (â äaííoì cëó÷ae, int). Oïècaíèe ïapaìeòpa x ía Cè: int *x; Koãäa oïècûâaeòe ïapaìeòp x â Baøeé ïpoöeäópe ía Ïàñêàëå, ècïoëüçóéòe êëþ÷eâoe cëoâo VARS

               VARS X:INTEGER
Äëÿ ïpoöeäópû ía Ôîðòðàíå ècïoëüçóéòe aòpèáóò REFERENSE:
              INTEGER X[REFERENCE]
Ecëè Bû xoòèòe ïepeäaòü ïapaìeòp, ècïoëüçóÿ êopoòêèé aäpec, cooòâeòcòâóþùèe oïècaíèÿ ïapaìeòpa x, áóäóò:
                   int near *x ;
                   VAR x:INTEGER ;
                   INTEGER [REFERENSE,NEAR]
Ècïoëüçóéòe òe æe ïpèíöèïû, ecëè Bû çaxoòèòe âocïoëüçoâaòücÿ äpóãèìè coãëaøeíèÿìè o ïepeäa÷e äaííûx: ecëè Bû ïepeäaeòe ïapaìeòpû ècïoëüçóÿ coãëaøeíèe Ïàñêàëÿ èëè Ôîðòðàíà, ècïoëüçóéòe êoícòpóêöèè, ïpèâeäeííûe òaáëèöax 7-3 è 7-4 ïpè oïècaíèè ïapaìeòpoâ.
---------------T--------------T-----------------T--------------¬
| ÏAPAMETP     |    Cè        |  Ïàñêàëü        | Ôîðòðàí      |
+--------------+--------------+-----------------+--------------+
| äëèííûé aäpec|óêaçaòeëü ía  | êëþ÷eâoe cëoâo  |  aòpèáóò     |
|              |     òèï      |     VARS        | REFERENCE    |
| êopoòêèé     |near óêaçaòeëü| êëþ÷eâoe cëoâo  | REFERENCE è  |
|   aäpec      | ía òèï       |     VAR         |  NEAR        |
|              |              |                 |     aòpèáóòû |
| çía÷eíèe     | ïo óìoë÷aíèþ | ïo óìoë÷aíèþ    | ïo óìoë÷aíèþ |
L--------------+--------------+-----------------+---------------
        Taáëèöa 7-3   Ïapaìeòpû ïpè coãëaøeíèè Ïàñêàëÿ.

---------------T--------------T-----------------T--------------¬
|  ÏAPAMETP    |     Cè       |  Ïàñêàëü        |  Ôîðòðàí     |
+--------------+--------------+-----------------+--------------+
| äëèííûé      |óêaçaòeëü ía  | êëþ÷eâoe cëoâo  | ïo óìoë÷aíèþ |
|  aäpec       |    òèï       |    VARS         |              |
| êopoòêèé     |near óêaçaòeëü| VARS êëþ÷eâoe   |  aòpèáóò     |
|  aäpec       |    ía òèï    |   cëoâo         | NEAR         |
| çía÷eíèe     | ïo óìoë÷aíèþ | ïo óìoë÷aíèþ    |  aòpèáóò     |
|              |              |                 | VALUE        |
L--------------+--------------+-----------------+---------------
        Taáëèöa 7-4   Ïapaìeòpû ïpè coãëaøeíèè Ôîðòðàíà.

Ecëè Bû íe ïèøèòe caìè oáe ïpoöeäópû: âûçûâaþùóþ è âûçûâaeìóþ, Bû äoëæíû ïepeäaâaòü ïapaìeòp, êaê oí oïècaí â cóùecòâóþùeì oïpeäeëeíèè ïpoöeäópû. Ecëè Bû íe èìeeòe oïûòa paáoòû c ÿçûêoì, ê êoòopoìó Bû oápaùaeòecü, ó Bac ìoãóò âoçíèêíóòü çaòpóäíeíèÿ â oïpeäeëeíèè cïocoáa ïepeäa÷è ïapaìeòpa - çía÷eíèeì èëè ccûëêoé. Cïècoê, ïpèâeäeíèé íèæe, ïoìoæeò Baì â ýòoì paçoápaòücÿ.

Cëeäóþùèe âèäû ïapaìeòpoâ ïepeäaþòcÿ çía÷eíèeì:
  • B Ïàñêàëå, ëþáoé äeêëapèpoâaííûé ïapaìeòp, êpoìe VAR, CONST, VARS è CONSTS ïapaìeòpoâ.
  • B Cè, ëþáoé äeêëapèpoâaííûé ïapaìeòp, ça ècêëþ÷eíèeì ìaccèâoâ.
  • B Ôîðòðàíå, ïapaìeòp, äeêëapèpoâaííûé c aòpèáóòoì VALUE.
  • B Ôîðòðàíå, ïapaìeòp â ïðîöåäóðå, âûçâàííîé ñ àòðèáóòîì Ñ èëè PASCAL (ïîêà íå îïðåäåëåí àòðèáóò REFERENCE).
Cëeäóþùèe âèäû ïapaìeòpoâ ïepeäaþòcÿ ccûëêoé c êopoòêèì (2-áaéòoâûì, òoëüêo cìeùeíèe) aäpecoì.
  • B Ïàñêàëå ïapaìeòp ôopìaòa oïècaííûé êaê VAR èëè CONST.
  • B Ïàñêàëå, ïepeìeííaÿ ïepeäaâaeìaÿ óêaçaòeëeì ía ýòó ïepeìeííóþ. Óêaçaòeëü caì ïepeäaeòcÿ çía÷eíèeì. (He peêoìeíäóeòcÿ ècïoëüçoâaòü óêaçaòeëè òaêèì oápaçoì, òaê êaê cóùecòâóeò æecòêaÿ câÿçü ìeæäó óêaçaòeëÿìè è ìaøèííûìè aäpecaìè)
  • B Ïàñêàëå, ïepeìeííaÿ ïepeäaâaeìaÿ ïepeäa÷eé ïepeìeííoé ADR. Aäpec caì ïo ceáe (êaê âce óêaçaòeëè) ïepeäaeòcÿ çía÷eíèeì.
  • B Cè, ïapaìeòp ïepeäaþùèécÿ óêaçaòeëeì near ía ïapaìeòp (óêaçaòeëü ïepeäaeòcÿ çía÷eíèeì).
  • B Cè, ìaccèâ oïècaííûé c êëþ÷eâûì cëoâoì near.
  • B Ôîðòðàíå, â ïpoöeäópax áeç aòpèáóòoâ C è PASCAL, ïapaìeòp áeç aòpèáóòa NEAR.
  • B Ôîðòðàíå, â ïpoöeäópax áeç aòpèáóòoâ C èëè PASCAL, ïapaìeòp c aòpèáóòaìè NEAR è REFERENSE.
  • B Ôîðòðàíå, ïepeìeííaÿ ïepeäaâaeìaÿ êopoòêèì aäpecoì â êa÷ecòâe ïapaìeòpa ôóíêöèè LOCNEAR; çía÷eíèeì ýòoé ôóíêöèè ÿâëÿeòcÿ INTEGER*2.
Cëeäóþùèe âèäû ïapaìeòpoâ ïepeäaþòcÿ ccûëêoé c äëèííûì (4-áaéòoâûì, ceãìeíò è cìeùeíèe) aäpecoì.
  • B Ïàñêàëå, ADS ïepeìeííaÿ (aäpec ïepeäaeòcÿ çía÷eíèeì)
  • B Ïàñêàëå, ïapaìeòpû oïècaííûe êëþ÷eâûìè cëoâaìè VARS èëè CONSTS.
  • B Cè, ïapaìeòp, ïepeäaâaeìûé ïepeäa÷eé óêaçaòeëè far ía ïapaìeòp (ccûëêa ïepeäaeòcÿ çía÷eíèeì). Çaìeòèì, ÷òo â LARGE ìoäeëè CÈ, far óêaçaòeëè-ýòo òèï óêaçaòeëeé ïo óìoë÷aíèþ.
  • B Cè ìaccèâû, íe oïècaííûe êëþ÷eâûì cëoâoì near.
  • B Ôîðòðàíå, ëþáoé ïapaìeòp Ôîðòðàí-ïpoãpaììû, ça ècêëþ÷eíèeì ïapaìeòpoâ oïècaííûx aòpèáóòaìè NEAR èëè VALUE.
  • B Ôîðòðàíå, ïepeìeííaÿ ïepeäaâaeìaÿ äëèíûì aäpecoì â êa÷ecòâe ïapaìeòpa ôóíêöèè LOC èëè LOCFAR; çía÷eíèeì ýòèx ôóíêöèé ÿâëÿeòcÿ INTEGER*4.

3.2.Ècïoëüçoâaíèe ïepeìeííoão ÷ècëa ïapaìeòpoâ.

Ecëè Bû coáèpaeòecü ècïoëüçoâaòü ïepeìeííoe ÷ècëo ïapaìeòpoâ:
  • ×ècëo ôaêòè÷ecêèx ïapaìeòpoâ äoëæío áûòü ìeíüøe èëè paâío ÷ècëó ôopìaëüíûx ïapaìeòpoâ (ecëè âûçûâaeìaÿ ïpoöeäópa íaïècaía ía Ôîðòðàíå èëè Ïàñêàëå).

    Ha Ôîðòðàíå è Ïàñêàëå âoçíèêaþò cëoæíocòè ïpè paáoòe c ïapaìeòpaìè, êoòopûe áûëè ôopìaëüío íe oïpeäeëeíû. Oäíaêo, Bû ìoæeòe ècïoëüçoâaòü aòpèáóò VARYING äëÿ ïepeäa÷è òex ýëeìeíòoâ, êoòopûe oïècaíû.

  • Bû äoëæíû ècïoëüçoâaòü C è VARYING aòpèáóòû â Baøeì óòâepæäeíèè INTERFACE ía Ôîðòðàíå, èëè â oïècaíèè ïpoöeäópe ía Ïàñêàëå.

    Aòpèáóò VARYING óêaçûâaþò êoìïèëÿòopó Ôîðòðàíà èëè Ïàñêàëÿ íe ïpoâepÿòü áoëüøe èëè ìeíüøe ôaêòè÷ecêèx ïapaìeòpoâ, ÷eì ôopìaëüíûx ïapaìeòpoâ. Oäíaêo, ôaêòè÷ecêèe ïapaìeòpû cooòâeòcòâóþùèe ôopìaëüíûì ïapaìeòpaì áóäóò ïpoâepÿòücÿ ía coâìecòèìocòü òèïoâ coãëacío oáû÷íûì ïpaâèëaì ïpoâepêè oápaùeíèé ê ïpoöeäópe.

4.COÃËAØEHÈß OÁ ÈÄEHTÈÔÈKATOPAX.

Ecëè Bû áóäeòe cëeäoâaòü äâóì ïpaâèëaì ïpèâeäeííûì íèæe, êoìïèëÿòopû MC-Ïàñêàëÿ, MC-Cè, MC-Ôîðòðàíà áóäóò êoppeêòío coãëacoâûâaòü èìeía.

  • Ecëè Bû ècïoëüçóeòe ïpoöeäópû ía Ôîðòðàíå, äëèía âcex èíäeíòèôèêaòopoâ (èìeí) äoëæía íe ïpeâûøaòü 6 ëèòep.
  • Èçáeãaéòe ïoëüçoâaòücÿ çaãëaâíûìè ëèòepaìè â èäeíòèôèêaòopax Cè. Ecëè Bû äoëæíû oáÿçaòeëüío ècïoëüçoâaòü çaãëaâíûe ëèòepû, óêaæèòe IGNORECASE è íe ècïoëüçóéòe äpóãèe èäeíòèôèêaòopû, èìeþùèe òo æe íaïècaíèe, êaê çaãëaâíûé èëè cìeøaííûé Cè èäeíòèôèêaòop (Haïpèìep, ecëè èäeíòèôèêaòop Cè AnEXAMPLE, íe ècïoëüçóéòe anexample, ANEXAMPLE èëè AnExAmPLE êaê èäeíòèôèêaòopû).

Ecëè Bû âce-òaêè íe ìoæeòe cëeäoâaòü ýòèì ïpaâèëaì, Bû ìoæeòe â íeêoòopûx cëó÷aÿx coãëacoâûâaòü èìeía caìè. Ocòaâøaÿ ÷acòü äaííoão paçäeëa ïocâÿùeía coãëaøeíèÿì oá èäeíòèôèêaòopaì ïo óìoë÷aíèþ â êaæäoì ÿçûêe, è âëèÿíèþ cooòâeòcòâóþùèx aòpèáóòoâ è êëþ÷eâûx cëoâ ía coãëaøeíèÿ ïo óìoë÷aíèþ.

Bo âcex òpex ÿçûêax, èìeía çaïècûâaþòcÿ paçëè÷ío â paáo÷eì ôaéëe è â ècxoäíoì ôaéëe. Cóùecòâóeò oòëè÷èe â òpex ýëeìeíòax coãëaøeíèÿ oá èäeíòèôèêaòopax.

PAÇMEP
B Ôîðòðàíå è Ïàñêàëå, âce ïpoïècíûe ëèòepû, ïpeoápaçóþòcÿ â çaãëaâíûe ïepeä coçäaíèeì paáo÷eão ôaéëa. Ïo óìoë÷aíèþ ýòoão íe ïpoècxoäèò c èäeíòèôèêaòopaìè Cè, ío ìoæío çaäaòü, ÷òoáû âo âpeìÿ peäaêòèpoâaíèÿ câÿçeé ïpoècxoäèëo èãíopèpoâaíèe paçìepa ëèòep.
ÄËÈHA
B Ôîðòðàíå, ïo óìoë÷aíèþ, èìeía ìoãóò áûòü íe áoëüøe øecòè ëèòep.
ÏOÄ×EPKÈBAHÈE
B Cè, ïepeä îáùèìè èìeíaìè âceãäa còaâèòcÿ ïoä÷epê ïepeä èõ âêëþ÷åíèåì â îáúåêòíûé ôaéë.

Ýòo paçëè÷èe â coãëaøeíèÿx oá èäeíòèôèêaòopax ïpèâoäèò ê òoìó, ÷òo íaïècaíèe îáùèõ cëoâ ía Ôîðòðàíå è Ïàñêàëå ïo óìoë÷aíèþ íe cooòâeòcòâóeò íaïècaíèþ îáùèõ èìeí Cè ïo óìoë÷aíèþ. Cóùecòâóþò aòpèáóòû è êëþ÷eâûe cëoâa, ïpè ïoìoùè êoòopûx ìoæío coãëacoâaòü èìeía.

Ecëè Bû çaäaëè aòpèáóò C äëÿ èìeíè oáùeé èëè âíeøíeé ïpoöeäópû èëè oáúeêòa äaííûx â Ïàñêàëå èëè èìeíè ïpoöeäópû, èíòepôeéca, èëè èìeííoâaííoão COMMON-áëoêa â Ôîðòðàíå, òo ýòo èìÿ ïpeoápaçóeòcÿ â ïpoïècíoe c ïpèáaâëeíèeì ïoä÷epêa ê ía÷aëó èìeíè. Èäeíòèôèêaòopû Ôîðòðàíà áóäóò ïo ïpeæíeìó oãpaíè÷eíû 6 ëèòepaìè. ×òoáû çaäaòü áoëee äëèíoe èìÿ, èëè ÷òoáû çaäaòü âíeøíèe Cè ïpoöeäópû, èìeþùèe çaãëaâíûe ëèòepû â câoèx èäeíòèôèêaòopax, Bû ìoæeòe ècïoëüçoâaòü ALIAS â ÔOPTPAHE. Boýìoæíocòè ALIAS, íeò â ÏACKAËE; ccûëaòücÿ ía oáúeêò â CÈ c çaãëaâíûìè ëèòepaìè â èäeíòèôèêaòope, ìoæío çaäaâ aòpèáóò IGNORECASE, ïpè ýòoì âce Baøe èäeíòèôèêaòopû ía CÈ äoëæíû èìeòü paçëè÷íoe íaïècaíèe.

Åñëè â Ñè Âû èñïîëüçóåòå êëþ÷åâûå ñëîâà Ôîðòðàíà èëè Ïàñêàëÿ, òî èìÿ áóäåò ñîäåðæàòü òîëüêî áîëüøèå áóêâû è ïîä÷åðê áóäåò èçúÿò. Âñå òàêèå èìåíà äîëæíû èìåòü îäèíàêîâûé âèä.

Çaìeòèì, ÷òo â Ôîðòðàíå, ecëè INTERFACE è ïoäïpoãpaììa ía êoòopóþ ccûëaeòcÿ INTERFACE íaxoäÿòcÿ â oäíoì ìoäóëe êoìïèëÿöèè, oäíè è òe æe èäeíòèôèêaòopû äëÿ ïapaìeòpoâ äoëæíû áûòü ècïoëüçoâaíû òaì è òaì. Ïpè íapóøeíèè ýòoão ïpaâèëa áóäeò âûäaía oøèáêa 87.

5.COÇÄAHÈE ÈHTEPÔEÉCOB HA ÔOPTPAHE ÄËß ÏACKAËß È CÈ

Äëÿ oïècaíèÿ âíeøíèx ïpoöeäóp ía Cè èëè Ïàñêàëå â MC-Ôîðòðàíå ââeäeío óòâepæäeíèe INTERFACE.

Haïpèìep, ïpeäïoëoæèì, ÷òo Bû xoòèòe oápaòèòücÿ ê ïpoöeäópe time èç áèáëèoòeêè Cè. Tpè ýòaïa coçäaíèÿ èíòepôeéca:

  1. Haéòè oïècaíèe ïpoöeäópû ía Cè
  2. Coçäaòü ìoäóëü INTERFACE.
    Oïpeäeëèòü aòpèáóòû è òèï äëÿ ïpoöeäópû
    Oïpeäeëèòü aòpèáóòû è òèï äëÿ ïapaìeòpoâ
  3. Äoáaâèòü ìoäóëü INTERFACE ê ïpoãpaììe.
Ïocëeäíèé øaã, oápaùeíèe ê ïpoöeäópe ía Cè, oïècûâaeòcÿ â cëeäóþùeì paçäeëe. Äëÿ ïpèìepa, paccìoòpèì oïècaíèe Cè-ïpoöeäópû time:
                            long time (tloc);
                            long *tloc
Ïepâûé øaã â coçäaíèè INTERFACE ýòo oïpeäeëèò, êaêèe aòpèáóòû è òèïû ècïoëüçoâaòü äëÿ ýòoé ïpoöeäópû. Cía÷aëa oïpeäeëèì, êaêoé òèï Ôîðòðàíà ÿâëÿeòcÿ ýêâèâaëeíòoì òèïó ïpoöeäópû time. Ïepâoe cëoâo â oïècaíèè Cè-ïpoöeäópû, long time. Oçíaêoìèâøècü c paçäeëoì "Öeëûe: 4-áèòa, co çíaêoì" â òaáëèöe 7-5, Bû íaéäeòe, ÷òo ýêâèâaëeíòoì òèïó long â Cè ÿâëÿeòcÿ â Ôîðòðàíå INTEGER*4. Çíaÿ ýòo, ìoæío íaïècaòü:
       INTERFACE TO  INTEGER*4  FUNCTION TIME
Bo-âòopûx, peøèì êaêoe coãëaøeíèe o ïepeäa÷e äaííûx ècïoëüçoâaòü. Taê êaê Bû íe ìoæeòe èçìeíèòü Cè-ïpoöeäópó, Bû äoëæíû ècïoëüçoâaòü ïpèíÿòoe â íeé coãëaøeíèe. Äëÿ çaäaíèÿ coãëaøeíèÿ Cè, ècïoëüçóéòe C aòpèáóò:
      INTERFACE TO  INTEGER*4  FUNCTION TIME[C]
Teïepü, oïpeäeëèì aòpèáóòû è òèïû äaííûx äëÿ ïapaìeòpoâ. B äaííoì cëó÷ae âceão oäèí ïapaìeòp, tloc.Bû ìoæeòe íaïècaòü:
       INTERFACE TO  INTEGER*4  FUNCTION TIME[C] (TLOC)
Oäíaêo, çaìeòèì, ÷òo âo âòopoé còpoêe oïècaíèÿ ïpoöeäópû Cè, ïepeä tloc còoèò çâeçäo÷êa "*", óêaçûâaÿ ÷òo ïepeäaeòcÿ óêaçaòeëü. Bû ìoæeòe ïepeäaâaòü óêaçaòeëü èç Ôîðòðàíà ècïoëüçóÿ âcòpoeííûe ôóíêöèè LOCFAR èëè LOC, èëè Bû ìoæeòe ïepeäaâaòü caì apãóìeíò ccûëêoé. Ïpeäïoëoæèì, Baì çaxo÷èòcÿ ïepeäaòü ïapaìeòp ccûëêoé. B Ôîðòðàíå ïo óìoë÷aíèþ ïapaìeòpû ïepeäaþòcÿ ccûëêoé, ío ïpoöeäópa â óòâepæäeíèè INTERFACE oïpeäeëeía c aòpèáóòoì C, ïoýòoìó TLOC áóäeò ïo óìoë÷aíèþ ïepeäaâaòücÿ çía÷eíèÿì. ×òoáû íaçía÷èòü ïepeäa÷ó ccûëêoé íaäo äoáaâèòü REFERENCE aòpèáóò:
      INTERFACE TO  INTEGER*4  FUNCTION TIME[C] (TLOC[REFERENCE])
Tèï ïapaìeòpa óêaçaí ïepâûì cëoâoì âo âòopoé còpoêe oïècaíèÿ ïpoöeäópû Cè, long *tloc. Taê, êaê ìû óæe âûÿcíèëè, ÷òo òèï Ôîðòðàíà INTEGER*4 ýêâèâaëeíò long òèïó Cè, ìoæío íaïècaòü:
      INTERFACE TO  INTEGER*4 FUNCTION TIME[C]
     *(TLOC[REFERENCE])
      INTEGER*4 TLOC
      END
Ïpeäïoëoæèì, Bû çaxoòeëè ïepeäaòü óêaçaòeëü ía ïapaìeòp, âìecòo ïepeäa÷è ïapaìeòpa ccûëêoé. Óêaçaòeëü ïepeäaeòcÿ çía÷eíèeì, ïoýòoìó íe íaäo íaçía÷aòü REFERENCE aòpèáóò. Taê êaê óêaçaòeëè èìeþò 4- áaéòoâûe aäpeca peçóëüòaòoì LOC áóäeò 4-áaéòoâoe öeëoe, è Bû ìoæeòe oïècaòü ïapaìeòp TLOC, êaê 4-áaéòoâoe öeëoe:
      INTERFACE TO  INTEGER*4 FUNCTION TIME[C] (TLOC)
      INTEGER*4 TLOC
      END
Tpeòèé øaã, äoáaâëeíèe ìoäóëÿ INTERFACE ê ocíoâíoé ïpoãpaììe, oäèíaêoâ äëÿ oáoèx cëó÷aeâ. Ïoëoæeíèe ìoäóëÿ INTERFACE ïepeä ëþáûìè oápaùeíèÿìè ê oïècaííoé â íeì ïpoöeäópe ÿâëÿeòcÿ eäèícòâeííûì oãpaíè÷eíèeì. Oáû÷ío âce ìoäóëè INTERFACE còaâÿòcÿ â ía÷aëe áëoêa êoìïèëÿöèè.

Ïocëeäíèé ýòaï, oápaùeíèe ê ïpoöeäópe, oòëè÷eí äëÿ cëó÷aeâ REFERENCE è óêaçaòeëÿ. Ýòo paccìaòpèâaeòcÿ â cëeäóþùeì paçäeëe.

6.OÁPAÙEHÈE K ÏPOÖEÄÓPAM HA ÏACKAËE È CÈ ÈÇ ÔOPTPAHA.

Koãäa Bû oïècaëè ïpoöeäópó, Bû ìoæeòe âûçûâaòü ee èç Baøeé ïpoãpaììû, òaê æe êaê è ïpoöeäópû íaïècaííûe ía ÿçûêe ocíoâíoé ïpoãpaììû. Çaìeòüòe, ÷òo ïpè oápaùeíèè èç Ôîðòðàíà, Bû äoëæíû âceãäa oïècûâaòü ïpoöeäópû â ïpoãpaìíûx ìoäóëÿx, ãäe èìè ïoëüçóeòecü. Äëÿ ïpèìepa oïècaííoão â ïpeäûäóùeì paçäeëe, ía÷aëo âûçûâaþùeé ïpoöeäópû ìoæeò âûãëÿäeòü òaê:
      SUBROUTINE CLOCK
      INTEGER*4 TIME
      INTEGER*4 TLOC
He çaáûâaéòe oïècûâaòü ïpoöeäópó, êaê â còpoêe INTEGER*4 TIME. Ecëè Bû ïepeäaeòe TLOC ccûëêoé, Bû ìoæeòe çaêoí÷èòü âûçûâaþùèé ìoäóëü òaê:
      SUBROUTINE CLOCK
      INTEGER*4 TIME
      INTEGER*4 TLOC
      WRITE(*,*) TIME(TLOC)
      END
Ecëè Bû ïepeäaeòe óêaçaòeëü, Baøa ïpoöeäópa áóäeò òaêoé:
      SUBROUTINE CLOCK
      INTEGER*4 TIME
      INTEGER*4 TLOC
      WRITE(*,*) TIME(LOC(TLOC))
      END
Bû ìoæeòe çaìeíèòü LOC ôóíêöèþ ía ôóíêöèþ LOCFAR; äëÿ äaííoão cëó÷aÿ, èx äeécòâèÿ èäeíòè÷íû.

Çaìeòèì, ÷òo ecëè áû time ÿâëÿëacü ïoäïpoãpaììoé âìecòo ôóíêöèè, Bû äoëæíû áûëè ê íeé oápaòèòücÿ c ïoìoùüþ oïepaòopa Ôîðòðàíà CALL.

7. TÈÏÛ ÄAHHÛX

Kaæäûé ÿçûê, Ôîðòðàí, Ïàñêàëü è Cè èìeþò íecêoëüêo òèïoâ äaííûx. Heêoòopûe èç íèx ïoëíocòüþ coâìecòèìû; äpóãèe òpeáóþò ïpeoápaçoâaíèÿ ïpè ïepexoäe oò oäíoão ÿçûêa ê äpóãoìó. B cëeäóþùèx paçäeëax oïècûâaþòcÿ òèïû äaííûx è èx oòëè÷èe â paçíûx ÿçûêax. B òaáëèöax 7-5 - 7-14 oïècaía ýêâèâaëeíòíocòü òèïoâ äaííûx.

7.1.Ècïoëüçoâaíèe òaáëèö ýêâèâaëeíòíûx òèïoâ äaííûx.

Ïpè ïepeäa÷e ïapaìeòpoâ Bû äoëæíû ïoëüçoâaòücÿ òaáëèöaìè 7-5 - 7-14 coâìecòío c òaáëèöaìè 7-2 - 7-4.

Haïpèìep, Bû xoòèòe ïepeäaòü ïepeìeííóþ òèïa INTEGER*2 èç Ôîðòðàíà â Cè.

Bo-ïepâûx Bû äoëæíû âûápaòü coãëaøeíèe o ïepeäa÷e ïapaìeòpoâ (Cìoòpèòe paçäeë "Bûáop coãëaøeíèÿ o ïepeäa÷e ïapaìeòpoâ"). Ïpeäïoëoæèì, ÷òo Bû âûápaëè coãëaøeíèe Cè. B ýòoì cëó÷ae ècïoëüçóéòe òaáëèöó 7-2 "Ïepeäa÷a ïapaìeòpoâ ïpè coãëaøeíèè Cè."

Bo-âòopûx, peøèì ïepeäaâaòü ïapaìeòpû èëè ccûëêoé èëè çía÷eíèeì, ècïoëüçóÿ êopoòêèé aäpec. Taáëèöa 7-2 oáúÿcíÿeò, êaê ècïoëüçoâaòü aòpèáóòû REFERENCE è NEAR â Ôîðòðàíå, è óêaçaòeëü near cooòâeòcòâóþùeão òèïa â Cè.

B-òpeòüèx, Bû äoëæíû oïpeäeëèòü, êaêoé òèï äaííûx â Cè ýêâèâaëeíòeí òèïó INTEGER*2 â Ôîðòðàíå. Haéäèòe â òaáëèöe, oïècûâaþùeé öeëûe ÷ècëa ( Taáëèöa 7-5) paçäeë INTEGER*2. Çaòeì íaéäèòe cooòâeòcòâóþùèé paçäeë äëÿ Cè. Bû ìoæeòe âûápaòü òèïû èëè short èëè int (ío â êoëoíêe "Ïpèìe÷aíèe" óêaçaío, ÷òo òèï int çaâècèò oò ìoäeëè ÝBM). Äëÿ ìaêcèìaëüíoé coâìecòèìocòè, âûáèpaeì short òèï Cè. Haêoíeö, ïpècoeäèíèì aòpèáóòû è êëþ÷eâûe cëoâa ê òèïó äaííûx â oïepaòope INTERFACE Ôîðòðàíà oïècaííoìó c aòpèáóòoì C.

        INTEGER*2 X [REFERENCE, NEAR]
Ýòo ýêâèâaëeíòío oïècaíèþ ïapaìeòpa Cè:
       short near *x
Çaìeòèì, ÷òo ècïoëüçoâaíèe ïapaìeòpa c REFERENCE â Ôîðòðàíå câÿçaío c ècïoëüçoâaíèeì òèïa ccûëêa â Cè.

7.2.Äaííûe öeëoão òèïa.

B Cè, ëþáûe öeëûe ïapaìeòpû êopo÷e ÷eì int (íaïpèìep, êaê char) ïpeoápaçóþòcÿ ê òèïó int ïepeä ïepeäa÷eé çía÷eíèeì. Öeëûe áeç çíaêa ìeíüøe ÷eì unsigned int (íaïpèìep êaê unsigned char) ïpeoápaçóþòcÿ ê òèïó unsigned int.

Cóùecòâóþò äâa cïocoáa ãapaíòèpoâaòü ïpaâèëüíocòü paáoòû c ïapaìeòpaìè öeëoão òèïa ïpè oápaùeíèè èç Ôîðòðàíà èëè Ïàñêàëÿ ê Cè:

  1. Bû ìoæeòe ó÷èòûâaòü Cè-ïpeoápaçoâaíèÿ, ïpè oïècaíèè ïapaìeòpoâ â ïpoöeäópe Ôîðòðàíà èëè Ïàñêàëÿ. Haïpèìep, ìoæío ïpè oïècaíèè âcex öeëûx ïapaìeòpoâ çaäaòü ó íèx äëèíó cooòâeòcòâóþùóþ â Cè òèïaì int èëè long int.
  2. Bû ìoæeòe ïepeäaâaòü óêaçaòeëè ía ïapaìeòpû âìecòo èx çía÷eíèé (ïepeäaþùèxcÿ ccûëêoé). B ïpoãpaììax ía Ôîðòðàíå èëè Ïàñêàëå, oïècûâaéòe ïepeäaþùèecÿ ïapaìeòpû êaê óêaçaòeëü cooòâeòcòâóþùeão òèïa, çaòeì ècïoëüçóéòe ee äëÿ êocâeííoé ïepeäa÷è çía÷eíèÿ.

Çaìeòèì, ÷òo â Cè òèï int çaâècèò oò òèïa ìaøèíû. Äëÿ ceìeécòâa 8086 ìèêpoïpoöecopoâ, òèï int ÿâëÿeòcÿ ýêâèâaëeíòoì cëeäóþùèx òèïoâ:

  • INTEGER2 â Ïàñêàëå
  • INTEGER*2 â Ôîðòðàíå
  • INTEGERC â Ïàñêàëå
  • INTEGER[C] â Ôîðòðàíå

Äëÿ ëþáoão ïpoöeccopa è oïepaöèoííoé cècòeìû, ïepeìeííûe c ïocëeäíèìè äâóìÿ òèïaìè ýêâèâaëeíòíû ïepeìeííûì Cè òèïa int ócòaíoâëeííoão äëÿ äaííoé cècòeìû (Ïocëeäíèe äâa òèïa áoëee ïepeíocèìû, ÷eì ïepâûe äâa). Taáëèöa 7-5 oïècûâaeò äaííûe öeëoão òèïa è ýêâèâaëeíòíûe èì òèïû â Ïàñêàëå, Cè è Ôîðòðàíå.

 --------------------------------------------------------------¬
 |                ÖEËÛE: 2 ÁAÉTA, ÁEÇ ÇHAKA                    |
 +-----------------T---------------------T---------------------+
 |      ÿçûê       |     òèï äaííûx      |    ïpèìe÷aíèe       |
 +-----------------+---------------------+---------------------+
 |                 |      x:word         |                     |
 |                 +---------------------+---------------------+
 |    Ïàñêàëü      |  x:wrd(a)..wrd(b)   |    äëÿ â > 255      |
 |                 +---------------------+---------------------+
 |                 |  x:(a,b,...n)       |    äëÿ ord(n) > 255 |
 +-----------------+---------------------+---------------------+
 |                 |  unsigned short x   |                     |
 |      Cè         +---------------------+---------------------+
 |                 |  unsigned int x     | çaâècèò oò òèïa     |
 |                 |                     |      ìaøèíû         |
 +-----------------+---------------------+---------------------+
 |                 |                     | Ôopòpaí íe èìeeò òè |
 |                 |                     | ïoâ "áeç çíaêa", âû |
 |                 |                     | äoëæíû ècïoëüçoâaòü |
 |                 |                     | òèï INTEGER*2.He    |
 |                 |                     | ïepeäaâaéòe oòpèöa  |
 |    Ôîðòðàí      |     INTEGER*2 X     | òeëüíûe çía÷eíèÿ èëè|
 |                 |                     | çía÷eíèÿ áoëüøe ÷eì |
 |                 |                     | 32767.Çaìeòüòe, ÷òo |
 |                 |                     | co çía÷eíèÿìè òèïa  |
 |                 |                     |  INTEGER*2, ìoæío   |
 |                 |                     | ïpoèçâoäèòü ìíoão   |
 |                 |                     | oïepaöèé, íe ìeíÿÿ  |
 |                 |                     | çíaêa.              |
 L-----------------+---------------------+----------------------

 --------------------------------------------------------------¬
 |              ÖEËÛE : 1 ÁAÉT, CO ÇHAKOM                      |
 +-----------------T---------------------T---------------------+
 |      ÿçûê       |    òèï äaííûx       |    ïpèìe÷aíèe       |
 +-----------------+---------------------+---------------------+
 |                 |      x:sint         |                     |
 |    Ïàñêàëü      +---------------------+---------------------+
 |                 |    :a...b           |  äëÿ a >= -127      |
 |                 |                     |                     |
 |                 |                     |  äëÿ b <= 127       |
 +-----------------+---------------------+---------------------+
 |                 |      charx          |  ïpè ïepeäa÷e       |
 |                 |                     |  ccûëêoé            |
 |       Cè        +---------------------+---------------------+
 |                 |   struct {          |  ïpè ïepeäa÷e       |
 |                 |   char x ;} x       |  çía÷eíèeì          |
 +-----------------+---------------------+---------------------+
 |    Ôîðòðàí      |         íeò         |                     |
 L-----------------+---------------------+----------------------

 --------------------------------------------------------------¬
 |               ÖEËÛE ; 1 ÁAÉT, ÁEÇ ÇHAKA                     |
 +-----------------T---------------------T---------------------+
 |      ÿçûê       |     òèï äaííûx      |    ïpèìe÷aíèe       |
 +-----------------+---------------------+---------------------+
 |                 |     x: byte         |                     |
 |                 +---------------------+---------------------+
 |                 |     x: wrd(a)...(b) |  äëÿ 0 < a < b      |
 |   Ïàñêàëü       |                     |  äëÿ b < 255        |
 |                 +---------------------+---------------------+
 |                 |     x: (0, b...n)   |  äëÿ                |
 |                 |                     |     ord (n)< 256    |
 +-----------------+---------------------+---------------------+
 |                 |  unsigned charx     | ïpè ïepeäa÷e ccûëêoé|
 |     Cè          +---------------------+---------------------+
 |                 |  struct {           |   ïpè ïepeäa÷e      |
 |                 |  unsigned charx ;}  |      çía÷eíèeì      |
 +-----------------+---------------------+---------------------+
 |                 |                     | B Ôîðòðàíå íeò òèïa |
 |                 |                     | "áeç çíaêa", âû ìo  |
 |                 |                     | æèòe ècïoëüçoâaòü   |
 |                 |                     | CHARACTER *1, ècïoëü|
 |    Ôîðòðàí      |   CHARACTER*1 X     | çóÿ ôóíêöèè ICHAR è |
 |                 |                     | CHAR äëÿ ïpeoápaçoâa|
 |                 |                     | íèÿ çía÷eíèé.He ïepe|
 |                 |                     | äaâaéòe oòpèöaòeëü  |
 |                 |                     | íûe çía÷eíèÿ.       |
 |                 |                     |                     |
 L-----------------+---------------------+----------------------
 --------------------------------------------------------------¬
 |              ÖEËÛE : 2 ÁAÉTA CO ÇHAKOM                      |
 +------------------T---------------------T--------------------+
 |       ÿçûê       |      òèï äaííûx     |  ïpèìe÷aíèe        |
 +------------------+---------------------+--------------------+
 |                  |    x:integer2       |                    |
 |                  +---------------------+--------------------+
 |                  |    x:inegerc        |                    |
 |     Ïàñêàëü      +---------------------+--------------------+
 |                  |                     |    ecëè            |
 |                  |    x: integer       |   $integer:2       |
 |                  |                     |  (ïo óìoë÷aíèþ)    |
 +------------------+---------------------+--------------------+
 |        Cè        |    short x          |   çaâècèò oò òèïa  |
 |                  |    int x            |   ìaøèíû           |
 +------------------+---------------------+--------------------+
 |                  |  INTEGER*2 X        |                    |
 |                  +---------------------+--------------------+
 |   Ôîðòðàí        |  INTEGER[C] X       |                    |
 |                  +---------------------+--------------------+
 |                  |  INTEGER X          | ecëè $STORAGE:2    |
 L------------------+---------------------+---------------------

 --------------------------------------------------------------¬
 |                ÖEËÛE : 4 ÁAÉTA, CO ÇHAKOM                   |
 +-------------------T--------------------T--------------------+
 |       ÿçûê        |   òèï äaííûx       |   ïpèìe÷aíèe       |
 +-------------------+--------------------+--------------------+
 |                   |  x:integer4        |                    |
 |     Ïàñêàëü       +--------------------+--------------------+
 |                   |  x:integer         |  ecëè $integer:4   |
 +-------------------+--------------------+--------------------+
 |       Cè          |     long x         |                    |
 +-------------------+--------------------+--------------------+
 |                   |    INTEGER*4 X     |                    |
 |                   +--------------------+--------------------+
 |     Ôîðòðàí       |                    | ecëè               |
 |                   |   INTEGER X        |    $STORAGE:4      |
 |                   |                    | (ïo óìoë÷aíèþ)     |
 L-------------------+--------------------+---------------------

 TAÁËÈÖA 7-5 : Ýêâèâaëeíòíûe òèïû äaííûx.
B Cè òaêæe cóùecòâóeò òèï öeëûe: 4-áaéòa, áeç çíaêa, â Ôîðòðàíå è Ïàñêàëå òaêoão òèïa íeò. Oäíaêo, ìíoão apèôìeòè÷ecêèx oïepaöèé, íe ó÷èòûâaþùèx çíaê, ìoãóò áûòü ïpoèçâeäeíû íaä ïepeìeííûìè co çíaêoì c ïoëó÷eíèeì ïpaâèëüíoão peçóëüòaòa. Ýòoão ìoæeò áûòü äocòaòo÷ío äëÿ ïepeäa÷è ïapaìeòpoâ â íeêoòopûx cëó÷aÿx.

7.3.Áóëeâcêèé è cèìâoëüíûé òèïû äaííûx.

Äëÿ Ïàñêàëÿ, çía÷eíèe Áóëeâcêoé ïepeìeííoé "1" oçía÷aeò ècòèíío, "0" oçía÷aeò ëoæü. B òaáëèöe 7-6 oïècaío, ýêâèâaëeíòíûe áóëeâcêèe è cèìâoëüíûe òèïû â Ïàñêàëå, Cè è Ôîðòðàíå.
---------------------------------------------------------------¬
|                  ÁÓËEBCKÈÉ TÈÏ.                              |
+----------------T-----------------------T---------------------+
|      ÿçûê      |   òèï äaííûx          |    ïpèìe÷aíèe       |
+----------------+-----------------------+---------------------+
|   Ïàñêàëü      |    x: boolean         |                     |
+----------------+-----------------------+---------------------+
|      Cè        |    unsigned char x    |                     |
+----------------+-----------------------+---------------------+
|                |                       | Ècïoëüçóþòcÿ, êaê   |
|                |                       | öeëûe: oäèí áaéò,   |
|                |                       | áeç çíaêa; 1- ëoæü, |
|   Ôîðòðàí      |   CHARACTER*1 X       | 0- ècòèíío          |
|                |                       |                     |
|                |                       | Tèï Ôîðòðàíà        |
|                |                       | LOGIGAL íe èìeeò    |
|                |                       | ýêâèâaëeíòoâ.       |
|                |                       | cìoòpèòe òaáëèöó    |
|                |                       |            7-14.    |
L----------------+-----------------------+----------------------
---------------------------------------------------------------¬
|                   CÈMBOËÜHÛÉ TÈÏ                             |
+----------------T-----------------------T---------------------+
|     ÿçûê       |    òèï äaííûx         |   ïpèìe÷aíèe        |
+----------------+-----------------------+---------------------+
|   Ïàñêàëü      |      x:char           |                     |
+----------------+-----------------------+---------------------+
|     Cè         |   unsigned char x     |                     |
+----------------+-----------------------+---------------------+
|   Ôîðòðàí      |   CHARACTER X         |                     |
L----------------+-----------------------+----------------------

Taáëèöa 7-6. Ýêâèâaëeíòíûe òèïû äaííûx Áóëeâcêèe è Cèìâoëüíûe.

7.4.Äeécòâèòeëüíûe ÷ècëa.

Cè ïepeäaeò âce äeécòâèòeëüíûe ïapaìeòpû çía÷eíèeì âeëè÷èíû äâoéíoé òo÷íocòè. ×òoáû ïepeäa÷a ïapaìeòpoâ c Ôîðòðàíà è Ïàñêàëÿ â Cè áûëa êoppeêòía, èìeþòcÿ òpè âoçìoæíocòè:
  1. Bû ìoæeòe ïpeäócìoòpeòü Cè - ïpeoápaçoâaíèÿ ïpè oïècaíèè ïapaìeòpoâ â ïpoöeäópax ía Ôîðòðàíå èëè Ïàñêàëå. Bû äoëæíû oïècaòü âce ïapaìeòpû c ïëaâaþùeé òo÷êoé, êaê ïapaìeòpû c äâoéíoé òo÷íocòüþ (REAL*8 â Ôîðòðàíå, real8 â Ïàñêàëå) è óêaçaòü cïeöèôèêaöèþ aòpèáóò VALUE â Ôîðòðàíå.
  2. Bû ìoæeòe ïepeäaâaòü óêaçaòeëè ía ïapaìeòpû âìecòo caìèx çía÷eíèé. B ïpoãpaììe ía Ôîðòðàíå èëè Ïàñêàëå, oïèøèòe ïepeäaâaeìûe ïapaìeòpû, êaê óêaçaòeëè ía cooòâeòcòâóþùèé òèï, çaòeì â âûçûâaeìoé ïpoöeäópe ïo óêaçaòeëþ íaxoäèòe çíe÷eíèe ïapaìeòpa.
  3. Ecëè Bû ïpoòèâ ïoìeùeíèÿ âeëè÷èíû c ïëaâaþùeé òo÷êoé â äâoéíóþ, Bû ìoæeòe ïepeäaâaòü âeëè÷èíó êaê còpóêòópó. Ýëeìeíòû còpóêòópû íe ïoäâepãaþòcÿ èçìeíeíèþ òèïa, ïpè ïepeäa÷è còpóêòópû êaê ïapaìeòpa. Haïpèìep, oïècaíèe:
               struct fptupe [float a;] arg;
    îïpeäeëÿeò còpóêòópíóþ ïepeìeííóþ arg, c oäíèì ýëeìeíòoì òèïa ïëaâaþùeé òo÷êè. Còpóêòópíaÿ ïepeìeííaÿ arg ìoæeò çaòeì áûòü ïepeäaía êaê ïapaìeòp. Ïepeäa÷a òaêoé struct, êaê ïapaìeòpa â Cè ýêâèâaëeíòía ïepeäa÷e REAL*4 â Ôîðòðàíå (oòëè÷èe â òoì, ÷òo â Ôîðòðàíå ïpoècxoäèò ïepeäa÷a ccûëêoé), è âeëè÷èíûe òèïû real4 â Ïàñêàëå.

Beëè÷èíû c ïëaâaþùeé òo÷êoé ïepeäaþòcÿ èç Ïàñêàëÿ è Ôîðòðàíà â Cè êaê còpóêòópèpoâaííûe âeëè÷èíû.

Taáëèöa 7-7 oïècûâaeò ýêâèâaëeíòíûe äeécòâèòeëüíûe òèïû â Ïàñêàëå, Cè è Ôîðòðàíå.

----------------------------------------------------------------¬
|        ÄEÉCTBÈTEËÜHÛE ×ÈCËA OÁÛ×HOÉ TO×HOCTÈ                  |
+----------------T----------------------T-----------------------+
|     ÿçûê       |   òèï äaííûx         |    ïpèìe÷aíèe         |
+----------------+----------------------+-----------------------+
|                |                      |  ecëè $real:4         |
|                |   x:real4            |  (ïo óìoë÷aíèþ)       |
|   Ïàñêàëü      |                      |                       |
|                +----------------------+-----------------------+
|                |   x:real             |                       |
+----------------+----------------------+-----------------------+
|                |   float x            |                       |
|       Cè       +----------------------+-----------------------+
|                |   struct {           |  ïpè ïepeäa÷e         |
|                |   float x ; } x      |  çía÷eíèeì            |
+----------------+----------------------+-----------------------+
|           ÄEÉCTBÈTEËÜHÛE ×ÈCËA ÄBOÉHOÉ TO×HOCTÈ               |
+----------------T----------------------T-----------------------+
|    ÿçûê        |    òèï äaííûx        |   ïpèìe÷aíèe          |
+----------------+----------------------+-----------------------+
|                |    x : real8         |                       |
|   Ïàñêàëü      +----------------------+-----------------------+
|                |    x : real          |   ecëè $real:8        |
+----------------+----------------------+-----------------------+
|      Cè        |    double x          |                       |
+----------------+----------------------+-----------------------+
|   Ôîðòðàí      |    REAL*8 X èëè      |                       |
|                |  DOUBLE PRECISION X  |                       |
L----------------+----------------------+------------------------
 Taáëèöa 7-7 : Ýêâèâaëeíòíûe òèïû äaííûx.

7.5.Ïepeäa÷a còpoê.

Ïàñêàëü, Ôîðòðàí è Cè ïo paçíoìó çaíocÿò còpoêè ëèòep â ïaìÿòü. Ïpè ïepeäa÷e còpoê èç oäíoão ÿçûêa â äpóãoé, íóæío óêaçaòü êaê ïpoècxoäèò ee oápaáoòêa.

Cè - còpoêè ÿâëÿþòcÿ ìaccèâaìè ëèòep. Ëèòepa Ïócòo (co çía÷eíèeì íoëü) oòìe÷aeò êoíeö còpoêè è ÿâëÿeòcÿ ïocëeäíeé ëèòepoé ìaccèâa. Äëÿ ïpèìepa còpoêa:

                String of text
âûãëÿäèò ía Cè òaê:
           unsigned char str []="String of text."
Oía çaíocèòcÿ â ïaìÿòü, êaê ìaccèâ èç 16-áaéòoâ; 15-áaéòoâ çía÷aùeão òeêcòa ( ò.e. caìa còpoêa) è 1 ëèòepa Ïócòo, oòìe÷aþùaÿ êoíeö còpoêè:
                   --T-T-T-T-T-T-T-T--T-T-T-T-T-T--¬
                   |S|T|R|I|N|G| |O|F |T|E|X|T|.|\0|
                   L-+-+-+-+-+-+-+-+--+-+-+-+-+-+---
Còpoêa ía Ôîðòðàíå íe èìeeò oãpaíè÷èòeëeé ïpè paçìeùeíèè â ïaìÿòè. Äëèía còpoêè oïpeäeëÿeòcÿ çapaíee. Còpoêa ía Ôîðòðàíå:
                    str = " string of text "
Oía çaíocèòcÿ â ïaìÿòü òeêcòoì â 15 áaéòoâ.
                   --T-T-T-T-T-T-T-T--T-T-T-T-T-¬
                   |S|T|R|I|N|G| |O|F |T|E|X|T|.|
                   L-+-+-+-+-+-+-+-+--+-+-+-+-+--
B Ïàñêàëå cóùecòâóeò äâa âèäa còpoêè: còpoêa òèïa ôèêcèpoâaííoé äëèíû STRING aíaëoãè÷íaÿ còpoêe Ôîðòðàíà, è còpoêa ïepeìeííoé äëèíû LSTRING. Ècïoëüçóÿ LSTRING, ïpeäûäóùaÿ còpoêa çaïèøeòcÿ òaê:
                  VAR STR; LSTRING (15),
                  STR :=" STRING of text.";
Oía çaíocèòcÿ â ïaìÿòü, êaê òeêcò èç 16 áaéòoâ. Ïepâûé áaéò óêaçûâaeò ÷ècëo áaéòoâ oòâoäèìûx â ïaìÿòè ía còpoêó; ocòaâøèecÿ 15 áaéòoâ çaíèìaeò caì òeêcò.
                 ---T-T--T--T-T-T-T-T--T--T-T-T-T-T-¬
                 | 1|5| S| T|R|I|N|G| O|F |T|E|X|T|.|
                 L--+-+--+--+-+-+-+-+--+--+-+-+-+-+--
B òaáëèöe 7-8 oïècaíû òèïû còpoê è ìaccèâoâ äëÿ âcex òpex ÿçûêoâ.
------------------T-----------------------T---------------------¬
|     ÿçûê        |    òèï äaííûx         |    ïpèìe÷aíèe       |
+-----------------+-----------------------+---------------------+
|                 |   C: STRING (a)       |                     |
|                 +-----------------------+                     |
|   Ïàñêàëü       |   C: ARRAY [1..a] OF  |                     |
|                 |       CHAR;           |                     |
|                 +-----------------------+                     |
|                 |   C: LSTRING (a-1);   |                     |
+-----------------+-----------------------+---------------------+
|                 |   CHARACTER*a C       |                     |
|   Ôîðòðàí       +-----------------------+                     |
|                 |   CHARACTER*1 C[a]    |                     |
+-----------------+-----------------------+---------------------+
|                 |   unsingned char c[a] |                     |
|      Cè         +-----------------------+                     |
|                 | struct cstr {unsigned |                     |
|                 |  char c [a]; } c      |                     |
L-----------------+-----------------------+----------------------
Taáëèöa 7-8 Tèïû còpoê è ìaccèâoâ.
B òaáëèöe 7-9 oïècaíû ýêâèâaëeíòíûe òèïû còpoê.
---------------T----------------------T---------------------¬
|    ÿçûê      |    òèï äaííûx        |   ïpèìe÷aíèe        |
+--------------+----------------------+---------------------+
|   Ïàñêàëü    | x: array[1..n]of char|                     |
+--------------+----------------------+---------------------+
|     Cè       | char x[n];           |                     |
+--------------+----------------------+---------------------+
|              |                      | He èìeeò ýêâèâaëeíò,|
|              |                      | â áóäóùèx âepcèÿx   |
|              |                      | Ôîðòðàíà.He peêoìeí |
|              |   CHARACTER *h x     | äoâaí.Moæeò ècïoëüço|
|  Ôîðòðàí     |   INTEGER X ((h+1)12)| âaòücÿ êaê ïepeìeí  |
|              |                      | íûe òèïa CHARACTER  |
|              |                      | äëÿ oïepaöèé íaä oò |
|              |                      | äeëüíûìè áaéòaìè.Ýòà|
|              |                      | âoçìoæíocòü áóäeò   |
|              |                      | paçâèòa â áóäóùèx   |
|              |                      | âepcèÿx.            |
L--------------+----------------------+----------------------

B cëeäóþùèx paçäeëax oïècûâaeòcÿ ïepeäa÷a còpoêè èç oäíoão ÿçûêa â äpóãoé.

Ïepeäa÷a còpoêè èç Ôîðòðàíà â Cè èëè Ïàñêàëü.

Còpoêè ía Ôîðòðàíå òaêæe pacïoëaãaþòcÿ â ïaìÿòè êaê còpoêè ía Ïàñêàëå è Bû ìoæeòe ïepeäaâaòü ïpÿìo.

Äëÿ ïepeäa÷è còpoê ía Ôîðòðàíå â Cè, ècïoëüçóéòe âoçìoæíocòü Cè còpoêè. Koãäa còaíäapòíaÿ còpo÷íaÿ êoícòaíòa Ôîðòðàíà cëeäóeò ça ëèòepoé C, ýòa còpoêa áóäeò èíòepïpeòèpoâaía êaê còpo÷íaÿ êoícòaíòa ía Cè. Ëèòepa Ïócòo aâòoìaòè÷ecêè äoáaâëÿeòcÿ ê êoíöó còpoêè è oápaòíûé cëeø (\) oápaáaòûâaeòcÿ êaê escape. Hèæe â ýòoé ãëaâe áóäeò ïoëíocòüþ oïècaía âoçìoæíocòü còpoêè Cè.

Ïepeäa÷a còpoê èç Ïàñêàëÿ â Cè è Ôîðòðàí.

Còpoêè ía Ïàñêàëå è Ôîðòðàíå oäèíaêoâo pacïoëaãaþòcÿ â ïaìÿòè, ìoæío ïepeäaâaòü èx â ïpÿìóþ (íe ïpeoápaçóÿ).

Äëÿ ïepeäa÷è òèïa STRING Ïàñêàëü â Cè, ècïoëüçóéòe oïepaöèþ êoíêaòeíaöèè (cëèÿíèÿ), ïpèáaâèâ íóëeâoé áaéò ê êoíöó còpoêè. Haïpèìep, ecëè "strg" ÿâëÿeòcÿ ïepeìeííoé òèïa STRING oïepaöèÿ êoíêaòeíaöèè áóäeò âûãëÿäeòü òaê:

                  strg: "STRING of text."*CHR(0);

Äaëee "strg" ìoæeò áûòü ècïoëüçoâaía ëþáoé ôóíêöèeé Cè â êa÷ecòâe apãóìeíòa.

Äëÿ ïepeäa÷è còpoê òèïa LStrings â Cè è Ïàñêàëü, Bû äoëæíû ïpeoápaçoâaòü èx â òèï STRINGS è äoáaâèòü áàéò äëèíû.

Ïepeäa÷a còpoê Cè â Ïàñêàëü è Ôîðòðàí.

B Ôîðòðàíå è Ïàñêàëå, Cè - còpoêè ìoãóò áûòü ïpeäcòaâëeíû òoëüêo â âèäe ìaccèâoâ. Ïpè ïepeäa÷e còpoê Cè â Ïàñêàëü èëè Ôîðòðàí, oòâoäèòe ìecòo äëÿ íóëeâoão áaéòa â êoíöe còpoêè.

7.6.Óêaçaòeëè.

B òaáëèöe 7-10 oïècûâaþòcÿ ýêâèâaëeíòíûe òèïû óêaçaòeëeé äëÿ êaæäoão ÿçûêa. Ïpè ècïoëüçoâaíèè óêaçaòeëeé ïpoöeäóp è âûçoâa ïoäïpoãpaìì ía Cè è Ôîðòðàíå èç Cè, ïpè coãëaøeíèè Cè o ïepeäa÷e äaííûx, ècïoëüçóéòe ïpèâeäeííóþ íèæe cèíòaêcè÷ecêóþ ôopìó äëÿ oïècaíèÿ cïècêa apãóìeíòoâ Ïàñêàëÿ èëè Ôîðòðàíà â âaøeé Cè ïpoöeäópe.
                   returntype (*x) (types-list)
Çäecü returntype cooòâeòcòâóeò peçóëüòaòó, types-list oïècûâaþòcÿ òaêæe êaê cïècoê apãóìeíòoâ ïpoöeäóp Ïàñêàëÿ èëè Ôîðòðàíà ïpè âûçoâe èx ía Cè. Ïpè ècïoëüçoâaíèè coãëaøeíèÿ Ïàñêàëÿ, ècïoëüçóéòe cèíòaêcè÷ecêóþ ôopìó:
                   returntype (pascal *x) (types-list)
A ïpè ècïoëüçoâaíèé coãëaøeíèÿ Ôîðòðàíà ôopìa áóäeò òaêoé:
                   returntype (fortran *x) (types-list)
Haïpèìep, Bû ìoæèòe ïepeäaòü ADSPROC Ïàñêàëÿ â âaøó ïpoãpaììó ía Cè:
                   f(x)
                   short (paskal *x) (short);
B ýòoì ïpèìepe, x ccûëêa ía ïpoöeäópû ÏACKAËß , c ôaêòè÷ecêèì apãóìeíòoì òèïa short, è çía÷eíèeì òaêoão æe òèïa.
-------------------------------------------------------------¬
|                ÓKAÇATEËÈ NEAR                              |
+--------------T---------------------T-----------------------+
|   ÿçûê       |   òèï äaííûx        |    ïpèìe÷aíèe         |
+--------------+---------------------+-----------------------+
|              |       x:^t          | çaâècèò oò òèïa ìaøèíû|
|  Ïàñêàëü     +---------------------+-----------------------+
|              |     ADR t           |                       |
+--------------+---------------------+-----------------------+
|     Cè       |    t near *x        |                       |
+--------------+---------------------+-----------------------+
|              |      TOBJECT        |                       |
|  Ôîðòðàí     |      INTEGER*2 X    |                       |
|              |  X = LOCNEAR(OBJECT)|                       |
L--------------+---------------------+------------------------

--------------------------------------------------------------¬
|               ÓKAÇATEËÈ FAR                                 |
+---------------T----------------------T----------------------+
|   ÿçûê        |   òèï äaííûx         |     ïpèìe÷aíèe       |
+---------------+----------------------+----------------------+
|   Ïàñêàëü     |       ADS t          |                      |
+---------------+----------------------+----------------------+
|               |       t *x           |                      |
|      Cè       +----------------------+----------------------+
|               |       t far *x       |                      |
+---------------+----------------------+----------------------+
|               |       TOBJECT        |                      |
|               |       INTEGER*4 X    |                      |
|               |       X = LOC(OBJECT)|                      |
|   Ôîðòðàí     +----------------------+----------------------+
|               |   TOBJECT            |                      |
|               |   INTEGER*4 X        |                      |
|               |   X=LOCFAR(OBJECT)   |                      |
L---------------+----------------------+-----------------------

--------------------------------------------------------------¬
|            ÓKAÇATEËÈ HA ÏPOÖEÄÓPÛ                           |
+---------------T----------------------T----------------------+
|    ÿçûê       |    òèï äaííûx        |    Ïpèìe÷aíèe        |
+---------------+----------------------+----------------------+
|               |     x: adsproc       |  Bû äoëæíû oïècaòü   |
|               |                      |  âíóòpeííþþ ïpoöeäópó|
|               +----------------------+  ÷òoáû ADS oïepaòop  |
|  Ïàñêàëü      |                      |  ìoã oápaáoòaòü far  |
|               |     x: adsfunc       |  aäpec.Koìïèëÿòop óc-|
|               |                      |  òaíaâëèâaeò near    |
|               |                      |  aäpeca äëÿ ëoêaëüíûx|
|               |                      |  ïpoöeäóp            |
+---------------+----------------------+----------------------+
|     Cè        |       t (*) ()       |                      |
L---------------+----------------------+-----------------------

--------------------------------------------------------------¬
|            ÓKAÇATEËÈ HA ÏPOÖEÄÓPÛ                           |
+---------------T----------------------T----------------------+
|    ÿçûê       |    òèï äaííûx        |    Ïpèìe÷aíèe        |
+---------------+----------------------+----------------------+
|               |   TPROC              |  EXTERNAL ècïoëüçóeò |
|               |   EXTERNAL PROC      |  cÿ, êoãäa èìÿ  ïpo- |
|               |   INTEGER*4 X        |  öeäópû, ècïoëüçóeòcÿ|
|               |   X=LOC(PROC)        |  ïpè âûçoâe          |
|               |                      |  ôóíêöèè (â ýòoì ïpè-|
|   Ôîðòðàí     +----------------------+  ìepe áepeòcÿ aäpec  |
|               |                      |  ïpoöeäópû).Èía÷e    |
|               |   TPROC              |  Ôîðòðàí coçäaeò ío  |
|               |   EXTERNAL PROC      |  âóþ ïepeìeííóþ è    |
|               |   INTEGER*4 X        |  âoçüìeò aäpec ýòoé  |
|               |   X=LOCFAR(PROC)     |  ïepeìeííoé, a íe    |
|               |                      |  ïpoöeäópû.          |
L---------------+----------------------+-----------------------
Taáëèöa 7-10 Ýêâèâaëeíòíûe òèïû äaííûx: Óêaçaòeëè.

7.7.Maccèâû, SUPER ìaccèâû è HUGE ìaccèâû.

Maccèâû ía Ôîðòðàíå pacïoëoæeíû ïo còoëáöaì. Haïpèìep, A(2,1) cëeäóeò ça A(3,1). Maccèâû Cè è Ïàñêàëü paccïoëoæeíû ïo còpoêaì. Haïpèìep, A(2,1) cëeäóeò ça A(2,2).

Ha÷èíaeòcÿ ãpaíèöa èíäeêcoâ â ìaccèâe Cè âceãäa c 0, äëÿ Ôîðòðàíà âceãäo 1, è äëÿ Ïàñêàëÿ ía çía÷eíèe ãpaíèöû íeò oãpaíè÷eíèé.

Haïpèìep, ecëè Bû oïpeäeëèòe ìaccèâ ía Cè x[6] [3], ýêâèâaëeíòíûì ìaccèâoì ía Ôîðòðàíå áóäeò X(3,6), ía Ïàñêàëå áóäeò x:array[0...5, 0...2]. Ecëè Bû âûápaëè ýëeìeíò x[5,0] â Ïàñêàëå, èëè ýëeìeíò x[5] [0] â Cè, ýêâèâaëeíòíûé ýëeìeíò Ôîðòðàíà áóäeò X(1,6).

Èëè, ecëè Bû oïpeäeëèòe ìaccèâ ía Ïàñêàëå, êaê:

                x:array [2..6, 2..3] of integer 2
ýêâèâaëeíò Ôîðòðàíà áóäeò
                 INTEGER*2 x(2, 5)
è ýêâèâaëeíò Cè áóäeò
                short x[5] [2]

Áoëüøèe ìaccèâû Ôîðòðàíà (ìaccèâû oïècaííûe c aòpèáóòoì HUGE èëè ìeòaêoìaíäíoé $LARGE) íe ìoãóò âûçûâaòücÿ èç Ïàñêàëÿ è Cè. B Cè, ìaccèâû âceãäa ïepeäaþòcÿ ccûëêoé.Eäâa Bû oápaùaeòecü èç Ôîðòðàíà, è ècïoëüçóeòe C aòpèáóò, ìaccèâû ïepeäaþòcÿ çía÷eíèeì, aíaëoãè÷ío Cè struct. Ïpè ýòoì âxoäíoé ìaccèâ íaxoäèòcÿ âíe còeêa. ×òoáû ïepeäaâaòü ìaccèâ êaê ìaccèâ (èç Ôîðòðàíà â Cè), Baì ïpèäeòcÿ ècïoëüçoâaòü aòpèáóò REFERENCE èëè ïepeäaòü peçóëüòaò ôóíêöèé LOC, LOCNEAR è LOCFAR (cìoòpèòe paçäeë "Ôóíêöèè aäpecoâ" äaëee â ýòoé ãëaâe)

B òaáëèöe 7-11 oïècaíû ýêâèâaëeíòíûe òèïû ìaccèâoâ äëÿ Ïàñêàëÿ, Cè è Ôîðòðàíà.

----------------------------------------------------------------¬
|           MACCÈBÛ: HÈÆHßß ÃPAHÈÖA MACCÈBA ÏACKAËß PABHA 0     |
+------------------T---------------------T----------------------+
|     ÿçûê         |    òèï äaííûx       |    ïpèìe÷aíèe        |
+------------------+---------------------+----------------------+
|     Ïàñêàëü      |   x:array[0..j,0..m]|                      |
|                  |        of type      |                      |
+------------------+---------------------+----------------------+
|                  |    type x[j+1] [m+1]|  ïpè ïepeäa÷e        |
|                  |                     |      ccûëêoé         |
|       Cè         +---------------------+----------------------+
|                  |    struct{          |  ïpè ïepeäa÷e        |
|                  | type x[j+1] [m+1];}x|      çía÷eíèeì       |
+------------------+---------------------+----------------------+
|    Ôîðòðàí       |    type x(m+1,j+1)  |                      |
L------------------+---------------------+-----------------------
----------------------------------------------------------------¬
|           MACCÈBÛ: HÈÆHßß ÃPAHÈÖA MACCÈBA ÏACKAËß HE PABHA 0  |
+------------------T---------------------T----------------------+
|       ÿçûê       |     òèï äaííûx      |     ïpèìe÷aíèe       |
+------------------+---------------------+----------------------+
|                  | x: array[i..j,k..of |                      |
|     Ïàñêàëü      |        type         |                      |
+------------------+---------------------+----------------------+
|                  |type x[j-I+1] [m-k+1]|  ïpè ïepeäa÷e        |
|                  |                     |      ccûëêoé         |
|        Cè        +---------------------+----------------------+
|                  |    struct { type    |  ïpè ïepeäa÷e        |
|                  |x[j-I+1] [m-k+1];}x  |      çía÷eíèeì       |
+------------------+---------------------+----------------------+
|     Ôîðòðàí      | type x(m-k+1,j-1+1) |                      |
L------------------+---------------------+-----------------------
 Taáëèöa 7-11. Ýêâèâaëeíòíûe òèïû äaííûx: ìaccèâû.

Ccûëêoé super ìaccèâa ÿâëÿeòcÿ ccûëêa near ía ía÷aëo ìaccèâa. Oía cëeäóeò ça âepxíeé ãpaíèöeé (â òoì æe ïopÿäêe, êaê ïpè oïècaíèè ìaccèâa). B òaáëèöe 7-12 ïoêaçaío êaê coçäaòü cïeöèôèêaöèþ óêaçaòeëè super ìaccèâa:

----------------------------------------------------------------¬
|                     ÓKAÇATEËÈ SUPER MACCÈBOB                  |
+-------------------T---------------------T---------------------+
|       ÿçûê        |     òèï äaííûx      |   ïpèìe÷aíèe        |
+-------------------+---------------------+---------------------+
|                   |  type v=super array |                     |
|     Ïàñêàëü       |  [0..*,0..*] of type|                     |
|                   |       x: ^V         |                     |
+-------------------+---------------------+---------------------+
|                   |                     |  Ócòaíoâëeíío a paâ |
|                   |  struct{type        |  íoe (ãpaíèöe ïep   |
|        Cè         |  near *ptr;         |  âoé paçìepíocòè)   |
|                   |  short a;           |  Ócòaíoâëeíío b paâ |
|                   |  short b;}x:        |  íoe (ãpaíèöe âòo   |
|                   |                     |  poé paçìepíocòè)   |
+-------------------+---------------------+---------------------+
|     Ôîðòðàí       |         íeò         |                     |
L-------------------+---------------------+----------------------
 Taáëèöa 7-12. Ýêâèâaëeíòíûe òèïû äaííûx: óêaçaòeëè super ìaccèâoâ.

7.8.Çaïècè è còpóêòópû.

Tèïû çaïèceé â Ïàñêàëå, è òèïû còpóêòóp â Cè, òecío câÿçaíû ìeæäó coáoé. Ïepeäa÷a ïepeìeííûx çaïèceé áoëee cëoæía. Moæío oïècaòü êoíe÷íoe ïoëe, êaê ýëeìeíò còpóêòópû, çaòeì coçäaòü êoìáèíaöèþ âcex ïepeìeííûx ÷acòeé.

B Ôîðòðàíå Bû ìoæeòe coçäaòü ïoäoáíóþ çaïècü ècïoëüçóÿ EQUIVALENSE, ío íe cóùecòâóeò cïocoáa peïëèêèpoâaòü òaêóþ çaïècü èëè ïepeäaòü â êa÷ecòâe ïapaìeòpa. Ecëè çaïècü èëè còpóêòópa coäepæèò òoëüêo ïoëÿ oäèíaêoâoão paçìepa, Bû ìoæeòe ècïoëüçoâaòü â Ôîðòðàíå cooòâeòcòâóþùèé ìaccèâ. B ïpoòèâíoì cëó÷ae âaì íóæío coçäaòü "ãpóïïó ýêâèâaëeíòíocòè", ÷òoáû ïepeìeííûe áûëè câÿçaíû òaê, ÷òoáû cooòâeòcòâoâaëè ýëeìeíòaì còpóêòópû. Ecëè âcÿ còpóêòópa ìeíüøe ÷eì 127 áaéòoâ, Bû ìoæeòe ècïoëüçoâaòü cèìâoëè÷ecêóþ ïepeìeííóþ äëÿ ee ïpeäcòaâëeíèÿ. Ýòoò ïoäxoä äaeò íeýôôýêòèâíûé êoä, a òaêæe cëèøêoì cëoæíóþ ïpoãpaììó. Peêoìeíäóþòcÿ,ïpè ècïoëüçoâaíèè Ïàñêàëÿ è Cè, coçäaâaòü, ãäe âoçìoæío, èíòepôeécíûe ïpoöeäópû. Haïpèìep, äëÿ ïepeâoäa còpóêòópû â ïepeìeííûe è cêaëÿpû, c êoòopûìè ìoæeò oïepèpoâaòü Ôîðòðàí.

Çaìeòüòe, ÷òo Bû íe ìoæeòe ïepeäaâaòü set òèï Ïàñêàëÿ â Ôîðòðàíå.

--------------------------------------------------------------¬
|           KOMÏËEKCHÛE ×ÈCËA C OÁÛ×HOÉ TO×HOCTÜ              |
+--------------------T---------------------T------------------+
|        ÿçûê        |   òèï äaííûx        |  ïpèìe÷aíèe      |
+--------------------+---------------------+------------------+
|                    |    x: recod         |                  |
|     Ïàñêàëü        |    re, im: real;    |                  |
|                    |    end;             |                  |
+--------------------+---------------------+------------------+
|      Cè            |   struct complex8{  |                  |
|                    |   float re,im;}x    |                  |
+--------------------+---------------------+------------------+
|    Ôîðòðàí         |   COMPLEX X         |                  |
L--------------------+---------------------+-------------------
----------------------------------------------------------------¬
|           KOMÏËEKCHÛE ×ÈCËA C ÄBOÉHOÉ TO×HOCTÜÞ               |
+--------------------T-----------------------T------------------+
|        ÿçûê        |     òèï äaííûx        |   ïpèìe÷aíèe     |
+--------------------+-----------------------+------------------+
|                    |   x: record           |                  |
|     ÏACKAËÜ        |   re,cm:real8;        |                  |
|                    |   end                 |                  |
+--------------------+-----------------------+------------------+
|       Cè           |   struct complex16{   |                  |
|                    |   float re,im;} x     |                  |
+--------------------+-----------------------+------------------+
|     Ôîðòðàí        |   COMPLEX*16 X        |                  |
L--------------------+-----------------------+-------------------
 Taáëèöa 7-13. Ýêâèâaëeíòíûe òèïû äaííûx, êoìïëeêcíûe ÷ècëa.

Çaïècè Ïàñêàëÿ è còpóêòópû Cè ìoãóò òaêæe áûòü ècïoëüçoâaíû äëÿ ïepeäa÷è ëoãè÷ecêèx çía÷eíèé Ôîðòðàíà. Äëÿ ëoãè÷ecêèx çía÷eíèé Ôîðòðàíà, öeëoe "1" çía÷èò ècòèíío, íoëü "0" çía÷èò ëoæü. Taáëèöa 7-14 ïoêaçûâaeò ïpèìepû ïepeäa÷ ëoãè÷ecêèx çía÷eíèé Ôîðòðàíà.

----------------------------------------------------------------¬
|             ËOÃÈ×ECKÈE ÇHA×EHÈß: ÄBA ÁAÉTA                    |
+--------------------T-----------------------T------------------+
|      ÿçûê          |     òèï äaííûx        |  ïpèìe÷aíèe      |
+--------------------+-----------------------+------------------+
|                    |  x: record            |                  |
|    Ïàñêàëü         |  logical: boolean;    |                  |
|                    |pad:array[0..]of byte; |                  |
|                    |  end                  |                  |
+--------------------+-----------------------+------------------+
|                    |  struct {             |                  |
|      Cè            |    char logical;      |                  |
|                    |  char pad[1]; } x;    |                  |
+--------------------+-----------------------+------------------+
|    Ôîðòðàí         |   LOGICAL*2 X         |                  |
|                    |  LOGICAL              |  ecëè $STORAGE   |
L--------------------+-----------------------+-------------------
----------------------------------------------------------------¬
|               ËOÃÈ×ECKÈE ÇHA×EHÈß: 4 - ÁAÉTA                  |
+--------------------T-----------------------T------------------+
|        ÿçûê        |     òèï äaííûx        |  ïpèìe÷aíèe      |
+--------------------+-----------------------+------------------+
|                    |    x: record          |                  |
|    Ïàñêàëü         | logical: boolean;     |                  |
|                    | pad;array[0..2]of byte|                  |
|                    | end;                  |                  |
+--------------------+-----------------------+------------------+
|                    |    strucf {           |                  |
|       Cè           |   char logical;       |                  |
|                    |   char pad[3]         |                  |
|                    |   } x;                |                  |
+--------------------+-----------------------+------------------+
|    Ôîðòðàí         |     LOGICAL*4 X       |                  |
L--------------------+-----------------------+-------------------
 Taáëèöa 7-14. Ýêâèâaëeíòíûe òèïû äaííûx, ëoãè÷ecêèe çía÷eíèÿ.

7.9.Èñïîëüçîâàíèå èìåí ïðîöåäóð â êà÷åñòâå ïàðàìåòðîâ.

Ïapaìeòpû-èìeía ïpoöeäóp ía Ïàñêàëå è Ôîðòðàíå coâìecòèìû, oäíaêo oíè íe coâìecòèìû c ïapaìeòpaìè èìeíaìè ïpoöeäóp ía Cè. Ïapaìeòpû-èìeía ïpoöeäóp Ïàñêàëÿ è Ôîðòðàíà ìoãóò áûòü ïpeäcòaâëeíû Cè còpóêòópoé, êoòopaÿ èìèòèpóeò ïocëeäoâaòeëüíocòü Ïàñêàëÿ/Ôîðòðàíà.

Ecëè Bû âûçûâaeòe Cè èç Ïàñêàëÿ èëè Ôîðòðàíà, peêoìeíäóeòcÿ ècïoëüçoâaòü óêaçaòeëè ïpoöeäóp Cè. Ecëè Bû xoòèòe ïepeäaâaòü ïpoöeäópó â êa÷ecòâe ôopìaëüíoão ïapaìeòpa â ïpoöeäópû Ïàñêàëÿ èëè Ôîðòðàíà, Bû äoëæíû ècïoëüçoâaòü apãóìeíòû Ïàñêàëÿ, òaê êaê íè Ôîðòðàí ,íè Ïàñêàëü íe âûçûâaþòcÿ ÷epeç óêaçaòeëè ïpoöeäóp. Ècïoëüçóéòe Taáëèöó 7-10 ïpè paáoòe c óêaçaòeëÿìè ïpoöeäóp.

Boçâpaò çía÷eíèé.

Ïpoãpaììû ía Ôîðòðàíå è Ïàñêàëå ìoãóò âoçâpaùaòü çía÷eíèÿ â ïpoãpaììû ía Cè. ×òoáû Cè ïpoãpaììû oápaáaòûâaëè âoçâpaùaeìûe âeëè÷èíû ïpaâèëüío, ïpoãpaìècò äoëæeí paçáèpaòücÿ â câÿçÿx ìeæäó òèïaìè äaííûx â paçëè÷íûx ÿçûêax. Koìïèëÿòop Cè ïpoèçâoäèò ïpeoápaçoâaíèÿ âoçâpaùaeìûx âeëè÷èí äo ïepeäa÷è óïpaâëeíèÿ âûçûâaþùèì ïpoöeäópaì. Öeëûe âeëè÷èíû, êoòopûe ìeíüøe ÷eì int pacøèpÿþòcÿ äo paçìepa int, çía÷eíèÿ c ïëaâaþùeé òo÷êoé ïpeoápaçóþòcÿ â âeëè÷èíû c äâoéíoé òo÷íocòüþ. Ýòè òèïû oïècaíû â paçäeëax "Öeëûe" è "Äeécòâèòeëüíûe ÷ècëa".

Koìïèëÿòop Cè ïpoâepÿeò còpóêòópèpóeìûe âoçâpaùaeìûe çía÷eíèÿ â 4 áaéòa èëè ìeíüøe è âoçâpaùaeò èx êaê öeëûe cooòâeòcòâóþùeão paçìepa.

8.COBMECTHOE ÏOËÜÇOBAHÈE ÄAHHÛMÈ.

Ïàñêàëü è Cè ìoãóò ccûëaòücÿ ía oáùèe äaííûe äpóã äpóãa ïpè çaäaíèè cooòâeòcòâóáùèx aòpèáóòoâ è ècïoëüçoâaíèè ïpaâèëüíûx co- ãëaøeíèé oá èäeíòèôèêaòopax è êëþ÷eâûx cëoâax (Bce còaòè÷ecêèe ïepeìeííûe Ïàñêàëÿ äoëæíû áûòü oïècaíû c êëþ÷eâûì cëoâoì "near" â Cè.) COMMON-áëoêè Ôîðòðàíà ÿâëÿþòcÿ oáùeäocòóïíûìè ïoëÿìè äaííûx. Oíè coâìecòèìû c âíeøíèìè ïepeìeííûìè oáúeêòaìè äaííûx â Cè, è ïepeìeííûìè çía÷eíèÿìè â Ïàñêàëå, íaïpèìep. Oäíaêo, äëÿ òoão ÷òoáû ìoæío áûëo oápaòèòücÿ â COMMON-áëoê èç Ïàñêàëÿ, ýòoò COMMON-áëoê äoëæeí èìeòü aòpèáóò NEAR. Heïoìe÷eííûé COMMON èìeeò oáùee èìÿ CMMQQ. Ôîðòðàí íe ìoæeò oápaùaòücÿ ê oáúeêòaì äaííûx Cè. Ho Bû ìoæeòe ècïoëüçoâaòü ïpoöeäópó LOC â Ôîðòðàíå, íaéòè aäpec COMMON- áëoêa, ïepeäaòü aäpec â Cè è ïpoöeäópó Ïàñêàëÿ, çaòeì ècïoëüçoâaòü ýòoò aäpec èç Cè è Ïàñêàëÿ. Haïpèìep:
            INTERFACE TO SUBROUTINE CFUNC[C] (EXTR)
            INTEGER * EXTR
            END
            COMMON/EXT/ I,Y
            CALL CFUNC (LOCI))
            .   .   .   .   .
            END
            void cfunc (ext)
            struct {lony i, j;}* ext
            {  ext - >i = ext->j;

9.BBOÄ È BÛBOÄ.

Ôaéë ìoæeò áûòü oòêpûò òoëüêo äëÿ oäíoão ÿçûêa oäíoâpeìeíío. Ècêëþ÷eíèeì ÿâëÿeòcÿ còaíäapòíûé êaíaë âûâoäa èíôopìaöèè ía òepìèíaë. ×òoáû ïpoãpaììû ía Cè èëè Ïàñêàëå ìoãëè âûäaâaòü èíôopìaöèþ ía òepìèíaë cpaçó ïocëe êaæäoão oïepaòopa Ôîðòðàíà WRITE, ècïoëüçóþùeãocÿ äëÿ âûâoäa ía òepìèíaë äoëæeí cëeäoâaòü oïepaòop: WRITE(*,*), åñëè âîçìîæíî, ÷òî ïðîöåäóðà íà Ñè èëè Ïàñêàëå ìîãëà ñðàçó ïîñëå ýòîãî ïèñàòü íà òåðìèíàë. Çäecü oí ècïoëüçóeòcÿ äëÿ óíè÷òoæeíèÿ cèìâoëoâ óïpaâëeíèÿ êapeòêoé.

10.COOÁÙEHÈß OÁ OØÈÁKAX.

Oøèáêè íaéäeííûe âo âpeìÿ êoìïèëÿöèè, âûäaþòcÿ êoìïèëÿòopoì òoão ÿçûêa â êoòopoì oáíapóæeía oøèáêa, áoëüøèícòâo cooáùeíèé oá oøèáêax c÷eòa óêaçûâaþò ía ÿçûê ìoäóëÿ, â êoòopoì ïpoèçoøëa oøèáêa. Oäíaêo oøèáêè âûçâaííûìè âeëè÷èíaìè c ïëaâaþùeé òo÷êoé ìoãóò áûòü âûäaíû ëþáûì ÿçûêoì, ècïoëüçóþùèìcÿ â ïpoãpaìe. Äëÿ Ôîðòðàíà è Ïàñêàëÿ cooáùeíèÿ oá ýòèx oøèáêax íe oòëè÷aþòcÿ äpóã oò äpóãa. B Cè cooáùeíèÿ íe èìeþò íoìepoâ.

11.BOÇMOÆHOCTÈ ÔOPTPAHA, ÏOÄÄEPÆÈBAÞÙÈE CMEØAHHOE ÏPOÃPAMMÈPOBAHÈE.

Hèæe ïepe÷ècëeííûe âoçìoæíocòè MC-Ôîðòðàíà ïoçâoëÿþò ïècaòü ïpoãpaììû, cocòoÿùèe èç ìoäóëeé MC-Ôîðòðàíà, MC-Ïàñêàëÿ è MC-Cè.
Îïepaòop INTERFACE
Ïoçâoëÿeò paáoòaòü c ïpoöeäópaìè íaïècaííûìè ía äpóãèx ÿçûêax.
Àòpèáóòû
Çaäaþò xapaêòepècòèêè äëÿ ïoäïpoãpaìì è ïe- peìeííûx. Cóùecòâóeò 9 aòpèáóòoâ: ALIAS, PASCAL, C, NEAR, FAR, HUGE, REFERENCE, VALUE è VARYING .
Ôóíêöèè aäpecoâ
Boçâpaùaþò aäpec apãóìeíòa.
Cè còpoêè
Äaþò cïeöèôèêaöèè cèìâoëoâ, òaêèx êaê backspaces è newlines c ïoìoùüþ ècïoëüçoâaíèÿ ïocëeäoâaòeëüíocòeé escape Cè.

11.1.Oïepaòop INTERFACE.

Oïepaòop INTERFACE ècïoëüçóeòcÿ äëÿ oïècaíèÿ ïpoöeäóp íaïècaíûx ía äpóãèx ÿçûêax è çaäaíèÿ coãëaøeíèé cooòâeòcòâóþùèx ýòèì ÿçûêaì. Ïoëíoe oïècaíèe ýòoão oïepaòopa íaxoäèòcÿ â ãëaâe 3 "Oïepaòopû".

11.2.Aòpèáóòû.

Aòpèáóòaìè çaäaeòcÿ äoïoëíèòeëüíaÿ èíôopìaöèÿ o ïepeìeííoé, òèïa ïepeìeííoé, ïoäïpoãpaììe, èëè oá apãóìeíòe ïoäïpoãpaììû. Oíè ìoãóò ècïoëüçoâaíû â oïècaíèè ïoäïpoãpaìì, ïocëe oïècaíèÿ òèïa, è â oïepaòopax INTERFACE. Aòpèáóòû ïèøóòcÿ ïocëe oáúeêòa, ía êoòopûé oíè ccûëaþòcÿ.

Cèíòàêñèñ:
------------------------------------------------------------
           [aòpèáóò [, aòpèáóò] ]
------------------------------------------------------------

 ALIAS

     Ýòoò aòpèáóò çaäaeò âíeøíee èìÿ ïoäïpoãpaììû, oòëè÷íoe oò
èìeíè çaäaííoão â oïècaíèè.
-------------------------------------------------------------
           ALIAS : ñòðîêà
-------------------------------------------------------------
   ãäe:
ñòðîêà     còpo÷íaÿ êoícòaíòa ÔOPTPAHA. Bû äoëæíû oápaùaòücÿ ê ïoä-
          ïpoãpaììe ïo èìeíè, çaäaííoìó â oïècaíèè â ïpeäeëax
          ìoäóëÿ êoìïèëÿöèè, aòpèáóò alias ïoçâoëÿeò ccûëaòücÿ ía
          ïoäïpoãpaììó èç äpóãoão ìoäóëÿ  êoìïèëÿöèè.

Taêæe, Bû ìoæeòe ècïoëüçoâaòü ALIAS â oïepaòope INTERFACE; ïepeoïpeäeëèâ èìÿ ïoäïpoãpaììû â äpóãoì ìoäóëe êoìïèëÿöèè, êoòopûe Baì íóæío âûçâaòü. Haïpèìep, ôaéë A coäepæèò:

             INTERFACE TO SUBROUTINE F1[ALIAS:"F&&*-PPP"]
             END

             INTERFACE TO SUBROUTINE F2[ALIAS: "FFFFFFF2"]
             END
             SUBROUTINE G1 [ALIAS: "VERY LONG NAME"]
             CALL F1
             CALL F2
             END
             SUBROUTINE
             END
è ôaéë B coäepæèò:
             INTERFACE TO SUBROUTINE F1 [ALIAS: "F&&-PPP"]
             END
             INTERFACE TO SUBROUTINE K1 [ALIAS: "VERY LONC NAME"]
             END
             SUBROUTINE F2 [ALIAS: "FFFFFFF2"]
             END
             SUBROUTINE F1
             CALL F1
             CALL K1
             CALL F2
             END
çäecü ïoäïpoãpaììa F1 â Ôàéëå A câÿçûâaþòcÿ c F1 â ôaéëe B, ïoäïpoãpaììa F2 â ôaéëe A câÿçûâaeòcÿ c F2 â ôaéëe B, è ïoäïpoãpaììa G1 â ôaéëe A câÿçûâaeòcÿ c K1 â ôaéëe B.

Ëþáoé cèìâoë ècïoëüçóþùèécÿ â còpoêe Ôîðòðàíà, ìoæeò áûòü ècïoëüçoâaí â string. Co string íe ïpoècxoäèò íèêaêèx ïpeoápaçoâaíèé. Haïpèìep, ïpoïècíûe áóêâû íe ïpeoápaçóþòcÿ â çaãëaâíûe. Ýòo ïoëeçío ïpè paáoòe c ÿçûêaìè, çaâècÿùèìè oò paçìepa áóêâû, íaïpèìep Cè.

PASCAL

PASCAL ìoæeò ècïoëüçoâaòücÿ òoëüêo, êaê aòpèáóò ïoäïpoãpaììû. Aòpèáóò óêaçûâaeò, ÷òo ïoäïpoãpaììa èìeeò xapaêòepècòèêè, cooòâeòcòâóþùèe Ïàñêàëþ. Bce apãóìeíòû ïepeäaþòcÿ çía÷eíèeì (ecëè òoëüêo íeò aòpèáóòa REFERENCE), è ècïoëüçóeòcÿ coãëaøeíèe o ïepeäa÷e ïapaìeòpoâ Ôîðòðàíà/Ïàñêàëÿ.

C

C ècïoëüçóeòcÿ äëÿ cïeöèôèêaöèè ïoäïpoãpaìì è òèïoâ äaííûx. Ïpè cïeöèôèêaöèè ïoäïpoãpaììû, C óêaçûâaeò ía òo, ÷òo â ïoäïpoãpaììe íaçía÷eío coãëaøeíèe o ïepeäa÷e ïapaìeòpoâ Cè. Apãóìeíòû â ïoäïpoãpaììû c coãëaøeíèeì Cè ïepeäaþòcÿ çía÷eíèeì (ecëè òoëüêo íeò aòpèáóòa REFERENCE). (Çaìeòèì, ÷òo VARYING ìoæeò áûòü ècïoëüçoâaío òoëüêo â ïoäïpoãpaììax c aòpèáóòoì C). Èìeía ïèøóòcÿ â cooòâeòcòâèè c coãëaøeíèeì oá èäeíòèôèêaòopax Cè. Bíeøíèe èìeía ïpeoápaçóþòcÿ â ïpoïècíûe è ía÷èíaþòcÿ c ïoä÷epêa( ). Ecëè Bû xoòèòe ècïoëüçoâaòü çaãëaâíûe áóêâû, ècïoëüçóéòe aòpèáóò ALIAS.

Koãäa aòpèáóò C óêaçaí äëÿ òèïa INTEGER, ýòoò òèï còaíoâèòcÿ Cè-integer. Paçìep, ïo óìoë÷aíèþ, äëÿ öeëûx Cè è Ôîðòðàíà ìoæeò áûòü, èëè, íe áûòü oäèíaêoâûì. Ýòo çaâècèò oò ìoäeëè ècïoëüçóeìoão Baìè ïpoöeccopa. Haïpèìep, c ìèêpoïpoöeccopoì 8086, MC-Ôîðòðàí ècïoëüçóeò 32-áèòoâûe öeëûe ïo óìoë÷aíèþ, a Cè 16-áèòoâûe öeëûe. Ïpè ìèêpoïpoöecope 68000, oáa ÿçûêa ècïoëüçóþò 32-áèòoâûe öeëûe. Ïoýòoìó, êoãäa Bû ïèøèòe âaøó ïpoãpaììó äëÿ oïpeäeëeíííoão ïpoöeñcopa, Bû ìoæeòe ècïoëüçoâaòü C aòpèáóò äëÿ öeëûx ïepeìeííûx, äëÿ óâepeíocòè â òoì, ÷òo ïpè ïepeäa÷e öeëûx ÷èceë ìeæäó Ôîðòðàíîì è Cè â oáîèx ÿçûêax ó íèx oäèíaêoâûé paçìep.

VARYING

Ècïoëüçóeòcÿ âìecòe c aòpèáóòoì C. Óêaçûâaeò ÷òo ÷ècëo ôaêòè÷ecêèx ïapaìeòpoâ ìoæeò oòëè÷aòücÿ oò ÷ècëa ôopìaëüíûx. Ôaêòè÷ecêèe ïapaìeòpû cooòâeòcòâóþùèe ôopìaëüíûì äoëæíû èìeòü òèïû, êoòopûe cooòâeòcòâóþò òèïaì ôopìaëüíûx ïapaìeòpoâ. Ôaêòè÷ecêèe ïapaìeòpû, äëÿ êoòopûx íeò ôopìaëüíûx, äoëæíû ïepeäaâaòücÿ çía÷eíèeì, áeç èçìeíeíèÿ òèïa (çaìeòèì, ÷òo ïoäïpoãpaììa íaïècaííaÿ ía Ôîðòðàíå ìoæeò oápaùaòücÿ òoëüêo ê ôopìaëüíûì ïapaìeòpaì, êoòopûe oïpeäeëeíû, è ïoýòoìó âòopoé cëó÷aé äëÿ Ôîðòðàíà íe pacìaòpèâaeòcÿ).

Koãäa Bû ïèøèòe ïpoöeäópó ía Ôîðòðàíå íe ècïoëüçóÿ aòpèáóò VARYING, íóæío ïoçaáoòèòücÿ o òoì, ÷òoáû Baø êoä íe coçäaâaë ccûëêè ía ïapaìeòpû, êoòopûe íe ïepeäaþòcÿ ïpè oápaùeíèè, èía÷e Bû ìoæeòe ïoëó÷èòü íeoïpeäeëeííûé peçóëüòaò. Ýòo çía÷èò, ÷òo Bû äoëæíû óêaçûâaòü ïoäïpoãpaììe, êaêèe ïapaìeòpû ïepeäaþòcÿ (íaïpèìep, oïècaâ â oäíoì èç apãóìeíòoâ âce äpóãèe). Çaìeòèì, ïpè oápaùeíèè èç Ôîðòðàíà/Ïàñêàëÿ íe ìoæeò áûòü ïepeìeííoão ÷ècëa ïapaìeòpoâ, aòpèáóò VARYING íe äeécòâóeò, ecëè Bû íe óêaçaëè aòpèáóò C äëÿ ïoäïpoãpaììû VALUE.

VALUE

VALUE óêaçûâaeò, ÷òo ôaêòè÷ecêèé ïapaìeòp ïepeäaeòcÿ çía÷e- íèeì. Ïpè ýòoì, ïapaìeòp c aòpèáóòoì VALUE ocòaeòcÿ íeèçìeííûì ïocëe âoçâpaòa èç ïoäïpoãpaììû. Ecëè aòpèáóòû C èëè PASCAL óêaçaíû â oïècaíèè ïoäïpoãpaììû, âce ïapaìeòpû ïo óìoë÷aíèþ ïepeäaþòcÿ çía÷eíèeì. Ïoäcòpoêè, ìaccèâû c ïepeìeííûì paçìepoì, íe ìoãóò ïepeäaâaòücÿ çía÷eíèeì. B Cè ìaccèâû íèêoãäa íe ïepeäaþòcÿ çía÷eíèeì. Ecëè Bû óêaæèòe aòpèáóò C ïpè oïècaíèè Baøeé ïoäpoãpaììû è oía èìeeò ïapaìeòpû ìaccèâû, ìaccèâ áóäeò ïepeäaâaòücÿ, êaê còpóêòópa äaííûx Cè(struct). ×òoáû ïepeäaòü ìaccèâ, è ÷òoáû, oí pacìaòpèâaëcÿ êaê ìaccèâ (âìecòo còpóêòópû), Bû èìeeòe äâe âoçìoæíocòè:

  • Óêaçaòü aòpèáóò REFERENCE äëÿ ôopìaëüíoão ïapaìeòpa.
  • Ïepeäaòü peçóëüòaò LOC, LOCNEAR èëè LOCFAR ôóíêöèé çía÷eíèeì.

REFERENCE

REFERENCE óêaçûâaeò ÷òo apãóìeíò ïepeäaeòcÿ ccûëêoé. Çaìeòèì, ÷òo ecëè Bû óêaæeòe âìecòe c aòpèáóòoì REFERENCE aòpèáóò NEAR, peçóëüòaò áóäeò cooòâeòcòâoâaòü ïapaìeòpó Ïàñêàëÿ VARS, a íe VAR.

NEAR

NEAR óêaçûâaeò ía òo, ÷òo ôaêòè÷ecêèé ïapaìeòp íaxoäèòcÿ â ceãìeíòe äaííûx ïo óìoë÷aíèþ è òoëüêo cìeùeíèe ïepeäaeòcÿ ïpè oápaùeíèè ê íeìó. Ïpè ïepeäa÷è ïapaìeòp VAR â Ïàñêàëü, oáÿçaòeëüío óêaæèòe aòpèáóòû REFERENCE è NEAR.

Ýòoò aòpèáóò ìoæío òaêæe óêaçûâaòü ïpè oïècaíèè COMMON-áëoêoâ. NEAR COMMON áëoê çaíocÿòcÿ â ceãìeíò äaííûx ïo óìoë÷aíèþ. Èx cèíòaêcèc:

-------------------------------------------------------------
            COMMON [/[èìÿ[NEAR]]/]...
-------------------------------------------------------------
ãäe:
èìÿ   - èìÿ common-áëoêa. Heïoìe÷eííûé common-áëoê aâòoìaòè÷ecêè
     çaíocèòcÿ â ceãìeíò äaííûx ïo óìoë÷aíèþ. Bû ìoæeòe óêaçaòü
     NEAR â ëþáoì oïepaòope COMMON ïoäïpoãpaììû. Oäíaêo, ïpè ýòoì
     aòpèáóò NEAR äoëæeí áûòü oáÿçaòeëüío óêaçaí â ïepâoì oïepaòope
     COMMON áëoêa êoìïèëÿöèè.

Ïî-õîðîøåìó, ñòîèò âñòàâèòü NEAR âî âñå îïðåäåëåíèÿ common- áëîêîâ. Bû ìoæeòe âcòaâèòü ôèêòèâíóþ ïoäïpoãpaììó â ía÷aëo Baøeão ècxoäíoão ôaéëa, oïècaâ â íeé common-áëoêè ïpoãpaììû, êaê NEAR.

Ïpeèìóùecòâoì çaíeceíèÿ COMMON-áëoêoâ â ceãìeíò äaííûx ïo óìoë÷aíèþ ÿâëÿeòcÿ óêaçaíèe òoëüêo cìeùeíèé ïpè çaäaíèè aäpecoâ. Ïpè ýòoì ãeíepèpóeòcÿ êoä, çaíèìaþùèé ìeíüøe ìecòa, è áoëee ýôôeêòèâíûé. Ecëè Bû íe óêaçaëè aòpèáóò NEAR, Baì ïpèäeòcÿ ècïoëüçoâaòü aäpec, cocòoÿùèé èç ceãìeíòa è cìeùeíèÿ ïpè ccûëêe ía êaæäûé COMMON.

Ecëè COMMON-áëoê oïècaí êaê NEAR â oäíoì áëoêe êoìïèëÿöèè, a â äpóãoì íeò, òo COMMON-áëoê ïoìeùaeòcÿ â ceãìeíò äaííûx ïo óìoë÷aíèþ. B áëoêe â êoòopoì oí c÷èòaeòcÿ NEAR ïpè ccûëêe ía íeão áóäóò ècïoëüçoâaíû êopoòêèe aäpeca, a â äpóãèx áëoêax áóäóò ècïoëüçoâaíû äëèííûe aäpeca.

Xoòÿ ïpaêòèêoé íe peêoìeíäóeòcÿ, òaêèì oápaçoì ìoæío äocòè÷ü coâìecòèìocòè c áèáëèoòeêaìè oòêoìïèëèpoâaííûìè ïpè âepcèè 3.2 êoìïèëÿòopa.

Ôaêòè÷ecêèe ïapaìeòpû, êoòopûe ïepeäaþòcÿ â ïapaìeòpû c aòpèáóòoì NEAR äoëæíû íaxoäèòücÿ â ceãìeíòe äaííûx ïo óìoë÷aíèþ. Bû íe èìeeòe ïepeäaòü cëeäóþùèe ïapaìeòpû â ïapaìeòpû NEAR:

  • Äaííûe â COMMON-áëoêax áeç aòpèáóòa NEAR.
  • HUGE ìaccèâû.
  • Maccèâû oïpeäeëeííûe $LARGE ìeòaêoìaíäoé.
  • Ïepeìeííûe oïècaíûe â $LARGE ìeòaêoìaíäe.

FAR

FAR óêaçûâaeò ía òo, ÷òo apãóìeíò ïepeäaeòcÿ c ècïoëüçoâaíèeì äëèííoão aäpeca (aäpeca coäepæaùeão ceãìeíò)

HUGE

Óêaçûâaeò ía òo, ÷òo ôaêòè÷ecêèé ïapaìeòp ìoæeò çaíèìaòü áoëee ÷eì oäèí ceãìeíò. HUGE ïpeäocòaâëÿeò áoëee ãèáêóþ âoçìoæíocòü äëÿ paáoòû c ìaccèâaìè, ÷eì ìeòaêoìaíäa $LARGE, Haïpèìep:

               FUNCTION F(A[HUGE])
               DIMENSION A(200)
               ýêâèâaëeíòío:
               $LARGE :A
               FUNCTION F(A)
               DIMENSION A(200)

Koìïèëÿòop íe ãapaíòèpóeò, ÷òo HUGE óêaçûâaeò äëÿ âcex apãóìeíòoâ çaíèìaþùèx áoëüøe ÷eì oäèí ceãìeíò. Coâpeìeííûe âepcèè Ïà- ñêàëÿ è Cè íe ècïoëüçóþò HUGE ïapaìeòpoâ.

Ïpèìepû ècïoëüçoâaíèÿ aòpèáóòoâ.
  1.    INTEGER X[VALUE]
  2.    INTEGER X[REFERENCE, NEAR]
  3.    SUBROUTINE F[ALIAS,"other Name For F"]
  4.    INTERFACE TO INTEGER [C] FUNCTION F[PASCAL] (I,J,K)
       integer [c] i,j,k
       END

B ïpèìepe 1, öeëaÿ ïepeìeííaÿ X ïepeäaeòcÿ çía÷eíèeì.

B ïpèìepe 2, öeëaÿ ïepeìeííaÿ X ïepeäaeòcÿ ccûëêoé c ècïoëüçoâaíèeì êopoòêoão aäpeca.

B ïpèìepe 3, ïoäïpoãpaììa F èìeeò èìÿ other Name For F ça ïpeäeëaìè ìoäóëÿ êoìïèëÿöèè.

B ïpèìepe 4, F-ÿâëÿeòcÿ ôóíêöèeé Ïàñêàëÿ, c apãóìeíòaìè I,J,K, oïècaííûìè, êaê öeëûe Cè.

11.3.Ôóíêöèè aäpecoâ.

B ýòoé âepcèè Ôîðòðàíà ââeäeíû âcòpoeíûe ôóíêöèè, äëÿ êoòopûx apãóìeíòoì ÿâëÿeòcÿ ïepeìeííaÿ, a çía÷eíèeì ee aäpec:
  LOCNEAR Çía÷eíèeì ôóíêöèè ÿâëÿeòcÿ ÷ècëo òèïa INTEGER*2, ïpeäcòaâëÿþùee coáoé, íeceãìeíòèpoâaííûé aäpec.
  LOCFAR Çía÷eíèeì ôóíêöèè ÿâëÿeòcÿ ÷ècëo òèïa INTEGER*4 ïpeäcòaâëÿþùee coáoé ceãìeíòèpoâaííûé aäpec.
  LOC B ýòoé âepcèè, ýêâèâaëeíò LOCFAR.

B ýòèx ôóíêöèÿx â êa÷ecòâe ôaêòè÷ecêoão ïapaìeòpa ïpaêòè÷ecêè ìoæeò áûòü ècïoëüçoâaí ëþáoé apãóìeíò. Haïpèìep, ecëè Bû ècïoëüçóeòe âûpaæeíèÿ, oápaùeíèÿ ê ôóíêöèÿì, èëè êoícòaíòû, ïepeìeííaÿ ïepeäaeòcÿ çía÷eíèeì, è cooòâeòcòâeíío aäpec ýòoé ïepeìeííoé còaíoâèòcÿ çía÷eíèeì ôóíêöèè. Ecëè Bû ïepeäaeòe èìÿ ïoäïpoãpaììû â êa÷ecòâe ôaêòè÷ecêoão ïapaìeòpa äëÿ LOCFAR, çía÷eíèeì ôóíêöèè áóäeò aäpec ía÷aëa ïoäïpoãpaììû.

Beëè÷èía ÿâëÿþùaÿcÿ çía÷eíèeì LOCNEAR cooòâeòcòâóeò óêaçaòeëþ near â Cè è òèïó ADR â Ïàñêàëå. Ïoäoáío ýòoìó, âeëè÷èía ÿâëÿþùaÿcÿ çía÷eíèeì LOCEFAR ýêâèâaëeíòía óêaçaòeëþ far è óêaçaòeëþ ía ïpoöeäópó â Cè, è òèïaì ADR, ADSFUNC, ADSPROC â Ïàñêàëå.

LOCNEAR ìoæeò áûòü òoëüêo ècïoëüçoâaí ïpè paáoòe c oáúeêòaìè, çaíeceííûìè â íeïoìe÷eííûé ceãìeíò äaííûx (íaïpèìep, c ýëeìeíòaìè NEAR COMMON-áëoêoâ è oáúeêòaìè íe oïècaííûx c ïoìoùüþ $LARGE ìeòa- êoìaíäû).

11.4.Còpoêè CÈ.

Còpo÷íûe âeëè÷èíû â Cè çaêaí÷èâaþòcÿ ëèòepoé ÏÓCTO (CHAR(O)) è ìoãóò coäepæaòü cïeöèaëüíûe cèìâoëû (òaêèe êaê íoâaÿ còpoêa è backspace). Ýòè ëèòepû cïeöèôèpóþòcÿ oápaòíûì cëýøeì(\) â êa÷ecòâe escape. Ècïoëüçoâaíèe còaíäapòíûx âoçìoæíocòeé Ôîðòðàíà ïpè oïècaíèè òaêèx còpoê ïpèâoäèò ê oøèáêe. MC-Ôîðòðàí âepcèè 3.30 ècïoëüçóeò pacøèpeííóþ còpo÷íóþ êoícòaíòó; oápaòíûé cëýø pacìaò- pèâaeòcÿ êaê escape. B òaáëèöe 7-15 oïècaíû öeïo÷êè escape paçpe- øeííûe â ýòoé âepcèè.

----------------------------T----------------------------------¬
|     ÖEÏO×KA escape        |           CÈMBOË                 |
+---------------------------+----------------------------------+
|           \n              |    íoâaÿ còpoêa                  |
|           \t              |    ãopèçoíòaëüíaÿ òaáóëÿöèÿ      |
|           \v              |    âepòèêaëüíaÿ òaáóëÿöèÿ        |
|           \b              |    backspace                     |
|           \r              |    âoçâpaò êapeòêè               |
|           \f              |    ïoäa÷a còpoêè                 |
|           \\              |    oápaòíûé cëeø                 |
|           \ddd            |    áëoê áèòoâ                    |
L---------------------------+-----------------------------------
Taáëèöa 7-15. Còpo÷íûe öeïo÷êè escape

\ddd ïoçâoëÿeò ëþáóþ ëèòepó èç êoäa ACSII âûpaçèòü â âocìepè÷íoì êoäe. Haïpèìep, \O èìeeò êoä 0. Ecëè còpoêa coäepæèò ïocëeäoâaòeëüíocòü, íe óïoìÿíóòóþ âûøe (íaïpèìep \x èëè \z), oápaòíûé cëeø èãíopèpóeòcÿ. Ëèòepa ÏÓCTO aâòoìaòè÷ecêè äoáaâëÿeòcÿ ê êoíöó còpoêè. Ocòaëüíaÿ ÷acòü còpoêè ìoæeò áûòü còpoêoé Ôîðòðàíà (cì.ãëaâó 2). Còpoêa "\abcd"C, íaïpèìep, cooòâeòcòâóeò còpoêe "\abcd".

[an error occurred while processing the directive] [an error occurred while processing the directive] [an error occurred while processing the directive] [an error occurred while processing the directive]