Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:dydaktyka:asd:cwiczenia:pseudokod [2010/02/27 18:25]
kinio
pl:dydaktyka:asd:cwiczenia:pseudokod [2019/06/27 15:50] (aktualna)
Linia 4: Linia 4:
   * Stosujemy wcięcia zgodnie z poziomami zagnieżdżania się kodu.   * Stosujemy wcięcia zgodnie z poziomami zagnieżdżania się kodu.
   * Wszystkie zmienne typów prymitywnych piszemy małą literą.   * Wszystkie zmienne typów prymitywnych piszemy małą literą.
-  * Wszystkie zmienne będące strukturami złożonymi ​(tablice, obiekty) ​piszemy dużą literą.+  * Wszystkie zmienne będące strukturami złożonymi piszemy dużą literą
 +  * Wprowadzamy symbol nieoznaczony **nil**.
  
 ==== Zmienne ==== ==== Zmienne ====
Linia 29: Linia 30:
 ... ...
 </​code>​ </​code>​
 +==== Operatory ====
 +  * Dostępne są podstawowe operatory arytmetyczne + - / *
 +  * Dostępne są również następujące operatory: % (modulo), ^ (potęgowanie),​ | (dzielenie całkowite)
  
 ===== Tablice ===== ===== Tablice =====
Linia 34: Linia 38:
   * Numerowanie elementów tablic rozpoczynamy od **1**.   * Numerowanie elementów tablic rozpoczynamy od **1**.
   * Do danego elementu tablicy odnosimy się podając jego indeks w nawiasach kwadratowych po nazwie tablicy:<​code>​   * Do danego elementu tablicy odnosimy się podając jego indeks w nawiasach kwadratowych po nazwie tablicy:<​code>​
-A[0]      # pierwszy element tablicy+A[1]      # pierwszy element tablicy
 A[i]      # i-ty element tablicy A[i]      # i-ty element tablicy
 A[i-1] ​   # i-1 element tablicy A[i-1] ​   # i-1 element tablicy
Linia 47: Linia 51:
 </​code>​ </​code>​
 ===== Funkcje ===== ===== Funkcje =====
-  * Nazwy funkcji nie będącymi metodami piszemy dużymi literami. +  * Definicję funkcji rozpoczynamy słowem **func**.
-  ​Definiując funkcję specyfikujemy jedynie listę argumentów jakie przyjmuje. Nie specyfikujemy typu wartości jaką funkcja zwraca.+
   * Koniec definicji funkcji oznaczamy przy pomocy **endfunc**.   * Koniec definicji funkcji oznaczamy przy pomocy **endfunc**.
 +  * Definiując funkcję specyfikujemy jedynie listę argumentów jakie przyjmuje. Nie specyfikujemy typu wartości jaką funkcja zwraca oraz typów argumentów.
 +  * Argumenty do funkcji są przekazywane przez wartość.
   * Szkielet przykładowej definicji funkcji (o nazwie search) wygląda następująco:<​code>​   * Szkielet przykładowej definicji funkcji (o nazwie search) wygląda następująco:<​code>​
-SEARCH(A, a, b)+func SEARCH(A, a, b)
   ...   ...
   instrukcje wewnątrz funkcji wraz z wcięciami   instrukcje wewnątrz funkcji wraz z wcięciami
Linia 61: Linia 66:
   * Funkcje wywołujemy pisząc jej nazwę a następnie w okrągłych nawiasach listę argumentów rozdzielonych przecinkami:<​code>​   * Funkcje wywołujemy pisząc jej nazwę a następnie w okrągłych nawiasach listę argumentów rozdzielonych przecinkami:<​code>​
 a := SEARCH(A,​i,​j) a := SEARCH(A,​i,​j)
 +</​code>​
 +  * Zakładamy że funkcja zwracająca wartość zwraca ją w postaci **niestałej referencji**,​ wtedy możliwy staje się zapis:<​code>​
 +c := funkcja(A)
 +funkcja(B) := c
 +</​code>​lub po prostu:<​code>​
 +funkcja(B) := funkcja(A)
 </​code>​ </​code>​
 ===== Instrukcje warunkowe ===== ===== Instrukcje warunkowe =====
   * Będziemy stosować głównie instrukcję **if-elseif-else-endif**.   * Będziemy stosować głównie instrukcję **if-elseif-else-endif**.
   * Instrukcje **elseif** oraz **else** są opcjonalne.   * Instrukcje **elseif** oraz **else** są opcjonalne.
-  * Dostępne są następujące operatory relacji: ​**=, !=, >, >=, <, < =**.+  * Dostępne są następujące operatory relacji: =, !=, >, >=, <, < =.
   * Warunki możemy łączyć przy pomocy następujących operatorów:​   * Warunki możemy łączyć przy pomocy następujących operatorów:​
     * **and** - binarny - zwraca prawdę jeżeli oba warunki są prawdziwe     * **and** - binarny - zwraca prawdę jeżeli oba warunki są prawdziwe
Linia 72: Linia 83:
     * **not** - unarny - zwraca prawdę jeżeli warunek jest niespełniony.     * **not** - unarny - zwraca prawdę jeżeli warunek jest niespełniony.
   * Przykładowe zastosowanie instrukcji warunkowej do określenia maksymalnej z pośród trzech wartości:<​code>​   * Przykładowe zastosowanie instrukcji warunkowej do określenia maksymalnej z pośród trzech wartości:<​code>​
-MAX(a,b,c)+func MAX(a,b,c)
   if a > b   if a > b
     if a > c     if a > c
Linia 89: Linia 100:
 </​code>​ </​code>​
   * Przy pomocy nawiasów okrągłych możemy grupować wyrażenia relacji, definiując równocześnie kolejności ich sprawdzania.\\ Powyższy kod może zostać przepisany także w następującej postaci:<​code>​   * Przy pomocy nawiasów okrągłych możemy grupować wyrażenia relacji, definiując równocześnie kolejności ich sprawdzania.\\ Powyższy kod może zostać przepisany także w następującej postaci:<​code>​
-MAX(a,b,c)+func MAX(a,b,c)
   if (a > b) and (a > c)   if (a > b) and (a > c)
     return a     return a
Linia 100: Linia 111:
  
 ===== Pętle ===== ===== Pętle =====
 +  * Działanie każdej pętli może zostać przerwane w dowolnym momencie przy pomocy instrukcji **break**.
 +  * Działanie każdej pętli może zostać przerwane i natychmiast wznowione przy pomocy instrukcji **continue**.
 +  * Instrukcje **break** i **continue** odnoszą się tylko do najbardziej zagnieżdżonej pętli.
 ==== for ==== ==== for ====
 +  * Poprawna konstrukcja pętli **for** wymaga podania:
 +    * nazwy zmiennej która będzie licznikiem w danej pętli,
 +    * krańcowych wartości licznika.
 +  * Podanie kroku jest opcjonalne. Domyślną wartością kroku jest **1**.
 +  * Przykładowa pętla **for**:<​code>​
 +for zmienna in 7...17 step 2
 +  wypisz zmienna na ekran
 +endfor
 +</​code>​
 +  * Powyższa pętla wypisze na ekran liczby: 7,​9,​11,​13,​15,​17
 ==== while ==== ==== while ====
- +  * Pętla **while** wykonuje kod tak długo jak długo jest spełniony warunek działania pętli. 
-===== Obiekty i metody =====+  * Przykład pętli **while** odpowiadający powyższej pętli **for**:<​code>​ 
 +zmienna :
 +while zmienna <17 
 +  wypisz zmienna na ekran 
 +  zmienna :zmienna + 2 
 +endwhile 
 +</​code>​
pl/dydaktyka/asd/cwiczenia/pseudokod.1267291513.txt.gz · ostatnio zmienione: 2019/06/27 15:51 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0