|
'c -> 0; $ 0 ~ s (if (b) per (c \u003d 1 b, c> 1, c -) stampa r [(NR-c +1)% b]; stampa; c \u003d a b) (r [% NR b] \u003d $ 0) '
modello è dotato di 3-azione dichiarazioni:
1, lettera c) -> 0;
2) $ 0 ~ s (if (b) per (c \u003d 1 b, c> 1, c -) stampa r [(NR-c +1)% b]; stampa; c \u003d a)
3, lettera b) (r [% NR b] \u003d $ 0)
Il primo non ha alcuna azione in modo esplicito il ricorso è semplicemente stampare l'intero record. Ma in questo caso il punto e virgola è necessaria in modo che esso non viene eseguito per la seconda staement. La seconda dichiarazione è un'esplicita azione che è in parentesi e le parentesi graffe sono sufficienti per separarla dal terzo. Consideriamo ora queste dichiarazioni in ordine inverso ...
3, lettera b) (r [% NR b] \u003d $ 0)
Il modello è b, che si chiede se b è pari a zero. Se b è non-zero abbiamo bisogno per salvare i record nel caso in cui ne abbiamo bisogno più tardi. Ma se b è pari a zero, si può saltare questo, poiché non vogliamo che ogni "prima" record visualizzato. Se b è, diciamo, 5, si avrà sempre l'ultimo record del 5 r array.
2) $ 0 ~ s (if (b) per (c \u003d 1 b, c> 1, c -) stampa r [(NR-c +1)% b]; stampa; c \u003d a)
Il modello $ 0 ~ s semplicemente chiede se il record che corrisponde ai criteri di ricerca abbiamo immagazzinato in s. Se è così, e se b non è zero, stampa abbiamo le registrazioni che abbiamo salvato nel passaggio 3 sopra. Poi stampa il record corrente. Poi c \u003d imposta il passo successivo per essere spiegato ...
1, lettera c) -> 0;
c viene fissato a un (numero di "dopo" record) quando si trova una corrispondenza. C - c parte decrementi dopo le usiamo. E l'abbiamo usato per vedere se è maggiore di zero. Questo è come il "dopo" i record vengono stampati.
Ultimo a cura di Perderabo; al 01/17/2008 08:34 AM.. Motivo: correzione alcuni errori di battitura
|