Pętla (informatyka)

Diagram pętli for typu C

Pętla – jedna z trzech podstawowych konstrukcji programowania strukturalnego (obok instrukcji warunkowej i instrukcji wyboru). Umożliwia cykliczne wykonywanie ciągu instrukcji określoną liczbę razy, do momentu zajścia pewnych warunków, dla każdego elementu kolekcji lub w nieskończoność.

Pętle licznikowe

Zawartość pętli licznikowych bądź iteracyjnych wykonuje się ustaloną liczbę razy. W najprostszym przypadku na początku pętli specjalna zmienna sterująca (licznikowa) jest ustawiana na wartość początkową, następnie przy każdym obiegu pętli jej wartość jest zwiększana o jeden, aż do osiągnięcia górnego limitu. Często pętla taka może odliczać w dół lub zmienna może być modyfikowana o wartość inną niż 1. Przykładami są tutaj pętle for z takich języków jak Pascal[1][2], Ada[3] (ale nie C[4][5] i C-podobne[6]).

Pętle warunkowe

Ogólniejszą konstrukcją jest pętla warunkowa, nazywana również repetycyjną, która jest wykonywana, aż do odpowiedniej zmiany warunków. Przeważnie wyrażenie testujące sprawdzane jest na początku lub na końcu pętli. W niektórych językach (C-podobne) pętla jest wykonywana dopóki warunek jest spełniony[4][5][6], w innych, np. w Pascalu pętla repeat...until, dopóki warunek nie jest spełniony[1][2]. Przykładami są instrukcje while, do...while, repeat...until[1][2][4][5][6].

Istnieją języki w których warunek (lub warunki) zakończenia mogą być umieszczone wewnątrz pętli na przykład w Adzie pętla loop z konstrukcją exit when[3].

Pętla ogólna

To pętla stosowana w językach rodziny C[4][5] i C-podobnych, jak np. C++[6]. Umożliwia definiowanie zarówno pętli repetycyjnej (ze sprawdzeniem warunku na początku pętli), jak i pętli iteracyjnej, jednak w porównaniu do niej pętla ta definiowana jest na niższym poziomie abstrakcji, co oznacza, że programista musi sam definiować warunek jej zakończenia i operację zmiany wartości zmiennej sterującej przy kolejnym przebiegu pętli.

Pętle „po kolekcji”

Często pożądane jest, aby instrukcje pętli zostały wykonane dla każdego elementu tablicy, kolekcji itp. Można to zrobić za pomocą powyższych pętli, ale często szybszym i bardziej przejrzystym sposobem jest użycie pętli typu foreach, która zwalnia programistę z obowiązku ręcznego iterowania po kolekcji.

Pętla o określonej liczbie powtórzeń

W pewnych językach programowania zdefiniowano w ich składni konstrukcję pętli, w której programista podaje ilość powtórzeń iteracji. Nie specyfikuje się przy tym ani zmiennej sterującej, ani wartości początkowej i końcowej licznika, co stanowi zasadniczą różnicę w stosunku do pętli iteracyjnej (licznikowej).

Pętle o określonej liczbie powtórzeń w językach programowania
Cobol[7][8]Jean[9][10]Logo[11]

PERFORM PROC N TIMES.

1.1 instrukcja, N TIMES

repeat N instrukcja

Pętla nieskończona

W niektórych zastosowaniach, np. systemy operacyjne, serwery, środowiska sterowane zdarzeniami pożądane jest, aby główna pętla wykonywała się praktycznie w nieskończoność. Można to uzyskać wstawiając do pętli warunkowej odpowiedni niezmienny warunek, ale niektóre języki dostarczają środków, którymi można wyrazić to bezpośrednio np. w języku Ada[3], Forth[12][13], Icon[14].

Inne konstrukcje

Istnieją także języki programowania zawierające w swojej składni instrukcje pętli zrywające z podanym wyżej podziałem. Przykładem takiego języka jest PL/1 i zdefiniowana w nim instrukcja DO. Instrukcja ta może (ale nie musi) zostać użyta z odpowiednimi frazami, definiującymi szczegółowo sposób iteracji, przy czym poszczególne frazy mogą być ze sobą zestawiane łącznie, co umożliwia bardziej złożone sterowanie w programie. I tak[15][16]:

DO;
  ...
END;
  • pętla iteracyjna
DO I=''w_p'' TO ''w_k'' BY ''step'', ''w_p1'' TO ''w_p2'' BY ''step2'', ...;
  ...
END;

przy czym frazy TO oraz BY są opcjonalne, można więc podać listę wartości, którą ma przyjmować zmienna sterująca, a przecinek umożliwia definicję kontynuacji iteracji dla kolejnego zestawu wartości.

  • pętla repetycyjna
DO WHILE ''warunek'';
  ...
END;
DO UNTIL ''warunek'';
  ...
END;
DO REPEAT ''wyrażenie'';
  ...
END;
  • pętla złożona – możliwość składania poszczególnych fraz iteracyjnych i repetycyjnych, np.
DO WHILE C>A, I=1 TO 20 BY 3 UNTIL A<B, 31, 32, 36, 39 TO 41, REPEAT A/2 WHILE A>3;
  ...
END;

Modyfikowanie przebiegu pętli

Z pętlami w językach programowania związane są konstrukcje programistyczne umożliwiające modyfikowanie standardowego przebiegu realizacji pętli. Modyfikacja ta dotyczy takich elementów jak zmiana wartości zmiennej sterującej, wyjście z pętli, przejście do kolejnej iteracji itp.. Do modyfikowania przebiegu realizacji pętli służą:

  • albo istniejące danym języku konstrukcje, tj. instrukcje, które są stosowane także poza pętlą, np.:
  • albo specjalne konstrukcje dedykowane tylko do modyfikacji działania pętli, tj. takie które mogą być stosowane tylko w obrębie pętli, np.

Instrukcje modyfikujące działanie pętli wymienione w drugiej grupie, zostały opracowane i uwzględnione w definicjach języków programowania, jako substytut instrukcji skoku, której użycie jest krytykowane w literaturze przedmiotu. Każda z operacji realizowanych przez tę grupę instrukcji może bowiem zostać zrealizowana za pomocą instrukcji skoku i etykiety umieszczonej w określonym miejscu. Instrukcja skoku pozwala w przeciwieństwie do tych instrukcji na przejście do dowolnego miejsca, natomiast instrukcje modyfikujące pętle z góry narzucają miejsce, do którego nastąpi przekazanie sterowania, co w pewnym stopniu zwiększa czytelność programu (kodu źródłowego) w porównaniu do instrukcji skoku[17].

Przykład – pętla iteracyjna

Poniżej przykład pętli w języku Pascal:

var licznik : integer;

begin
  for licznik := 1 to 10 do
    WriteLn('Wiersz numer ', licznik);
end.

Przykład w C++ jako wariant pętli ogólnej:

for (int i = 0; i < 10; ++i)
  std::cout << i << "-ta iteracja." << std::endl;

Przykład w C jako wariant pętli ogólnej:

int i;

for (i = 0; i < 10; ++i)
  printf("%d-ta iteracja.\n", i);

Przykład w PHP:

for ($i = 0; $i < 10; ++$i)
  echo $i . "-ta iteracja.<br />\n";

Przykład w JavaScripcie:

var i;

for (i = 0; i < 10; ++i)
  document.write(i + "-ta iteracja.<br />");

Przykład w VB6 z Textboxem

Dim i As Integer
Text1.Text = ""

For i = 0 To 10
  Text1.Text = Text1.Text & i
Next i

Przykład w VB6 z Debugwindow

Dim i As Integer

For i = 0 To 10
  Debug.Print i
Next i

Przykład w Pythonie:

for i in range(1, 10):
  print(i, '. iteracja', sep = '')

Pętle w językach programowania

Pętle w językach programowania
język programowaniapętlaspecjalne konstrukcje modyfikujące pętle
iteracyjnarepetycyjnaogólnapo kolekcjipowtórzeniowazłożonanieskończonaopuszczeniakontynuacjipowtórzeniapomijania
ABAP[18]
Ada[3][19]
ALGOL 60[7][20][21]
ALGOL 68[7][22]
APL[a][23]
AWK[24]
B[25]
Basic[26][27][28][29]N | T[b]
BCPL[30]N | T[c]
Boo[31]
C[4][5][6][32][d]
C++[6][d]
C--[a][33]
C#[34][35]
Clipper[36]
Cobol[8][37]
Comal[26]
D[38][39][40]
dBase[41][42], FoxBase[41]
Eiffel[43][44][45]
Forth[e][12][13][26][46][47]N | T[c]
Fortran IV, 66[7][20]
Fortran 77[48]
Fortran 90/95[49][50][51]
Icon[14]
Java[52][53][54]
JavaScript[55][56]
Jean[9][10]
Logo[26][11]
MCPL[57]N | T[c]
Modula-2[58]
Oberon[59]
Pascal[26][1][2]
Perl[60][61][62]
PHP[63][64][65]
PL/I[7][15][16]
PL/M[66][67]
Prolog[f][26][68]
Python[69][70][71][72]
REXX[73][74]N | T
Ruby[75][76][77][78]
Simula 67[79]
Snobol[f][80]
Turbo Pascal[2]
Visual Basic[81][82], VBA[83]

Uwagi

  1. a b W językach niskiego poziomu oraz asemblerowych językach wysokiego poziomu, oraz innych nielicznych językach, przy braku odpowiednich konstrukcji specjalnych (np. braku instrukcji pętli), programowanie odpowiedniego sterowania realizuje się w kodzie źródłowym za pomocą innych konstrukcji sterujących, np. instrukcji warunkowych i skoku; jest to także możliwe w pozostałych językach programowania (także w tych, w których dostępne są odrębne konstrukcje, takie jak instrukcje pętli), lecz przez literaturę przedmiotu zdecydowanie niezalecane.
  2. Od momentu opracowania języka Basic powstało wiele jego implementacji i wersji różniących się między sobą. Duża część tych implementacji, szczególnie wczesnych, nie zawierała w swoim repertuarze konstrukcji pętli repetycyjnej. Dopiero kolejne wersje języka zawierały pętle warunkowe np. while warunek ... wend, która jako zaszłość w Visual Basic-u została zastąpiona konstrukcją do ... loop.
  3. a b c Dana konstrukcja modyfikująca działanie pętli w określonym języku jest dostępna wyłącznie dla wybranego rodzaju pętli, a nie dostępna dla pozostałych rodzajów.
  4. a b W językach C, C++ i pochodnych, istnieje pętla for(;;), za pomocą której można realizować pętle iteracyjne w zbliżony sposób jak w pętli iteracyjnej, lecz jest to pętla bardziej ogólna, na niższym poziomie abstrakcji, w którym implementacja działań wymaganych dla pętli iteracyjnej należy do programisty, jawnie w kodzie źródłowym, w związku z czym literatura przedmiotu nie zalicza tego rodzaju pętli do tej kategorii konstrukcji programistycznych jakim są pętle iteracyjne.
  5. Jedną z podstawowych idei języka FORTH jest jego rozszerzalność. W języku tym można więc definiować (za pomocą instrukcji niskopoziomowych skoków warunkowych i bezwarunkowych, o adresacji bezwzględnej i względnej) nowe instrukcje sterujące, w tym instrukcje pętli oraz instrukcje modyfikujące działanie pętli. Zdefiniowane instrukcje poddawane są natychmiastowej kompilacji, umieszczane we wskazanym słowniku i dostępne tak samo jak standardowe instrukcje sterujące. Można więc stworzyć nowe instrukcje obejmujące pozostałe przypadki pętli i instrukcji modyfikujących.
  6. a b W językach takich jak Snobol czy Prolog realizacja wielokrotnych operacji wykonywana jest automatycznie przez odpowiedni mechanizm: w Snobolu jest to mechanizm uzgadniania z wzorcem oraz skoki warunkowe i bezwarunkowe, w Prologu jest to aparat wnioskowania, którego działanie może być modyfikowane przez specjalne predykaty, ich działanie jest analogiczne do odpowiednich instrukcji dostępnych w imperatywnych językach programowania, a tym samym mają (np. w Turbo Prolog) analogiczne nazwy (identyfikatory).

Przypisy

  1. a b c d Michał Iglewski, Jan Madey, Stanisław Matwin, Pascal. Język wzorcowy – Pascal 360, wyd. wydanie trzecie – zmienione, Warszawa: Wydawnictwa Naukowo-Techniczne, 1984 (Biblioteka Inżynierii Oprogramowania), ISBN 83-85060-53-7, ISSN 0867-6011 (pol.).
  2. a b c d e Andrzej Marciniak, Borland Pascal 7.0, Poznań: Nakom, 1994 (Biblioteka Użytkownika Mikrokomputerów), ISBN 83-85060-53-7, ISSN 0867-6011 (pol.).
  3. a b c d A. Nico Habermann, Dewayne E. Perry: Ada dla zaawansowanych. Warszawa: Wydawnictwa Naukowo-Techniczne, 1989, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-1058-4. (pol.)
  4. a b c d e Brian W. Kernighan, Dennis M. Ritche: Język C. Warszawa: Wydawnictwa Naukowo-Techniczne, 1988, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-1067-3. (pol.)
  5. a b c d e Jan Bielecki: Turbo C z grafiką na IBM PC. Warszawa: Wydawnictwa Naukowo-Techniczne, 1990, seria: Mikrokomputery. ISBN 83-204-1101-7. (pol.)
  6. a b c d e f Jan Bielecki: Od C do C++, programowanie obiektowe w języku C. Warszawa: Wydawnictwa Naukowo-Techniczne, 1990. ISBN 83-204-1332-X. (pol.)
  7. a b c d e John E. Nicholls: Struktura języków programowania. Warszawa: Wydawnictwa Naukowo-Techniczne, 1980, seria: Informatyka. ISBN 83-204-0246-8. (pol.)
  8. a b Eugeniusz Kurzydrem, Andrzej Macieliński, Urszula Szmidt, Eugeniusz Więcek: COBOL. Język programowania. Wyd. drugie. Warszawa: Państwowe Wydawnictwo Ekonomiczne, 1978. (pol.)
  9. a b Jerzy Bettek, Bronisław Rudak, Barbara Rudakowa: Język konwersacyjny JEAN. Wrocław: Wydawnictwo Politechniki Wrocławskiej, 1975, seria: Skrypt wydany w serii Biblioteka WASC. (pol.)
  10. a b Kazimierz Orlicz: Język konwersacyjny JEAN z elementami programowania w Fortranie. Wrocław: Wydawnictwo Politechniki Wrocławskiej, 1977, seria: Skrypt wydany w serii Biblioteka WASC. (pol.)
  11. a b Stanisław Waligórski: LOGO na Sinclair Spectrum. Instytut Wydawniczy Związków Zawodowych, seria: Seria 12+12=102. (pol.)
  12. a b Jan Bielecki: Język FORTH. Warszawa: Wydawnictwa Naukowo-Techniczne, 1988, seria: Mikrokomputery. ISBN 83-204-0930-6. (pol.)
  13. a b Jan Ruszczyc: Poznajemy FORTH. Warszawa: SOETO, 1987, seria: Informatyka mikrokomputerowa. (pol.)
  14. a b Ralph E. Griswold, Madge T. Griswold: Icon. Warszawa: Wydawnictwa Naukowo-Techniczne, 1987, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-0871-7. (pol.)
  15. a b Jan Bielecki: Rozszerzony PL/I i JCL w systemie OS/RIAD. Warszawa: Państwowe Wydawnictwo Naukowe, 1986, seria: Biblioteka Informatyki. ISBN 83-01-06146-4. (pol.)
  16. a b M. I. Auguston i inni: Programowanie w języku PL/1 OS JS. Warszawa: Państwowe Wydawnictwo Naukowe, 1988. ISBN 83-01-07463-9. (pol.)
  17. Michael Marcotty, Henry Ledgord, tłumaczenie: Krystyna Jerzykiewicz: W kręgu języków programowania. Warszawa: Wydawnictwa Naukowo-Techniczne, 1980, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-1342-7. (pol.)
  18. Loops (ang.). W: ABAP Programming (BC-ABA) [on-line]. help.sap.com – SAP Library. [dostęp 2011-08-03].
  19. Michał Morawski, Antoni M. Zajączkowski: Wstep do programowania w języku Ada’95. Wyd. drugie. Łódź: 2004. [dostęp 2011-01-29]. (pol.)
  20. a b Joanna Jonkisz, Jan Makuch, Stanisław Starzak: Programowanie w językach Algol 60 i Fortran 1900. Łódź: Wydawnictwo Politechniki Łódzkiej, Politechnika Łódzka, Ośrodek Elektronicznej Techniki Obliczeniowej, 1982, seria: Skrypty dla szkół wyższych. (pol.)
  21. PN-75/T-42110, Język programowania Algol 60, Wydawnictwa Normalizacyjne (Polski Komitet Normalizacyjny), Warszawa 1976, opracowanie Polskiej Normy: Jowita Koncewicz, Maria Łącka, Instytut Maszyn Matematycznych w Warszawie.
  22. Jan Małuszyński, Krzysztof Pisecki, A. van Wijngaarden, B.J. Mailloux, J.E.L. Peck, C.H.A. Koster, M. Sintzoff,.H. Lindsey, L.G.L.T. Meertens, R.G. Fisker, w tłumaczeniu Jana Małuszyńskiego i Krzysztofa Piseckiego: Algol 68. Wprowadzenie do języka Algol 68. Zmieniony raport o języku algorytmicznym Algol 68. Warszawa: Wydawnictwa Naukowo-Techniczne, 1980, seria: Informatyka. ISBN 83-204-0161-5. (pol.)
  23. Andrzej Jerzy Krzysztof Plewic: Język programowania APL/360. Warszawa: Wydawnictwa Naukowo-Techniczne, 1977, seria: Biblioteka informatyki. (pol.)
  24. Tomasz Przechlewski: Opis języka AWK (pol.). pinkaccordions.homelinux.org, 2001–2007. [dostęp 2011-08-03].
  25. B. W. Kernighan: A TUTORIAL INTRODUCTION TO THE LANGUAGE B (ang.). cm.bell-labs.com – Bell Laboratories, Murray Hill, New Jersey. [dostęp 2011-08-03]. [zarchiwizowane z tego adresu (2008-05-15)].
  26. a b c d e f Mike Ducka, tłumaczenie: Marcin Turski: Języki mikrokomputerów. Przewodnik dla początkujących. Basic, Pascal, Logo, Prolog, Comal, Forth. Warszawa: Wydawnictwa Naukowo-Techniczne, 1988. ISBN 83-204-0966-7. (pol.)
  27. Zbigniew Czech, Krzysztof Nałęcki, Stanisław Wołek: Programowanie w języku BASIC. Wyd. drugie uzupełnione. Warszawa: Wydawnictwa Naukowo-Techniczne, 1985. ISBN 83-204-0776-1. (pol.)
  28. Wacław Iszkowski: Nauka programowania w języku BASIC dla początkujących. Warszawa: Wydawnictwa Naukowo-Techniczne, 1987, seria: Mikrokomputery. ISBN 83-204-0834-2. (pol.)
  29. Małgorzata Kalinowska-Iszkowska, Wacław Iszkowski: Klucze do Basicu, Amstrad – Schneider, Apple II, IBM PC, ZX Spectrum (Plus). Warszawa: Wydawnictwa Naukowo-Techniczne, 1987, seria: Mikrokomputery. ISBN 83-204-0809-1. (pol.)
  30. Martin Richards: The BCPL Cintsys and Cintpos User Guide. Cambridge: Computer Laboratory University of Cambridge, January 28, 2011. [dostęp 2011-01-31]. (ang.)
  31. Loops (ang.). W: BOO – Language Guide [on-line]. boo.codehaus.org. [dostęp 2011-08-03].
  32. C Reference Card (ANSI) (ang.). www.digilife.be. s. 2. [dostęp 2011-08-08]. [zarchiwizowane z tego adresu (2011-08-07)].
  33. Norman Ramsey, Simon Peyton Jones, Christian Lindig: The C-- Language Specification, Version 2.0 (CVS Revision 1.128) (ang.). www.cminusminus.org, 23 lutego 2005. s. 65. [dostęp 2011-08-03].
  34. Podręcznik języka C# na Wikibooks.
  35. C# Language Specification ECMA-334 (ang.). www.ecma-international.org – ECMA International, 4th Edition / June 2006. s. 553. [dostęp 2011-08-03].
  36. Wojciech Rogowski, Arkadiusz Serodziński: Clipper 5.0. Warszawa: Wydawnictwo PLJ, 1991. ISBN 83-85190-20-1. (pol.)
  37. Gary Cutler: OpenCOBOL 1.1 [06FEB2009 Version Programmer’s Guide] (ang.). /opencobol.add1tocobol.com, 2010-09-17. s. 259. [dostęp 2011-08-08].
  38. Podręcznik języka D na Wikibooks.
  39. Table of Contents – D Programming Language (ang.). www.digitalmars.com – DIGITAL MARS. [dostęp 2011-08-04].
  40. Statements (ang.). W: Language Reference – D Programming Language [on-line]. www.d-programming-language.org. [dostęp 2011-08-04].
  41. a b Tadeusz Mykowiecki: dBase, FoxBase, bazy danych. Warszawa: Wydawnictwa Naukowo-Techniczne, 1992. ISBN 83-204-1345-1. (pol.)
  42. Piotr J. Jasiński, Zbigniew Królikowski, Jacek Szulczyński, Mikrokomputerowe bazy danych z programowaniem w dBase IV, Warszawa, Poznań 1992 (Biblioteka Użytkownika Mikrokomputerów; tom 7), ISBN 83-85060-44-8, ISSN 0867-6011 (pol.).
  43. Bertrand Meyer: CEiffel*: A Language and Environment for Software Engineering (ang.). citeseerx.ist.psu.edu – Interactive Software Engineering Inc., Goleta, California. s. 48. [dostęp 2011-08-03].
  44. Loop: the only construct for iterative computation (ang.). W: Syntax diagrams SmartEiffel [on-line]. smarteiffel.loria.fr. [dostęp 2011-08-03].
  45. Bertrand Meyer: Eiffel: Analysis, Design and Programming Language; Standard ECMA-367 (ang.). www.ecma-international.org – ECMA International, 2nd Edition / June 2006. s. 194. [dostęp 2011-08-03].
  46. FORTH Standards Team: FORTH – 79 (ang.). mywebspace.wisc.edu; FORTH Interest Group, 1980. s. 50. [dostęp 2011-08-05]. [zarchiwizowane z tego adresu (2011-07-13)].
  47. 12. REQUIRED WORD SET (ang.). W: FORTH-83 STANDARD [on-line]. forth.sourceforge.net, 1983. [dostęp 2011-08-05].
  48. Ryszard K. Kott, Krzysztof Walczak: Programowanie w języku Fortran 77. Warszawa: Wydawnictwa Naukowo-Techniczne, 1991. ISBN 83-204-1362-1. (pol.)
  49. Podręcznik języka Fortran na Wikibooks.
  50. Michael Goerz: Fortran 90 Reference Card (ang.). michaelgoerz.net, 2008. s. 2. [dostęp 2011-08-04].
  51. WORKING DRAFT J3/97-007R2 (ang.). j3-fortran.org, 21 października 1997. s. 376. [dostęp 2011-08-04]. [zarchiwizowane z tego adresu (2011-08-18)].
  52. Artur Tyloch: Kurs Java. Opis języka, składni. Polski podręcznik. (pol.). www.webdeveloper.pl. [dostęp 2011-08-04].
  53. Language Basics (ang.). W: The Java Tutorials [on-line]. download.oracle.com – ORACLE. [dostęp 2011-08-04].
  54. Jialong He: JAVA Quick Reference (ang.). www.digilife.be. s. 3. [dostęp 2011-08-08].
  55. Wojciech Romowicz: HTML i JavaScript. HELION, 1998. ISBN 83-7197-046-3. (pol.)
  56. Kurs języka JavaScript (pol.). Poradnik Webmastera. [dostęp 2011-02-09]. [zarchiwizowane z tego adresu (2011-09-27)].
  57. Martin Richards: The MCPL Programming Manual and User Guide. Cambridge: Computer Laboratory University of Cambridge, May 23, 2007. [dostęp 2011-01-31]. (ang.)
  58. Niklaus Wirth, Modula 2, Warszawa: Wydawnictwa Naukowo-Techniczne, 1987 (Biblioteka Inżynierii Oprogramowania), ISBN 83-204-0828-8, ISSN 0867-6011 (pol.).
  59. H. Mössenböck, N. Wirth: 9. Statements (ang.). W: The Programming Language Oberon-2 [on-line]. www-vs.informatik.uni-ulm.de:81 – Institut für Computersysteme, ETH Zürich, October 1993. [dostęp 2011-08-02].
  60. Podręcznik języka Perl na Wikibooks.
  61. Loop Control (ang.). W: Perl 5 version 14.1 documentation – Language reference [on-line]. perldoc.perl.org. [dostęp 2011-08-03].
  62. Michael Goerz: Perl Reference Card (ang.). michaelgoerz.net, 2008. s. 2. [dostęp 2011-08-04].
  63. Podręcznik języka PHP na Wikibooks.
  64. Podręcznik PHP (ang.). www.php.net. [dostęp 2011-08-03].
  65. Steven R. Gould: PHP 4 Reference Card (ang.). www.digilife.be. s. 2. [dostęp 2011-08-08].
  66. Jan Bielecki: PL/M język programowania mikroprocesorów. Wyd. wydanie drugie uzupełnione. Warszawa: Wydawnictwa Komunikacji i Łączności, 1987, seria: Elektronizacja. zeszyt 25. (pol.)
  67. Jan Bielecki: System operacyjny ISIS-II. Warszawa: Wydawnictwa Naukowo-Techniczne, 1987, seria: Mikrokomputery. ISBN 83-204-0893-8. (pol.)
  68. Janusz Szajna, Marian Adamski, Tomasz Kozłowski: Turbo Prolog. Programowanie w języku logiki. Warszawa: Wydawnictwa Naukowo-Techniczne, 1991, seria: Mikrokomputery. ISBN 83-204-1395-8. (pol.)
  69. Podręcznik języka Phyton na Wikibooks.
  70. Michael Goerz: Phyton 2.5 Reference Card (ang.). michaelgoerz.net, 2009. s. 2. [dostęp 2011-08-04].
  71. The Python Language Reference 2.7 (ang.). docs.python.org, 4 sierpnia 2011. [dostęp 2011-08-04].
  72. Laurent Pointal: Python 2.4 Quick Reference Card (ang.). www.digilife.be. s. 18. [dostęp 2011-08-08].
  73. The REXX language (ang.). killbox.pl. [dostęp 2011-08-02]. [zarchiwizowane z tego adresu (2016-03-04)].
  74. Open Object Rexx™: Reference (ang.). www.oorexx.org. [dostęp 2011-08-02]. [zarchiwizowane z tego adresu (2015-08-29)].
  75. Podręcznik języka Ruby na Wikibooks.
  76. Iterators (ang.). W: Ruby User’s Guide [on-line]. www.rubyist.net. [dostęp 2011-08-04].
  77. Containers, Blocks, and Iterators (ang.). W: Programming Ruby. The Pragmatic Programmer’s Guide [on-line]. www.ruby-doc.org – Documenting the Ruby Language. [dostęp 2011-08-04].
  78. Ruby Language QuickRef (ang.). www.digilife.be. s. 2. [dostęp 2011-08-08].
  79. Hanna Oktaba, Wiesław Ratajczak: Simula 67. Warszawa: Wydawnictwa Naukowo-Techniczne, 1990, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-0128-3. (pol.)
  80. Paweł Gizbert-Studnicki, Jerzy Kaczmarczuk: Snobol4. Warszawa: Wydawnictwa Naukowo-Techniczne, 1984, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-0546-7. (pol.)
  81. Podręcznik Visual Basic na Wikibooks.
  82. VB.NET Quick Reference (ang.). www.digilife.be, 2006. s. 1. [dostęp 2011-08-08].
  83. John Walkenbach: Excel 2003 PL. Programowanie w VBA. HELION, 2004. ISBN 837361-504-0. (pol.)

Media użyte na tej stronie

Tickmark icon.svg
Autor: MGalloway (WMF), Licencja: CC BY-SA 3.0
A tickmark icon included in the OOjs UI MediaWiki lib.
OOjs UI icon check.svg
Autor: MGalloway (WMF), Licencja: CC BY-SA 3.0
A tickmark icon included in the OOjs UI MediaWiki lib.
For-loop-diagram.png
Autor: Autor nie został podany w rozpoznawalny automatycznie sposób. Założono, że to Faxe (w oparciu o szablon praw autorskich)., Licencja: CC BY-SA 2.5

  • diagram pętli for
  • utworzone w Dia
  • autor: Paweł Zdziarski (faxe)