Informatika2-2014/Gyakorlat01

A MathWikiből
(Változatok közti eltérés)
 
(egy szerkesztő 20 közbeeső változata nincs mutatva)
2. sor: 2. sor:
  
 
* A félévről: http://xkcd.com/353/
 
* A félévről: http://xkcd.com/353/
 +
* Windows tutorial http://docs.python.org/2/faq/windows
 
=== Elmélet ===
 
=== Elmélet ===
 
=== Bevezetés ===
 
 
* Altalános körben használható
 
* Altalános körben használható
 
* Magas szintű programozási nyelv
 
* Magas szintű programozási nyelv
21. sor: 20. sor:
 
* Python interpreter futtatása:
 
* Python interpreter futtatása:
 
<python>
 
<python>
$ <strong>python</strong>       ## Run the Python interpreter
+
$ python        ## Run the Python interpreter
 
Python 2.7.1 (r271:86832, Jul 31 2011, 19:30:53)  
 
Python 2.7.1 (r271:86832, Jul 31 2011, 19:30:53)  
 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
 
Type "help", "copyright", "credits" or "license" for more information.
 
Type "help", "copyright", "credits" or "license" for more information.
>>> <strong>a = 6</strong>       ## set a variable in this interpreter session     
+
>>> a = 6      ## set a variable in this interpreter session     
>>> <strong>a</strong>           ## entering an expression prints its value
+
>>> a          ## entering an expression prints its value
 
6
 
6
>>> <strong>a + 2</strong>
+
>>> a + 2
 
8
 
8
>>> <strong>a = 'hi'</strong>   ## a can hold a string just as well
+
>>> a = 'hi'    ## a can hold a string just as well
>>> <strong>a</strong>      
+
>>> a     
 
'hi'
 
'hi'
>>> <strong>len(a)</strong>     ## call the len() function on a string
+
>>> len(a)      ## call the len() function on a string
 
2
 
2
>>> <strong>foo(a)</strong>     ## try something that doesn't work
+
>>> foo(a)      ## try something that doesn't work
 
Traceback (most recent call last):
 
Traceback (most recent call last):
   File "<stdin>", line 1, in ?
+
   File "", line 1, in ?
 
NameError: name 'foo' is not defined
 
NameError: name 'foo' is not defined
 
>>> ^D          ## type CTRL-d to exit (CTRL-z in Windows/DOS terminal)
 
>>> ^D          ## type CTRL-d to exit (CTRL-z in Windows/DOS terminal)
 
</python>
 
</python>
=== Feladatok ===
+
* Python program:
 +
<python>
 +
#!/usr/bin/python
  
=== 1. Házi Feladat ===
+
# import modules used here -- sys is a very standard one
 +
import sys
 +
 
 +
# Gather our code in a main() function
 +
def main():
 +
    print 'Hello there', sys.argv[1]
 +
    # Command line args are in sys.argv[1], sys.argv[2] ...
 +
    # sys.argv[0] is the script name itself and can be ignored
 +
 
 +
# Standard boilerplate to call the main() function to begin
 +
# the program.
 +
if __name__ == '__main__':
 +
    main()
 +
</python>
 +
 
 +
<bash>
 +
$ python hello.py Guido
 +
Hello there Guido
 +
$ ./hello.py Alice    # without needing 'python' first (Unix)
 +
Hello there Alice
 +
</bash>
 +
* Függvények:
 +
<python>
 +
# Defines a "repeat" function that takes 2 arguments.
 +
def repeat(s, exclaim):
 +
    """Returns the string s repeated 3 times.
 +
    If exclaim is true, add exclamation marks.
 +
    """
 +
 
 +
    result = s + s + s # can also use "s * 3" which is faster (Why?)
 +
    if exclaim:
 +
        result = result + '!!!'
 +
    return result
 +
</python>
 +
*Egyszerű adattípusok
 +
**None - a semmi programbeli megvalósulása
 +
**numerikus
 +
**egész
 +
**lebegőpontos
 +
**(complex)
 +
**long
 +
**boolean
 +
=== Feladatok ===
 +
==== Python interpreter ====
 +
* Nyisd meg a Python interpretert parancssorban
 +
* Számold ki az alábbi összefüggések értékét
 +
** 12 + 96
 +
** 72 - 4
 +
** (x^2 + 4x + 4), ha x = 0, x = 1, x = 2 ,x = 10
 +
** sqrt(6), sqrt(9)
 +
** 1032243 8354-el való osztási maradéka
 +
** 1032243 / 8354
 +
** Segítség:
 +
<python>
 +
>>> pow(2,10)
 +
1024
 +
>>> 8/6
 +
1
 +
>>> 8./6
 +
1.3333333333333333
 +
>>> 8%6
 +
2
 +
</python>
 +
==== Oszthatóság - "1. Python program" ====
 +
* Írdd meg első Python programodat az elméleti bevezetőben leírtak alapján.
 +
* A programot szövegszerkesztőben írdd, majd parancssorban futtasd.
 +
* A program vizsgálja meg, hogy két paraméterként kapott szám osztható-e egymással, és írja ki az oszthatóságot a felhasználónak.
 +
* Segítség:
 +
<python>
 +
>>> print "Hello, Python!";
 +
Hello, Python!
 +
</python>
 +
==== Üzemanyag ====
 +
* A program bemenetként kapja meg, hogy a felhasználó hány gallon üzemanyagot használna fel.
 +
* A program írja ki az alábbi információkat:
 +
** A felhasznált üzemanyag mennyisége literben
 +
***1 gallon = 3.7854 l
 +
** Az üzemanyag gyártásához szükséges olaj mennyisége hordóban mérve.
 +
*** Mindenképpen egész hordók vásárlására van szükség.
 +
*** 1 hordó olajból 19.5 gallon üzemanyag készíthető.
 +
** A megfelelő CO2 terhelés kg-ban
 +
*** 1 gallon üzemanyag esetén ez ~ 9 kg CO2
 +
** A hordókban  vásárolt alapanyag olaj ára az aktuális árfolyamon 3 különböző pénznemben: EUR, USD, HUF.
 +
==== Fibonacci ====
 +
* Írj Python scriptet, mely megadja a Fibonacci számok első n elemét.
 +
==== Legnagyobb közös osztó ====
 +
* Határozd meg két szám legnagyobb közös osztóját
 +
==== Fizika ====
 +
* A program bemenetként kapja meg, hogy az űrutazáshoz használt űrhajó sebessége hány %-a a fény sebességének (300 000 000 m/s).
 +
** Például 10% esetén a bemenet 0.1 és ekkor az űrhajó sebessége 30 000 000 m/s
 +
** Az űrhajó tömegét, feltéve, hogy nyugalmi tömege 70,000 kg.
 +
** Azon eltelt időket, melyeket az űrhajósok érzékelnének, ha a következő objektumokra utaznának a Földről:
 +
*** Alpha Centauri: 4.3 fényév
 +
*** Androméda Galaxis 2 000 000 fényév
 +
** Segítség:
 +
*** http://hu.wikipedia.org/wiki/Id%C5%91dilat%C3%A1ci%C3%B3
 +
*** http://hu.wikipedia.org/wiki/Relativisztikus_t%C3%B6meg

A lap jelenlegi, 2014. február 11., 11:55-kori változata

Tartalomjegyzék

Python

Elmélet

  • Altalános körben használható
  • Magas szintű programozási nyelv
  • Egyik alap elve az olvasható kód írása tiszta szintaxis használatával
  • Dinamikus interpreter nyelv
  • Sokszor script nyelvként használjuk
  • "Pythonban minden objektum"
  • PEP8
ez_egy_hosszu_fuggvenynev(ez_egy_hosszu_valtozo)
OsztalyNev
  • Python interpreter futtatása:
$ python        ## Run the Python interpreter
Python 2.7.1 (r271:86832, Jul 31 2011, 19:30:53) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 6       ## set a variable in this interpreter session    
>>> a           ## entering an expression prints its value
6
>>> a + 2
8
>>> a = 'hi'    ## a can hold a string just as well
>>> a     
'hi'
>>> len(a)      ## call the len() function on a string
2
>>> foo(a)      ## try something that doesn't work
Traceback (most recent call last):
  File "", line 1, in ?
NameError: name 'foo' is not defined
>>> ^D          ## type CTRL-d to exit (CTRL-z in Windows/DOS terminal)
  • Python program:
#!/usr/bin/python
 
# import modules used here -- sys is a very standard one
import sys
 
# Gather our code in a main() function
def main():
    print 'Hello there', sys.argv[1]
    # Command line args are in sys.argv[1], sys.argv[2] ...
    # sys.argv[0] is the script name itself and can be ignored
 
# Standard boilerplate to call the main() function to begin
# the program.
if __name__ == '__main__':
    main()
$ python hello.py Guido
Hello there Guido
$ ./hello.py Alice    # without needing 'python' first (Unix)
Hello there Alice
  • Függvények:
# Defines a "repeat" function that takes 2 arguments.
def repeat(s, exclaim):
    """Returns the string s repeated 3 times.
    If exclaim is true, add exclamation marks.
    """
 
    result = s + s + s # can also use "s * 3" which is faster (Why?)
    if exclaim:
        result = result + '!!!'
    return result
  • Egyszerű adattípusok
    • None - a semmi programbeli megvalósulása
    • numerikus
    • egész
    • lebegőpontos
    • (complex)
    • long
    • boolean

Feladatok

Python interpreter

  • Nyisd meg a Python interpretert parancssorban
  • Számold ki az alábbi összefüggések értékét
    • 12 + 96
    • 72 - 4
    • (x^2 + 4x + 4), ha x = 0, x = 1, x = 2 ,x = 10
    • sqrt(6), sqrt(9)
    • 1032243 8354-el való osztási maradéka
    • 1032243 / 8354
    • Segítség:
>>> pow(2,10)
1024
>>> 8/6
1
>>> 8./6
1.3333333333333333
>>> 8%6
2

Oszthatóság - "1. Python program"

  • Írdd meg első Python programodat az elméleti bevezetőben leírtak alapján.
  • A programot szövegszerkesztőben írdd, majd parancssorban futtasd.
  • A program vizsgálja meg, hogy két paraméterként kapott szám osztható-e egymással, és írja ki az oszthatóságot a felhasználónak.
  • Segítség:
>>> print "Hello, Python!";
Hello, Python!

Üzemanyag

  • A program bemenetként kapja meg, hogy a felhasználó hány gallon üzemanyagot használna fel.
  • A program írja ki az alábbi információkat:
    • A felhasznált üzemanyag mennyisége literben
      • 1 gallon = 3.7854 l
    • Az üzemanyag gyártásához szükséges olaj mennyisége hordóban mérve.
      • Mindenképpen egész hordók vásárlására van szükség.
      • 1 hordó olajból 19.5 gallon üzemanyag készíthető.
    • A megfelelő CO2 terhelés kg-ban
      • 1 gallon üzemanyag esetén ez ~ 9 kg CO2
    • A hordókban vásárolt alapanyag olaj ára az aktuális árfolyamon 3 különböző pénznemben: EUR, USD, HUF.

Fibonacci

  • Írj Python scriptet, mely megadja a Fibonacci számok első n elemét.

Legnagyobb közös osztó

  • Határozd meg két szám legnagyobb közös osztóját

Fizika

  • A program bemenetként kapja meg, hogy az űrutazáshoz használt űrhajó sebessége hány %-a a fény sebességének (300 000 000 m/s).
Személyes eszközök