Számítógépes Hálózatok GY 1.hét

Hasonló dokumentumok
Számítógépes Hálózatok. 1. Gyakorlat

Számítógépes Hálózatok. 1. gyakorlat

Imperatív programozás

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

A Python programozási nyelv

Bevezetés a Python programozási nyelvbe

PYTHON. Avagy hosszú az út a BioPythonig

Imperatív programozás

Ismerkedés a Python programnyelvvel. és annak micropython változatával

Python tanfolyam Python bevezető I. rész

A Python programozási nyelv

Szkriptnyelvek. 1. UNIX shell

Számítógépes Hálózatok GY 8.hét

2018, Diszkrét matematika

Hálózatok építése és üzemeltetése

Számítógépes Hálózatok GY 4.hét

Smalltalk 2. Készítette: Szabó Éva

2018, Diszkrét matematika

Programozási nyelvek Python

Számítógépes Hálózatok GY 9.hét

Python bevezető foglalkozás Python bevezető foglalkozás

AWK programozás, minták, vezérlési szerkezetek

BASH script programozás II. Vezérlési szerkezetek

2016, Diszkrét matematika

Komputeralgebra Rendszerek

Ismerkedés a Python programnyelvvel. és annak micropython változatával

Python I. Vincze Dávid Miskolci Egyetem, IIT

2019, Funkcionális programozás. 2. el adás. MÁRTON Gyöngyvér

1. Egészítsük ki az alábbi Python függvényt úgy, hogy a függvény meghatározza, egy listába, az első n szám faktoriális értékét:

AWK programozás, minták, vezérlési szerkezetek

Operációs Rendszerek II. labor. 2. alkalom

2018, Diszkrét matematika

Fordított és szkript nyelvek összehasonlító elemzése. Sergyán Szabolcs

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

Imperatív programozás

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

2018, Funkcionális programozás

2018, Diszkre t matematika. 8. elo ada s

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Számítógépes Hálózatok GY 3-4.hét

Számítógépes Hálózatok

Gyakorló feladatok az 1. nagy zárthelyire

Tartalomjegyzék. Általános Információ! 2. Felhasználói dokumentáció! 3. Feladat! 3. Környezet! 3. Használat! 3. Bemenet! 3. Példa!

Számítógépes Hálózatok GY 6.hét

Számítógépes Hálózatok. 8. gyakorlat

2016, Funkcionális programozás

Objektum Orientált Programozás VII.

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

AWK programozás Bevezetés

Funkcionális Nyelvek 2 (MSc)

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

2018, Diszkrét matematika

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Gyakorló feladatok Gyakorló feladatok

A félév során előkerülő témakörök

7. gyakorlat Sorozatok, Fájlkezelés

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós május 6. Széchenyi István Egyetem, Gy r

2019, Diszkrét matematika. 1. el adás

Változók és adattípusok Változók és adattípusok

1. Alapok. #!/bin/bash

S z á m í t ó g é p e s a l a p i s m e r e t e k

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

2016, Diszkrét matematika

2015, Diszkrét matematika

2015, Diszkrét matematika

Listák, szótárak, fájlok Listák, szótárak, fájlok

A JavaScript főbb tulajdonságai

Operációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

1. Olvassuk be két pont koordinátáit: (x1, y1) és (x2, y2). Határozzuk meg a két pont távolságát és nyomtassuk ki.

Előnyei. Helyi hálózatok tervezése és üzemeltetése 2

Programozási nyelvek JAVA EA+GY 1. gyakolat

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

Vezérlési szerkezetek Vezérlési szerkezetek: feltételes elágazás és ciklusok

2018, Funkcionális programozás

ANGOL NYELVI SZINTFELMÉRŐ 2014 A CSOPORT

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

2016, Diszkrét matematika

Programok értelmezése

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

Bevezetés a Python programozási nyelvbe

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin

A C# programozási nyelv alapjai

Programozás II. 2. Dr. Iványi Péter

SZERVER OLDALI JAVASCRIPT. 3. hét Javascript nyelvi elemek

A Python alapjainak áttekintése

SZOFTVERFEJLESZTÉS. Földtudományi mérnöki mesterszak / Geoinformatikus-mérnöki szakirány. 2017/18 II. félév. A kurzus ebben a félévben nem indult

Számítógépes Hálózatok GY 7.hét

Programozási nyelv Java

Számítógépes Hálózatok GY 2.hét

Bevezetés a programozásba I.

Mintavételes szabályozás mikrovezérlő segítségével

Webprogramozás szakkör

2018, Diszkre t matematika. 10. elo ada s

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Java és web programozás

Bevezetés a programozásba I.

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

Mi a Python? A Python alapjainak áttekintése. Példaprogram feladatkit zés. Példaprogram megvalósítás

Átírás:

Számítógépes Hálózatok GY 1.hét Vörös Péter ELTE-Ericsson Kommunikációs Hálózatok Laboratórium ELTE IK - Információs Rendszerek Tanszék vpetya@mensa.hu http://vopraai.web.elte.hu

Elérhetőségek Gyakorlat vezető: Vörös Péter Honlap: http://vopraai.web.elte.hu/ Email: vpetya@mensa.hu Iroda: 2.505 (déli tömb) 2

Követelmények Maximum 4 hiányzás megengedett Jegy összetétele: 50% SocketZH félév végén 50% Házi feladatok [kb. 20 pont lesz összesen] 3

Házi feladatok Házi feladat: Általában valamilyen programozási feladat Általában 1 hét lesz a megoldásra, néha 2 hét BE-AD rendszert fogjuk használni egy automata tesztkörnyezettel együtt, ami értékeli a beadott programokat és jelzi a kódhasonlóságokat. Másolt beadandó leadása csalásnak minősül, az egyetemi szabályoknak megfelelően járunk el ilyen esetekben! 4

Ponthatárok Jegy = (szerzettfeladat / maxfeladat) * 0,5 + (szerzettzh / maxzh) * 0,5 maxfeladat = kb. 20 pont (2-4 pontos házi feladatok) maxzh = 20 pont Százalék Érdemjegy 0-49 % Elégtelen (1) 50-59 % Elégséges (2) 60-74 % Közepes (3) 75-84 % Jó (4) 85 100 % Jeles (5) 5

Tematika 1. Bevezető, követelmények, Python alapok 2. Python alapok II., Mininet, hálózati karakterisztikák, alapvető eszközök: traceroute, ping 3. Wireshark/tcpdump forgalom elemzés. Socket programozás I. 4. Socket programozás II. 5. CRC, kódolások, MD5 6. Socket programozás III. 7. Tűzfalak: UFW, Iptables 8. MAC learning, STP, ARP, routing beállítások 9. Port forwarding, load balancing, VLAN beállítások 10. Tunneling megoldások IPv4/IPv6 11. TCP performancia cwnd nyomon követése 6

Python történelem Guido Van Rossum, 1989 karácsonya Van Rossum írta 96-ban: Over six years ago, in December 1989, I was looking for a "hobby" programming project that would keep me occupied during the week around Christmas. My office... would be closed, but I had a home computer, and not much else on my hands. I decided to write an interpreter for the new scripting language I had been thinking about lately: a descendant of ABC that would appeal to Unix/C hackers. I chose Python as a working title for the project, being in a slightly irreverent mood (and a big fan of Monty Python's Flying Circus). 7

Python tulajdonságok Könnyű tanulásra lett tervezve Tiszta, egyszerű szintaxis, kevés kulcsszó Hordozható Majdnem minden elfut Szóközöket használ program blokkok elkülönítéséhez Egy jó programozó amúgy is használná, akkor a nyelv miért ne? A változókat nem szükséges deklarálni Ettől még nem típus-független nyelv! 8

Python parancssor (Python 2.7 v 3.0) #python python> import this python> print("hello world!") python> user_name="jozsi" python> print("hello " + user_name) python> user_age=25 python> print("you are " + str(user_age) + " years old.") 9

Egyszerű számítások Python>10+2 12 Python>2*2 4 Python>3**2 9 Python>10%2 0 10

Változók Python> a = 42 Python> b = 32 Python> c = a + b Python> print(c) 74 Python> c = 'valami' Python> print(a+c) ERROR 11

String műveletek Python>print( 'alma'.upper() ) ALMA Python>print( "LO" in "Hello".upper() ) True Python>print( "Decimal Number: %d, Float: %f, String: %s" % (12,33.4,"almafa") ) Decimal Number: 12, Float: 33.400000, String: almafa 12

Listák Python> players = [12,31,27,'48',54] Python> print(players) [12, 31, 27, '48', 54] Python> players[0] 12 Python> players[-1] 54 Python> players + [22, 67] [12, 31, 27, '48', 54, 22, 67] Python> print( len(players) ) 5 13

Listák Python> players = [12,31,27,'48',54] Python> players.append(89) Python> print(len(players)) 6 Python> players[2:] [27, 48, 54, 89] 14

Listák Python> players = [12,31,27,'48',54] Python> players[2] = 'alma' Python> print(players) [12,31,'alma','48',54] Python> del players[2] [12,31,'48',54] 15

Tuple nem módosítható lista Python> players = (12,31,27,'48',54) Python> players[2] = 'alma' ERROR Python> print(players[2]) 27 Python> del players[2] ERROR Python> print(players[1:-2]) (31,27) 16

Halmazok Python> mylist = [8,3,2,3,2,4,6,8,2] Python> myset = set(mylist) Python> print( mylist ) [8, 3, 2, 3, 2, 4, 6, 8, 2] Python> myset = {8,3,2,3,2,4,6,8,2} # alternative Python> print( myset ) set([8, 2, 3, 4, 6]) Python> type(myset) <type 'set'> Python> mysortedlist = sorted(mylist) Python> print( mysortedlist ) [2, 2, 2, 3, 3, 4, 6, 8, 8] 17

Szótár Python> team = { 91: "Ayers, Robert", 13: "Beckham Jr,", 3: "Brown, Josh", 54: "Casillas, Jonathan", 21: "Collins, Landon } Python> len(team) 5 Python> team[3] = "Chihiro" Python> print( team.has_key(91) ) True Python> print( team.has_key('alma ) ) False 18

Szótár Python> team = { 91: "Ayers, Robert", 13: "Beckham Jr,", 3: "Brown, Josh", 54: "Casillas, Jonathan", 21: "Collins, Landon"} Python> team[100] = 'Józsi Python> print( team.keys() ) [91,13,3,54,21,100] Python> del team[3] Python> print( team.keys() ) [91,13,54,21,100] Python> print( team.values() ) 19

Elágazások if 100 in team: print( 'Yes, 100 is in the team ) elif 76 in team: print( '100 is not in the team, but 76 is in it... ) else: print( 'Both 100 and 76 are not in the team ) 20

Ciklus mylist = [3,65,2,77,9,33] for i in mylist: print( 'Element:, i ) Írassuk ki a lista elemeit növekvő sorrendben! for i in range(2,10,3): #2-től 9-ig 3-assával print( i ) # python 2.x esetén érdemes xrange-et használni! 21

Ciklus for i in range(5): print( "Number" + str(i) ) for (k,v) in team.iteritems(): print( "Player name: %s; #: %d" % (v,k) ) Player name: Brown, Josh; #: 3 Player name: Nassib, Ryan; #: 12 i=1 while i<10: print( i ) i+=1 22

Lista, Dict, Tuple generálás mylist = [ x*x for x in range(10) ] # [0,1,4,9,16,25,36,64,81] mydict = { x:x*x for x in range(5) } # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16} mydict2 = { x:x*x for x in range(5) if x!=2 } # {0: 0, 1: 1, 3: 9, 4: 16} mytuple = tuple( x*x for x in range(3) ) # (0, 1, 4) 23

Python script futtatása #vim test.py env #!/usr/ bin /python x = 1 for i in range(1,5): x+=i print( x,i,'alma', 'x*x = %d' % (x*x) ) print(str(i) + " alma") #python test.py #chmod +x test.py &&./test.py 24

Függvények #!/usr/ env /python bin def is_even(num): if (num % 2) == 0: return True else: return False for i in range(1,10): if (is_even(i)): print("szam:"+str(i)) print("vege") 25

Függvények def complex(x): return x**2, x**3, x**4 print( complex(2) ) # (4,8,16) a, b, c = complex(2) print(a,b,c) # 4 8 16 _, rv, _ = complex(2) print( rv ) # 8 26

Lambda Függvények #!/usr/ env /python bin is_even = lambda num: (num % 2) == 0 is_even_2 = lambda num: True if (num % 2) == 0 else False for i in range(1,10): if (is_even(i)): print("szam:"+str(i)) print("vege") 27

map def fahrenheit(t): return ((float(9)/5)*t + 32) def celsius(t): return (float(5)/9)*(t-32) temperatures = (36.5, 37, 37.5, 38, 39) F = map(fahrenheit, temperatures) C = map(celsius, F) temperatures_in_fahrenheit = list(map(fahrenheit, temperatures)) temperatures_in_celsius = list(map(celsius, temperatures_in_fahrenheit)) print(temperatures_in_fahrenheit) # [97.7, 98.60000000000001, 99.5, 100.4, 102.2] print(temperatures_in_celsius) #[36.5, 37.00000000000001, 37.5, 38.00000000000001, 39.0] 28

filter fibonacci = [0,1,1,2,3,5,8,13,21,34,55] odd_numbers = list(filter(lambda x: x % 2, fibonacci)) print(odd_numbers) # [1, 1, 3, 5, 13, 21, 55] 29

Fájl kezelés és string szétvágás with open('alma.txt', 'r') as f: for line in f: print( line.rstrip('\n').split(',') ) f = open("demofile.txt", "r") print(f.read()) print(f.readline()) for x in f: print(x) f.close() with open('alma.txt', 'w') as f: # w-write, a-append f.write("bla Bla") 30

Feladat 1. Írjunk függvényt ami megadja egy bemenetben kapott évszámról, hogy szökőév-e. Egy év szökőév, ha osztható néggyel, de akkor nem, ha osztható százzal, hacsak nem osztható négyszázzal. Példák: 1992,1996,2000,2400 szökőév, de 1993, 1900 nem. 31

Feladat 2. Írj scriptet, ami kiszámolja, hogy hány pont szükséges a ZH-n a jegyekhez! A bement egy file legyen, amely tartalmazza a maximális teszt pontot, az általad elért pontot, a maximális órai/házi pontot és az általad elért pontot. A kimenet pedig az egyes érdemjegyekhez szükséges minimális ZH pontszám. #input.txt 100,65 #maxtest, akttest 20,10 #maxhf, akthf 20 #maxzh #zhszamolo.py Eddigi: 0.3375 2 : 9.0 3 : 14.0 4 : Remenytelen 5 : Remenytelen 32

Feladat 3. A hét napjait jelöljük 0-6-ig (Hétfő,,Vasárnap). Írjunk egy függvényt, ami megadja mikor kell kelnünk az adott napon (hétköznap 7:00 hétvégén 10:00 ), kivéve ha vakációzunk, mert akkor hétköznap 10:00 hétvégén OFF alarm_clock(1, False) '7:00' alarm_clock(6, False) '10:00' alarm_clock(0, True) '10:00 alarm_clock(6, True) OFF' 33

Feladat 4. Írjunk függvényt ami megadja az n. fibonacci számot fibonacci(0) -> 0 fibonacci(1) -> 1 fibonacci(2) -> 1 fibonacci(3) -> 2 fibonacci(n) -> fibonacci(n-2) + fibonacci(n-1) 34

Vége Köszönöm a figyelmet! 35