Krok zmiennej sterującej, to w programowaniu konstrukcja programistyczna umożliwiająca zmianę wartości zmiennej sterującej o określoną przez programistę wartość. Standardowo zmienna sterująca w pętli iteracyjnej zmieniana jest o wartość kroku równą 1. W wielu językach programowania wprowadzono do ich składni w instrukcji takiej pętli konstrukcję umożliwiającą określenie innej wartości, która będzie użyta do zmiany wartości zmiennej sterującej przy przejściu do kolejnej iteracji. Istnieją jednak języki programowania, w których pętle iteracyjne nie dają takich możliwości. Tak jest np. w języku Pascal, w którym zmienna sterująca zmienia się o wartość równą 1 (lub -1 przy użyciu słowa kluczowego downto). W takim przypadku programista musi samodzielnie implementować pętlę realizującą zadania pętli iteracyjnej, za pomocą innych rodzajów pętli, np. za pomocą pętli repetycyjnej. W tym przypadku programista sam implementuje zmianę wartości pewnej zmiennej używanej jako zmienna sterująca, oraz jawnie kontrolować warunek zakończenia pętli, a więc musi programować na niższym poziomie abstrakcji. Takie rozwiązanie przyjęte jest również w takich językach jak C, C++ i podobne, w których nie zaimplementowano pętli iteracyjnej, lecz dostępna jest pętla ogólna. W pętli tego rodzaju trzeba jawnie zapisać zmianę wartości zmiennej sterującej o określoną wartość kroku i warunek kończący pętlę. Innym rozwiązaniem, może być jawnie zaprogramowanie zmiany wartości zmiennej sterującej o wartość kroku wewnątrz pętli iteracyjnej, o ile jest dopuszczalna w danym języku przypisanie zmiennej sterującej nowej wartości (np. Pascal dopuszcza zamianę wartości zmiennej sterującej wywnętrz bloku pętli, a np. Ada nie daje takich możliwości – zmienna sterująca w tym języku programowania jest zmienną „tylko do odczytu”, zmienną lokalną dla tej instrukcji strukturalnej).
Poniżej przedstawione jest porównanie realizacji kroku, za pomocą dostępnej w danym języku programowania, odpowiedniej frazy pętli iteracyjnej, na przykładzie języka Modula-2, oraz za pomocą zmiany wartości zmiennej sterującej wewnątrz pętli na przykładzie języka Pascal.
+ Porównanie sposobu realizacji kroku innego niż 1 Modula-2 Pascal CFOR I:=1 TO 10 BY KROK DO (* instrukcje pętli *) ENDfor i:=1 to 10 do begin { instrukcje pętli } i:=i+KROK-1 end;for(i=1;i<=10;i+=KROK) { /* instrukcje pętli */
Sposób specyfikacji kroku zmiennej sterującej w instrukcji iteracyjnej zależny jest od składni danego języka. Zawsze jest to jednak pewna opcjonalna fraza zawarta w nagłówku pętli iteracyjnej. Brak tej frazy implikuje przyjęcie wartości domyślnej kroku zmiennej sterującej, przy czym jest to wartość równa 1, chyba że składnia określa, iż dla pewnych warunków brzegowych, tzn. dla wartości początkowej mniejszej od wartości końcowej, jest przyjmowana wartość -1. Natomiast jawne określenie wartości kroku eliminuje wartości domyślne bez względu na relacje zachodzące między wartością początkową i końcową. Do typowych słów kluczowych, używanych w różnych językach programowania, do identyfikacji frazy określającej krok zmiennej sterującej należą takie słowa kluczowe jak step, np. BASIC, rzadziej by, np. PL/I.
+ Krok w pętlach iteracyjnych język programowania domyślnie 1 -1 fraza dowolny dodatni dowolny ujemny wewnątrz pętli Ada in reverse ALGOL 60 by BASIC STEP Clipper STEP b.d. COBOL BY b.d. Comal Forth +LOOP Fortran IV, 1900 --- Fortran 77 --- JEAN --- Modula-2 BY Pascal downto PL/I BY PL/M BY Simula 67 Visual Basic, VBA Step b.d. – brak danych;
Należy także dodać, iż pojęcie kroku równego 1 lub -1, jest pewnym uproszczeniem, szczególnie w tych językach, w których zmienna sterująca nie musi być zmienną typu liczbowego, lecz może być innego typu, np. może być dowolnego typu porządkowego, jak w językach Ada, czy Pascal. W tym przypadku stosuje się operacje porządkowe: następnika, co odpowiada krokowi równemu 1 dla typów liczbowych, lub poprzednika, co odpowiada krokowi równemu -1 dla typów liczbowych.
Uwagi
Przypisy Podręcznik Visual Basic na Wikibooks
Bibliografia
Kategoria:Konstrukcje programistyczne