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 17:50]
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 46: Linia 50:
 B := A[3...length(A)-1] ​    # Teraz B zwiera następujące wartości: 5,7,11,13 B := A[3...length(A)-1] ​    # Teraz B zwiera następujące wartości: 5,7,11,13
 </​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**.
-  * Szkielet przykładowej definicji funkcji (o nazwie search) wygląda następująco:​ +  ​* Definiując funkcję specyfikujemy jedynie listę argumentów jakie przyjmuje. Nie specyfikujemy typu wartości jaką funkcja zwraca oraz typów argumentów. 
-<​code>​ +  * Argumenty do funkcji są przekazywane przez wartość. 
-SEARCH(A, a, b)+  ​* Szkielet przykładowej definicji funkcji (o nazwie search) wygląda następująco:<​code>​ 
 +func SEARCH(A, a, b)
   ...   ...
-  instrukcje funkcji+  instrukcje ​wewnątrz ​funkcji ​wraz z wcięciami
   ...   ...
 endfunc endfunc
 </​code>​ </​code>​
   * Funkcja może zwrócić dowolną wartość w dowolnym momencie.   * Funkcja może zwrócić dowolną wartość w dowolnym momencie.
 +  * Zwrócenie wartości przez funkcję następuję przy pomocy słowa **return** po którym musi wystąpić wartość zwracana.
   * 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>​ </​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>​
 ===== Instrukcje warunkowe ===== ===== Instrukcje warunkowe =====
 +  * Będziemy stosować głównie instrukcję **if-elseif-else-endif**.
 +  * Instrukcje **elseif** oraz **else** są opcjonalne.
 +  * Dostępne są następujące operatory relacji: =, !=, >, >=, <, < =.
 +  * Warunki możemy łączyć przy pomocy następujących operatorów:​
 +    * **and** - binarny - zwraca prawdę jeżeli oba warunki są prawdziwe
 +    * **or** - binarny - zwraca prawdę jeżeli przynajmniej jeden warunek jest prawdziwy.
 +    * **xor** - binarny - zwraca prawdę jeżeli jeden z warunków jest prawdą a drugi fałszem.
 +    * **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>​
 +func MAX(a,b,c)
 +  if a > b
 +    if a > c
 +      return a
 +    else
 +      return c
 +    endif
 +  else
 +    if b > c
 +      return b
 +    else
 +      return c
 +    endif
 +  endif
 +endfunc
 +</​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>​
 +func MAX(a,b,c)
 +  if (a > b) and (a > c)
 +    return a
 +  elseif (a <= b) and (a > c)
 +    return b
 +  endif
 +  return c
 +endfunc
 +</​code>​
  
 ===== Pętle ===== ===== Pętle =====
- +  * Działanie każdej pętli może zostać przerwane w dowolnym momencie przy pomocy instrukcji **break**. 
-===== Obiekty i metody ​=====+  * 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 ==== 
 +  * 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 ==== 
 +  * Pętla **while** wykonuje kod tak długo jak długo jest spełniony warunek działania pętli. 
 +  * Przykład pętli **while** odpowiadający powyższej pętli **for**:<​code>​ 
 +zmienna := 7 
 +while zmienna <= 17 
 +  wypisz zmienna na ekran 
 +  zmienna := zmienna + 2 
 +endwhile 
 +</​code>​
pl/dydaktyka/asd/cwiczenia/pseudokod.1267289429.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