Informatika1-2012/Gyakorlat7
A MathWikiből
A lap korábbi változatát látod, amilyen Rpalovics (vitalap | szerkesztései) 2012. október 16., 09:31-kor történt szerkesztése után volt.
Tartalomjegyzék |
Ismétlés
- előző gyakorlat sage worksheet
- BFS
- DFS
- Dijkstra algoritmus
- Bináris keresés rendezett listában (előadás)
- Kódolni jó! coding
- https://docs.google.com/document/d/1sn7MQl8hyO0ixGrzFWusmmqFbv1x_rwyDEP2PFUHpXA/edit
Analitikus számítások sage-ben
sage: x = var('x') sage: solve(x^2 + 3*x + 2, x)
sage: x, b, c = var('x b c') sage: solve([x^2 + b*x + c == 0],x)
- Deriválás
sage: u = var('u') sage: diff(sin(u), u)
- n-edik derivált:
sage: diff(sin(x^2), x, 4)
- Határozatlan integrálás
sage: integral(x*sin(x^2), x)
- Határozott integrálás
sage: integral(x/(x^2+1), x, 0, 1)
- Egyenletrendszerek, differenciálegyenletek ...
Python
Bevezetés
- magas szintű programozási nyelv
- interpreteres nyelv
- objektumorientált
- free and open source
- terminál -> Python -> interaktív mód
- Python scriptek
Célok
- Python scriptek írása
- file I/O
- modulok és importálásuk
- függvények
- argumentumok
Néhány hasznos tudnivaló
Interaktív mód
robee64@M14Z:~$ python
- Kilépés python-ból:
>>> exit()
Scriptek
- Python script meghívása
robee64@M14Z:~$ python proba.py
- Modulok improtálása pythonban
>>> import random >>> import math >>> import sys
- Egy példa scriptre (és az input() függvényre):
#!/usr/bin/python #coding=UTF-8 s = input("Mondj egy számot:") print "Ennél eggyel kisebbet mondtál: ", str(s+1)
Függvények
- Függvény definiálása
def proba(): ...
- Példa függvényekre:
def main(): userNumber=getNumber() print "Ennel eggyel kisebbet mondtal: ", str(userNumber+1) def getNumber(): num = input("Mondj egy szamot:") return num main()
- Ciklusok, stb. hasonlóak, mint sage-ben.
Argumentumok
- indexelés!
#!/usr/bin/python #coding: utf-8 import sys for arg in sys.argv: print arg
#!/usr/bin/python #coding: utf-8 x=float(sys.argv[1])
File I/O
- MIT nyitok meg
- "HOGYAN": 'r','w','a' (read, write, append)
f = open('input.txt', 'r') #fileString=f.read() #lineString = f.readline() for line in f: L=[] L=line.split(" ") for i in L: print i f_out = open('out.txt', 'w') f_out.write('This is how we write out number into a file:' + str(6) + '\n')
Feladatok
- Írj programot, mely egy argumentumként kapott számig kiírja 1-től az egész számokat a szintén argumentumként megadott file-ba.
- Írj programot, ami egy két oszlopos file-t (az oszlopokat " " választja el) minden sorában összeadja az elemeket. A file bemenő és kimeneti file-ok nevét a program argumentumként kapja meg. A kimenet 3 oszlopból álljon, mely tartalmazza az eredeti oszlopokat, és - harmadikként - az összeget. Törekedj beszélő változónevek megadására.
- Struktúráld át úgy az előző programodat, az összeadásra írj egy külön függvényt.