CSORDÁS JÁNOS: A PROGRAMOZÁS ALAPJAI VISUAL BASIC-BEN

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "CSORDÁS JÁNOS: A PROGRAMOZÁS ALAPJAI VISUAL BASIC-BEN"

Átírás

1 CSORDÁS JÁNOS: A PROGRAMOZÁS ALAPJAI VISUAL BASIC-BEN Tartalom I. Bevezetés... 2 II. Programozási alapok Az első lépések Névterek Eljárások (alprogramok) Változók A változók elmélete Változó típusok Példák változók felhasználásával Az egydimenziós tömb A kétdimenziós tömb Elágazások (szelekciók) a programban Ciklusok (iterációk) a programban Matematikai műveletek a programban III. Programozás haladó(bb) szinten Adatbeolvasás szöveges fájlból Szöveges fájlok feldarabolása Adatbeolvasás, Split(), kétdimenziós tömb 3 az 1-ben, egészségére! IV. Az érettségi feladat megoldása beszéljenek a kódok! Szöveges fájl beolvasása kétdimenziós tömbbe a beolvas() eljárás feladat a feladat1() eljárás feladat a feladat2() eljárás feladat a feladat3() eljárás feladat a feladat4() eljárás

2 I. Bevezetés Oldjuk meg a májusi érettségi vizsga programozási feladatának első részét (1-6 feladatok). Egy szöveges fájlban (lottosz.dat) 51 hét ötös lottó számai találhatóak. Az első sorban az első héten húzott számok vannak, szóközzel elválasztva, a második sorban a második hét lottószámai vannak stb. A szöveges fájl első négy és utolsó sorának adatai: 2 Megjegyzések: a lottószámok minden sorban emelkedő számsorrendben szerepelnek - a szöveges fájlt ki kell majd egészítenünk egy 52. sorral ( ) - a szöveges fájlban található legkisebb szám 1, a legnagyobb pedig 90, mivel a lottószelvényeken 90 szám közül 5 számot kell a fogadónak megjelölnie egy-egy fogadás alkalmával Az első lépés az, hogy a szöveges fájlt valamilyen formában elérhetővé tegyük a Visual Basic számára. II. Programozási alapok 1. Az első lépések A Visual Basic indítása után két választási lehetőségünk van: New Project, illetve Open Project. Természetesen az előbbire van szükségünk. A New Project ablakában többféle programtípus közül választhatunk. Nekünk minden esetben a Console Application-ra van szükségünk. A lehetőség kiválasztása után adjunk nevet a project-nek, majd kattintsunk az OK gombra. A megjelenő ablakban az alábbi kódrészletet látjuk: A Sub Main() a főprogram eleje, az End Sub a főprogram vége. A program futtatásakor a főprogramban található utasítások kerülnek végrehajtásra egymás után. A legalapvetőbb utasítás a képernyőre való kiírás utasítása. Ez a Console.Write() és a Console.WriteLine(). A kettő között az a különbség, hogy a Console.WriteLine() miután a képernyőn megjeleníti a zárójelben található szöveget, a sor végén egy sortörést is elhelyez. A jobb oldalon látható program kimenete: HelloWorld!:-). Amennyiben Console.Write() helyett, Console.WriteLine()-t használunk, a program kimenete a következő lesz: Hello World! :-)

3 Amennyiben lenne egy harmadik Console.WriteLine() is a programban, annak tartalma a smile alá kerülne. Látható, hogy az utasítások végrehajtása egymás után történik. Ahhoz, hogy a program eredményéből valamit lássunk is, meg kell akadályozni, hogy a Windows az utasítások lefuttatása után bezárja a Console t: 3 A Console.ReadKey() tulajdonképpen arra utasítja, a gépet, hogy egy karakter leütésére várjon. Miután ez megtörtént következik az End Sub, a (fő)program futása véget ér. 2. Névterek A fenti példákban látható, hogy minden utasítás előtt megtalálható a Console bejegyzés. Ennek megadására azért van szükség, mert egyébként nem lenne egyértelmű, hogy hová szeretnénk adatokat írni (Write), illetve honnét szeretnénk adatokat beolvasni (ReadKey). Írhatunk ugyanis a nyomtatóra is, vagy beolvashatunk adatokat az USB portról is. A Console egyértelműen meghatározza, hogy a képernyőre kell a programnak írnia, és általunk a billentyűzet segítségével, a képernyőn megjelenített adatokat kell beolvasnia. Ha csak a monitort szeretnénk használni adatok beolvasására és kiíratására, akkor megtehetjük, hogy a program elején beállítunk egyfajta alapértelmezést (névteret), amely biztosítja, hogy a program futása során, a Console utasítás elhagyása esetén is, egyértelmű legyen, hogy a monitor az alapértelmezett periféria: Az Imports System.Console on kívül hasonló megfontolásból használható a következő két névtér: - Imports System.IO fájlműveleteknél, adatbeolvasásnál, fájlba írásnál - Imports System.Math komplexebb matematikai műveleteknél (Ezekről részletesebben később)

4 3. Eljárások (alprogramok) Eljárások segítségével a programot kisebb részekre oszthatjuk, ezzel a kód áttekinthetőbb lesz, és jól megírt programok esetén előfordulhat, hogy egy korábban elkészített eljárást egy másik feladat megoldásánál is felhasználhatunk, ezzel pedig időt spórolhatunk. Egy-egy érettségi feladatot egy-egy eljárásban célszerű megoldani. Mi hat feladatot (+1 a beolvasás) fogunk megoldani, így programunk szerkezete valahogy így fog kinézni: 4 Start Kész! Megjegyzések: - az utasítások végrehajtásának logikája nem változott. A Sub Main() nel kezdődik a program, itt rögtön az első utasítás a beolvas() nevű eljárás meghívása. A beolvas() nevű eljárásban található utasítások végrehajtása után a feladat1() eljárás következik. Végül eljutunk a ReadKey()-hez. - a beolvas() nevű eljárásban találunk kettő zöld színű, aposztróffal kezdődő sort. Ezek megjegyzések, a program végrehajtása szempontjából semmiféle jelentőségük sincsen. Arra használjuk őket, hogy emlékeztető szövegeket helyezzünk el a programban. Ha hónapokkal, vagy évekkel később megnyitjuk a project-et, akkor a megjegyzések segíthetnek abban, hogy megértsük mit miért csináltunk. - a programkód bal oldalán csomópontokat találunk ezekben + vagy jeleket. A csomópontok segítségével a program bizonyos részeit elrejthetjük. Ennek hosszú program esetén van külö-

5 4. Változók nös jelentősége: a már megírt, működő programrészek elrejtésével megakadályozzuk, hogy véletlenül onnét valamit kitöröljünk, vagy oda valamit beírjunk. A program így rövidebbnek fog tűnni, a rövidebb program pedig jobban átlátható. A példafeladatban öt eljárást rejtettünk el. 4.1 A változók elmélete Ha adatokkal szeretnénk dolgozni (azaz mindig ), akkor a programban meg kell teremteni az adatok kezelésének feltételeit. Adatokkal akkor tudunk dolgozni, ha az adatokat változókba (a memória egy meghatározott szegletébe) helyezzük. A változókat egy-egy névvel rendelkező dobozhoz hasonlíthatjuk leginkább. Ahhoz, hogy valamit a dobozba tudjunk helyezni először létre kell hozni a dobozt, létrehozásnál meg kell határozni, hogy mekkora legyen a mérete. Ha kész az adott méretű doboz, akkor az adott tárgyat bele lehet tenni, sőt arra is van lehetőség, hogy a tárgy helyett egy másik tárgyat helyezzünk bele, feltéve, ha belefér. 5 A Visual Basicben is tulajdonképpen így kezeljük az adatokat: - változó (doboz) létrehozása: a változó DEKLARÁLÁSA. A deklarálást a Dim vezeti be. Ezt követően meg kell adnunk a változó nevét (valtozo) majd ez után a változó méretét (Byte), azaz típusát - a változó (doboz) feltöltése: a változó DEFINIÁLÁSA. A deklarálás után közvetlenül a változóba betettünk egy 1-est. - a változó (doboz) tartalmának cseréje szükség esetén: a definiálás után közvetlenül az 1-est 2-esre cseréltük. Ezután érdekes dolgot látunk, a kifejezést jobbról balra kiolvasva: o a változó tartalmához hozzáadunk 2-t. 2+2=4. o az így létrejött számot (4) beletettük a változóba, azaz a 2-es 4-esre cseréljük. Megjegyzések: - a változó neve bármi lehet, azonban lehetőség szerint kerüljük az ékezetes betűket. A változó nevével hivatkozhatunk a programban a változó értékére. Használjunk beszédes neveket! - a változó csak abban az eljárásban él, amelyikben deklaráltunk (ezért is hívjuk lokális változónak). Azaz a fenti példa szerinti (valtozo) csak a Sub Main() ben használható a többi eljárásban nem létezik. Ha olyan változóra van szükség, amely bármelyik eljárásból elérhető, akkor globális változót kell létrehozni. Ez mindössze annyit jelent, hogy eljáráson kívül, a Module Module1 en belül kell deklarálni. - a változó típusa meghatározza, hogy milyen értékeket lehet a változóban tárolni. Eme tény figyelmen kívül hagyása esetén furcsa dolgok történhetnek. Esetek: o szám típusú változóba szöveget próbálunk tenni papírdobozba vizet öntünk: a program hibaüzenettel leáll. Használjunk műanyag dobozt! o szám, konkrétan Byte típusú változóban nagy számot kívánunk tárolni gyufás skatulyába próbálunk elefántot tenni: ún. túlcsordulás lép fel, a program leáll.

6 4.2 Változó típusok Változók deklarálásánál kell döntenünk arról, hogy a változóban milyen típusú adatokat fogunk tárolni. Gyakori típusok: - Byte: közötti szám (a memóriából egy bájtot foglal el) - Integer: és közötti szám (a memóriából négy bájtot foglal el) - Single: amennyiben nem egész számokat kívánunk tárolni. Hatalmas méretű - Char: egy karaktert tárol (a memóriából két bájtot foglal el) - String: szöveg tárolására (a memóriából két bájtot foglal el. Ez azt jelenti, hogy egy ilyen típusú változóba tetszőleges karaktert rögzíthetünk egyszerre) Példák változók felhasználásával Az előző programot dolgozzuk át egy kicsit!. A változó deklarálása utáni sorban a felhasználó által begépelt értéket beolvassuk a monitorról (ReadLine()), majd elhelyezzük a változóban (valtozo=readline()). Tegyük fel, hogy a felhasználó az 5-öst gépelte be. A program kimenete a következő lesz: valtozo 5 A programban két utasítással írunk ki valamit a képernyőre. Az első WriteLine() a valtozo szót írja a képernyőre, a második pedig a valtozo nevű változó tényleges értékét. Ne keverjük a kettőt! Két megjegyzés: - programunk legyen mindig felhasználóbarát: a felhasználót tájékoztassuk, hogy mi történik, mit várunk tőle - a ReadLine() utasítást a Val() utasítással együtt használjuk számbeolvasás esetén. Az utóbbi ugyanis abban az esetben, ha a felhasználó betűket is begépel, kiszűri a számként nem értelmezhető karaktereket: 4.4 Az egydimenziós tömb Az egydimenziós tömb egy olyan változó, amely doboz helyett inkább egy fiókos szekrényhez hasonló. A deklarálásnál ilyenkor a fiókok számát is meg kell adnunk. A fiókokra, illetve tartalmukra sorszámukkal hivatkozhatunk. Az első fiók sorszáma a 0, az utolsó fiók sorszáma a fiókok száma-1-gyel

7 egyezik meg. Konkrétan egy 5 fiókos szekrény első fiókja sorszám szerint a 0., az ötödik pedig a 4. Egy egydimenziós tömb deklarálása és a fiókok tartalmának definiálása: A tomb nevű tömb egy ötfiókos szekrény: 1 A 0. fiók tatalma 2 Az 1. fiók taralma 3 A 2. fiók tartalma 4 A 3. fiók tartalma 5 A 4. fiók tartalma A program kiírja az első (0.) és a második (1.) fiók tartalmát szóközzel elválasztva. A WriteLine() utasításban jól látható, hogy egyszerű szöveget (szóköz), miképpen fűzhetünk össze egy-egy változó tartalmával. Az összefűzéshez a & operátort kell használnunk. A & előtt és után egy-egy szóköz kötelező! A kétdimenziós tömb A kétdimenziós tömb egy olyan változó, amely egy egyszerű fiókos szekrény helyett inkább egy szekrénysorhoz hasonlítható. A kétdimenziós tömb tulajdonképpen egy táblázat, x db sorral, és y db oszloppal rendelkezik. A deklarálásnál ilyenkor a fiókok száma lényegtelen, a sorok (x) és az oszlopok (y) számát kell megadnunk. A fiókokra, illetve tartalmukra a sor- és oszlopszámmal hivatkozhatunk. Az első fiók sorszáma a 0,0, az utolsó fiók sorszáma pedig x-1, y-1. Konkrétan egy 2x2-es szekrény első fiókja sorszám szerint a 0,0, az utolsó pedig az 1,1. Egy kétdimenziós tömb deklarálása és a fiókok tartalmának definiálása: A tomb nevű tömb egy négyfiókos (2x2-es) szekrény: 0,0 fiók ,1 fiók 1,0 fiók ,1 fiók

8 5. Elágazások (szelekciók) a programban Elágazások segítségével határozhatjuk meg, hogy adott helyzetben milyen utasítás végrehajtására kerüljön sor: A program bekér egy számot, és ha a felhasználó 1-est üt be, kiír valamit. A kódban látható 8 If (feltételvizsgálat) Then utasítás1 utasítás2 utasítás3 utasításn End if szerkezet egy elágazás. Ha a feltételvizsgálat (beker=1, jelen esetben 1=1) igaz, akkor az elágazásban szereplő utasítás, vagy utasítások végrehajtásra kerülnek. Az ilyen szerkezetet egyágú szelekciónak hívunk, mivel csak a feltétel teljesülése esetén végrehajtandó utasítások listáját tartalmazza. A fenti programban valójában két darab egyágú szelekció található. Ezek csak csak 1 és 2 esetén határozzák meg, hogy mi történjen. Ha a felhasználó pl. 3-at üt be, semmi sem történik. Egyágú szelekciók mellett gyakran használunk kétágú szelekciókat is. A kétágú szelekció nem csak azt írja elő, hogy mi történjen a feltétel teljesülése esetén, hanem azt is, hogy ellenkező esetben milyen utasítás(ok) kerüljön(ek) végrehajtásra: A program bekér egy számot, és attól függően, hogy a megadott szám 1 vagy sem, kiír valamit. A kódban látható kétágú szelekció szerkezete: If (feltételvizsgálat) Then utasítás1 utasítás2 utasítás3 beker=1 utasításn Else utasítás1 utasítás2 utasítás3 beker<>1 utasításn End if A feltételvizsgálatokban használhatóak a következő operátorok: =, <, > és kifejezések: And, Or

9 6. Ciklusok (iterációk) a programban Ciklusok segítségével egy vagy több utasítást többször hajthatunk végre. Háromféle ciklust használhatunk, de most csak eggyel, a növekményes ciklussal fogunk megismerkedni. A ciklus szerkezete: For [ciklusváltozó]=[kezdőérték] To [befejező érték] utasítás1 utasítás2 utasítás3 utasításn Next A program egymás alatt négyszer jeleníti meg a Hello szót. A ciklusváltozó jelen esetben az i, de lehetne más is, mondjuk j. Ez egy speciális lokális változó, mivel: 9 - nem kell deklarálni - csak a ciklusban létezik, a ciklus után nem használható. A program működése az i aktuális értékétől függ. Az i kezdetben nulla (kezdőérték). A Next utasításnál két dolog történik: - az i értéke eggyel nő - a vezérlés a ciklus elejére (For utasítás) lép ismét. A ciklus elején a program megvizsgálja, hogy az i értéke a kezdő- és befejező érték között van-e. Amennyiben igen, a ciklusban található utasítás (WriteLine("Hello")) ismét végrehajtásra kerül. Majd újra eljutunk a Next hez, i értéke nő, vezérlés visszatér a For hoz. Vázlatosan a következő történik: For Next WriteLine("Hello") i legyen egyenlő 1-gyel az i 0 és 3 között van? IGEN WriteLine("Hello") i legyen egyenlő 2-vel az i 0 és 3 között van? IGEN WriteLine("Hello") i legyen egyenlő 3-mal az i 0 és 3 között van? IGEN WriteLine("Hello") i legyen egyenlő 4-gyel az i 0 és 3 között van? NEM-STOP Könnyen belátható, hogy az alábbi esetekben sem változik meg a program kimenete: - For i = 1 To 4 - For i = 10 To 13 - For i = 11 To 14 Az alábbi program kimenete azonban már eltérő lesz a ciklusváltozó értékeinek módosítása esetén: A For-Next ciklus, mint látni fogjuk, remekül használható tömbök feltöltéséhez. A bal oldalon látható programmal például egy négyelemű egydimenziós tömbbe könnyedén beírhatunk 1-eseket. Amikor i=0, akkor tomb(0)-nak adhatunk értéket,amikor i=1, akkor a tomb(1)-nek, és így tovább. Azaz a For és Next közé elegendő ennyit írni: tomb(i)=1!

10 7. Matematikai műveletek a programban Alapműveletek: 10 - *: szorzás (6* ) - /: osztás (6/3 -- 2) - +: összeadás ( ) - -: kivonás ( ) - \: maradékos osztás (13\2 -- 6) - Mod: maradékképzés (13\2 -- 1) - ^: hatványozás (3 ^ ) - Math.Sqrt(): négyzetgyök (Math.Sqrt(4) -- 2) - Math.Floor(): egészrész képzés (Math.Floor(4.7) -- 4) - Math.Round(): kerekítés (Math.Round(4.7) -- 5) Példa1: Döntsük el egy számról, hogy páros vagy páratlan! 13: páratlan 12: páros Belátható, a fenti két példa alapján is, hogy ha páros számokat kettővel osztunk, akkor a maradék 0 lesz, páratlan számok esetén viszont 1. Ezt kihasználva, a megoldás egyágú és kétágú szelekcióval:

11 Példa2: Mit csinál az alábbi program? 11 III. Programozás haladó(bb) szinten 1. Adatbeolvasás szöveges fájlból Hozzunk létre (például) a C: meghajtón egy VB nevű könyvtárat. Ebben a könyvtárban hozzunk létre egy nevek.txt nevű szöveges fájlt a következő tartalommal: Gipsz Jakab Aba Botond Nagy Kata A feladat az, hogy olvassuk be a szöveges fájlt, majd a neveket egymás után jelenítsük meg a monitoron:

12 A megoldás értelmezése: 12 - fájlműveletekhez szükségünk van az IO névtérre. Ezt a második sorban importáltuk - létrehoztunk egy egysor nevű, szöveges típusú változót. A szöveges fájlból ebbe fog kerülni az első, a második és a harmadik sor (név) - a fajl változóról csak azt kell tudnunk, hogy deklarálása során kell megadnunk a fájl elérési útvonalát, ezután pedig azt, hogy mit akarunk vele kezdeni. Jelen esetben csupán megnyitjuk (FileMode.Open). Ez azt jelenti, hogy tartalmát nem tudjuk módosítani, törölni. Ne felejtsük el lezárni a változót, miután már nincs rá szükség (fajl.close())! - az sorok változóról csak azt kell tudnunk, hogy a program a szöveges fájlban található adatokat segítségével tudja közvetlenül elérni. Ne felejtsük el lezárni a változót, miután már nincs rá szükség (sorok.close())! - a sorok.readline kiolvassa az első sort a fájlból. A kiolvasott sort azonnal betesszük az egysor nevű változóba, majd annak tartalmát rögtön ki is íratjuk a monitorra. Mivel Write() helyett WriteLine() utasítást használunk, a nevek egymás alá fognak kerülni. A második sorok.readline a második sort, a harmadik sorok.readline a harmadik sort olvassa ki. - Mivel a kiolvasás és kiíratás utasítása háromszor változatlanul egymás alatt megtalálható, a programot ciklus segítségével egyszerűsíthetjük: 2. Szöveges fájlok feldarabolása Feladat1: A Gipsz Jakab nevet helyezzük el egy String típusú változóba, majd soronként külön jelenítsük meg a vezeték-, majd keresztnevet (A vezeték- és keresztnév között egy szóköz található)! A feladat megoldásához a Split() függvényt fogjuk használni. A Split() függvény a zárójelben megadott karakter mentén darabolja fel a szöveges fájlt. Jelen esetben a szóköz mentén kell két részre vágni Gipsz Jakabot, így kapjuk meg külön a vezeték- és keresztnevet. Igen ám, de ennek következtében két szövegrész keletkezik, hogy kezeljük ezeket? Tegyük be egy kétfiókos String típusú szekrénybe!

13 A nev nevű változó tárolja a nevet. Létrehoztunk egy elemek nevű kételemű egydimenziós tömböt. Ez fogja tárolni a vezeték- és keresztnevet. A tömb deklarációja után a Split(" ")függvénnyel a bal oldalon látható kód szerint a szóköz helyén feldaraboltuk a nev nevű változó tartalmát, Gipsz Jakab - ot. Ezt követően az elő- és utónevet az elemek nevű tömbbe helyeztük, majd a 0. és 1. sorszámú fiók tartalmát egymás alá a monitorra írtuk. Megjegyzés: 13 - az elemek nevű tömb értelemszerűen kisebb nem lehet, de az az igazság, hogy nagyobb sem. A Split() használata esetén a Split()-tel feldarabolt szöveg részeinek tárolására szolgáló tömb méretét körültekintően kell megtervezni! - Könnyen belátható, hogy ciklus segítségével, a ciklusváltozó felhasználásával is megoldhattuk volna a feladatot Ezt követően az előző fejezetben beolvasott neveket is bontsuk két részre, majd a vezeték- és keresztneveket jelenítsük meg egymás alatt! A neveket egy szóköz választja el egymástól, így a Split() használható. A Split() által feldarabolt szövegrészek tárolásra itt is elegendő egy kételemű egydimenziós tömb, mivel a két részből álló neveket soronként olvassuk ki és daraboljuk fel. Lapozz!

14 14 A bekarikázott részt ciklusra cserélve a program végleges formája:

15 Feladat2: A következő, szóközzel elválasztott számokat olvassuk be egy Byte típusú tömbbe: ! Szükségünk lesz egy olyan tömbre, amely a számokat fogja tárolni. Ez ötelemű lesz, mivel öt számról van szó. A tömb neve legyen szamok, típusa pedig Byte. A Split()-tel feldarabolható, azonban a Split() csak szöveges típusú tömbbe képes beírni a feldarabolás után keletkezett szövegrészeket. Így először egy ötelemű, szöveges típusú tömböt kell feltöltenünk (legyen ez most is az elemek nevű tömb), majd a tömb értékeit át kell írnunk a szintén ötelemű szamok nevű tömbbe. Az első program ciklus nélkül, a második ciklussal oldja meg a feladatot. Az utóbbi rövidebb, elegánsabb, és bár a feladat nem kéri, de könnyedén megjeleníti a szamok nevű tömb minden értékét: Adatbeolvasás, Split(), kétdimenziós tömb 3 az 1-ben, egészségére! A VB könyvtárban készítsünk egy feladat.txt nevű szöveges fájlt a következő tartalommal: A számokat szóköz választja el egymástól. Olvassuk be a számokat egy Byte típusú kétdimenziós tömbbe, majd jelenítsük meg azokat a monitoron először egymás után, majd a fenti mintának megfelelően! Hozzávalók: - az adatbeolvasáshoz szükséges változók (fajl, sorok) - a Split() által használt String típusú tömb. Mivel soronként 5 szám található, ezért 5 eleműnek kell lennie. Legyen a tömb neve továbbra is elemek - a kétdimenziós, Byte típusú, 2x5-ös tömb. Legyen a tömb neve szamok

16 1. lépés a program keretének elkészítése 16 A program középső részén látunk egy For-Next ciklust. Mivel a szöveges fájlban csak két sor van, ezért a ciklusban található utasításokat kétszer kell végrehajtani. Az i értéke először 0, majd 1, így tényleg kétszer olvasunk ki sorokat a szöveges fájlból (sorok.readline), majd ezeket a sorokat különkülön daraboljuk a szóközök mentén. Az i értéke pedig felhasználható valamire: segítségével először a kétdimenziós tömb első (sorszám szerint 0.), majd második (sorszám szerint 1.) sorát tölthetjük fel. 2. lépés a kétdimenziós tömb feltöltése A megjegyzés helyére a következőt írhatjuk: Az i először 0, így először a tömb első sorába írjuk be az első 5 számot, végül az i értéke 1, így a tömb második sorába írjuk be az utolsó öt számot. A bal oldalon látható kód nem túl szép, és nem túl hatékony, ezért átalakítjuk. 3. lépés a feltöltés optimalizálása és a számok kiírása a monitorra egymás alá:

17 A végleges kód: 17 Már csak a megjegyzés helyére kell írnunk valamit. Felhívnám a figyelmet, hogy nem véletlenül fogjuk ide a kódot beszúrni. A megnyitott fájlt célszerű lezárni (fajl.close()), ha már nem használjuk. Mivel a kétdimenziós tömböt már feltöltöttük, és a feladatunk csupán az, hogy ennek a tartalmát a mintának megfelelően kilistázzuk, a megnyitott fájlra már nincs szükségünk, így a fájl lezárása után is elkészíthetjük a hiányzó kódrészletet: Az i itt is a sorokat azonosítja. Az i először 0, majd 1. A kiíráshoz a Write() utasítást használjuk, mert soronként szóközzel elválasztva egymás mellé kell írni 5-5 számot. 5 szám után azonban kell egy sortörés. Erre szolgál az üres WriteLine(). Ez a kódrészlet szintén optimalizálható:

18 IV. Az érettségi feladat megoldása beszéljenek a kódok! Egy nagy kitérő után végre elérkeztünk a feladatmegoldáshoz. Az alábbiakban a megoldásokat közlöm, magyarázatokat viszont nem fűzök a kódhoz. Teszem ezt azért, mert a korábbi fejezetekben minden szükséges információ megtalálható. Így ezt a részt csak azoknak ajánlom, akik az előismereteket más elsajátították. Az alábbi program a mellékelt megoldas.txt-ben is megtalálható. A program váza a II. fejezet 3. pontjában (Eljárások) megtalálható kód lesz. Az alábbiakban csak az egyes eljárások tartalmát közlöm. A forrásfájlt, amit mellékeltem is, a lottosz.dat-ot, a VB könyvtárba másoltam, onnét fogom megnyitni. A továbblépés előtt olvassuk el ismét a tananyag elején található feladatleírást. Az alábbi kódokban figyeljünk a megjegyzésekre is! 18 Szöveges fájl beolvasása kétdimenziós tömbbe a beolvas() eljárás 1. feladat a feladat1() eljárás Kérje be a felhasználótól az 52. hét megadott lottószámait! 2. feladat a feladat2() eljárás Figyelem!!! Ez a feladat a legbonyolultabb, és az alábbiakban használt algoritmust még nem tanultuk. Nyugodtan kihagyhatjuk, és folytathatjuk a 3. feladattal! A program rendezze a bekért lottószámokat emelkedő sorrendbe! A rendezett számokat írja ki a képernyőre! Ahhoz, hogy a bekért számokat rendezni tudjuk, a következő feltételeket figyelembe kell vennünk:

19 - a feladat1() eljárásban használt ujhet változó tartalmát Split()-tel darabolnunk kell, és az elemeket Byte típusú tömbbe kell elhelyezni - az ujhet lokális változó, a feladat() eljárásból nem érhető el, ezért globális változóvá kell előléptetnünk: 19 Végül a megoldás:

20 3. feladat a feladat3() eljárás Kérjen be a felhasználótól egy egész számot 1-51 között! A bekért adatot nem kell ellenőrizni! feladat a feladat4() eljárás Írja ki a képernyőre a bekért számnak megfelelő sorszámú hét lottószámait, a lottosz.dat állományban lévő adatok alapján! Megjegyzések: - mivel a lottosz.dat adatait már elhelyeztük a szamok nevű kétdimenziós tömbbe, ezért a fájlt nem kell újra megnyitnunk. A szamok azonban lokális változó, a feladat4()-ből nem érhető el. Globális változóvá kell előléptetni: - hasonlóképpen a feladat3() eljárásban bekért szám (szam) is lokális változó. Globális változót kell belőle csinálni, hogy a feladat4() eljárás kezelni tudja:

21 21 * az ujhet nevű globális változót a feladat2()-ben hoztuk létre. Végül a megoldás: folytatása következik januárban

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

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása Tömbök kezelése Példa: Vonalkód ellenőrzőjegyének kiszámítása A számokkal jellemzett adatok, pl. személyi szám, adószám, taj-szám, vonalkód, bankszámlaszám esetében az elírásból származó hibát ún. ellenőrző

Részletesebben

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek Programozás alapjai gyakorlat 4. gyakorlat Konstansok, tömbök, stringek Házi ellenőrzés (f0069) Valósítsd meg a linuxos seq parancs egy egyszerűbb változatát, ami beolvas két egész számot, majd a kettő

Részletesebben

1. Alapok. #!/bin/bash

1. Alapok. #!/bin/bash 1. oldal 1.1. A programfájlok szerkezete 1. Alapok A bash programok tulajnképpen egyszerű szöveges fájlok, amelyeket bármely szövegszerkesztő programmal megírhatunk. Alapvetően ugyanazokat a at használhatjuk

Részletesebben

Felvételi tematika INFORMATIKA

Felvételi tematika INFORMATIKA Felvételi tematika INFORMATIKA 2016 FEJEZETEK 1. Természetes számok feldolgozása számjegyenként. 2. Számsorozatok feldolgozása elemenként. Egydimenziós tömbök. 3. Mátrixok feldolgozása elemenként/soronként/oszloponként.

Részletesebben

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

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai): Python Változók Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai): Név Érték Típus Memóriacím A változó értéke (esetleg más attribútuma is) a program futása alatt

Részletesebben

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK Mérési Utasítás Linux/Unix jogosultságok és fájlok kezelése Linux fájlrendszerek és jogosultságok Linux alatt, az egyes fájlokhoz való hozzáférések szabályozása érdekében a fájlokhoz tulajdonost, csoportot

Részletesebben

7. fejezet: Mutatók és tömbök

7. fejezet: Mutatók és tömbök 7. fejezet: Mutatók és tömbök Minden komolyabb programozási nyelvben vannak tömbök, amelyek gondos kezekben komoly fegyvert jelenthetnek. Először is tanuljunk meg tömböt deklarálni! //Tömbök használata

Részletesebben

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

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 4. gyakorlat PLanG: 2011.10.04. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Fájlok

Részletesebben

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

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport 10-es Keressünk egy egész számokat tartalmazó négyzetes mátrixban olyan oszlopot, ahol a főátló alatti elemek mind nullák! Megolda si terv: Specifika cio : A = (mat: Z n m,ind: N, l: L) Ef =(mat = mat`)

Részletesebben

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

1. Jelölje meg az összes igaz állítást a következők közül! 1. Jelölje meg az összes igaz állítást a következők közül! a) A while ciklusban a feltétel teljesülése esetén végrehajtódik a ciklusmag. b) A do while ciklusban a ciklusmag után egy kilépési feltétel van.

Részletesebben

hiányzott szeptemberben vagy A tanuló nem hiányzott szeptemberben szöveget

hiányzott szeptemberben vagy A tanuló nem hiányzott szeptemberben szöveget Hiányzások Ebben a feladatban egy általános iskola 2017 szeptemberi hiányzásai tartalmazó szövegfájlt kell feldolgoznia. Az adatok a szeptember.csv állomány tartalmazza. Az állomány egy sorában egy tanuló

Részletesebben

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

Szöveges fájl kezelése (a Caesar-kód feltörése) A kód feltörésének statisztikai háttere Szöveges fájl kezelése (a Caesar-kód feltörése) A kód feltörésének statisztikai háttere Hosszabb szöveg esetén a Caesar-kód feltörése a statisztika módszereivel könnyen megoldható. Az egyes betűk előfordulásának

Részletesebben

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

Occam 1. Készítette: Szabó Éva Occam 1. Készítette: Szabó Éva Párhuzamos programozás Egyes folyamatok (processzek) párhuzamosan futnak. Több processzor -> tényleges párhuzamosság Egy processzor -> Időosztásos szimuláció Folyamatok közötti

Részletesebben

BASH SCRIPT SHELL JEGYZETEK

BASH SCRIPT SHELL JEGYZETEK BASH SCRIPT SHELL JEGYZETEK 1 TARTALOM Paraméterek... 4 Változók... 4 Környezeti változók... 4 Szűrők... 4 grep... 4 sed... 5 cut... 5 head, tail... 5 Reguláris kifejezések... 6 *... 6 +... 6?... 6 {m,n}...

Részletesebben

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

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 4. gyakorlat PLanG: 2011.10.04. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Fájlok

Részletesebben

A C# PROGRAMOZÁSI NYELV

A C# PROGRAMOZÁSI NYELV A C# PROGRAMOZÁSI NYELV 2010.02.23. Bevezetés C# nyelv jellemzői 2 Kis és NAGY betű érzékeny Minden utasítást pontos vessző zár. Utasítás zárójel a:,. .NET Framework keretrendszerek 3 Microsoft.NET Framework

Részletesebben

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1 INFORMATIKAI RENDSZEREK ALAPJAI (INFORMATIKA I.) 1 NEUMANN ARCHITEKTÚRÁJÚ GÉPEK MŰKÖDÉSE SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1 Ebben a feladatban a következőket fogjuk áttekinteni: Neumann rendszerű számítógép

Részletesebben

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2019. augusztus 29. Feladat: írjuk ki az els 10 természetes szám négyzetét! #i n c l u d e i n t main ( v o i d ) { p r

Részletesebben

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.10.. -1- Mit tudunk már? Típus fogalma char, int, float,

Részletesebben

Webprogramozás szakkör

Webprogramozás szakkör Webprogramozás szakkör Előadás 5 (2012.04.09) Programozás alapok Eddig amit láttunk: Programozás lépései o Feladat leírása (specifikáció) o Algoritmizálás, tervezés (folyamatábra, pszeudokód) o Programozás

Részletesebben

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

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED AWK - szintaxis, vezérlési szerkezetek Operációs rendszerek 11. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik

Részletesebben

2018, Funkcionális programozás

2018, Funkcionális programozás Funkcionális programozás 6. előadás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2018, tavaszi félév Miről volt szó? Haskell modulok, kompilálás a

Részletesebben

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Programozás alapjai gyakorlat. 2. gyakorlat C alapok Programozás alapjai gyakorlat 2. gyakorlat C alapok 2016-2017 Bordé Sándor 2 Forráskód, fordító, futtatható állomány Először megírjuk a programunk kódját (forráskód) Egyszerű szövegszerkesztőben vagy fejlesztőkörnyezettel

Részletesebben

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3) Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Mit tudunk már? Típus fogalma char, int, float, double változók deklarációja operátorok (aritmetikai, relációs, logikai,

Részletesebben

1. numere.txt n (1 n 10000) n növekvő kilenc a) Pascal/C++ Például: NUMERE.TXT

1. numere.txt n (1 n 10000) n növekvő kilenc a) Pascal/C++ Például: NUMERE.TXT Az informatika érettségi harmadik tételsora tartalmaz egy feladatot, melyet hatékonyan kell megoldani. A program megírása mellett követelmény a megoldásban használt módszer rövid leírása, kitérve a módszer

Részletesebben

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

BASH script programozás II. Vezérlési szerkezetek 06 BASH script programozás II. Vezérlési szerkezetek Emlékeztető Jelölésbeli különbség van parancs végrehajtása és a parancs kimenetére való hivatkozás között PARANCS $(PARANCS) Jelölésbeli különbség van

Részletesebben

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

Programozás Minta programterv a 1. házi feladathoz 1. Programozás Minta programterv a 1. házi feladathoz 1. Gregorics Tibor 1. beadandó/0.feladat 2008. december 6. EHACODE.ELTE gt@inf.elte.hu 0.csoport Feladat Egy osztályba n diák jár, akik m darab tantárgyat

Részletesebben

Bevezetés a programozásba I.

Bevezetés a programozásba I. Bevezetés a programozásba I. 6. gyakorlat C++ alapok, szövegkezelés Surányi Márton PPKE-ITK 2010.10.12. Forrásfájlok: *.cpp fájlok Fordítás: a folyamat, amikor a forrásfájlból futtatható állományt állítunk

Részletesebben

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

1. Egyszerű (primitív) típusok. 2. Referencia típusok II. A Java nyelv eszközei 1. Milyen eszközöket nyújt a Java a programozóknak Korábban már említettük, hogy a Java a C nyelvből alakult ki, ezért a C, C++ nyelvben járatos programozóknak nem fog nehézséget

Részletesebben

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 10. gyakorlat C++: alprogramok deklarációja és paraméterátadása 2011.11.22. Giachetta Roberto groberto@inf.elte.hu

Részletesebben

Készítette: Nagy Tibor István

Készítette: Nagy Tibor István Készítette: Nagy Tibor István A változó Egy memóriában elhelyezkedő rekesz Egy értéket tárol Van azonosítója (vagyis neve) Van típusa (milyen értéket tárolhat) Az értéke értékadással módosítható Az értéke

Részletesebben

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

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK, Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás OE-NIK, 2013 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk

Részletesebben

Programozási segédlet

Programozási segédlet Programozási segédlet Programozási tételek Az alábbiakban leírtam néhány alap algoritmust, amit ismernie kell annak, aki programozásra adja a fejét. A lista korántsem teljes, ám ennyi elég kell legyen

Részletesebben

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

AWK programozás, minták, vezérlési szerkezetek 10 AWK programozás, minták, vezérlési szerkezetek AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa

Részletesebben

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

1. feladat Készítse el szövegszerkesztővel, majd mentse osztály.txt néven a következő tartalmú szöveges fájlt: BME MOGI Gépészeti informatika 12. 1. feladat Készítse el szövegszerkesztővel, majd mentse osztály.txt néven a következő tartalmú szöveges fájlt: Matematika;Fizika;Történelem;Irodalom;Nyelvtan;Angol;Testnevelés;

Részletesebben

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

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai): Javascript Változók Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai): Név Érték Típus Memóriacím A változó értéke (esetleg más attribútuma is) a program futása

Részletesebben

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1 Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1 Készítette: Gipsz Jakab Neptun-azonosító: A1B2C3 E-mail: gipszjakab@vilaghalo.hu Kurzuskód: IP-08PAED Gyakorlatvezető

Részletesebben

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

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1 Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1 Készítette: Gipsz Jakab Neptun-azonosító: ABC123 E-mail: gipszjakab@seholse.hu Kurzuskód: IT-13AAT1EG 1 A fenti

Részletesebben

Programozás alapjai. 5. előadás

Programozás alapjai. 5. előadás 5. előadás Wagner György Általános Informatikai Tanszék Cserélve kiválasztásos rendezés (1) A minimum-maximum keresés elvére épül. Ismétlés: minimum keresés A halmazból egy tetszőleges elemet kinevezünk

Részletesebben

I. Specifikáció készítés. II. Algoritmus készítés

I. Specifikáció készítés. II. Algoritmus készítés Tartalomjegyzék I. Specifikáció készítés...2 II. Algoritmus készítés...2 Egyszerű programok...6 Beolvasásos feladatok...10 Elágazások...10 Ciklusok...1 Vegyes feladatok...1 1 I. Specifikáció készítés A

Részletesebben

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

S z á m í t ó g é p e s a l a p i s m e r e t e k S z á m í t ó g é p e s a l a p i s m e r e t e k 7. előadás Ami eddig volt Számítógépek architektúrája Alapvető alkotóelemek Hardver elemek Szoftver Gépi kódtól az operációs rendszerig Unix alapok Ami

Részletesebben

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

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II. 7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II. A gyakorlat célja: 1. A shell vezérlő szerkezetei használatának gyakorlása. A használt vezérlő szerkezetek: if/else/fi, for, while while, select, case,

Részletesebben

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai Kémiai elemek felfedezése A kémiai elemek kémiailag tovább már nem bontható, egyszerű anyagok. Jelenleg 118 különböző kémiai elemet ismerünk, közüliik a Földön 94 található meg a természetben, ezeket természetes

Részletesebben

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás Algoritmusok Tervezése 4. Előadás Visual Basic 1. Dr. Bécsi Tamás Bevezetés A BASIC (Beginner s All-purpose Symbolic Instruction Code) programnyelvet oktatási célokra hozták létre 1964-ben. Az általános

Részletesebben

LibreOffice Makró Basic

LibreOffice Makró Basic 2017/01/12 13:05 1/11 LibreOffice Makró Basic < Basic LibreOffice LibreOffice Makró Basic Szerző: Sallai András Copyright Sallai András, 2013 Licenc: GNU Free Documentation License 1.3 Web: http://szit.hu

Részletesebben

2. Készítsen awk szkriptet, amely kiírja az aktuális könyvtár összes alkönyvtárának nevét, amely februári keltezésű (bármely év).

2. Készítsen awk szkriptet, amely kiírja az aktuális könyvtár összes alkönyvtárának nevét, amely februári keltezésű (bármely év). 1. fejezet AWK 1.1. Szűrési feladatok 1. Készítsen awk szkriptet, ami kiírja egy állomány leghosszabb szavát. 2. Készítsen awk szkriptet, amely kiírja az aktuális könyvtár összes alkönyvtárának nevét,

Részletesebben

Delphi programozás I.

Delphi programozás I. Delphi programozás I. Konzol alkalmazások készítése Delphiben A Delphi konzol alkalmazása (console application) olyan 32 bites program, amely nem grafikus felületen, hanem egy szöveges konzol ablakban

Részletesebben

C programozási nyelv Pointerek, tömbök, pointer aritmetika

C programozási nyelv Pointerek, tömbök, pointer aritmetika C programozási nyelv Pointerek, tömbök, pointer aritmetika Dr. Schuster György 2011. június 16. C programozási nyelv Pointerek, tömbök, pointer aritmetika 2011. június 16. 1 / 15 Pointerek (mutatók) Pointerek

Részletesebben

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

Bánsághi Anna 2014 Bánsághi Anna 1 of 35 IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 4. ELŐADÁS - ADATFOLYAMOK KEZELÉSE 2014 Bánsághi Anna 1 of 35 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív

Részletesebben

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

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb 1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb #include main() { int a, b; printf( "a=" ); scanf( "%d", &a ); printf( "b=" ); scanf( "%d", &b ); if( a< b ) { inttmp = a; a =

Részletesebben

Gyakorló feladatok az 1. nagy zárthelyire

Gyakorló feladatok az 1. nagy zárthelyire Gyakorló feladatok az 1. nagy zárthelyire 2012. október 7. 1. Egyszerű, bevezető feladatok 1. Kérjen be a felhasználótól egy sugarat. Írja ki az adott sugarú kör kerületét illetve területét! (Elegendő

Részletesebben

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa: 1. Tétel Az állomány két sort tartalmaz. Az első sorában egy nem nulla természetes szám van, n-el jelöljük (5

Részletesebben

Szoftvertervezés és -fejlesztés I.

Szoftvertervezés és -fejlesztés I. Szoftvertervezés és -fejlesztés I. Operátorok Vezérlési szerkezetek Gyakorlás 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik.

Részletesebben

A C# programozási nyelv alapjai

A C# programozási nyelv alapjai A C# programozási nyelv alapjai Tisztán objektum-orientált Kis- és nagybetűket megkülönbözteti Ötvözi a C++, Delphi, Java programozási nyelvek pozitívumait.net futtatókörnyezet Visual Studio fejlesztőkörnyezet

Részletesebben

INFORMATIKAI ALAPISMERETEK

INFORMATIKAI ALAPISMERETEK ÉRETTSÉGI VIZSGA 2005. május 20. INFORMATIKAI ALAPISMERETEK KÖZÉPSZINTŰ ÉRETTSÉGI VIZSGA Az írásbeli vizsga időtartama: 180 perc JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ OKTATÁSI MINISZTÉRIUM Megoldási útmutató I.

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java 2. gyakorlat Függvények Általános prototípus Módosítószavak Láthatóság: public, protected, private. Ha nem definiált, akkor úgynevezett package-private láthatóság. Lehet abstract

Részletesebben

6. fejezet: Ciklusok

6. fejezet: Ciklusok 6. fejezet: Ciklusok Mint a nyelvekben általában, itt is léteznek ciklusok. Az alapvető három ciklus-típus: elöltesztelő, hátultesztelő és számláló. Lássuk ezeket sorban! Elöltesztelő = while. A while

Részletesebben

I. ALAPALGORITMUSOK. I. Pszeudokódban beolvas n prim igaz minden i 2,gyök(n) végezd el ha n % i = 0 akkor prim hamis

I. ALAPALGORITMUSOK. I. Pszeudokódban beolvas n prim igaz minden i 2,gyök(n) végezd el ha n % i = 0 akkor prim hamis I. ALAPALGORITMUSOK 1. Prímszámvizsgálat Adott egy n természetes szám. Írjunk algoritmust, amely eldönti, hogy prímszám-e vagy sem! Egy számról úgy fogjuk eldönteni, hogy prímszám-e, hogy megvizsgáljuk,

Részletesebben

1. Alapok. Programozás II

1. Alapok. Programozás II 1. Alapok Programozás II Elérhetőség Név: Smidla József Elérhetőség: smidla dcs.uni-pannon.hu Szoba: I916 2 Irodalom Bjarne Stroustrup: A C++ programozási nyelv 3 Irodalom Erich Gamma, Richard Helm, Ralph

Részletesebben

Torna. A torna.csv UTF-8 kódolású állományban soronként egy versenyző eredményeit tároljuk. Az adatokat pontosvessző választja el egymástól.

Torna. A torna.csv UTF-8 kódolású állományban soronként egy versenyző eredményeit tároljuk. Az adatokat pontosvessző választja el egymástól. Torna A pekingi olimpián tornából hat versenyszámban mérettetik meg magukat a versenyzők. Ennek a versenynek az eredményeit kell feldolgoznia ebben a feladatban. A megoldás során vegye figyelembe a következőket:

Részletesebben

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

Mintavételes szabályozás mikrovezérlő segítségével Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés

Részletesebben

AWK programozás Bevezetés

AWK programozás Bevezetés 09 AWK programozás Bevezetés AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa és feldolgozhatóvá

Részletesebben

Vezérlési szerkezetek

Vezérlési szerkezetek Vezérlési szerkezetek Szelekciós ok: if, else, switch If Segítségével valamely ok végrehajtását valamely feltétel teljesülése esetén végezzük el. Az if segítségével valamely tevékenység () végrehajtását

Részletesebben

Bevezetés a programozásba I.

Bevezetés a programozásba I. Elágazás Bevezetés a programozásba I. 2. gyakorlat, tömbök Surányi Márton PPKE-ITK 2010.09.14. Elágazás Elágazás Eddigi programjaink egyszer ek voltak, egy beolvasás (BE: a), esetleg valami m velet (a

Részletesebben

A képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írja a képernyőre a feladat sorszámát (például: 3. feladat:)!

A képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írja a képernyőre a feladat sorszámát (például: 3. feladat:)! Space Shuttle 40 Pont A Space Shuttle (magyarul űrsikló", hivatalos angol nevén: Space Transportation System, STS) az Amerikai Egyesült Államok ember szállítására is alkalmas űrprogramja volt. Feladatai

Részletesebben

Kirakós játék. Döntő február 22. Alakzatok (katalógus) DUSZA ÁRPÁD ORSZÁGOS PROGRAMOZÓI EMLÉKVERSENY 2013/2014

Kirakós játék. Döntő február 22. Alakzatok (katalógus) DUSZA ÁRPÁD ORSZÁGOS PROGRAMOZÓI EMLÉKVERSENY 2013/2014 Döntő 2014. február 22. Kirakós játék Az Q-Puzzler kirakós játékot egyedül játsszák. A játéktér egy 5 sorból és 11 oszlopból álló lyukacsos tábla, amelybe különböző színű síkbeli alakzatok illeszthetőek.

Részletesebben

Saját Subversion tároló üzemeltetése i. Saját Subversion tároló üzemeltetése

Saját Subversion tároló üzemeltetése i. Saját Subversion tároló üzemeltetése i Saját Subversion tároló üzemeltetése ii KÖZREMŰKÖDŐK CÍM : Saját Subversion tároló üzemeltetése TEVÉKENYSÉG NÉV DÁTUM ALÁÍRÁS ÍRTA Jeszenszky, Péter 2014. február 16. VERZIÓTÖRTÉNET VERZIÓ DÁTUM LEÍRÁS

Részletesebben

INFORMATIKAI ALAPISMERETEK

INFORMATIKAI ALAPISMERETEK Informatikai alapismeretek középszint 0631 ÉRETTSÉGI VIZSGA 2006. október 24. INFORMATIKAI ALAPISMERETEK KÖZÉPSZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ OKTATÁSI ÉS KULTURÁLIS MINISZTÉRIUM

Részletesebben

Konzolalkalmazások gyors tesztelése

Konzolalkalmazások gyors tesztelése Juhász Tibor: Konzolalkalmazások gyors tesztelése Kiegészítés a Programozási ismeretek haladóknak című könyvhöz (Műszaki Kiadó, 2012) A programozás versenyeken, de egyéb esetekben is fontos lehet, hogy

Részletesebben

Informatika terméktervezőknek

Informatika terméktervezőknek Informatika terméktervezőknek C# alapok Névterület (namespace) using Osztály (class) és Obejtumok Metódus (function, procedure, method) main() static void string[] arg Szintaxis // /* */ \n \t Névadások

Részletesebben

INFORMATIKA javítókulcs 2016

INFORMATIKA javítókulcs 2016 INFORMATIKA javítókulcs 2016 ELMÉLETI TÉTEL: Járd körbe a tömb fogalmát (Pascal vagy C/C++): definíció, egy-, két-, több-dimenziós tömbök, kezdőértékadás definíciókor, tömb típusú paraméterek átadása alprogramoknak.

Részletesebben

sallang avagy Fordítótervezés dióhéjban Sallai Gyula

sallang avagy Fordítótervezés dióhéjban Sallai Gyula sallang avagy Fordítótervezés dióhéjban Sallai Gyula Az előadás egy kis példaprogramon keresztül mutatja be fordítók belső lelki világát De mit is jelent, az hogy fordítóprogram? Mit csinál egy fordító?

Részletesebben

Objektumorientált Programozás III.

Objektumorientált Programozás III. Objektumorientált Programozás III. Vezérlési szerkezetek ismétlés Matematikai lehetőségek Feladatok 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő

Részletesebben

Bevezetés a programozásba I.

Bevezetés a programozásba I. Bevezetés a programozásba I. 8. gyakorlat Fájlkezelés Surányi Márton PPKE-ITK 2010.11.02. Fájlkezelés C++-ban C++-ban van lehet ségünk fájlok kezelésére. Itt már tényleges fájlokkal dolgozunk, nem pedig

Részletesebben

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

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv PHP A PHP rövidítés jelentése hivatalosan: PHP Hypertext Preprocessor. Ez egy kiszolgáló-oldali parancsnyelv, amit jellemzően HTML oldalakon használnak. A különbség a két nyelv között az, hogy a kiszolgáló

Részletesebben

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

AWK programozás, minták, vezérlési szerkezetek 10 AWK programozás, minták, vezérlési szerkezetek AWK futtatási módok AWK parancs, közvetlen programkódmegadás: awk 'PROGRAMKÓD' FILE példa: ls -l awk '{print $1, $5}' a programkód helyére minden indentálás

Részletesebben

Programozás alapjai 9.Gy: Struktúra 2.

Programozás alapjai 9.Gy: Struktúra 2. Programozás alapjai 9.Gy: Struktúra 2. Ördögi részletek P R O A L A G 35/1 B ITv: MAN 2018.11.10 Euró árfolyam statisztika Az EURO árfolyamát egy negyedéven keresztül hetente nyilvántartjuk (HUF / EUR).

Részletesebben

Operációs rendszerek gyak.

Operációs rendszerek gyak. Operációs rendszerek gyak. AWK programozás Hirling Dominik Szegedi Tudományegyetem AWK AWK: a pattern scanning and processing language mintaelemző-és feldolgozó nyelv bármilyen szövegből minták alapján

Részletesebben

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS 2.ELŐADÁS A VB programozási nyelv Az Excel programozása 2 A VB programozási nyelv Adattípusok Adatok kezelése Vezérlőszerkezetek Adattípusok és műveletek Egész adattípusok

Részletesebben

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

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1 Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1 Készítette: Gipsz Jakab Neptun-azonosító: ABC123 E-mail: gipszjakab@seholse.hu Kurzuskód: IT-13AAT1EG Gyakorlatvezető

Részletesebben

Programozás alapjai 2.Gy: A C nyelv alapjai P R O

Programozás alapjai 2.Gy: A C nyelv alapjai P R O Programozás alapjai 2.Gy: A C nyelv alapjai. P R O A L A G 1/32 B ITv: MAN 2018.10.02 Code::Blocks Indítsa el mindenki! 2/32 1 Code::Blocks Új projekt 2 3 4 5 3/32 Code::Blocks Forráskód Kód fordítása:

Részletesebben

Szöveges fájlok szerkesztése Jegyzettömb használata

Szöveges fájlok szerkesztése Jegyzettömb használata Szöveges fájlok szerkesztése A Jegyzettömb csak szöveges dokumentum (TXT fájl) szerkesztésére alkalmas (Editor). Ez azt jelenti, hogy a begépelt szöveget nem tudjuk kedvünk szerint megformázni, vagyis

Részletesebben

Merevlemez üzembe helyezése, particionálása

Merevlemez üzembe helyezése, particionálása Merevlemez üzembe helyezése, particionálása (gyakorlati) A meghajtók és partíciók fogalma A meghajtó egy fizikai tárolóeszközt, például a merevlemez-meghajtó vagy a cserélhető USB-meghajtó. A partíció

Részletesebben

Programozás alapjai. 10. előadás

Programozás alapjai. 10. előadás 10. előadás Wagner György Általános Informatikai Tanszék Pointerek, dinamikus memóriakezelés A PC-s Pascal (is) az IBM PC memóriáját 4 fő részre osztja: kódszegmens adatszegmens stackszegmens heap Alapja:

Részletesebben

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

Programozás II. 2. Dr. Iványi Péter Programozás II. 2. Dr. Iványi Péter 1 C++ Bjarne Stroustrup, Bell Laboratórium Első implementáció, 1983 Kezdetben csak precompiler volt C++ konstrukciót C-re fordította A kiterjesztés alapján ismerte fel:.cpp.cc.c

Részletesebben

Kézikönyv. Szelekciós jegyzék létrehozása

Kézikönyv. Szelekciós jegyzék létrehozása Kézikönyv Szelekciós jegyzék létrehozása Tartalomjegyzék 1 OBJEKTUM KIVÁLASZTÁS - VEVŐ MEGJELENÍTÉS... 4 2 VEVŐ - ÜRES... 6 3 ABAS-ERP MASZKINFÓ... 8 4 VEVŐ - ÜRES... 9 5 ABAS-ERP MASZKINFÓ... 11 6 VEVŐ

Részletesebben

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

Szövegek C++ -ban, a string osztály Szövegek C++ -ban, a string osztály A string osztály a Szabványos C++ könyvtár (Standard Template Library) része és bár az objektum-orientált programozásról, az osztályokról, csak később esik szó, a string

Részletesebben

Programozási nyelvek II. JAVA

Programozási nyelvek II. JAVA Programozási nyelvek II. JAVA 8. gyakorlat 2017. november 6-10. Általános tudnivalók A feladatmegoldás során fontos betartani az elnevezésekre és típusokra vonatkozó megszorításokat, illetve a szövegek

Részletesebben

Feladat. Bemenő adatok. Bemenő adatfájlok elvárt formája. Berezvai Dániel 1. beadandó/4. feladat 2012. április 13. Például (bemenet/pelda.

Feladat. Bemenő adatok. Bemenő adatfájlok elvárt formája. Berezvai Dániel 1. beadandó/4. feladat 2012. április 13. Például (bemenet/pelda. Berezvai Dániel 1. beadandó/4. feladat 2012. április 13. BEDTACI.ELTE Programozás 3ice@3ice.hu 11. csoport Feladat Madarak életének kutatásával foglalkozó szakemberek különböző településen különböző madárfaj

Részletesebben

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos OOP I. Egyszerő algoritmusok és leírásuk Készítette: Dr. Kotsis Domokos Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendı anyag vázlatát képezik. Ismeretük

Részletesebben

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.

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. Számítás:. Olvassuk be két pont koordinátáit: (, y) és (2, y2). Határozzuk meg a két pont távolságát és nyomtassuk ki. 2. Olvassuk be két darab két dimenziós vektor komponenseit: (a, ay) és (b, by). Határozzuk

Részletesebben

3. ZH-ban a minimum pontszám 15

3. ZH-ban a minimum pontszám 15 1. HF 2. HF 3. HF 4. HF 5. HF 1. ZH 2. ZH 3. ZH Osszesen Jegy EHA kod 4 4 4 4 4 4 4 4 18 10 10 30 100 1 ARAPAFP.PTE 3.5 2.5 4 4 2 4 4 2 15 5 6 18 70 3 x 2 BAMPACP.PTE 4 4 4 4 4 4 4 4 18 10 8 26 94 5 x

Részletesebben

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

Bánsághi Anna 2014 Bánsághi Anna 1 of 68 IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 3. ELŐADÁS - PROGRAMOZÁSI TÉTELEK 2014 Bánsághi Anna 1 of 68 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív

Részletesebben

C programozási nyelv

C programozási nyelv C programozási nyelv Előfeldolgozó utasítások Dr Schuster György 2011 május 3 Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 1 / 15 A fordítás menete Dr Schuster György

Részletesebben

Alapok: Használd számológép helyett

Alapok: Használd számológép helyett Alapok: Használd számológép helyett Az Excelt ugyanúgy használhatod, mint a számológépet, vagyis bármit ki tudsz vele számolni. Egész egyszerűen csak írj egy egyenlőségjelet a sor elejére és aztán ugyanúgy,

Részletesebben

A fizetendő összegből a 35 év fölötti tulajdonos 20 % kedvezményt kap.

A fizetendő összegből a 35 év fölötti tulajdonos 20 % kedvezményt kap. Elágazás Az elágazás, olyan vezérlési szerkezet, amely az utasítások egy adott csoportját attól függően hajtja végre, hogy egy adott logikai feltétel teljesül-e. Legegyszerűbb változata a kétirányú elágazás,

Részletesebben

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

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 1 Információk 2 A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin Elérhetőség mesko.katalin@tfk.kefo.hu Fogadóóra: szerda 9:50-10:35 Számonkérés időpontok Április 25. 9 00 Május 17. 9 00 Június

Részletesebben

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

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 Számítógépes szimulációk 1. Bevezetés BME Fizika Intézet 2015. szeptember 9. Bevezetés A félév menete C-ismétlés, 1. rész Oktatók: Nagyfalusi Balázs: nagyfalusi@phy.bme.hu, F3 211. : tcsaba@eik.bme.hu,

Részletesebben

A Windows az összetartozó adatokat (fájlokat) mappákban (könyvtárakban) tárolja. A mappák egymásba ágyazottak.

A Windows az összetartozó adatokat (fájlokat) mappákban (könyvtárakban) tárolja. A mappák egymásba ágyazottak. Mappakezelés WINDOWS-7 A Windows az összetartozó adatokat (fájlokat) mappákban (könyvtárakban) tárolja. A mappák egymásba ágyazottak. A PC legnagyobb mappája, amely az összes többi mappát is magában foglalja,

Részletesebben

Objektum Orientált Programozás V.

Objektum Orientált Programozás V. Objektum Orientált Programozás V. A Microsoft Visual Studio 2010 használata Műveletek tömbökkel Érték- és referenciatípusú változók Feladatok 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok,

Részletesebben