Programozási alapismeretek 3.

Hasonló dokumentumok
C# gyorstalpaló. Készítette: Major Péter

PHP. Adatbázisok gyakorlat

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

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

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

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

A C# programozási nyelv alapjai

1. Jelölje meg az összes igaz állítást a következők közül!

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

Informatika terméktervezőknek

Objektum Orientált Programozás IV.

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

AWK programozás Bevezetés

Operációs rendszerek gyak.

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

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

PHP-MySQL. Adatbázisok gyakorlat

A JavaScript főbb tulajdonságai

Programozási nyelvek Java

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

A PHP nyelv alapjai. Web-Sky Consulting Kft Tóth Imre 2009

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

Occam 1. Készítette: Szabó Éva

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata

Java II. I A Java programozási nyelv alapelemei

1. Egyszerű (primitív) típusok. 2. Referencia típusok

Java II. I A Java programozási nyelv alapelemei

Web programozás I. 4. előadás

Szkriptnyelvek. 1. UNIX shell

Java programozási nyelv

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

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

Szövegek C++ -ban, a string osztály

PHP MySQL, Java JDBC MySQL. Adatbázisok az iskolában 2012 Dr. Balázs Péter Palatinus Endre és Erdőhelyi Balázs diái alapján

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

Objektumorientált Programozás IV.

ELTE SAP Excellence Center Oktatóanyag 1

és az instanceof operátor

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

HTML. Dr. Nyéki Lajos 2016

Nyilvántartási Rendszer

1. Alapok. #!/bin/bash

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

Miért ASP.NET? Egyszerű webes alkalmazás fejlesztése. Történet ASP ASP.NET. Működés. Készítette: Simon Nándor

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

Programozás Minta programterv a 1. házi feladathoz 1.

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

Programozási nyelvek II.: JAVA, 4. gyakorlat

Python tanfolyam Python bevezető I. rész

C# tanfolyam I. A.Net keretrendszer, programozási technikák és alapismeretek. Kis Balázs

Webes alkalmazások fejlesztése

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés

Internet programozása. 1. előadás

Programozási nyelvek II.: JAVA, 4. gyakorlat

Programozás Alapjai 2.

PHP gyorstalpaló, avagy a Hello World-től az űrlapellenőrzésig

Programozás I. Szöveges fájlok kezelése Felsorolástípus Objektumtömb Gyakorló feladatok

Tájékoztató. Használható segédeszköz: -

PowerShell v2.0 alapok. Nagy Miklós

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

Bevezetés a programozásba I.

A B rész az Informatikai szakmai angol nyelv modul témaköreit tartalmazza.

WEBFEJLESZTÉS 2. ADATTÁROLÁS, FÁJLOK

Webprogramozás szakkör

MATLAB. 9. gyakorlat. Cellatömbök, struktúrák, fájlműveletek

6. fejezet: Ciklusok

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Szöveges fájl kezelése (a Caesar-kód feltörése) A kód feltörésének statisztikai háttere

JAVA webes alkalmazások

1. feladat Készítse el szövegszerkesztővel, majd mentse osztály.txt néven a következő tartalmú szöveges fájlt:

A webhelyhez kötődő szoftverek architektúrája

Internet alkamazások Készítette: Methos L. Müller Készült: 2010

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk.

Maximum kiválasztás tömbben

Felvételi tematika INFORMATIKA

Bevezető. Servlet alapgondolatok

Az Orbis adatbáziskezelő

Bevezetés a programozásba I.

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

BME MOGI Gépészeti informatika 13.

Földmérési és Távérzékelési Intézet

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

Java és web programozás

Java és web programozás

Bevezetés a programozásba I.

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

INFORMATIKAI ALAPISMERETEK

II. ADATLAP - Programmodul részletes bemutatása

HTML ÉS PHP ŐSZI FÉLÉV

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Web-technológia PHP-vel

Programozási alapismeretek 4.

A webprogramozás alapjai. Óbudai Egyetem Neumann János Informatikai Kar 2018/19/1 szemeszter

Programozás és adatbázis kezelés PHP ben

Bevezetés a programozásba I.

10. gyakorlat Struktúrák, uniók, típusdefiníciók

INFORMATIKAI ALAPISMERETEK

Átírás:

Programozási alapismeretek 3. Szöveges fájlok kezelése, Szöveges funkciók, a PHP nyelv alapjai Kis Balázs

Fájlkezelés Szöveges fájlok kezelése Kis Balázs 2

Fájlkezelés I. A legtöbb program használ fájlokat működéséhez. A fájlok sok funkciót betölthetnek, mint például: Adat szolgáltatást Konfiguráció szolgáltatást Adatkimentést Természetesen a legtöbb modern program manapság már inkább strukturált fájlszerkezetek használ. Amik közül jó néhánynak ugyancsak szöveges fájl az alapja. Kis Balázs 3

Fájlból olvasás I. Fájlból olvasni a StreamReader osztály segítségével tudunk, mely több funkcióval is rendelkezésünkre áll az optimális beolvasás érdekében. A StreamReader osztályt minden esetben példányosítanunk kell, mielőtt elkezdhetnénk a fájlból való olvasást. Fontos, hogy a fájlpointer mindig a fájl elején helyezkedik el létrehozás után, így példányosítás után mindig előröl olvassuk a fájlunkat. Kis Balázs 4

Fájlból olvasás II. Példányosítás: StreamReader file = new StreamReader( fájl ); Példányosítás utáni beolvasás soronként: while (!file.endofstream) { Console.WriteLine(file.ReadLine()); } Fontos, hogy a beolvasás végeztével zárjuk le a fájlt, mivel addig a programunk nyitva tartja azt. file.close(); Kis Balázs 5

Feladat I. Készítsünk programot, mely képes beolvasni neveket és hozzájuk tartozó átlagokat. A fájl elrendezése: Gipsz Jakab 3,3 Matr Ica 4,1 Kovács Béla 4,6 Kis Balázs 6

Feladat II. Az előző órán tanult módszerek segítségével állapítsuk meg az osztályról (a fájlban lévő tanulók) a következőeket: Osztály átlag Legjobb tanuló neve Legrosszabb tanuló neve Írassuk ki az összes tanulót átlagával és év végi jegyével. Tipp: Math.Round(); Kis Balázs 7

Fájlba írás I. Fájlba írni a StreamWriter osztály segítségével tudunk. A StreamWriter példányosítása után elkezdhetjük a fájlba kiírást. Fontos, hogy a Visual C#-os megvalósítás a kiíráskor nem a fájlba ír közvetlen, mivel az teljesítményromlást és biztonsági kockázatot okozna, hanem memóriába írja be a fájlba írandó anyagokat. Így ha nem zárjuk le a fájlunkat, vagy nem dump-oljuk az adatokat a fájl üres marad. Kis Balázs 8

Fájlba írás II. További nagyon fontos információ, hogy az olvasással ellentétben itt példányosításkor nem feltétlen kerülünk a fájl legelejére. Amennyiben a StreamWriter osztályt csak egyszerűen fájlnév megadással példányosítjuk, úgy a Rewrite metódus fut le, mely törli az előzőt, és létrehozza az újat (meglévő fájl írása esetén). Azonban a 4. paraméterezés szerint van lehetőségünk hozzáfűzni a fájlhoz, Append metódus. Kis Balázs 9

Fájlba írás III. Példányosítás: StreamWriter file = new StreamWriter( fájl, true); Beírás: file.writeline( szöveg ); A lezárás: file.close(); Azonnali dump: file.flush(); Kis Balázs 10

Feladat IV. Készítsünk programot, mely bekér EXIT végjelig neveket, majd fájlba kiírja azokat. Kis Balázs 11

Feladat V. Készítsen programot, mely az előző feladat alapján bekér neveket és átlagokat, majd létrehozza azokat olyan struktúrában, hogy az előző olvasó feladat fel tudja azokat dolgozni. Kis Balázs 12

String állományok kezelése I. A C#-ban csak úgy mint a legtöbb nyelvben a string állományok karakter tömbként vannak eltárolva. Ennek technikai előnye, hogy a szövegeket mint tömb tudjuk kezelni. A legtöbb szöveges funkció erre a tulajdonságra épül. Kis Balázs 13

String állományok kezelése II. A következő funkciók lesznek fontosak számunkra: EndsWith(), StartsWith() Teszteli, hogy mire végződik, vagy mivel kezdődik a szöveg. IndexOf() Megadja az adott karakter vagy szöveg helyét a szövegben. Insert() Belefűz egy új string-et a meglévőbe, a megadott pozícióba. LastIndexOf() Utolsó előfordulása a keresett karakternek, vagy szövegnek. Kis Balázs 14

String állományok kezelése III. Length A szöveg hosszát megadó tulajdonság. Remove() Eltávolít a szövegből részeket. Replace() Kicserél a szövegben bizonyos részeket. Split() Szétvágja a szöveget bizonyos tördelési pontoknál. Substring() Egy bizonyos részét vágja ki a szövegnek. Kis Balázs 15

String állományok kezelése III. ToLower(), ToUpper() Kis/nagybetűssé alakítás Trim() Fölösleges szóközök levágása a szöveg elejéről, végéről Kis Balázs 16

Feladat VI. Készítsünk programot, mely URL kompatibilis szöveggé alakítja a beadott szöveget. Pl.: Ez egy új hír ez_egy_uj_hir Kis Balázs 17

PHP nyelv alapjai Hypertext PreProcessor nyelvi alapjai, működése Kis Balázs 18

HTML Hyper Text Markup Language 1980-1990-ben vetődött fel a szükségessége. 1991-ben már HTML Tags néven volt ismeretes. Elsődleges célja, hogy formázott dokumentumokat közöljön az interneten. Referencia: http://www.w3schools.com Kis Balázs 19

HTML hátrányai A HTML hátránya, hogy mivel csak dokumentumokat közöl, semmilyen önműködő rendszert nem lehetett beleépíteni. Sokan felismerték a webben rejlő további lehetőségeket és megjelent a dinamizálásra való törekvés. Megjelentek a dinamikus webfejlesztési nyelvek. Kis Balázs 20

A PHP-ről általánosan Hypertext PreProcessor Ezt a nevet már az izraeli fejlesztő páros adta neki C alapú nyelv, ahogy az elődje a Perl is. Alapvetően sorfolytonos futtatást tesz lehetővé, de objektum orientált kód is fejleszthető benne. Az egyik legjobb funkció kiszolgálással bíró szerveroldali multiplatformos nyelv. Kis Balázs 21

Környezet előkészítése Mivel több platformos nyelv, így a jelenleg ismeretes operációsrendszerek legtöbbjére elérhető a fordító. A webes triumvirátus az egyik legoptimálisabb összeállítás és leggyakrabban ezt is használják. Apache + PHP + MySQL Természetesen IIS és TomCat webszerverekkel, illetőleg más ismertebb adatbázisokkal (MSSQL, PostgreSQL) is kompatibilis. Kis Balázs 22

Lokális futtatás Mivel a PHP szerver oldali nyelvek családjába tartozik, ezért alapvetően lokális futtatásra nincs lehetőség, legalábbis webszerver nélkül. Windows esetében a triumvirátust tartalmazó programcsomag a XAMPP Server és az Wamp Server. Ezekkel a programokkal a saját gépünk localhost-ján (127.0.0.1) tesztelhetjük programjainkat. Linux alatt természetesen az adott programok telepítésével érhetjük el ugyan ezt pl.: apt-get install apache2 php5 php5-cli php5-cgi libapache2-mod-php5 mysqlclient mysql-server php5-mysql Kis Balázs 23

A PHP nyelv Fájlunkban a PHP blokkot egy speciális tag-gel különítjük el a többi résztől. <?php?> de működik a <??> is. (PHP7-től már a második nem.) Nem szigorúan típusos nyelv mint más C alapú nyelvek. Pl. Microsoft Visual C#, Java, C++ A változóink típusa automatikusan kerül megválasztásra. HTML segítségével ábrázoljuk a kimenetet, melyet még a programkódon belül elő kell állítani. A C nyelvekből ismeretes parancs lezárást használja a ; -t így minden egyes parancs után ezt ki kell rakjuk. Kis Balázs 24

HTML gyorstalpaló I. Ahhoz, hogy a weben tudjunk megjeleníteni, minden esetben fontos, hogy legyen egy leíró nyelv mely segítségével tudunk adatot közölni formázva a klienssel. Erre PHP-ban is szükség van, és itt a HTML szolgáltatja a megjelenítés alapját Visual C#-ban is volt ilyen, azonban ott egyedi a felépítése. Kis Balázs 25

HTML gyorstalpaló II. A HTML felépítése: Minden HTML dokumentum XML tagekből épül fel. Azonban itt az XML-el ellentétben a tageket nem mi magunk választjuk meg, hanem már előre definiáltan léteznek. Minden tagnek meg van a maga megjelenése, hogy mit miért, és hogyan hoz létre, a kimeneten. Kis Balázs 26

HTML gyorstalpaló III. A HTML dokumentum általános szabályai: Minden esetben a dokumentum összes része egy <html> </html> tag páros közé kerül. Minden esetben létezik benne minimum 2 féle tag: <head> </head> A fejrész, melyben extra információk, a feldolgozáshoz elengedhetetlen adatok kapnak helyet. <body>..</body> A megjelenített dokumentum része. Kis Balázs 27

HTML gyorstalpaló IV. Számunkra hasznos HTML tag-ek <br> Egy sortörést létrehozó tag. <hr> Egy húrt kihúzó tag, vízszintesen elválasztja az egész teret, amiben benfoglalták. <p>..</p> Egy paragrafus tag, a közé ékelődő szöveg egy paragrafusban lesz megjelenítve. Kis Balázs 28

HTML gyorstalpaló V. <table></table> Egy táblázatot jelző tag <thead>..</thead> A táblázat fejléc sorát megjelenítő tag <th>..</th> A táblázat fejléc sorának egy celláját megjelenítő tag <tr>..</tr> A táblázat egy sorát jelentő tag. <td>..</td> A táblázat egy sorának egy celláját megjelenítő tag. Kis Balázs 29

Feladat VII. Az alábbi apró PHP-s program ki fogja írni oldalunkra, hogy Helló világ!. Mint az ebben a kis kódban is jól látszik, a print() funkció szolgál arra, hogy különböző elemeket megjelenítsünk a kimeneten ugyan ezt a szerepet tölti be az echo funkció is. Kis Balázs 30

HTML PHP-ban Természetesen a PHP lényege, hogy egy a böngészők által értelmezhető kódot adjon vissza. Így az alábbi példában egy Heading1-es címet adunk vissza: Kis Balázs 31

Változók A PHP-ban a változókat $ jellel jelöljük és deklarációra nincs szükség (gyengén típusos nyelv) Az érték adás = jellel történik Az alábbi példában láthatjuk a változó értékadását: Kis Balázs 32

Operátorok Változók operátorai: = legyen egyenlő Pl.: $i=0; i értéke 0 ++; -- érték növelése/csökkentése 1-el Pl.: $i++; i értéke 1 +=, -= érték plusz/mínusz legyen egyenlő Pl.: $i+=5; i értéke 6 Kis Balázs 33

Tömbök I. A tömbök PHP-ban több fajta módon előállíthatók: Kis Balázs 34

Tömbök II. C#-al ellentétben itt a tömbök nem előre meghatározott méretűek. Ennek oka az, hogy a PHP gyengén típusos nyelv, így tehát az optimalizáltságot nem a programozó, hanem maga a nyelv próbálja meg fenntartani. Kis Balázs 35

Tömbök III. A tömbök használatára egy másik példa PHP-ban: A tömbök indexelésére vonatkozó szabályok azonosak a C# tömbjeire vonatkozókkal. Kis Balázs 36

Mátrix A PHP-ban a mátrixok tömbben tömbként jönnek létre, ezáltal vagy elkezdjük használni mint mátrix, vagy előtte deklarálhatjuk is: A mátrix elérése itt azonban C#-al ellentétben valahogy így néz ki: $matrix[0][1] Kis Balázs 37

Konstans Csak úgy, mint a legtöbb programnyelvben az előre definiált értékeknek a PHP-ban is nagy szerepe lehet: Kis Balázs 38

Operátorok II. A C nyelvben használatos operátorokat használhatjuk PHPban is: == egyenlő === egyenlő és a típusuk is ugyan az!= nem egyenlő <; > kisebb, nagyobb <=; >= kisebb, nagyobb egyenlő vagy kapcsolat && és kapcsolat Kis Balázs 39

Elágazások I. Mivel a PHP C alapú nyelv, a C nyelvekben ismeretes szintaktikája lesz. Így tehát egy egyszerű elágazás így néz ki: Kis Balázs 40

Elágazások II. A többszörös elágazás: Kis Balázs 41

Ciklusok Típusai PHP-ban: Elöl tesztelős Hátul tesztelős Számlálós Bejáró ciklus Kis Balázs 42

Elöl tesztelős ciklus (WHILE) Először megnézi, hogy a feltétel adott-e, ha adott, akkor belép a ciklusmagba, lefuttatja, majd újra ellenőrzi, hogy belépjen-e egészen a feltétel teljesüléséig. Példa: Kis Balázs 43

Hátul tesztelős ciklus (DO WHILE) Először lefuttatja a ciklus magot, majd ellenőrzi, hogy le kelle még futnia. Ha még mindig teljesül a feltétel lefut újra. Példa: Kis Balázs 44

Számlálós ciklus (FOR) Addig fut, amíg a ciklusváltozó el nem ér, egy bizonyos értéket. Minden esetben helyettesíthető elöl tesztelős ciklussal. Példa: Kis Balázs 45

Mindenre alkalmazandó (FOREACH) Olyan esetekben használjuk, mikor egy tömb-öt szeretnénk bejárni, és minden egyes elemével csinálni valamit. Példa: Kis Balázs 46

Feladat VIII. Készítsünk programot, melyben előre deklaráltan léteznek jegyek, keressük ki a jegyek közül a legrosszabbat, és a legjobbat. Kis Balázs 47

Feladat XI. Írjunk programot, melyben deklarálva van egy konstans. Ha ebbe a konstansba számot írunk, (0-5) akkor kiírja betűkkel azt és egy változó értékét igazra (true) állítja minden más esetben hamis (false) a változó és kiírja, hogy nem talált! A visszatérés egy paragrafusban legyen. Kis Balázs 48