8/ 1 PROGRAMOZÁS PyScripter elindítása , új Python program : E bben a dokumentumban a feladatrészek leírása alatt pi r os sal írva l átod a megoldást, amit be kell írni. Természetesen m áshogy is megoldható a feladat. Fo ntos! Ügyelj arra, hogy mit kér a feladat, hogy mit kell pontosan kiírni stb. Kód futtatása: Ügyelj arra milyen fájlnevet kér, ha készítesz egy olyan programot, ami lefut és kiírja azt, amit a feladat leír, képernyőképet, akkor az m á r pont! # és [ ] beírása: a programban nem biztos, hogy be tudod írni billentyűzetről ezeket a ka raktereket. Megoldás lehet, ha egy Jegyzettömböt megnyitsz és abba bírod ezeket a karaktereket, majd kijelölöd , és Ctr+C - vel vágólapra másolod majd beilleszted a programodba Fájl mentése: és akkor lássu nk feladatokat: 8/ 2 1. Bekért mondat vizsgálata K od Vizsgal.py néven hozzon létre programot, amelynek feladat a , hogy be kér egy mondatot a felhasználótól és meg vizsgálja a hosszát. 1. K érjen be egy szöveget, a képernyőn a bekérésnél ez jelenjen meg: „Kérek egy tetszőleges mondatot, aminek legalább 4 0 karakterből kell állnia.” print('Kérek egy tetszőleges mondatot, aminek legalább 40 karakterből kell állnia.') 2. A bekért mondato t tárolja el egy változóban. szoveg= input(' \ n A mondat : ') m egjegyz és: a változó n eve most „ szoveg ” , de ide bármilyen nevet megadhatunk. 3. Írja ki a kapott szöveget és annak hosszát a képernyőre: „A beírt mondat :.... hossza: ...” szoveghossza= len(szoveg) print('A beírt mondat : ', szoveg,' \ nhossza: ', szoveghossza) 4. Ha a szöveg hossza legalább 4 0 karakter, akkor írja ki a képernyőre: „A hossz megfelel.” 5. H a a szöveg hossza nem éri el a 4 0 karaktert, akkor az írja ki, hogy: „ A mondat hossza nem felel meg.” if szam>=40: print('A hossz megfelel.') else: print('A mondat hossza nem felel meg.') 8/ 3 2. feladat Számok bekérése, vizsgálata Szam Vizsgal.py néven hozzon létre programot, amelynek feladat a , hogy be kér mondat hosszakat a felhasználótól és meg vizsgálja az így beírt számokat. 1. A program kérjen be a felhasználótól pozitív egész számokat, ha nem számot kap, akkor azt ne vegye figyelembe, a kilépés a 0 beírásával történjen. 2. Í rja ki a képernyőre: “ Egész számokat kérek, kilépés 0 - val.” #főprogram print('Egész számokat kérek, kilépés 0 - val.') szam = None 3. A beírt számokat (kivéve a záró 0 - t) tárolja el egy listában. szamok=[] while szam != 0: szam = int(input('A szám: ')) if szam!=0: szamok.append(szam) 4. A mint a felhasználó beírta a 0 - t, a program elemezze a beírt számokat és a kapott eredményeket jelenítse meg a képernyőn. 5. S zámítsa ki a számok összegét és átlagát. Készítse el saját függvényben! A számok összege: ... A számok átlaga: ... formá ban írja ki. #függvények (össszeg, átlag) ezt a főprogram rész ELŐTT kell beírni def osszeg(szamok): osszeg=sum(szamok) return osszeg def atlag(szamok): darab=len(szamok) osszes=osszeg(szamok) atlag=osszes/darab 8/ 4 return atlag #főprogra m ... print('Egész számokat kérek, kilépés 0 - val.') , lásd 2. # feladatrész print('A számok összege: ', osszeg(szamok)) print('A számok átlaga:', atla g(szamok)) #páros/páratlan számok különválogatása listába parosak=[] paratlanok=[] for szam in szamok: if szam%2==0: parosak.append(szam) else: paratlanok.append(szam) 6. P áros számok: - legkisebb páros szám - legnagyobb páros szám - hány páros számot írt be a felhasználó - írja ki a páros számokat növekvő sorrendben a képernyőre minp=min(parosak) maxp=max(parosak) parosdb=len(parosak) sorbanp=sorted(parosak) print(' legkisebb páros szám:', minp) print(' legnagyobb páros szám:', maxp) print( ' Páros számok száma: ’ , parosdb ' ) print(' \ temelkedő sorrendben: ', sorbanp) #kiírás másképpen : # print(' \ temelkedő sorrendben: ', end='') # for paros in sorbanp: # print(paros, end=', ') 8/ 5 4. Páratlan számok: - legkisebb páratlan szám – - legnagyobb páratlan szám - hány páratlan szám van - írja ki a páratlan számokat a képernyőre minpl=min(paratlanok) maxpl =max(paratlanok) plandb=len(paratlanok) sorbanpl=sorted(paratlanok) print(' Legkisebb páratlan szám:', minpl) print(' L egnagyobb páratlan szám:', maxpl) print(' Páratlan számok száma: ’ , plandb ) print(' \ tP áratlan számok (sorban): ', sorbanpl) # kiírás másképpen: # print(' \ tP áratlan számok: ', end='') # for plan in paratlanok: # print(plan, end=', ') Egyben a program (következő oldalon) : 8/ 6 8/ 7 3 . feladat Verseny Készítsen programot a következő feladatok megoldására, amelynek a forráskódját verseny .py néven mentse el! 1. A forra s txt állomány soronként tartalmazza egy versenyen elért pontszerző helyezéseket (1−6. hely). Az első három helyezés egyben azt is jelentette, hogy arany - , ezüst - vagy bronzérmet szerzett a sportoló vagy a csapat. Az adatokat a szóköz karakter vá lasztja el egymástól Például: 3 4 futás 100m_ futas 2. Olvassa be a forras .txt állományban lévő adatokat és tárolja el egy olyan adat szerkezetben, amely a további feladatok megoldására alkalmas! A fájlban legfeljebb 200 sor lehet. forras = open( ’ forras.txt ’ , ’ r ’ ) #file beolvasás adatok = [] for sor in forras: sor = sor. strip() #üres sor vég törlés e egySor = [] egySor = sor.split( ’ ’ ) #darabol á s egySor[0] = int(egySor[0]) egySor[1] = int(egySor[1]) adatok.append(egySor) # leellenőrizni beolvasta - e a sorokat #for adat in adatok: # print(adat) másik megoldás: # fájlbeolvasás with open(" f orras .txt","r", encoding="utf8") as fajl: next(fajl) for sor in fajl: sor = sor.strip() oszlop = sor.split(" ") egysorlista = [oszlop[0], oszlop[1], oszlop[2], oszlop[3] ] adatok.append(egysorlista) 8/ 8 3. H atározza meg és írja ki a képernyőre a minta szerint, hogy hány pontszerző helyezést értek el a versenyzők. adatokszama=len(adatok) print("3. feladat: Pontszerző helyezések száma:", adatokszama) 4. Készítsen statisztikát a megszerzett ér mek számáról, majd összesítse az érmek számát a minta szerint! arany = 0 ezust = 0 bronz = 0 for sor in adatok: if sor[0] ==1: arany = arany+ 1 if sor[0] ==2: ezust = ezust+ 1 if sor[0] ==3: bronz = bronz+ 1 print("4. feladat:") print("Arany:", arany) print("Ezust:", ezust) print("Bronz :", bronz) osszesen= arany+ezust+bronz print("Összesen:", osszesen ) 1 1. Nyissa meg az forras 2 proba .pka fájlt! 2. Helyezze el a meglévő eszközök mellé a topológiának megfelelően a többi eszközt (SwitchDrogon, LaptopDrogon , TabletPC és ServerDrogon) és kössük össze a megfelelő kábelezéssel! MEGOLDÁS: hiányzó eszközök és kapcsolatok létrehozása, behelyezése 3. H árítsuk el az esetleges kapcsolódási problémákat! A Cisco eszközök konfigurálásánál az ISP - PC és a LaptopDrogon használható a konzolkapcsolat létrehozásához. 4. Állítsuk be az IP címeket a következő táblázat alapján: (WIFI router alapbeállítás: 192.168.0.1, felh.név: admin jelszó: admin) Eszköz IP - cím/maszk Interfész PC, Laptop, Tablet DHCP NIC WIFI router 195.0.0.4/29 Internet ISP 195.0.0.1/29 Gig0/0 MEGOLDÁS (3 - 4 - es feladat): 1. megkeresni a /29 - es alhálózati maszkot a neten ( https://www.calculator.net/ip - subnet - calculator.html ) alhálózati maszk: 255.255.255.248 2. ISP - PC és az ISP é s LaptopDrogon és a ISP - SW összekötése konzol kábellel: 3. ISP - PC - n: Desktop fül/Terminal ablak/OK gomb 2 4. CLI parancsok kiadása: ISP eszközön Router > en Router # conf t Router (config) # hostname ISP I SP( config - if ) # interface g0/0 I SP( config - if ) # ip address 195.0.0.1 255.255.255.248 I SP( config - if ) # no sh I SP( config - if ) # exit I SP( config) # interface g0/1 I SP( config - if ) # no sh I SP( config - if ) # exit I SP( config) # interface g0/ 2 I SP( config - if ) # no sh I SP( config - if ) # exit 5. L aptop Drogo n : Desktop fül/Terminal ablak/OK gomb ISP - SW : S witch > en S witch # conf t Switch # hostname ISP - SW ISP - SW ( config - if ) # interface g0/1 ISP - SW ( config - if ) # no sh ISP - SW ( config - if ) # exit 6. Wifi router elérése, beállítása első módszer: 1. smartphone/tablet: Desktop fül \ Web browser 2. beírni URL mögé: 192.168.0.1 3. User Name: admin Password: admin -- OK gomb 3 4. Legörgetjük, majd megnyomjuk a gombot. WIFI beállítása 2. módszer (ha nincs Lock - olva ) : W ireless Router / Config fül / In terface / Internet majd Config / Interface / LAN 5. Az ISP belső hálózatán a két LAN mindegyikén 2 9 - 2 9 gépet kell elhelyezni. Alakítsunk ki két alhálózatot erre a célra, a 172.2 4 .0.0/24 felosztásával, az első alhálózatba essenek a SwitchDrogon gépei! Írjuk a switch - ek mellé a megfelelő alhálózatok címeit az ábrába! Az átjáró címe mindenhol az utolsó 4 használható cím legyen a hálózaton, a ServerDrogon - é az utolsó előtti, a gépeké pedig az első! A szerver DNS és HTTP szerver is ( d rogon .com ). Megoldás: 1. megkeresni a /2 7 - es alhálózati maszkot a neten ( https://www.calculator.net/ip - subnet - calculator.html ) A táblázat első sora az első alhálózat, a második sora a második Látszik, hogy egy - egy alhálózatba 30 gép fér el. Vagyis ha a feladatban mondjuk, 50 - 50 gép kell, akkor nem a /27 - et kell választani. „ Usa ble Host Range ” : kiosztható címek. 2. „ első alhálózatba essenek a SwitchDrogon gépei ” ISP - SW a második alhálózatba fog esni ... 3. „ Í rjuk a switch - ek mellé a megfelelő alhálózatok címeit az ábrába! ” 4. „ Az átjáró címe mindenhol az utolsó használható cím legyen a hálózaton ” Első alhálózatban átjáró (default gateway): 172.2 4 .0.30 Második alhálózatban átjáró (default gateway): 172.2 4 .0. 6 2 „ S erverDrogon - é az utolsó előtti, a gépeké pedig az első! ” 5. Átjáró, gépcím, IP cím, alhálózati maszk beállítása kell a z IS P G0/1, G0/2 portjain és a két a lhálózat összes eszközén is: ISP: I SP( config) # interface GigabitEthernet0/0 I SP( config - if ) # ip address 195.0.0.1 255.255.255.248 I SP( config - if ) # no sh I SP( config - if ) # interface GigabitEthernet0/1 I SP( config - if ) # ip address 172.2 4 .0.62 255.255.255.224 I SP( config - if ) # interface GigabitEthernet0/2 I SP( config - if ) # ip address 172.2 4 .0.30 255.255.255.224 5 I SP( config - if ) # exit Server: Desktop fül / IP C onfiguration „ S erverDrogon - é az utolsó előtti ” LaptopDrogon: I SP _ PC : „ A szerver DNS és HTTP szerver is ( d rogon .com ) ” Mindenhol ahol „ DNS ” - t látunk egy beállításban , beírjuk a Server címét. Megjegyzés: (ha 172.25.0.0/24 - et kell felosztani, akkor a címek is így változnak, p é ldául ISP_PC: 172.25.0.33 ... ) 6 6. A vezeték nélküli hálózat neve D rogon Wifi . A legerősebb elérhető osztott kulcsos hitelesítést kell használni, a kulcs D racarys 123 legyen! Megoldás: Legörgetjük, majd megnyomjuk a gombot. 7. A wifi router a 192.168.0.180 - 192.168.0.2 5 0 tartományból osszon ki címeket, DNS szerverként adjuk meg a ServerDrogon - át! 8. A LaptopDrogon - ba tegyünk WPC300N típusú hálózati kártyát, és csatlakoztassuk a vezeték nélküli eszközöket! 7 9. Állítsunk be kizárólagosan SSH távoli hozzáférést az ISP routerhez. A router teljes neve westeros .local , az SSH felhasználónév Targarien , a jels zó Dracarys legyen, a kulcs pedig tegye lehetővé az SSH 2 - es verziójának a használatát is! A privilegizált jelszó: D ra carys 123 legyen! Megoldás: Router(config)# hostname I SP (vagy ez kihagyható, ha ISP> vagy ISP# - t látsz) ISP (config)# e n secret Dracarys 1 23 ISP (config)# ip domain - name w esteros.local ISP (config)# crypto key generate rsa ... How many bits in the modulus [512]: 1024 ... ISP (config)# user name T argarien secret Dracarys ISP (config)# line vty 0 1 5 ISP (config - line)# login local ISP (config - line)# transport input ssh 10. SwitchDrogon beállítása: - a. felhasználó: Viserion , jelszó: pw - dracarys b. a felhasználó távoli telnet kapcsolattal tudjon felc satlakozni SwitchDrogon - hoz. c. konzolos hozzáférés védelme jelszóval: SD - con - pwd 8 d. a privilegizált mód elérésének védelme jelszóval: SD - prv - pwd e. napi üzenet: „Nemsokara vizsga!” f. megfelelő porton állítson be megjegyzést: „ISP felé” ISP - SW ( config) # user name T argarien p assword Dracarys ISP - SW ( config) # line vty 0 1 5 ISP - SW (config - line)# login local ISP - SW (config - line)# transport input telnet ISP - SW ( config - line ) # exit ISP - SW ( config) # line con 0 ISP - SW ( config) # password SD - con - pwd ISP - SW ( config) # login ISP - SW ( config) # e na p assword SD - prv - pwd ISP - SW ( config) # b anner motd % Nemsokara vizsga % ISP - SW ( config) # interface G0/1 ISP - SW ( config - if ) # description ISP fele Teszteljük a külső ServerDrogon weboldalának elérhetőségét, és az SSH belépést is. Készítsen a tesztelésről képernyőképet (printscreen) és mentse Csomolungma A következő feladatban egy weboldalt kell készítenie a Csomolungma rövid bemutatására a feladatleírás és a minta szerint. A forrásként kiadott weboldalon kell módosításokat végeznie! Nyissa meg az index.html állományt, és szerkessze annak tartalmát az alá bbiak szerint: 1. A weboldal karakterkódolása utf - 8, nyelve magyar, a böngésző címsorában megjelenő címe „Csomolungma” legyen! <html lang="hu"> <meta charset="utf - 8"> 2. A weboldal fejrészében helyezzen el hivatkozást a style.css stíluslapra a meglévő azonos típusú hivatkozások után! <link rel="stylesheet" type="text/css" href="style.css"> 3. A weboldalon a footerben keresse meg a Pexels szót, majd alakítsa a szöveget hivatkozássá! Kattintásra a https://www.pexels.com weboldal új ablakban/böngészőfülön nyí ljon meg. < footer> <div class="jumbotron text - center" style="margin - bottom:0"> Forrás: <a href="https://hu.wikipedia.org/wiki/Csomolungma" target="_blank">Wikipedia</a> Képek: Pexels </div> </footer> 4. Hozza létre a navigációs sávon a Felfede zés menüpontot, amely stílusában igazodjon a meglevőkhöz! 5. A menüpontokat módosítsa úgy, hogy könyvjelzőként a dokumentum megfelelő pontjához ugorjanak! 6. A megfelelő helyeken a bekezdések módosításával alakítson ki kettes szintű címsorokat! <h2 id="elh elyezkedes">Földrajzi elhelyezkedése</h2> 7. A Földrajzi elhelyezkedése részben levő 2 sort alakítsa felsorolássá! 8. Illessze be a minta szerinti helyeken a map.png, a hegy1.jpg és az hegy2.jpg képeket! A képekhez tartozó feliratokat (a böngészőben ezek jel enjenek meg, ha fölé visszük az egérkurzort, vagy ha a kép nem tölthető be) az alábbiak szerint állítsa be: map.png (Térkép), hegy1.jpg (Csúcs) és az hegy2.jpg (Útvonal)! A beillesztett képeket formázza a Bootstrap img - thumbnail osztálykijelölőinek használ atával. Mind a 3 feladat hasonló, csak a szöveget cserélje <div class="row"> <div class="col - 12 col - md - 6 p - 2"> <img class="img - thumbnail" src=" images/map.png" alt="Földrajzi elhelyezkedés" title ="Térkép" > </div> 9. Készítse el az ut olsó tartalmi blokkot a leírás és a minta alapján! A blokk a Bootstrap rács harmadik sorában helyezkedjen el! A sor blokkjainak (oszlopainak) szélességét Boostrap segítségével úgy határozza meg, hogy közepes méretűnél nagyobb kijelzőkön két oszlopban jelen jenek meg, a kisebbeken pedig teljes képernyőméretet foglalják el. <script src="jquery.min.js"></script> <script src="popper.min.js"></script> <script src="bootstrap.min.js"></script> 10. Az oldalon található űrlapon a mezők típusát állítsa olyanra, hogy sz öveg bevitelére alkalmas legyen! 11. A gombon a Küldés szöveg legyen látható! <button class="btn btn - info btn - block">Küldés</button> 12. Az űrlap beviteli mezőinek állítsa be a form - control Bootstrap osztályt! Nyissa meg a style.css állományt, majd végezze el az alábbiakat: 13. Hozza létre az urlap osztálykijelölőt, melyben állítsa be az alábbiakat: a. Az űrlap háttérszíne #f1e5e5 legyen .urlap { background - color: #f1e5e5 border: blue 1px solid; border - radius: 10px; padding: 10px; margin - top: 20px; b. Az űrlap szegélye 1 képpont vastag, red színű, folytonos vonal legyen. border: red 1px solid ; c. Alkalmazzon a szegélyre 10 képpontos lekerekítést! border - radius: 10px ; d. Legyen az űrlapnak 10 képpontos belső margója! padding: 10px; e. Adjon meg 20 képpontos fel ső margót ! margin - top: 20px ; 14. Állítsa be, hogy a footerben levő hivatkozás alapértelmezett szövegszíne kék legyen, a szöveg pedig ne legyen aláhúzott! 15. Ha a footerben a hivatkozásra mutatunk az egérrel, a betűk legyenek dőltek! footer a:hover{ color: rgb(68, 37, 146); font - style: italic; }