<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://wiki.otwartaedukacja.pl/index.php?action=history&amp;feed=atom&amp;title=Programy_a_algorytmy</id>
	<title>Programy a algorytmy - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.otwartaedukacja.pl/index.php?action=history&amp;feed=atom&amp;title=Programy_a_algorytmy"/>
	<link rel="alternate" type="text/html" href="https://wiki.otwartaedukacja.pl/index.php?title=Programy_a_algorytmy&amp;action=history"/>
	<updated>2026-05-01T19:09:17Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>https://wiki.otwartaedukacja.pl/index.php?title=Programy_a_algorytmy&amp;diff=33&amp;oldid=prev</id>
		<title>Admin: Utworzono nową stronę &quot;&#039;&#039;&#039;Algorytmem nazywamy ścisły przepis. Program zawiera implementację algorytmów.&#039;&#039;&#039;  Programowanie jest czasem mylone z układaniem algorytmów, które mogą być tr...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.otwartaedukacja.pl/index.php?title=Programy_a_algorytmy&amp;diff=33&amp;oldid=prev"/>
		<updated>2017-06-26T20:19:54Z</updated>

		<summary type="html">&lt;p&gt;Utworzono nową stronę &amp;quot;&amp;#039;&amp;#039;&amp;#039;Algorytmem nazywamy ścisły przepis. Program zawiera implementację algorytmów.&amp;#039;&amp;#039;&amp;#039;  Programowanie jest czasem mylone z układaniem algorytmów, które mogą być tr...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Algorytmem nazywamy ścisły przepis. Program zawiera implementację algorytmów.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Programowanie jest czasem mylone z układaniem algorytmów, które mogą być trudne i skomplikowane. Najczęściej jednak korzystamy z gotowych implementacji! Jeśli już trzeba wymyślić i zaimplementować jakiś algorytm – w większości przypadków jest on trywialny. Jak sobie poradzić z takimi trywialnymi przypadkami – opisano w rozdziale „Implementacja algorytmów”. Na wstępie musimy jednak przyswoić sobie pojęcie &amp;#039;&amp;#039;&amp;#039;sterowania&amp;#039;&amp;#039;&amp;#039; (albo inaczej sterowania przepływem) w programach działających zgodnie z jakimś algorytmem. &lt;br /&gt;
&lt;br /&gt;
== Sterowanie ==&lt;br /&gt;
Jak wspomniano w rozdziale poświęconym logice ([Logika_i_instrukcje_warunkowe]) – programy są wykonywane w sposób sekwencyjny - operacja po operacji. Człowiek też nie potrafi myśleć o wielu rzeczach równocześnie. Dlatego tworzone przez niego algorytmy to opis kolejnych operacji, wykonywanych sekwencyjnie (jedna po drugiej). Zakładamy, że komputer także będzie odczytywał kolejne instrukcje i zgodnie z nimi zmieniał dane. Przy tym założeniu powstało wiele języków przystosowanych do zapisu algorytmów (zwanych czasem dlatego &amp;#039;&amp;#039;&amp;#039;językami algorytmicznymi&amp;#039;&amp;#039;&amp;#039;). Warto jednak zdawać sobie sprawę z tego, że nie jest to jedyny sposób sterowania przepływem w programach. Można zatem wyróżnić:&lt;br /&gt;
&lt;br /&gt;
1. &amp;#039;&amp;#039;&amp;#039;Sterowanie sekwencyjne&amp;#039;&amp;#039;&amp;#039;. Program wykonuje krok po kroku zadany algorytm.&lt;br /&gt;
&lt;br /&gt;
2. &amp;#039;&amp;#039;&amp;#039;Sterowanie zdarzeniami&amp;#039;&amp;#039;&amp;#039;. Każdy kto posługiwał się arkuszem kalkulacyjnym wie, że zmienia się on natychmiast po wpisaniu danych. Nie potrzeba uruchamiać dodatkowej funkcji przeliczania. Ona się wykonuje wskutek zaistnienia &amp;#039;&amp;#039;&amp;#039;zdarzenia&amp;#039;&amp;#039;&amp;#039; – zmiany danych. Podobnie jest w programach sterujących złożonymi maszynami, czy nawet programach systemowych (system operacyjny) zwykłego komputera lub komórki. Programowanie w tym wypadku polega na opisaniu reakcji na zdarzenie.&lt;br /&gt;
&lt;br /&gt;
3. &amp;#039;&amp;#039;&amp;#039;Sterowanie danymi&amp;#039;&amp;#039;&amp;#039;. Strona internetowa nie jest zapisem instrukcji – co krok po kroku powinien zrobić komputer, by wykonać zadanie jej wyświetlenia. Jest to opis oczekiwanego efektu. Do tego opisu można użyć języka HTML, XHTML, XML+XSLT i paru innych (to cała odrębna dziedzina wiedzy). To nie jest jedyny przypadek, gdy opisujemy efekt (co ma być zrobione), a nie jak to zrobić. Podobną własność ma programowanie w logice (język Prolog). Taki program składa się ze zbioru logicznych klauzul (zdania otwarte) tworzących bazę wiedzy. Pojawienie się zapytania (klauzuli z niewiadomymi) powoduje uzgodnienie podanych danych z całą bazą, w celu odpowiedzi na pojawiające się w danych znaki zapytania.&lt;br /&gt;
&lt;br /&gt;
== Pętle ==&lt;br /&gt;
Drugim poza sterowaniem pojęciem, które musimy zrozumieć zanim przejdziemy do algorytmów jest pojęcie &amp;#039;&amp;#039;&amp;#039;pętli&amp;#039;&amp;#039;&amp;#039;. Zamiast pisać po kolei: 2x2=4, 3x3=9, …. itd., możemy nakazać programowi by dla wszystkich liczb od 1 do 9 wypisał ich kwadraty. Coś w rodzaju:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;dla &amp;#039;&amp;#039;&amp;#039;liczb &amp;#039;&amp;#039;&amp;#039;od &amp;#039;&amp;#039;&amp;#039;1 &amp;#039;&amp;#039;&amp;#039;do&amp;#039;&amp;#039;&amp;#039; 9 drukuj(liczba*liczba)&lt;br /&gt;
&lt;br /&gt;
Oczywiście zapis będzie różny w różnych językach programowania (zazwyczaj pojawi się na początku angielskie słowo ‘for’). Takie wielokrotne wykonywanie zdefiniowanych operacji nazywa się pętlą. Pętla typu &amp;#039;&amp;#039;&amp;#039;for&amp;#039;&amp;#039;&amp;#039; (taka jak wyżej) jest obecnie najczęściej stosowana w powiązaniu z przeglądaniem zboru sekwencyjnego (dla liczba w zbiorze [1..9] …..). To nie jest jednak jedyny rodzaj pętli. Wyróżnia się także pętle typu &amp;#039;&amp;#039;&amp;#039;while&amp;#039;&amp;#039;&amp;#039; – czyli wykonywanie tych samych czynności pod pewnymi warunkami (póki istnieją warunki wyrażone przez tak zwany niezmiennik pętli – wyrażenie logiczne) oraz pętla typu &amp;#039;&amp;#039;&amp;#039;repeat&amp;#039;&amp;#039;&amp;#039; – czyli wykonywanie operacji tak długo, aż osiągniemy zamierzony efekt – cel wyrażony także przez wyrażenie logiczne. W pętli &amp;#039;&amp;#039;&amp;#039;while&amp;#039;&amp;#039;&amp;#039; warunek sprawdzamy na początku, a wykonanie operacji następuje, gdy jest on prawdziwy (jeśli nie – sterowanie przechodzi do miejsca po pętli). W pętli &amp;#039;&amp;#039;&amp;#039;repeat&amp;#039;&amp;#039;&amp;#039; warunek sprawdza się na końcu, a gdy jest spełniony – nie następuje nawrót do początku. Pętle te są równoważne i czasem występuje tylko pierwsza z nich (while) – która jest bardziej naturalna (to jakby zwielokrotnienie instrukcji warunkowej). Lepsze zrozumienie tego zagadnienia zapewni lektura części dotyczącej implementacji algorytmów.&lt;br /&gt;
&lt;br /&gt;
czytaj dalej:&lt;br /&gt;
[[Implementacja algorytmów]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>