Revision 81 as of 2010-04-28 21:37:20

Clear message

Operačné systémy

2008/09 -- LS

Vyučujúci

Konzultačné hodiny

V utorok 16:00-17:00. Radšej ale konzultuje priamo na cvičení.

Stručná osnova predmetu

Výsledky

/Výsledky

Zadanie na druhé zápočtové cvičenie

Toto zadanie si vypracujte doma. Ak to zvládnete sami, nemali by ste mať na skúšobnom cvičení problém. Môžete si samozrejme navzájom pomáhať. Zadania nebudem zbierať. Na cvičení vám dám urobiť niečo podobné, takže si vypracované zadania doneste, pomôže vám to. Body dostanete za to, čo urobíte priamo na cvičení.

Skúšobné cvičenie bude 11.5.2010 počas cvičenia.

Napíšte modul stack.py, ktorý obsahuje implementáciu

Trieda Stack implemetuje takéto metódy:

__init__(self)

Inicializuj zásobník ako prázdny.

push(self,what)

Vloží what na vrch zásobníka.

peek(self)

Vráti objekt, ktorý je na vrchu zásobníka, pričom ho nevyberá.

pop(self)

Vyberie objekt zo zásobníka, návratová hodnota je tento objekt. Ak je zásobník prázdny, môže (a má) vyvolať výnimku.

empty(self)

Vyprázdni zásobník.

__repr__(self)

Vráti reťazec, v ktorom sú zreťazené repr(x) pre všetky objekty x v zásobníku, oddelené medzerami. Vrch zásobníka je na konci tohto reťazca.

Okrem triedy Stack obsahuje modul stack aj takúto funkciu:

stack_from_string(s)

Ako parameter očakáva reťazec celých čísel oddelených medzerami, napr. "1 -20 17 4 5". Vráti Stack naplnený týmito číslami, pričom vrchné číslo je na konci s.

Príklad použitia modulu na príkazovom riadku Pythonu

   1 >>> import stack
   2 >>> s=stack.Stack()
   3 >>> s.push(10)
   4 >>> s.push(-10)
   5 >>> s.push(100)
   6 >>> print s
   7 10 -10 100
   8 >>> s.peek()
   9 100
  10 >>> print s
  11 10 -10 100
  12 >>> s.pop()
  13 100
  14 >>> print s
  15 10 -10
  16 >>> s.empty()
  17 >>> print s
  18 
  19 >>> s.pop()
  20 Traceback (most recent call last):
  21   File "<stdin>", line 1, in <module>
  22   File "/home/gejza/vyuka/python_vyuka/stack.py", line 31, in pop
  23     return self.l.pop()
  24 IndexError: pop from empty list
  25 >>> s2=stack.stack_from_string("1 2 3 17")
  26 >>> print s2
  27 1 2 3 17
  28 >>> s2.pop()
  29 17
  30 >>> print s2
  31 1 2 3
  32 >>>                        

Ďalšie cvičenia

Cvičenia zo shellu

Cvičenia z Pythonu

Materiály

Literatúra

  1. Linux: Příručka českého uživatele, Vilém Vychodil; Computer Press 2003, Brno (je žiadúce, aby každý mal svoju kópiu)

  2. Začínáme programovat v jazyce Python, Daryl Harms, Kenneth McDonald; Computer Press, 2003

  3. Learning Python",, Mark Lutz, David Ascher; O'Reilly 2007, http://slav0nic.org.ua/static/books/python/OReilly.Learning.Python.3rd.Edition.Oct.2007.eBook-BBL.rar

  4. The Art of Unix Programming, Eric S. Raymond, http://www.faqs.org/docs/artu/

  5. Umění programování v Unixu, Eric S. Raymond, (český preklad horeuvedeného)

  6. How To Ask Questions The Smart Way, Eric Steven Raymond, http://www.catb.org/~esr/faqs/smart-questions.html

  7. Dive into Python, Mark Pilgrim, http://www.diveintopython.org/

  8. Advanced Bash-Scripting Guide, Mendel Cooper, http://tldp.org/guides.html

  9. GNU/Linux Command-Line Tools Summary, Gareth Anderson, http://tldp.org/guides.html

  10. A Byte of Python, Swaroop C H, http://www.swaroopch.com/notes/Python

  11. How to Think Like a Computer Scientist, Jeffrey Elkner, Allen B. Downey and Chris Meyers, http://openbookproject.net//thinkCSpy/

Webové stránky

  1. http://www.root.cz/clanky/regularni-vyrazy-1/ seriál o regulárnych výrazoch od P. Satrapu

  2. http://www.py.cz/ Český server venovaný Pythonu, obsahuje aj dokumentáciu k starším verziám Pythonu

Podmienky na zápočet

15 bodov z 30. Body sa budú udeľovať v rámci cvičení. Budú 2 zápočtové cvičenia, jedno zo shell scriptov a jedno z Pythonu.

Príklady a cvičenia

Výsledky