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/28 20:08]
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 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 =====
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:   * Poprawna konstrukcja pętli **for** wymaga podania:
Linia 111: Linia 125:
 </​code>​ </​code>​
   * Powyższa pętla wypisze na ekran liczby: 7,​9,​11,​13,​15,​17   * 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.   * Pętla **while** wykonuje kod tak długo jak długo jest spełniony warunek działania pętli.
-  * Pętla może zostać zakończona w dowolnej chwili przy pomocy instrukcji **break**. 
-  * Instrukcja **break** przerywa tylko najbardziej zagnieżdżoną pętlę. 
   * Przykład pętli **while** odpowiadający powyższej pętli **for**:<​code>​   * Przykład pętli **while** odpowiadający powyższej pętli **for**:<​code>​
 zmienna := 7 zmienna := 7
-while zmienna ​>= 17+while zmienna ​<= 17
   wypisz zmienna na ekran   wypisz zmienna na ekran
   zmienna := zmienna + 2   zmienna := zmienna + 2
 endwhile endwhile
-</​code>​ 
- 
-===== Obiekty i metody ===== 
-  * Nazwy obiektów piszemy dużymi literami. 
-  * Nazwy metod obiektów piszemy małymi literami. 
-  * Wywołanie metody na rzecz obiektu posiada następującą składnię:<​code>​ 
-metoda(OBIEKT) 
-</​code>​ 
-  * Zakładamy że metoda zwracająca wartość zwraca ją w postaci **niestałej referencji**,​ wtedy możliwy staje się zapis:<​code>​ 
-c := metoda(A) 
-metoda(B) := c 
-</​code>​lub po prostu:<​code>​ 
-metoda(B) := metoda(A) 
 </​code>​ </​code>​
pl/dydaktyka/asd/cwiczenia/pseudokod.1267384112.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