Neloka variablo

El Vikipedio, la libera enciklopedio

En programlingvoj, neloka variablo (rilate al iu regiono R) estas variablo deklarita ekster la koncerna regiono (R), en iu pli vasta regiono (entenanta la regionon R).

En multaj programlingvoj, kiaj C, neloka variablo povas esti nur malloka variablo; en aliaj lingvoj, ekz‑e la Algoloj, PL/I, Paskalo, Ĝavaskripto, Pitono, eblas pli profunda ingado de regionoj (interalie, ingitaj subprogramoj), kaj sekve interaj variabloj nelokaj, kies regiono estas malpli granda ol la malloka.

Realan ekzemplon pri mallokaj variabloj donas la Reviziita Raporto pri Algolo 60[1], kie la proceduro RK (kiu integralas sistemon da diferencialaj ekvacioj per la metodo de Runge—Kutta) entenas lokan proceduron RK1P realigantan unuopan paŝon de integralado; tiu RK1P uzas ankaŭ la variablojn de la ĝin entenanta RK estkiel nelokajn variablojn[2]:

proceduro RK(x, y, n, fkt, eps, eta, xE, yE, Unue);
   valore x, y; entjera n; bulea Unue;
   reelaj x, eps, eta, xE; tabeloj y, yE; proceduro fkt;
   starto
    tabelo z, y1, y2, y3[1:n]; reelaj x1, x2, x3, H;
    bulea eksteren; entjeraj k, j;
    persistaj reelaj s, Hs;
    proceduro RK1P(x, y, h, xe, ye); reelaj x, h, xe; tabelo y, ye;
      komento :
        RK1P integralas unuopan paŝon de Runge-Kutta kun komencaj valoroj
        x, y[k]. Tio donas elirajn parametrojn xe=x+h kaj ye[k],
        kie la lasta estas la solvo je xe.
        G r a v a : La parametroj n, fkt, z aperas en RK1P kiel objektoj nelokaj;
      starto tabelo w[1:n], a[1:5]; entjeraj k,j;
      .........
        por k := 1 paŝo 1 ĝis n faru ye[k] := w[k] := y[k];
        por j := 1 paŝo 1 ĝis 4 faru
            starto fkt (xe,v,n,z); xe := x + a[j];
              ......
            fino;
        .........
      fino RK1P;
    ........
fino RK

Vidu ankaŭ[redakti | redakti fonton]

Piednotoj[redakti | redakti fonton]

  1. «Reviziita Raporto pri la algoritma lingvo Algolo 60».
  2. La ŝlosilvortoj Algolaj estas esperantigitaj kiel priskribite en la artikolo pri Algolo 60.