Our website is made possible by displaying online advertisements to our visitors.
Please consider supporting us by disabling your ad blocker.

Responsive image


Krok (programowanie)

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].

Porównanie sposobu realizacji kroku innego niż 1
Modula-2[9] Pascal[1][2][3] C[4][5][6]
FOR I:=1 TO 10 BY KROK DO
  (* instrukcje pętli *)
END
for 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[10][11], rzadziej by, np. PL/I[12][13].

Krok w pętlach iteracyjnych[a]
język programowania domyślnie 1 -1 fraza dowolny dodatni dowolny ujemny wewnątrz pętli
Ada[7][8] T in reverse N N N N
ALGOL 60[14][15] T N by T T T
BASIC[b][10][11] T N STEP T T T
Clipper[16] T N STEP T T b.d.
COBOL[14][17] T N BY T T b.d.
Comal[3] T N N N N N
Forth[18][19] T N +LOOP T T N
Fortran IV[14], 1900[15] T N --- T N N
Fortran 77[20] T N --- T T N
JEAN[21][22] T N --- T T N
Modula-2[9] T N BY T T N
Pascal[1][2][3] T downto N N N T
PL/I[12][13] T N BY T T N
PL/M[23][24] T N BY T T N
Simula 67[14][25] T N T T T
Visual Basic[26], VBA[27] T N Step T T T

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[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].

  1. a b c d e f Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie pascal
    BŁĄD PRZYPISÓW
  2. a b c d e f g Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie bp
    BŁĄD PRZYPISÓW
  3. a b c d e f g Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie kilka
    BŁĄD PRZYPISÓW
  4. a b Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie c-kr
    BŁĄD PRZYPISÓW
  5. a b Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie tc-jb
    BŁĄD PRZYPISÓW
  6. a b c Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie cpp-jb
    BŁĄD PRZYPISÓW
  7. a b c d Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie ada
    BŁĄD PRZYPISÓW
  8. a b c Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie ada95
    BŁĄD PRZYPISÓW
  9. a b c Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie modula2
    BŁĄD PRZYPISÓW
  10. a b Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie basic-zcz
    BŁĄD PRZYPISÓW
  11. a b Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie basic-wi
    BŁĄD PRZYPISÓW
  12. a b Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie pl1jb
    BŁĄD PRZYPISÓW
  13. a b Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie pl1a
    BŁĄD PRZYPISÓW
  14. a b c d Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie str-jp
    BŁĄD PRZYPISÓW
  15. a b Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie algolifortran
    BŁĄD PRZYPISÓW
  16. Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie clipper
    BŁĄD PRZYPISÓW
  17. Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie cobol
    BŁĄD PRZYPISÓW
  18. Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie forth_jb
    BŁĄD PRZYPISÓW
  19. Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie forth_jr
    BŁĄD PRZYPISÓW
  20. Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie fortran77
    BŁĄD PRZYPISÓW
  21. Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie jean
    BŁĄD PRZYPISÓW
  22. Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie jeanfortran
    BŁĄD PRZYPISÓW
  23. Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie plm
    BŁĄD PRZYPISÓW
  24. Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie isisii
    BŁĄD PRZYPISÓW
  25. Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie simula
    BŁĄD PRZYPISÓW
  26. Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie vb
    BŁĄD PRZYPISÓW
  27. Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie excelivba
    BŁĄD PRZYPISÓW


Błąd w przypisach: Istnieje znacznik <ref> dla grupy o nazwie „uwaga”, ale nie odnaleziono odpowiedniego znacznika <references group="uwaga"/>
BŁĄD PRZYPISÓW

Previous Page Next Page








Responsive image

Responsive image