Najlepsze pytania
Chronologia
Czat
Perspektywa
Krok (programowanie)
Z Wikipedii, wolnej encyklopedii
Remove ads
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
)[1][2][3]. 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[4][5][6], C++[6] 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[1][2][3], 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)[7][8].
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[9], oraz za pomocą zmiany wartości zmiennej sterującej wewnątrz pętli na przykładzie języka Pascal[1][2][3].
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[10][11], rzadziej by
, np. PL/I[12][13].
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[c], jak w językach Ada[7][8], czy Pascal[1][2][3]. 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[2][7].
Remove ads
Uwagi
- Tabela „Krok w pętlach iteracyjnych” pomija te języki, w których nie ma pętli iteracyjnej, a iteracje realizuje się za pomocą innych pętli, takich jak pętle ogólne czy repetycyjne, w tych konstrukcjach można bowiem dowolnie manipulować zmianą wartości zmiennej, która jest zwykłą zmienną pełniącą jedynie funkcję zmiennej sterującej. Taka konstrukcja może być oczywiście także użyta w tych językach, w których istnieje pętla iteracyjna, choć literatura przedmiotu zaleca stosowanie pętli iteracyjnej jako konstrukcji na wyższym poziomie abstrakcji, w której mało istotne szczegóły realizacyjne pozostają ukryte i są realizowane w sposób niejawny, tj. nie są one widoczne w kodzie źródłowym.
- Istniały wersje tego języka bez frazy
STEP
w instrukcji pętliFOR
. - W językach, w których stosuje się wyróżnienie typów porządkowych, typy całkowitoliczbowe również należą do typów porządkowych, ale oprócz nich do tego rodzajów typów, które mogą być stosowane jako typy zmiennych sterujących należą również inne typy danych, np. typ znakowy, typ wyliczeniowy i inne.
Remove ads
Przypisy
Bibliografia
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads