To jest stara wersja strony!


Opis pseudokodu

Informacje podstawowe

  • Stosujemy wcięcia zgodnie z poziomami zagnieżdżania się kodu.
  • Wszystkie zmienne typów prymitywnych piszemy małą literą.
  • Wszystkie zmienne będące strukturami złożonymi (tablice, obiekty) piszemy dużą literą.

Zmienne

  • Nie deklarujemy/definiujemy zmiennych lokalnych funkcji.
  • Jeżeli zachodzi potrzeba wprowadzenia nowej zmiennej po prostu to robimy.
  • Każda zmienna jest widzialna w zakresie całej funkcji, wyjątkiem są:
    • Zmienne globalne, które definiujemy w następujący sposób
      global j
    • Zmienne liczące w pętlach.
  • Przypisanie wartości do zmiennej wykonujemy operatorem :=:
    j := 2
    j := j+1
    a := j

Komentarze

  • Symbolem # rozpoczynamy komentarz który trwa do końca linii.
  • Brak jest komentarzy wielolinijkowych.
  • W przypadku kiedy należy wykonać instrukcje nie związane bezpośrednio z kontekstem rozważanego problemu, można je zastąpić opisem słownym (komentarzem) nie poprzedzonym znakiem komentarza:
    ...
    i := i*2
    wczytaj a z klawiatury
    i := i*a
    wypisz i na ekran
    ...

Tablice

  • Nazwy tablic piszemy dużymi literami.
  • Numerowanie elementów tablic rozpoczynamy od 1.
  • Do danego elementu tablicy odnosimy się podając jego indeks w nawiasach kwadratowych po nazwie tablicy:
    A[1]      # pierwszy element tablicy
    A[i]      # i-ty element tablicy
    A[i-1]    # i-1 element tablicy
  • Długość tablicy jest zwracana przez funkcję length:
    n := length(A)    # teraz n przechowuje długość tablicy, jest to jednocześnie indeks jej ostatniego elementu.
  • Nie alokujemy/dealokujemy pamięci dla tablic. Zakładamy że jest to robione automatycznie.
  • Wyznaczanie podtablicy jest możliwe przy pomocy trzykropka:
    Wypełnij A ciągiem kolejnych liczb pierwszych od 2 do 17
    B := A[3...length(A)-1]     # Teraz B zwiera następujące wartości: 5,7,11,13

Funkcje

  • Nazwy funkcji nie będącymi metodami piszemy dużymi literami.
  • 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.
  • Szkielet przykładowej definicji funkcji (o nazwie search) wygląda następująco:
    SEARCH(A, a, b)
      ...
      instrukcje wewnątrz funkcji wraz z wcięciami
      ...
    endfunc
  • 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:
    a := SEARCH(A,i,j)

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:
    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
  • 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:
    MAX(a,b,c)
      if (a > b) and (a > c)
        return a
      elseif (a <= b) and (a > c)
        return b
      endif
      return c
    endfunc

Pętle

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:
    for zmienna in 7...17 step 2
      wypisz zmienna na ekran
    endfor
  • 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.
  • 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:
    zmienna := 7
    while zmienna <= 17
      wypisz zmienna na ekran
      zmienna := zmienna + 2
    endwhile

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ę:
    metoda(OBIEKT)
  • Zakładamy że metoda zwracająca wartość zwraca ją w postaci niestałej referencji, wtedy możliwy staje się zapis:
    c := metoda(A)
    metoda(B) := c

    lub po prostu:

    metoda(B) := metoda(A)
pl/dydaktyka/asd/cwiczenia/pseudokod.1267384420.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