információs technológiák - university of...

226
B IT M A N 226/1 v: 2015.09.08 B IT M A N 4. Ea: A lélek Információs technológiák A csak szidható „kézzelfoghatatlan”

Upload: others

Post on 25-Dec-2019

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/1 v: 2015.09.08B IT MAN

4. Ea: A lélek

Információs technológiák

A csak szidható „kézzelfoghatatlan”

Page 2: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/2

Felhasználói programok

Ellenőrző kérdések

Segédprogramok

Szoftver alapok

Operációs rendszerek

Programfejlesztő eszközök

Témakörök

Page 3: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/3

A szoftver:

Több, különböző célra megírt program összessége

Csoportosítás funkció szerint:

– Rendszerszoftverek - Operációs rendszerek

– Felhasználói programok

– Segédprogramok

– Programfejlesztő eszközök – Programozási

nyelvek

A szoftver

Page 4: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/4

H A R D V E R

Operációs rendszer

Alkalmazói

programok

A hardver és a szoftver kapcsolata

Segéd-

programok

Programfejlesztő

eszközök

Page 5: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/5

A szoftverekkel kapcsolatos teendők

Beszerzés

– Vásárlás, letöltés, speciális esetben: szoftver írás

Telepítés

– Varázsló,

– Működési környezet beállítása

Frissítés

– Verzió

Eltávolítás

– Varázsló

– Vezérlőpult \ Programok telepítése vagy eltávolítása

Page 6: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/6

Szoftverek jogállása 1.

A számítógépes programokat szerzői jogi törvény védi (1999. évi LXXVI-os tv.), amely kimondja:

– Az eredeti számítógépes program az azt létrehozó személy vagy vállalat szellemi tulajdona.

– A számítógépes programok engedély nélküli másolása törvénybe ütköző cselekedet.

Egy adott szoftver esetében a licenc szerződéshatározza meg a szerzői jog tulajdonosa által megengedett szoftverhasználat feltételeit.

A szoftver licenc szerződés amennyiben eltérően nem rendelkezik, a vevőnek csak egyetlen “biztonsági másolat” készítését engedélyezi, arra az esetre, ha az eredeti szoftver lemeze meghibásodna, vagy megsemmisülne.

Page 7: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/7

Szoftverek jogállása 2.

Illegális szoftver használat: valaki egy számítógépes

programot jogosulatlanul másol le és használ, ezzel

megsértve a szerzői jogi törvényt.

A hamisítás a szerzői jogvédelem alá eső szoftver nem

jogszerű sokszorosítása és eladása.

Internet kalózkodás (warez): Egy szerzői jogvédelem alá

eső szoftver a jogtulajdonos kifejezett engedélye nélkül

felkerül egy nyilvános vagy korlátozott hozzáférésű

kiszolgálóra, ahonnan ingyen, vagy díjazás fejében

letölthetővé válik.

A Business Software Alliance (BSA) egy nemzetközi

szervezet, amely a vezető szoftvergyártók érdekeit

képviseli és küzd a szoftverkalózkodás ellen.

Page 8: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/8

Szoftverek jogállása – Licenc típusok

Jogdíjas (fizetni kell a használatáért)

Shareware - kis ideig szabadon használható, aztán

fizetni kell

Freeware - ingyen használható, de csak saját célra,

üzleti célra nem

Public Domain - teljesen ingyenes bármilyen célra

Demo - ingyen használható, de sok funkciója hiányzik

(mentés, nyomtatás…)

Page 9: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/9

Felhasználói programok

Ellenőrző kérdések

Segédprogramok

Szoftver alapok

Operációs rendszerek

Programfejlesztő eszközök

Témakörök

Page 10: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/10

Page 11: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/11

Fogalma: Egymással együttműködő programokból álló

szoftverrendszer, amelynek feladata:

a számítógép hardver elemeinek összehangolt,

hatékony működtetése,

a hardver kényelmes használhatóságának biztosítása

– a gépet kezelő személyek felé,

– a gépen futó alkalmazások felé.

Operációs rendszerek

Operációs

rendszer

Alkalmazások

Felhasználók

HARDVER

Page 12: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/12

Az operációs rendszer részei

CPU Memória Eszközök

Kernel

Alkalmazások

Kernel: Rendszermag

Processzor kezelés

Memória kezelés

Eszközkezelés

API – Alkalmazói programozói interfész

A programok hogyan vehetik igénybe a kernel szolgáltatásait

Shell: Rendszerhéj

Kapcsolattartás a felhasználóval

API Shell

Page 13: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/13

Betöltődés – Bootolás

1. Bekapcsolási önteszt

– processzor,

– memória,

– vezérlő-kártyák,

– háttértárak.

2. Betölthető operációs rendszer megkeresése

3. Betöltő program elindítása

– Kernel,

– Hardver elemek meghajtó programjai,

– Szolgáltatások elindítása,

– Bejelentkeztetés

Page 14: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/14

Erőforrások kihasználásának ütemezése,

A számítógép adatforgalmának lebonyolítása,

A kiadott parancsok értelmezése, végrehajtása,

Hiba esetén a hiba javításának megpróbálása, ha nem megy: hibajelzés,

Több felhasználó egyidejű munkájának megszervezése,

Több számítógép együttműködésének megvalósítása,

Adatvédelem, hozzáférési jogok ellenőrzése

Operációs rendszerek feladatai

Page 15: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/15

A működtetett számítógép teljesítménye szerint: személyi számítógépekhez

mini gépekhez

nagygépekhez

Egy időben futó programok száma szerint: Egyprogramos üzemmódú

Többprogramos üzemmódú

A számítógéppel egyszerre dolgozó személyek száma

szerint: Egy felhasználós üzemmód

Több felhasználós üzemmód

A felügyelt számítógépek száma szerint: Központosított (egy számítógép)

Elosztott (hálózatot felügyelő)

Operációs rendszerek osztályozása (1)

Page 16: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/16

A felhasználó és a számítógép közötti kapcsolattartás

alapján:

Operációs rendszerek osztályozása (2)

Kötegelt (batch) feldolgozás,

Interaktív feldolgozás

szöveges üzemmód,

menüs vezérlés,

grafikus felületű kezelés

Page 17: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/17

A rendszer tárolása és indítása alapján:

Operációs rendszerek osztályozása (3)

ROM memóriában tárolt rendszerek

Régen: pl. Commodore C64

Ma: Telefonok, GPS rendszerek, autók számítógépei,

Fix, nem változtatható, rugalmatlan megoldás

Háttértárról betöltődő rendszerek

Csak telepítés (installálás) után működőképesek!

ROM-ban tárolt program kezdi a betöltést (bootolás)

Hardver ellenőrzés

Rendszerfájlok betöltése

Hardver eszközök kezelőprogramjainak (driver) betöltése

Programok elindítása (pl. víruskereső, tűzfal)

Page 18: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/18

Operációs rendszerek

UNIX

– Több felhasználós, több programos, nagygépes, szöveges/grafikus,

DOS

– Egy felhasználós, egy programos, PC-s, szöveges

WINDOWS

– Egy felhasználós, több programos, PC-s, grafikus

LINUX

– Több felhasználós, több programos, PC-s, szöveges/grafikus

Novell Netware

– Több felhasználós, több programos, elosztott

Page 19: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/19

UNICS

UNIX

Atari játékgépek

Commodore 64

DOS

ZX Spectrum

Novell NetWare

Mac System 1

Windows 1.0

IBM OS/2

Windows 3.1

Operációs rendszerek megjelenése

1985

1984

1969

1973

1992

1981

1980

1976

1982

FreeBSD 1.0

Linux 1.0

Windows NT 3.5

Windows 95

Windows CE

Suse Linux

Windows XP

Ubuntu Linux

Windows Vista

Windows 7

Windows 8

Windows 10

1994

1995

1987

1994

1996

1993

1983

2000

2004

2001

2006

2009

2012

2015

Page 20: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/20

1969 – Bell labs: Thompson és Ritchie unatkozik, és elkezd

írni egy működtető környezetet a sarokban álló PDP-7-re.

Assembly nyelv, neve: UNICS

1970 – Thompson utálja az assemblyt, ezért megalkotja a

„B” magas szintű programozási nyelvet

1971 – Ritchie megírja a „C” nyelvet

1973 – „C” nyelven újraírják a működtető környezetet, és

elnevezik UNIX-nak. Tartalma:

Fájlrendszer (könyvtárak, fájlok),

Parancsértelmező rendszer,

Programokat és memóriát kezelő rendszer,

Szövegszerkesztő program,

C nyelvű programfejlesztő környezet

Operációs rendszerek – Unix család

Page 21: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/21

1978 – CB UNIX

1981 – UNIX System

1985 – Mach (utolsó verzió: 1995, Mach 4)

További UNIX származékok

AIX

Solaris

HP-UX

UnixWare

IRIX

Linux

Operációs rendszerek – Unix család

Page 22: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/22

1986-1990 – Andrew Tanenbaum: MINIX

Sinclair számítógépen fut

Nyílt forráskódú, tetszőlegesen alakítható

1991 – Megjelenik a 386-os PC

Linus Torvalds egyetemista átírja a MINIX-et 386-ra

Freax, azt tudja, amit a Unix, de PC-n, és ingyen!

1992 – Freax -> Linux 0.96

X Window

kb. 100 ember fejleszti,

de 100 000 használja

1995 – kb. 1 millió user

1999 – kb 10 millió user

Sok disztribúció:

Debian, Gentoo, Inspire,

Red Hat, SuSE, YelloDog

Operációs rendszerek – Linux család

Page 23: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/23

Disk Operating System - Lemezes Operációs Rendszer

személyi számítógépekre,

egy felhasználós,

egy programos,

szöveges üzemmódú,

1981 – 1995 (utolsó frissítés: v6.22),

Ma: Kellékek \ Parancssor.

Operációs rendszerek – DOS

Page 24: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/24

Windows - Grafikus felhasználói felületű segédprogram,

mely a DOS kezelését teszi könnyebbé!

1985 - Windows 1.0 - nagy bukás!

1987 - Windows 2.0 - néhány alkalmazással

1990 - Windows 3.0 - tényleg működik!

1992 - Windows 3.1 - nem csak angolul!

1995 – Windows 95 - már önálló operációs rendszer

1998 – Windows 98 – (SE: stabil működés)

2000 – Windows 2000

2003 – Windows XP

2006 – Windows Vista

2008 – Windows 7

2012 – Windows 8

2015 – Windows 10

Operációs rendszerek – Windows

Page 25: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/25

Mac OS – PC méretű, de attól eltérő architektúrájú gépek

operációs rendszere

1984 – Mac System 1

Apple Macintosh gépekre,

Grafikus felület!

2001 – Mac OS 9.2

2001 – Mac OS X

2005 – Magyarul is

Verziók:

Puma, Jaguar

Panther, Tiger

Leopard,

Snow Leopard

Operációs rendszerek – Mac OS

Page 26: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/26

Windows vs. MAC

Page 27: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/27

Felhasználói programok

Ellenőrző kérdések

Segédprogramok

Szoftver alapok

Operációs rendszerek

Programfejlesztő eszközök

Témakörök

Page 28: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/28

Felhasználói programok (1)

Általános célú programok, melyekkel a felhasználó munkát végezhet, és új dokumentumokat hozhat létre.

Csoportosításuk:

Futtatási környezet alapján

– Windows (verzió), Linux…

Igényelt szaktudás alapján

– Elegendő az általános számítástechnikai képzettség

• Szövegszerkesztők, táblázatkezelők…

– Speciális tudást igénylő programok

• Könyvelő, bérügyi programok, multimédiás alkalmazások…

Page 29: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/29

Felhasználói programok (2)

Csoportosításuk:

Funkció alapján

– Szövegszerkesztők

– Táblázatkezelők

– Adatbázis-kezelők

– Grafikai programok

– Multimédiás programok

– Kommunikációs programok

– Bemutató-készítő programok

– Tervezői rendszerek

– Játékok

– …

Page 30: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/30

Szövegszerkesztők

Alapvető funkciók:

szövegírás, javítás, módosítás, szövegformázás, nyomtatás

Pl: MS Word, OO Writer

Táblázatkezelők

Alapvető funkciók:

táblázat létrehozás, számolás az adatokkal (képletek, függvények),

diagramok készítése, nyomtatás

Pl: MS Excel, OO Calc

Adatbázis-kezelők

Alapvető funkciók:

adatbázis létrehozás, adatbevitel, adatmódosítás, lekérdezés

készítés, jelentés készítés, adatvédelem

Pl: MS Access, OO Base

Felhasználói programok (3)

Page 31: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/31

Grafikus programok

rajzoló programok (rajzolás, átméretezés, forgatás, térhatások)

képnézegetők (sokféle képformátum, konvertálás)

animációs programok

Multimédiás programok

zenei programok (lejátszók, szerkesztők, zenekészítők)

mozgókép (video) programok (lejátszók, szerkesztők, felvevők)

ismeretterjesztő, oktató programok

Kommunikációs programok

Levelező programok

Böngészők

FTP programok (fájlátvivő programok)

Chat programok

Felhasználói programok (4)

Page 32: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/32

Programcsomagok

– Több program együtt

olcsóbban, mint külön-külön

MS Office 2007 Professional:

Word, Excel, PowerPoint, Access,

Publisher, Outlook – csak új

géppel együtt, kb: 120 000 Ft

OpenOffice: Writer, Calc, Base,

Impress – Ingyen!

Felhasználói programok (5)

Page 33: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/33

Felhasználói programok

Ellenőrző kérdések

Segédprogramok

Szoftver alapok

Operációs rendszerek

Programfejlesztő eszközök

Témakörök

Page 34: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/34

Olyan programok, melyek segítik a felhasználók munkáját,

de általában nem lehet velük új dokumentumot létre hozni.

Csoportjaik (a teljesség igénye nélkül)

Kommanderek: parancskiadást segítő kezelői felületek

Total Commander

Biztonságot növelő programok:

Tűzfalak (Ashampoo)

Víruskeresők (NOD32)

Kémprogram keresők (SpyBot)

Diagnosztikai programok

Sandra

Windows \ Kezelés

Segédprogramok (1)

Page 35: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/35

Ashampoo FireWall

Segédprogramok (2)

Page 36: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/36

Eset NOD32 Antivirus

Segédprogramok (3)

Page 37: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/37

Spybot

Segédprogramok (4)

Page 38: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/38

Sajátgép \ JobbKlikk \ Kezelés

Segédprogramok (5)

Page 39: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/39

Sajátgép \ JobbKlikk \ Kezelés

Segédprogramok (6)

Page 40: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/40

Archiváló programok: cd, dvd írók

Nero

ImgBurn

Tömörítők

WinRar

ZIP

Multimédia programok

Kodekek

Képnézők

Lejátszók

WinAmp

Media Player Classic

Átalakítók (konvertálók)

Segédprogramok (7)

Page 41: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/41

Felhasználói programok

Ellenőrző kérdések

Segédprogramok

Szoftver alapok

Operációs rendszerek

Programfejlesztő eszközök

Témakörök

Page 42: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/42

Page 43: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/43

Programfejlesztő eszközök

A szoftverfejlesztés alapjai

Algoritmus alapfogalmak

A strukturált programozás alapjai

Programtervezési módszerek

A programkészítés alapjai

Alapalgoritmusok

Page 44: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/44

A szoftverfejlesztés alapjai

A különböző szoftverek szűkebb értelemben vett

fejlesztése elsősorban az informatikus feladata, de

legtöbbször az informatikusnak és az adott terület

szakemberének szorosan együtt kell működni az

alkalmazás kifejlesztésében, tesztelésében és

menedzselésében.

Ezért nagyon fontos, hogy a nem informatikus

szakemberek is tisztában legyenek a szoftverfejlesztés

alapfogalmaival.

Page 45: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/45

A programfejlesztés lépései

Specifikáció elkészítése

Algoritmus elkészítése

Kódolás

Program ellenőrzés:

– Szintaktikai

– Szemantikai

Dokumentáció elkészítése:

– Programozói

– Felhasználói

Karbantartás, verziókövetés

STOP

START

Igen

Nem

Be: Specifikáció

Algoritmus készítés

Kódolás

Tesztelés

Van hiba a

programban?

Dokumentáció készítés

Fordítás, végrehajtás

Page 46: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/46

Specifikáció

Specifikáció:

– A feladat pontos megfogalmazása,

– Az algoritmussal szemben támasztott követelmények

rendszere,

– A bemenő adatok és

– az eredmények részletes felsorolása.

A kész programnak a specifikáció szerint kell működnie.

Page 47: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/47

Algoritmus

Az algoritmus, egy probléma megoldásának véges számú

lépésben történő egyértelmű és teljes leírása. Az

algoritmus nem kötődik konkrét számítógéphez,

általában valamilyen algoritmus leíró nyelven szokták

megfogalmazni.

Top-down tervezési módszer: lépésenkénti finomítás

– A feladatot felbontjuk néhány önálló, elkülöníthető

tevékenységre.

– Minden tevékenységet felbontunk további részekre.

– A felbontást addig végezzük, amíg el nem érkezünk

az elemi tevékenységeket tartalmazó algoritmusig.

Page 48: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/48

Kódolás

Az algoritmust a számítógéppel egy programozási nyelv

segítségével kell közölni. Azt a folyamatot, amely során

egy algoritmus lépéseit egy programnyelv utasításaival

leírjuk, kódolásnak nevezzük.

Az algoritmust olyan részletességgel kell leírni, hogy a

kódolás már egyszerűen elvégezhető legyen.

Page 49: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/49

Fordítás, végrehajtás

A kódolást követi a fordítás, majd a végrehajtás.

Bármilyen gondosan végeztük a tervezést, és a

kódolást, a program általában számos hibát tartalmaz.

– Szintaktika: a nyelvtan, szintaktikailag helyes valami,

ha helyesen van leírva.

– Szemantika: a jelentés, szemantikailag helyes valami,

ha helyesen működik.

A programokat szintaktikailag tudja ellenőrizni a fordító,

szemantikailag nem!

A szemantikai hibák kiderítéséhez futtatni, tesztelni kell a

programot.

Page 50: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/50

Szemantikai hiba!

Page 51: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/51

Tesztelés

Két fontos terület:

– Verifikáció: A szoftver megfelel-e specifikációjának?

• Hiányosság tesztelés: meg van-e minden funkció?

• Statisztikai teszt: tesztesetek

– Célok, bemenő adatok → eredmények

– Működési mód, helyesség

– Mindenféle lehetséges elágazás kipróbálása

– Validáció: A szoftver kielégíti a kliens igényeit,

megfelel a vásárló elvárásainak?

• Kényelem, érthetőség, megtanulhatóság,

gyorsaság

• Naiv tan esete („Marinéni”)

Page 52: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/52

Fejlesztői dokumentáció

Olyan szinten ismerteti a programot, hogy hozzáértő

személy szükség esetén el tudja végezni a

módosításokat, a program fejlesztését, vagy az utólag

felismert hibák javítását.

Tartalma:

– Részletes specifikáció,

– Futási környezet,

– Fejlesztői környezet (programozási nyelv),

– Részletes algoritmus,

– Forráskód,

– Teszt adatsorok, eredmények,

– A hatékonyság elemzése,

– Továbbfejlesztési lehetőségek.

Page 53: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/53

Felhasználói dokumentáció

A felhasználók számára készül

Tartalma:

– A program rövid áttekintő leírása

– Futási környezet (hardver- és szoftverfeltételek,

operációs rendszer, perifériák, stb.)

– A program telepítése, indítása, a használat leírása

– Bemenő adatok és eredmények

– Példafuttatás

– Hibaüzenetek, a hibák lehetséges okai

Page 54: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/54

Program minőségi jellemzők

Helyesség

Hibatűrés

Karbantarthatóság, bővíthetőség

Újrafelhasználhatóság

Kompatibilitás

Felhasználó barátság

Hordozhatóság

Hatékonyság

Ellenőrizhetőség

Page 55: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/55

Programfejlesztő eszközök

A szoftverfejlesztés alapjai

Algoritmus alapfogalmak

A strukturált programozás alapjai

Programtervezési módszerek

A programkészítés alapjai

Alapalgoritmusok

Page 56: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/56

Monolitikus programozás

1950 körül kezdődött

Egyszerű programok

Egy programot csak egy programozó írt

Egy probléma megoldása mindig egyetlen lineáris kódsor

Később bonyolultabb programokat is így próbáltak megírni

Sok hiba, átláthatatlan kód, nehézkes javítás, módosítás

Néhányan elkezdenek azzal foglalkozni, hogyan kellene

programokat írni.

Page 57: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/57

Moduláris programozás

Bizonyos bonyolultság után a teendők átláthatatlanok, ezért részfeladatokra bontjuk azokat.

A részfeladatokra ki kell dolgozni a megoldás menetét, majd az egyes részeket újra össze kell állítani, hogy azok együttműködve, egymásra épülve a teljes feladat megoldását szolgáltassák.

A moduláris programozás olyan programozási mód, melyben a teljes program modulokból áll. Az egyes modulok jól meghatározott részfeladat megoldását végzik, kezelhető méretűek, egyértelmű céljuk van és jól definiáltan csatlakoznak a program többi moduljához.

A modulokat szubrutinnak (alprogramnak) szokás nevezni.

Page 58: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/58

Moduláris programozás 2.

A moduláris programozás irányelvei:

"Oszd meg és uralkodj" elv: A feladatokat egyértelműen

le kell osztani modulokra. A modulok belső működésébe

más modul nem szólhat bele. A modul a saját

feladatának tökéletes elvégzéséért felelős. Fontos, hogy

a modulok lehetőleg egymástól függetlenül működjenek,

mert így a hibák kiszűrése egyszerűbb, a feladat

átláthatóbb, könnyebben módosítható.

Adatok (információ) elrejtésének elve: Az egyes modulok

csak saját adataikon dolgozzanak, csak akkor

használjanak közös adatokat, ha ez elkerülhetetlen.

Page 59: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/59

Moduláris programozás 3.

Felülről lefelé (top-down) tervezés esetén a megoldást

felülről lefelé, fokozatosan, lépésenként finomítjuk. A

feladatot részfeladatokra, a részfeladatokat ésszerű

határokig ismét kisebb feladatokra bontjuk. A kialakított

egységek interface-eken keresztül kommunikálnak, de

csak a szintek közötti kommunikáció megengedett, a

szinten belüli moduloké tilos!

Teljes feladat

1.rész 2.rész 3.rész

A B C D E I

Nagy, összetett programok

esetén hatékony megoldás!

HGF

Page 60: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/60

Moduláris programozás 3.

Az alulról felfelé (bottom-up) tervezés lényege, hogy már

meglévő, kész modulokból építkezünk. Erre akkor kerül

sor, ha bizonyos részfeladatokat egy előző feladat

kapcsán már megoldottunk (gondolva a későbbi

felhasználásokra is), vagy amikor egy rutingyűjteményt

(szoftvert) vásároltunk.

Pl.: Hardver közeli programozás.

Vásárolunk egy kézi adatgyűjtő számítógépet, és a

hozzá kapott kis programocskákból építünk fel egy

használható kezelő programot.

Page 61: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/61

Strukturált programozás

A strukturált programozás jelenti valamennyi ma

használatos programtervezési módszer alapját.

Széles körben elfogadott az a nézet, hogy a strukturált

programozás a programfejlesztés egyetlen lehetséges

módja.

A strukturált programok építőelemei (Dijkstra):

– Szekvenciák (utasítássorok)

– Döntési szerkezetek (elágazások v. szelekciók)

– Iterációk (ismétlődő részek v. ciklusok)

Az 1970-es évektől, amikor a strukturált programozás

népszerű technikává vált, olyan új programozási nyelvek

születtek, melyek támogatták, hangsúlyozták a módszer

alkalmazását (Pascal, Ada).

Page 62: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/62

Strukturált programozás 2.

A csak szekvenciákból, szelekciókból és iterációkból

építkező programot strukturált programnak nevezzük.

A strukturált programozásban nem megengedett a

feltétel nélküli ugrás, így többek között a ciklusból sem

ugorhatunk ki. Ebből az is következik, hogy a program

minden vezérlő szerkezetének (szekvencia, szelekció,

iteráció) - és magának a teljes programnak is - egyetlen

belépési és egyetlen kilépési pontja van, így a program

lényegesen áttekinthetőbb.

Böhm és Jacopini tétele (1966): A szekvencia, szelekció

és az iteráció segítségével minden olyan algoritmus

felépíthető, amelynek egy belépési és egy kilépési pontja

van.

Page 63: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/63

Strukturált programozás 3.

A strukturált szemléletmód:

– A programot két részre osztjuk: • Adatok,

• Műveletek.

– A tervezés különálló modellek segítségével történik:• Adatmodellek az adatokhoz,

• Funkcionális modellek (algoritmusok) a műveletekhez.

– A megvalósításban az adatok és műveletek szigorúan elkülönülnek egymástól, és csak szükség esetén rendelődnek egymáshoz.

Adatok Műveletek

Page 64: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/64

Strukturált programozás 4.

A strukturált programozás módszertana az 1980-as

évekre rendszerfejlesztési, programtervezési

technológiává vált,

Megjelentek különböző algoritmus leíró módszerek,

Elkezdték a módszertant oktatni,

Sokan tanulták meg,

Sokan írtak egyre komolyabb programokat.

Ma általánosan elfogadott és támogatott nézet, hogy

első programnyelvként érdemes valamilyen strukturált

nyelvet megtanulni, és ezután ismerkedni más

programozási nyelvekkel.

Page 65: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/65

Objektum-orientált programozás

Az objektum-orientált programozás (OOP) sok

tekintetben a moduláris programozás továbbfejlesztett

változata, mely lassan háttérbe szorítja a strukturált

programozást.

Az egyes elemeket itt nem moduloknak, hanem

objektumoknak nevezzük, melyek tulajdonságaikban és

egymáshoz való viszonyukban különböznek a

moduloktól.

Kialakulása: 80-as évek eleje

Néhány OOP nyelv:

– C++, Java, Delphi

Page 66: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/66

Objektum-orientált programozás 2.

Az objektum létrehozásakor definiáljuk a szerkezetét, és

azokat az algoritmusokat, melyek leírják a viselkedését,

így a későbbiekben mindent együtt kezelhetünk, ami az

adott objektumhoz tartozik.

Fő tulajdonságok:

– Az adatokat összekapcsoljuk az azokat kezelő

eljárásokkal és függvényekkel (metódusokkal), így

kapjuk az alapegységet, az objektumot.

– Egy létre jövő objektum a korábban definiált

objektumoktól adatokat és metódusokat vehet át

(örökölhet). Az öröklődés az objektum-orientált

nyelvekre jellemző speciális képesség.

Page 67: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/67

Objektum-orientált programozás 3.

Az objektumorientált megközelítés:

– A program együttműködő objektumok halmaza

– Az objektumok adatokkal (ismeretekkel) rendelkeznek

– Az objektumok feladatokat végeznek: kérésre

végrehajtják a hozzájuk tartozó metódusokat.

Adatok Metódusok

Objektum Adatok Metódusok

Objektum

Adatok Metódusok

Objektum

Adatok Metódusok

Objektum

Page 68: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/68

Programfejlesztő eszközök

A szoftverfejlesztés alapjai

Algoritmus alapfogalmak

A strukturált programozás alapjai

Programtervezési módszerek

A programkészítés alapjai

Alapalgoritmusok

Page 69: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/69

Az algoritmusok építőelemei

Az algoritmus alapvető összetevői, építőelemei:

– Szekvencia: Két utasítás (programrész) közvetlen

egymás után írása.

– Szelekció: Adott feltételtől függően más-más utasítás

végrehajtása (elágazás)

– Iteráció: Egy utasítást (utasítás csoportot) feltételtől

függően többször is végrehajtunk (ciklus)

A strukturált programozás alaptétele (Dijsktra):

Bármely program megadható ekvivalens strukturált

program formájában is, amelyben a fenti három

konstrukciós művelet szerepel.

Page 70: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/70

Az algoritmusok építőelemei 2.

Szelekciós műveletet a döntési pontokban végzünk: a

döntés kimenetelétől függően a folyamat vagy az egyik,

vagy a másik irányban folytatódik. A döntési pont egy

feltételt (logikai kifejezés) tartalmaz, melynek igaz vagy

hamis eredménye alapján ágaztatjuk el a folyamatot.

Iterációnak egy vagy több művelet ismétlését nevezzük,

az ismétlődés addig tart, amíg ezt valamilyen feltétel

teljesülése meg nem állítja.

Az iterációkat szekvenciákból és szelekciókból építjük

fel. Az iteráció legalább egy szelekciót (döntési pontot)

tartalmaz. A műveletek ismétlődése a döntési pontban

megfogalmazott feltétel (logikai kifejezés) eredményétől

függ.

Page 71: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/71

Az algoritmusok jellemzői:

Elvégezhető (elemi, végrehajtható lépésekből áll)

Meghatározott (minden lépés pontosan definiált)

Véges (véges számú lépés után véget ér)

Meghatározott input halmazra érvényes

Adekvát output halmazt eredményez (az adatok

meghatározzák az eredményt)

Egy feladatosztály megoldására szolgál

Page 72: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/72

Algoritmusok szöveges megadása

Tojásfőzés algoritmusa:

– Tedd a forró vízbe a tojásokat, 5 perc múlva vedd ki

őket, tisztítsd meg, ha gondolod sózd meg őket, és

edd meg!

Page 73: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/73

Pszeudokód – mondatszerű leírás

Az algoritmust először mondatokkal fogalmazzuk meg.

A rövidebb felíráshoz elhagyjuk a szabályos nyelvtani mondat szerkezetet.

A pszeudokódban – mondatszerű leírásban – hiányos mondatok szerepelnek.

A feltételes elágazásokhoz és ciklusokhoz tartozó utasításokat behúzással írjuk.

Ezzel a strukturált elrendezéssel kiemeljük az algoritmus szerkezetét.

Page 74: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/74

Pszeudokód – mondatszerű leírás 2.

Tegyél fel vizet forrni

Vedd elő a tojásokat

Ciklus amíg nem forr a víz

figyeld a vizet

Ciklus vége

Tedd a vízbe a tojásokat

Ciklus 5 percig:

Nézd az órát

Ciklus vége

Vedd ki a tojásokat

Törd fel a tojásokat

Ha sósan szereted, akkor

sózd meg őket

Elágazás vége

Edd meg a tojásokat

Page 75: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/75

Folyamatábra

A folyamatábra az algoritmus lépéseinek sorrendjét

utasítástípusonként különböző geometriai alakzatok

felhasználásával szemléltető ábra.

– Utasítástípusok:

• Kezdő és befejező utasítások.

• Be/kiviteli utasítások.

• Értékadó utasítások.

• Elágazások.

– Az utasítások sorrendjét nyilak jelzik.

Page 76: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/76

Folyamatábra elemek

START

STOP

Be: A,B S:=3*A/(B+2)

N>IIgen Nem

Ki: C

K:=0 K:=I

Ciklus 1-től 5-ig

Be: A[i]

Page 77: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/77

Folyamatábra – Tojásfőzés

START

Tégy fel vizet forrni

Vedd elő a tojásokat

Forr a víz?

Igen

Nem

Figyeld a vizet

Tedd vízbe a tojásokat

1

1

Ciklus 1-től 5-ig

Nézd az órát

Vedd ki a tojásokat

Törd fel a tojásokat

IgenSósan szereted?

Sózd meg

Edd meg a tojásokat

Nem

STOP

Page 78: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/78

Folyamatábra: Betyárkodás

Page 79: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/79

Struktogram elemek

Be: A

Ki: S

utasítás

feltételIgaz Hamis

utasítás utasítás

feltétel

ciklusmag

feltétel

ciklusmag

Elöl tesztelő

ciklus

Hátul tesztelő

ciklus

szelekció

Page 80: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/80

Struktogram – Tojásfőzés

i := 1 . . 5

Tedd vízbe a tojásokat

Nézd az órát

Tégy fel vizet forrni

Vedd elő a tojásokat

Figyeld a vizet

Forr a víz?

Vedd ki a tojásokat

Törd fel a tojásokat

Sósan szereted?

Sózd meg

IgenNem

Edd meg a tojásokat

Page 81: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/81

Programfejlesztő eszközök

A szoftverfejlesztés alapjai

Algoritmus alapfogalmak

A strukturált programozás alapjai

Programtervezési módszerek

A programkészítés alapjai

Alapalgoritmusok

Page 82: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/82

Programfejlesztő eszközök

Elágazások, ciklusok

Adatszerkezetek

A strukturált programozás alapjai

Adatok, változók

Értékadás, kifejezések

Operátorok

Page 83: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/83

Változó

A programokban az adatok változók formájában jelennek

meg – változókban tároljuk az adatokat.

A változó névvel ellátott tároló hely a számítógép

memóriájában.

A változó értéke ezen tároló hely pillanatnyi értéke.

A változó jellemzői:

– Neve – azonosítója

– Típusa

– Értéke

– Tárbeli kezdőcíme

Page 84: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/84

Típus

Egy típus meghatározza a tároló tartalmának

értelmezését.

Egy nyelv egy típusának jellemzése:

– Felvehető értékek halmaza, adatábrázolás

– Konstansai

– A típuson végezhető műveletek

– Rendelkezésre álló eljárások, függvények

Elemi típusok:

– Egy értéket vehetnek fel egy adott tartományból

– Egész, valós, karakter, logikai, mutató

Összetett típusok:

– Adatszerkezetek

– Tömb, karakterlánc, rekord, állomány

Page 85: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/85

Változók

Típus Pascal C Értelmezési tartomány

Egész Integer Int -32768 .. +32767

Hosszú egész Longint Long -2,1milliárd .. +2,1milliárd

Valós Real Float ±2*1038, pontosság: 8 bit

Valós Double Double ±5*10320, pontosság: 16 bit

Karakterlánc String Char[n] Pascal: 255 karakter

C: Long méret

Logikai Boolean – true vagy false

Page 86: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/86

Változók deklarálása

Deklaráció: a változók bevezetése (kihirdetése)

használat előtt. Eredménye: helyfoglalás a memóriában.

Sok programnál megkell adni a változók típusát is.

E szerint a programnyelv lehet:

– Típus nélküli nyelv: a változóhoz nem rendelünk típust, a futás

során bármilyen értéket felvehet.

– Típusos nyelv esetén kötelező megadni a változók típusát.

– Erősen típusos nyelveknél már a fordítónak is ismernie kell a

típust.

Pl. Int a; Int a=10; Int a,b,c;

Konstans: a programban előforduló állandó értékű

adatokat konstansként deklaráljuk, és nevükkel

hivatkozunk rájuk.

Page 87: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/87

Programfejlesztő eszközök

Elágazások, ciklusok

Adatszerkezetek

A strukturált programozás alapjai

Adatok, változók

Értékadás, kifejezések

Operátorok

Page 88: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/88

Tömb

A legalapvetőbb, leggyakrabban használt adatszerkezet.

Több, egyforma típusú elemből áll.

Az egyes elemeket a tömb nevével, és a tömbön belüli

helyükkel, az indexükkel azonosítjuk.

Tömb: azonos névvel ellátott, sorszámmal

megkülönbözetett változók csoportja.

Lehet 1 dimenziós: vektor, 2 dimenziós: mátrix, több

dimenziós.

Műveletek:

– Elem kiválasztása indexeléssel (pl. A[2]),

– Egy elemre az összes művelet értelmes, ami az elemtípusra.

Page 89: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/89

Sztring

Sztring (string):

– Karakterekből álló speciális tömb, karakter sorozat

– Kezelése eltér a normál tömbök kezelésétől

– Műveletek:

• Hossz (karakterek száma)

• Összefűzés

• Keresés

• Beszúrás

• Rész kimásolása

Page 90: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/90

Mutató

Mutató – pointer:

– A memória egy adott helyére mutat, értéke a mutatott

hely memóriacíme.

– Mindig valamilyen adott típusú objektumra mutat (pl.

egész számra)

– A pointer és az általa mutatott objektum nem

egyszerre keletkeznek és szűnnek meg, bizonyos

értelemben teljesen önálló életet élnek.

– Deklaráció: meg kell adni, hogy pointer változóról van

szó, és a hivatkozott adatok típusát. Ekkor csak a

pointer (az általa tárolt memória cím) számára

foglalódik hely, a mutatott objektumnak nem.

Pl. Int *m;

Page 91: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/91

Mutató 2.

Két speciális, csak mutatókon értelmezett művelet:

– Ha ‘A’ egy változó, akkor &A az A változó

memóriacíme.

– Ha ‘*M’ egy mutató típusú változó, akkor M az a

memóriacím, amelyre *M mutat.

Int A=10;

Int *M;

M=&A;

Kiír: *M;

10

*M= *M+3;

Kiír: A;

13

M egy mutató

M A-ra mutat

A egy egész, értéke 10

Azt a változót, amire M mutat, növelem 3-al.

Page 92: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/92

Rekord / Struktúra

Rekord / struktúra:

– Szemantikailag összetartozó, egymáshoz rendelt,

különböző típusú elemek halmaza.

– Minden elemének (mezőknek) saját neve van.

– Használatának előnye, hogy egy egységbe foglalja

össze az összetartozó adatokat.

– Pl. Egy ember neve, fizetése

– A rekord használatához előbb egy új típust kell létre-

hozni, ezután lehet az új típusból változót deklarálni.

– Műveletek:

• Elemkiválasztás (pl. Ember[2].fizetés),

• A kiválasztott elemen a típusnak megfelelő összes művelet

értelmezett.

Page 93: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/93

Objektum

Objektum:

– A rekordok/struktúrák továbbfejlesztése: logikailag

összetartozó adatok és rajtuk dolgozó metódusok

összessége.

– Jellemzők:

• Öröklődés: az utód osztály örökli az ős adatait, metódusait,

valamint tartalmazhat újakat, és felülírhat régi metódusokat.

• Polimorfizmus – többalakúság: ugyanarra az üzenetre

(kérelemre), azaz metódus hívásra, különböző objektumok

különbözőképpen reagálhatnak.

• Bezárás, az információ elrejtése: az adatokat csak

interfészeken (metódusok) keresztül lehet elérni.

Page 94: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/94

Változók ↔ Állományok

A változók az adatok programfutás-közbeni tárolásának

és kezelésének eszközei, de csak belső tárolásúak,

azaz a memóriában léteznek. (Ha kikapcsoljuk a gépet,

elveszítik értéküket)

A gyakorlati programozáshoz a belső adattárolás nem

elegendő, mert:

– Az adatokat két feldolgozás, programfutás között is

meg kell őrizni.

– Az adatok mennyisége olyan nagy lehet, hogy

egyszerre nem fér be a memóriába.

A megoldás a külső tárolókon, a háttértárakon történő

adattárolás.

Page 95: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/95

Állomány

Állomány (fájl):

– A háttértáron tárolt adatok definiálására és kezelésére

szolgáló adatszerkezet.

– Azonos típusú (mely lehet egyszerű vagy összetett)

elemek sorozata (szekvenciája).

– Egyszerre egy elem férhető hozzá (írható vagy

olvasható), ezt egy író-olvasó pointer (rekordmutató)

jelöli ki.

– A fájl deklarálásakor a fájlhoz egy azonosítót

rendelünk, ez a fájl változó. Ezt a "logikai" fájlt egy

"fizikai", valamely periférián létező fájlhoz kell

hozzárendelni. A logikai fájlt kezeljük, a változások

megjelennek a fizikai fájlban is.

Page 96: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/96

Speciális adatszerkezetek

Sor:

– A sor adatszerkezetbe egyesével tehetjük be, és

egyesével vehetjük ki az elemeket.

– Ahhoz az elemhez férünk hozzá legelőször, amelyiket

először betettünk, ezért nevezik FIFO (first in first out)

adatszerkezetnek.

– Műveletek: berakás, kivétel

Berak Kivesz

ABC

C, B, A C, B, A

Page 97: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/97

Speciális adatszerkezetek

Verem:

– Verem esetén azt az elemet vehetjük ki legelőször,

amelyiket utoljára tettük be. Működési módja miatt

LIFO (last in first out) adatszerkezetnek nevezik.

– Műveletek: berakás, kivétel

A

B

C

C, B, A A, B, C

Berak Kivesz

Page 98: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/98

Programfejlesztő eszközök

Elágazások, ciklusok

Adatszerkezetek

A strukturált programozás alapjai

Adatok, változók

Értékadás, kifejezések

Operátorok

Page 99: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/99

Értékadás

Értékadás: amikor egy változónak értéket adunk, vagy

meglévő értékét módosítjuk.

Szintaktikája (formája, alakja):

– Változó = kifejezés

– Pl. a = 2*b – c vagy a = a+1

Szemantikája (jelentése):

– A kifejezés kiértékelődik, majd a változó felveszi

értékül a kifejezés eredményét.

– Mivel előbb értékelődik ki a kifejezés és csak utána

változik meg a változó értéke, ezért a változó

szerepelhet a kifejezésben és ott a program a változó

korábbi értékével számol.

– Fontos: mindig a bal oldal kap értéket! a=b ≠ b=a !

Időbeliség!

Page 100: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/100

Kifejezések

Kifejezés: értéket képviselő programelemek össze-kapcsolva operátorokkal, ahol a kifejezés elem lehet:

– Konstans,

– Változó,

– Függvényhívás,

– Zárójelezett kifejezés.

Pl: 5*(a+2)-b

– A kifejezés tartalmaz egy konstanst (5), egy zárójelezett kifejezést (a+2), egy változót (b), valamint két operátort a szorzást (*), és a kivonást (-).

– A zárójelezett kifejezés tartalmaz egy változót (a), egy konstanst (2) és egy operátort az összeadást (+).

Page 101: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/101

Kifejezések 2.

Kifejezés kiértékelés: Ha egy kifejezés több operátort is

tartalmaz, akkor a kiértékelésük sorrendjét a

precedencia szabályok határozzák meg. A zárójelezett

kifejezésben szereplő operátorok a teljes kifejezés

kiértékelése szempontjából nem számítanak, hiszen a

zárójelezett kifejezés külön értékelődik ki.

Precedencia szintek: Minden operátor be van sorolva

valamilyen precedencia szintre. Egy precedencia szinten

lehet több operátor is.

Page 102: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/102

Kifejezések 3.

Precedencia szabályok:

A különböző precedencia szintű operátorok esetén

mindig a magasabb precedenciájú hajtódik végre először

(tehát nem leírás sorrendjében!!).

Az azonos precedencia szintű operátorok közül a leírás

sorrendisége dönt. A legtöbb precedencia szint esetén a

leírás sorrendjében, azaz balról-jobbra hajtódnak végre.

Egyes precedencia szinteknél előfordul, hogy jobbról-

balra.

Page 103: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/103

Programfejlesztő eszközök

Elágazások, ciklusok

Adatszerkezetek

A strukturált programozás alapjai

Adatok, változók

Értékadás, kifejezések

Operátorok

Page 104: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/104

Operátorok

Operátorok:

– Egy operandusú operátorok: pl. logikai tagadás operátor,

előjel operátor, növelő operátor, stb.

– Két operandusú operátorok: pl. összeadás, szorzás, stb.

– Három operandusú operátor: a C szerű nyelvekben létezik

egy feltételes operátor, amely három operandusú

A leggyakrabban használt operátorok (az első szint a

legmagasabb):

– Szint 1: előjel operátor:-, logikai tagadás operátor: !

– Szint 2: szorzás: *, osztás: /

– Szint 3: összeadás: +, kivonás: -

– Szint 4: relációk: <, >, <=, >=

– Szint 5: értékadó operátorok (C szerű nyelvek esetén): =,

+=, -=, *=, /=, stb. (jobbról-balra!!!)

Page 105: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/105

Operátorok 2.

Az egyes nyelvek ettől sokkal több operátort ismernek,

és több precedencia szint is létezik.

Általánosságban elmondható, hogy az egyoperandusú

operátorok magasabb precedenciájúak, mint a

kétoperandusúak.

A legtöbb szint balról-jobbra értékel ki, kivételek az

értékadó operátorok, valamint legtöbb egyoperandusú

operátor (hiszen ezeket elé szokás írni és az értékelődik

ki hamarabb, amely közelebb áll az operandushoz.

Page 106: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/106

Operátorok 3.

Példa1:

3+2*4-4/2*3

– lépés 1.: legmagasabb precedenciájú a *, /, , balról-

jobbra értékelődik tehát első lépésben a 2*4

értékelődik ki. Ezután marad a: 3+8-4/2*3

– lépés 2.: 4/2. Marad a 3+8-2*3

– lépés 3.: 2*3. Marad a 3+8-6

– lépés 4: 3+8. Marad a 11-6

– lépés 5: 11-6

– Eredmény: 5

Page 107: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/107

Operátorok 4.

Példa2:

2+3-((5+3)/(2*4)+2)-1

– lépés 1: A kifejezésben levő operátorok +, -, -, azaz mindegyik azonos precedenciájú, kiértékelésük balról-jobbra történik: 2+3, marad a 5-((5+3)/(2*4)+2)-1

– lépés 2: A kiértékelésben következő operátor jobb oldalán egy zárójelezett kifejezés áll, így a kivonás kiértékelése előtt ki kell értékelni a zárójelezett kifejezést.

– Következik: (5+3)/(2*4)+2 kiértékelése!

Page 108: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/108

Operátorok 5.

– (5+3)/(2*4)+2 kiértékelése:

• lépés 1: két operátor van: /, +. Magasabb

precedenciájú a / ennek baloldalán egy

zárójelezett kifejezés áll, tehát ki kell értékelni:

– lépés 1: 5+3. Marad: 8 / (2*4) +2

a / operátor jobboldali operandusa is

zárójelezett kifejezés: (2*4) kiértékelése:

– lépés 2: 2*4. Marad: 8 / 8 +2

• tehát az osztás: 8/8. Marad: 1+2

• lépés 2: 1+2, eredménye tehát: 3

Eredmény: 5-((5+3)/(2*4)+2)-1 → 5-3-1

Kiindulás: 5-((5+3)/(2*4)+2)-1

Page 109: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/109

Operátorok 6.

– 5-3-1: először az 5-3 hajtódik végre, eredmény: 2

– lépés 3: 2-1, az eredmény 1

2+3-((5+3)/(2*4)+2)-1 = 1

Page 110: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/110

Relációs operátorok

Fontos: mindig a bal oldalról mondunk véleményt!

< kisebb <= kisebb egyenlő

= egyenlő <> nem egyenlő

> nagyobb >= nagyobb egyenlő

Az összehasonlítás eredménye igaz, vagy hamis lehet.

Logikai operátorok: segítségükkel összetett logikai

állításokat képezhetünk

Page 111: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/111

Logikai „és”

Jele: AND

Jelentése: Az összetett állítás

akkor igaz, ha mindkét állítás

igaz.

Logikai operátorok 1.

Logikai „nem” - tagadás

Jele: NOT

Jelentése: Igazból hamisat,

hamisból igazat képez.

A NOT(A)

Igaz Hamis

Hamis Igaz

A B A AND B

Igaz Igaz Igaz

Igaz Hamis Hamis

Hamis Igaz Hamis

Hamis Hamis Hamis

Page 112: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/112

Logikai operátorok 2.

Logikai „megengedő vagy”

Jele: OR

Jelentése: Az összetett állítás

akkor igaz, ha legalább az egyik

állítás igaz.

Logikai „kizáró vagy”

Jele: XOR

Jelentése: Az összetett állítás

akkor igaz, ha a két állítás

különbözik.

A B A OR B

Igaz Igaz Igaz

Igaz Hamis Igaz

Hamis Igaz Igaz

Hamis Hamis Hamis

A B A XOR B

Igaz Igaz Hamis

Igaz Hamis Igaz

Hamis Igaz Igaz

Hamis Hamis Hamis

Page 113: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/113

Page 114: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/114

Logikai operátorok 3.

Példák A=2, B=3

– A < 5 OR B > 3

– A > 5 AND B > 3

– NOT(A > 5) AND B <= 3

– NOT(A = 2) OR B <> 3

– NOT(A = 2) AND NOT(B = 3)

– NOT(A < 4) AND ((B > 3) OR (B > 3))

– ((A < 4) AND (A >= 2)) OR ((B > 2) AND NOT(B <> 3))

– NOT(A <> 2) AND NOT(B <= 3) AND (A < 5 OR B > 3)

– (A > 5 AND B > 3) XOR ((B > 2) AND NOT(B <> 3))

– (NOT(A > 5) AND B <= 3) XOR (NOT(B <= 3) AND A > 5)

Page 115: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/115

Programfejlesztő eszközök

Elágazások, ciklusok

Adatszerkezetek

A strukturált programozás alapjai

Adatok, változók

Értékadás, kifejezések

Operátorok

Page 116: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/116

Feltételes művelet – Egyágú elágazás

Ha feltétel akkor

utasítás

Elágazás vége

– Ha a feltétel teljesül, akkor az utasítás

végrehajtásra kerül, ha nem teljesül,

akkor az elágazás vége után folytatódik

a program.

– Az utasítás helyén több utasítás is

állhat.

feltételigaz hamis

utasítás -

feltétel

igaz

hamis

utasítás

Page 117: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/117

Feltételes (kétágú) elágazás

Ha feltétel akkor

utasítás-i

különben

utasítás-h

Elágazás vége

– Ha a feltétel teljesül, akkor az utasítás-i kerül végrehajtásra, ha nem akkor az utasítás-h.

– Mindkét esetben az elágazás vége után folytatódik a program.

feltételigaz hamis

utasítás-i

feltétel

igaz hamis

utasítás-h utasítás-i utasítás-h

Page 118: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/118

Többágú feltételes elágazás

– Ha az i-edik feltétel teljesül, akkor az utasítási kerül végrehajtásra, ha egyik feltétel sem teljesül, akkor az utasítás0.

– Bármely esetben az elágazás vége után folytatódik a program.

Elágazás

feltétel1 akkor utasítás1

feltétel2 akkor utasítás2

….

feltételN akkor utasításN

különben utasítás0

Elágazás vége

feltétel1 utasítás1

feltétel2 utasítás2

feltételN utasításN

különben utasítás0

. . . . . .

utasítás1

utasítás2

utasításN

feltétel1

feltétel2

feltételN

utasítás0

Page 119: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/119

Page 120: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/120

Elöltesztelő ciklus

ciklus amíg feltétel

ciklusmag

ciklus vége

– Amíg a feltétel teljesül, addig a ciklusmag utasításai végrehajtásra kerülnek, ha már nem teljesül, akkor a ciklus vége után folytatódik a program.

feltétel

igaz

hamis

utasítások

feltétel

ciklusmag

Page 121: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/121

Hátultesztelő ciklus

ciklus

ciklusmag

amíg feltétel

ciklus vége

– A ciklusmag mindaddig végrehajtásra

kerül, amíg a feltétel teljesül. Ha már nem

teljesül, akkor a ciklus vége után

folytatódik a program.

– Egyszer a ciklusmag mindenféleképpen

végrehajtódik!

igaz

hamis

utasítások

feltétel

ciklusmag

feltétel

Page 122: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/122

Számláló ciklus

ciklus i= 1..N

utasítások

ciklus vége

– A ciklusváltozó (i) a kezdeti értéktől a

végértékig egyesével növekszik, közben

minden értéknél végrehajtódik a ciklusmag.

– Ha a ciklusváltozó meghaladja a végértéket,

a ciklus vége után folytatódik a program.

i= 1..N

ciklusmag

i=1..5

utasítások

igaz

hamis

Page 123: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/123

Visszafelé számláló ciklus

ciklus i= N..1

visszafelé

utasítások

ciklus vége

– A ciklusváltozó (i) a kezdeti értéktől a

végértékig egyesével csökken, közben

minden értéknél végrehajtódik a ciklusmag.

– Ha a ciklusváltozó értéke a végérték alá

csökken, a ciklus vége után folytatódik a

program.

i= N..1

ciklusmag

i=5..1

utasítások

igaz

hamis

Page 124: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/124

Egymásba ágyazott ciklusok

i=1..3

h

17 82 6 47 33

26 18 3 7 66

13 43 60 25 20

Be: A[i,j]

j=1..5

i

i

h

Mátrix beolvasásaj

ii=1

Be: A[i,j]

j=1

j<5

j=j+1

i<3

i=i+1

Page 125: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/125

Programfejlesztő eszközök

A szoftverfejlesztés alapjai

Algoritmus alapfogalmak

A strukturált programozás alapjai

Programtervezési módszerek

A programkészítés alapjai

Alapalgoritmusok

Page 126: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/126

A programkészítés alapjai

A programkészítés menete

A strukturált programozás alapjai

A programozás kialakulása

Programnyelv ABC

Page 127: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/127

Programnyelv generációk

1GL: Gépi kód

2GL: Assembly

3GL: Magasszintű, procedurális nyelvek

– Utasítás-orientált (BASIC, PASCAL)

– Kifejezés-orientált (C)

4GL: Probléma-orientált nyelvek

– Funkcionális (LISP)

– Logikai (PROLOG)

– Adatbázis-kezelő (SQL)

– Objektum-orientált (C++, JAVA)

5GL: Természetes nyelvek

Generation Language

Page 128: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/128

5GL – Egy természetes nyelv

Page 129: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/129

Gépi kód

Műveleti kód Címrész

A műveletben részt vevő adatok helyének

kódja

00111000 10101110 1010101011000110

Összeadás Első szám

helye

Második

szám

helye

Eredmény

helye

A gépi kódú (bináris kódú) program a számítógép

számára végrehajtható utasítások sorozata, ezért

futtatható programnak (executable program) is nevezik.

Egy gépi kódú program adatokat és utasításokat is

tartalmaz.

Page 130: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/130

Az igazi programozó kódja bináris!

Page 131: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/131

Assembly

A programozó az utasításokat egy szöveges állományba

írja, ez az assembly forrásprogram.

Ez nem futtatható, ezért gépi kódúvá kell alakítani.

Assembler: program, amely elemzi és gépi kódúvá

alakítja, lefordítja a forrásprogramot.

További feladata, hogy információt adjon a

forrásprogramban előforduló hibákról.

Assembler

MOV

PUSH

PUSH

ADD

CALL

0401C8

0401CA

0401CC

0401D0

0401D4

esp,4

eax,eax

edx

esp,1

esp,8

0111011001101010

1001101010100110

1010110110011010

1101100110101010

1101011001100100

Page 132: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/132

Alacsony szintű programnyelvek

A gépi kód és az assembly olyan programozási nyelv,

melyben a vezérlés és az adatstruktúra közvetlenül

visszatükrözi a gép architektúráját.

Előnyük:

– Gyors, és kis helyfoglalású program írható

– Vannak olyan erősen a hardverhez kötődő feladatok,

amelyeket csak így lehet megoldani

Hátrányuk:

– A programozónak sokat kell dolgoznia

– A kód nehezen érthető, módosítható

– Géptípusonként külön kell megírni a kódot

Page 133: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/133

A gépi kódú program

A számítógép a működése során gépi utasításokat

(instrukciókat) hajt végre egymás után

Az instrukciók csak primitív műveleteket tudnak

végrehajtani. Például:

– regiszterekben tárolt egész számok összeadása

– egy regiszter tartalmának adott memóriacímre

másolása

– stb.

Az instrukciók gép-specifikusak, a processzorral együtt

tervezik meg azokat

Page 134: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/134

A gépi kódú programozás hátrányai

Egy feladat megfogalmazása a gép nyelvén rendkívül

aprólékos munka

A gépi kódú programozáshoz a hardware elemek pontos

ismerete szükséges

Ha egy gép hardware összetétele megváltozik, a

programot ennek megfelelően módosítani kell.

Ha a programot egy másik processzorral épített gépen

akarjuk futtatni, a programot teljesen újra kell írni, a gépi

kódú programok nem hordozhatók!

Page 135: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/135

A megoldás

Az operációs rendszer (egyik szolgáltatásaként) elrejti a hardware elemek kezelésének részleteit (pl. egy lemez tartalmát file-rendszerként kezelhetjük) - de ez egy másik tárgy témája.

A programok írására magas szintű programozási nyelvet használunk, amely processzor és - többnyire - hardware független utasításokat tartalmaz.

A programok hordozhatók, egy másik processzorra változtatás nélkül áttehető a program

Page 136: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/136

A megoldás 2.

A programozási nyelv az emberi nyelvhez közelebb áll,

mint a gépi nyelvhez - könnyebben megtanulható.

A programozási nyelv utasításai bonyolultabb

folyamatokat írnak le, mint az instrukciók - ugyanannak a

problémának a leírása sokkal kevesebb utasítást

igényel.

A gyakran előforduló részfeladatokra előre elkészített

programrészek (könyvtári rutinok) használhatók.

("Library")

Page 137: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/137

A programozási nyelv

A természetes nyelvhez hasonlít a felépítése

Számos nyelv létezik, de mindegyiknek precíz definíciója

van.

Egy nyelv definíciójának összetevői:

– Alapelemek (szintaktikai egységek) - mint a

természetes nyelvekben a szavak

– Formális szabályok az alapelemek összeépítésére

(szintaktika)- mint a nyelvekben a nyelvtan

– A nyelvi szerkezetek jelentésének definíciói

(szemantika) - mint a nyelvekben a használat

szabályai

Page 138: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/138

Megoldandó problémák

Egyetlen processzor sem érti egyetlen magas szintű

programozási nyelv utasításait sem!

– Megoldás: a programot le kell fordítani instrukciók

sorozatára. A munka automatizálható: fordítóprogram

(compiler) segítségével.

– Minden operációs rendszer - processzor párosra

külön fordítóprogram kell. Ez azonban megoldja a

gépfüggetlen programok írását.

Page 139: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/139

Megoldandó problémák 2.

Egy programot általában több részben (modulban) írunk

meg

Felhasználunk előre elkészített modulokat is (könyvtári

rutinokat)

– Megoldás: ezeket össze kell építeni a linker (tárgykódú szerkesztő) program segítségével

Page 140: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/140

A programkészítés alapjai

A programkészítés menete

A strukturált programozás alapjai

A programozás kialakulása

Programnyelv ABC

Page 141: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/141

A programkészítés menete 1.

Elkészítjük a program forráskódját

Szövegszerkesztő

(editor)

Ez egy (esetleg több) szövegfájl

A file kiterjesztése általában utal

a használt programozási nyelvre.

Pl.:

proba.c

Ehhez egy szövegszerkesztő

programot használunk

# include

<stdio.h>

void main ( )

{

printf

(”Helló

Világ! \n”);

}

Page 142: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/142

A programkészítés menete 2.

Fordító-

program

Lefordítjuk a programot a

fordítóprogrammal (compiler)

A tárgykódú modul egy speciális

szerkezetű bináris file, amelynek

formátuma már nem függ a

programozási nyelvtől. Kiterjesztése általában .obj vagy .o

Szövegszerkesztő

(editor)

# include

<stdio.h>

void main ( )

{

printf

(”Helló

Világ! \n”);

}

1CF7 B00C

37DA 4107

FAC4 660D

00F1 300BD

1FF0 35BB

337DD 239C

410F 396A

C44D 006A

Page 143: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/143

A programkészítés menete 3.

A tárgykódú modulokhoz hozzá-

vesszük a könyvtári modulokat

A linker összeszerkeszti

A végeredmény a futtatható (exe) program

Fordító-

program

Szövegszerkesztő

(editor)

# include

<stdio.h>

void main ( )

{

printf

(”Helló

Világ! \n”);

}

1CF7 B00C

37DA 4107

FAC4 660D

00F1 300BD

1FF0 35BB

337DD 239C

410F 396A

C44D 006A

410F 396D

5CF3 B00A

3CDA 4107

FAC4 660D

00F1 300BD

CCD4 BAF0

337DD 239C

33F5 0B6A

Linker

10011110

11000011

10101100

10111000

00101100

10010010

10010000

01111011

Page 144: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/144

Megjegyzések

A forrásprogram szövegfájl, elkészítéséhez

szövegszerkesztő (text editor) és nem dokumentum

szerkesztő alkalmas. Windows alatt például a

"Jegyzettömb" alkalmazás, és nem a Word.

Az előző ábrák azt az esetet mutatják, amikor

parancssoros felületen, az egyes programok egyedi

indításával készítjük el a programot.

Ma már a legegyszerűbb fejlesztőeszközök is integrálják

az editor, compiler, a linker és a hibakereső

(debugger) programokat, ezzel egyszerűsítve a munkát.

Page 145: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/145

Egy C nyelvű fejlesztő környezet

Lépések:

1. Programírás

2. Mentés (pld.c)

3. Fordítás (pld.exe)

4. Futtatás

Page 146: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/146

Megjegyzések 2.

Mivel egy valóságos program több tárgykódú modulból

és esetenként több könyvtár felhasználásával

szerkeszthető össze, a linkernek fel kell sorolni a

szükséges modulokat. Erre is tartalmaz eszközöket egy

integrált fejlesztő eszköz.

Az előbb vázolt eszközök csak egyszerű programok és

nem alkalmazások fejlesztését teszik lehetővé.

– Egy programozási nyelv például általában nem

tartalmaz ablakos felhasználói felület készítésére

alkalmas eszközöket. (Ez alól részben kivétel a Java

nyelv.)

Valódi alkalmazások fejlesztésére összetettebb (és

drágább) fejlesztő környezet szükséges.

Page 147: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/147

A program és az alkalmazás különbsége 1.

A program egy technikai fogalom: algoritmusok

számítógépes megvalósítása.

Az alkalmazás felhasználó vagy felhasználók egy

csoportjának a munkáját vagy egyéb tevékenységét

segítő számítógépes rendszer.

Egy alkalmazás legfontosabb részei:

– Program vagy programok rendszere

– Működtető környezet (hardware/software)

– Adatok

– Dokumentációk

A program tehát egy szűkebb fogalom, mint az

alkalmazás (A tárgy keretében a gyakorlás érdekében

programokat írunk.)

Page 148: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/148

A program és az alkalmazás különbsége 2.

Az alkalmazás mindig felhasználó(k) érdekében készül.

Az alkalmazás kifejlesztése vagy megvásárlása pénzbe

kerül, tehát termék, áru.

A termékek megfelelő minőségű gyártásához szükséges

ismeretek együttesét szoftver technológiának hívjuk.

A mai szóhasználatban a software szó a legtöbbször

alkalmazást jelöl.

Page 149: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/149

A programkészítés alapjai

A programkészítés menete

A strukturált programozás alapjai

A programozás kialakulása

Programnyelv ABC

Page 150: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/150

FORTRAN – FORmula TRANslator

COBOL – COmmon Business Oriented Language

ALGOL – Algorithmic Language

BASIC – Beginner’s All purpose Symbolic Instruction Code

Pascal

C – Dennis Ritchie

C++

Perl

Java

Delphi: Pascalból, objektum orientált

PHP – Hypertext Preprocessor

C#

A programozási nyelvek megjelenése

1960

1970

1987

1964

1971

1954

1959

1995

1995

1983

1995

2001

Page 151: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/151

Fontosabb programnyelvek 1.

Assembly

– Gépi kódú programozást segítő nyelv

– A megírt program nehezen hordozható

– Ma már főleg az operációs rendszerek készítői, ill. a hardvergyártók programoznak ilyenben.

Pascal

– Eredetileg a strukturált programozás tanulónyelvének szánták

– Továbbfejlesztett változata, a TURBO PASCAL a modulok, illetve ma már az OOP-t is támogatja

– A valós életben a C miatt nem tudott érvényesülni, illetve a DELPHI-ben él tovább

Page 152: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/152

Fontosabb programnyelvek 2.

C

– Közép szintű nyelvként szokták emlegetni, mert

egyesíti az assembly és a magas szintű nyelvek

elemeit.

– Hatékony és könnyű programozni

– Kis terjedelmű nyelv: kevés utasítás

– Minden (fontos) géptípusra van C fordító ->

hordozható nyelv

– Régen minden általánosat C-ben írtak, ma a helyét

egyre jobban átveszi a C++, ami objektum orientált

módszert (OOP) tesz lehetővé.

– Ahol megmarad, az a rendszerprogramozás.

Page 153: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/153

Fontosabb programnyelvek 3.

C++

– A C nyelv objektum-orientált továbbfejlesztése

– Ma már a legtöbb géptípusra van C++ fordító is -> jól

hordozható nyelv

– Napjainkban minden (általános) programot ebben

írnak

Page 154: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/154

Fontosabb programnyelvek 3.5

Page 155: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/155

Fontosabb programnyelvek 4.

Java

– Egy képzeletbeli (virtuális) Java-gép programnyelve

– Szintaktikája nagyon hasonlít a C++ -hoz

– A nyelv szabványos részét képezik a leggyakrabban

kellő alapkönyvtárak,mint pl. a grafika, felhasználói

felület, hálózat programozás, adatbázis-kezelés.

– Java nyelven lehet appleteket írni, amelyek

beszúrhatók HTML oldalakba is

– Tökéletesen hordozható nyelv

– Az Internet-programozás fő nyelve.

Page 156: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/156

C C++Pascal Visual Basic JAVA

A programozók csoportosítása

Page 157: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/157

Programfejlesztő eszközök

A szoftverfejlesztés alapjai

Algoritmus alapfogalmak

A strukturált programozás alapjai

Programtervezési módszerek

A programkészítés alapjai

Alapalgoritmusok

Page 158: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/158

Programfejlesztő eszközök

Összefésülés

Megszámlálás

Alapalgoritmusok

Összegzés

Kiválasztás

Kiválasztásos rendezés

Szétválogatás

Page 159: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/159

Feladat: Adott egy számhalmaz, határozzuk meg a számok

összegét.

Megoldás:

Egy változó értékét beállítjuk 0-ra (kinullázzuk)

Ciklus segítségével végigmegyünk a sorozat elemein,

és a kinullázott változóhoz rendre hozzáadjuk a

sorozat

aktuális elemét.

Az eredmény az eredetileg kinullázott változó aktuális

értéke.

Összegzés

7 15 13 5 9 49

Page 160: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/160

Összegzés

Pszeudokód:

Be: N

ciklus i= 1 .. N ismétel

Be: A[ i ]

ciklus vége

Összeg = 0

ciklus i= 1 .. N ismétel

Összeg = Összeg + A[ i ]

ciklus vége

Ki: Összeg

Page 161: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/161

Összegzés

i = 1 .. n

s = 0

s = s + A[ i ]

Be: n

i = 1 .. n

Be: A [ i ]

Ki: s

Tömb elemszámának beolvasása

Tömbelemek beolvasása

Összeg változó (s) kinullázása

Eredmény kiírása

Összegzés

Struktogram:

Page 162: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/162

Összegzés

START

Be: n

i = 0

i= i + 1

Be: A[ i ]

i < n

1

Igen

Nem

1

s = 0i = 0

i= i + 1

s= s + A [ i ]

i < nIgen

Nem

Ki: s

STOP

n: elemek száma

i: ciklusváltozó

A: elemek tömbje

s: összeg

Page 163: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/163

Programfejlesztő eszközök

Összefésülés

Megszámlálás

Alapalgoritmusok

Összegzés

Kiválasztás

Kiválasztásos rendezés

Szétválogatás

Page 164: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/164

Feladat: Adott egy számhalmaz, és egy feltétel.

Határozzuk meg, hogy az adatok közül hány darab tesz

eleget a feltételnek.

Feltétel: a szám legyen kisebb 10-nél

Megszámlálás

Megoldás:

Kinullázunk egy változót.

Ciklus segítségével végigmegyünk a tömb elemein.

Megvizsgáljuk őket, és ha a tömbelem a feltételnek

megfelel, a kinullázott változóhoz hozzáadunk egyet.

Az eredmény az eredetileg kinullázott változó aktuális

értéke.

7 15 13 5 9 3

Page 165: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/165

Megszámlálás

Pszeudokód:

Be: N

ciklus i= 1 .. N ismétel

Be: A[ i ]

ciklus vége

S = 0

ciklus i=1 .. N ismétel

Ha A[ i ] < 10 akkor S = S+1;

ciklus vége

Ki: S

i = 1 .. n

db = 0

Be: n

i = 1 .. n

Be: A [ i ]

Ki: db

A[i] < 10

db=db+1

Igen Nem

Struktogram:

Page 166: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/166

1

db = 0i = 0

i= i + 1

db = db + 1

i < n

Igen

Nem

Ki: db

STOP

A[i] < 10

Igen

Nem

Megszámlálás

db: darabszámSTART

Be: n

i = 0

i= i + 1

Be: A[ i ]

i < n

1

Igen

Nem

Page 167: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/167

Programfejlesztő eszközök

Összefésülés

Megszámlálás

Alapalgoritmusok

Összegzés

Kiválasztás

Kiválasztásos rendezés

Szétválogatás

Page 168: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/168

Feladat: Adott egy számhalmaz, és egy feltétel. Határozzuk

meg, hogy melyik adat tesz eleget leginkább a feltételnek.

7 15 13 5 5

Feltétel: a legkisebb szám

Kiválasztás

Megoldás:

Egy változóba (MIN) berakjuk a tömb első elemének az

értékét.

Ezután a 2. elemtől kezdve egy ciklussal végignézzük a

tömb elemeit, és ha a vizsgált elem kisebb a MIN-

értékénél, akkor berakjuk az értékét a MIN-változóba,

így a MIN-értéke az addig megvizsgált elemek közül

mindig a legkisebbet tartalmazza.

Eredmény: a MIN változó értéke.

Page 169: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/169

Kiválasztás

Pszeudokód:

Be: N

ciklus i= 1 .. N ismétel

Be: A[i]

ciklus vége

MIN = A[1]

ciklus i= 2 .. N ismétel

Ha A[i] < MIN akkor MIN = A[i];

ciklus vége

Ki: MIN

i = 2 .. n

m = A [1]

Be: n

i < n

Be: A [ i ]

Ki: m

A[i] < m

m=A [i]

Igen Nem

Struktogram:

Page 170: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/170

Kiválasztásm: legkisebb elem

START

Be: n

i = 0

i= i + 1

Be: A[ i ]

i < n

1

Igen

Nem

1

i= i + 1

i < n

Igen

Nem

Ki: m

STOP

A[i] < m

Igen

Nem

m=A [1]i = 1

m = A [i]

Page 171: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/171

Programfejlesztő eszközök

Összefésülés

Megszámlálás

Alapalgoritmusok

Összegzés

Kiválasztás

Kiválasztásos rendezés

Szétválogatás

Page 172: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/172

Feladat: Adott egy számhalmaz, és valamilyen rendezési

szempont (rendezési kulcs). Rendezzük sorba az adatokat.

Szempont: növekvő sorrend

Kiválasztásos rendezés

7 15 13 5 5 7 13 15

Page 173: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/173

Kiválasztásos rendezés

Feladat: Adott egy tömb, rendezzük az elemeit növekvő

sorrendbe.

Módszer:

– Keressük ki a legkisebb elemet, és tegyük azt a tömb

első helyére.

– Lépjünk egy hellyel odébb (második elem), és

keressük ki a maradék elemek közül a legkisebbet.

Tegyük ezt a második helyre.

– Lépjünk eggyel odébb, …

Page 174: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/174

Kiválasztásos rendezés

Megoldás: Visszavezetjük a rendezést a kiválasztásra

– Két egymásba ágyazott ciklust alkalmazunk.

– A külső (I-változójú) azt vezérli, hogy hányadik helyre

keressük a megfelelő adatot.

– A belső (J-változójú) a maradék elemek közül

választja ki a megfelelőt.

– Ha csere szükséges, akkor azt egy segédváltozó (C)

bevezetésével valósítjuk meg

Page 175: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/175

Kiválasztásos rendezés

Csere:

8 3

8 3 8

3 83

83 8

Kiindulás:

1. lépés:

Végeredmény:

A B C

2. lépés:

3. lépés:

83 8

C = A

A = B

B = C

Page 176: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/176

Kiválasztásos rendezés

7 15 13 5Kiindulás:

Külső ciklus: i – melyik helyre keressük a legkisebb elemet

Belső ciklus: j – végigmegy az i-től magasabb indexű

elemeken

i=1, j=2 7 15 13 5

j=3 7 15 13 5

Nincs csere

Nincs csere

j=4 7 15 13 5 Csere

i=2, j=3 15 135 7 Csere

j=4 15 Csere5 13 7

i=3, j=4 135 7 Csere15

7 15135Végeredmény:

Page 177: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/177

Kiválasztásos rendezés

Be: N

c1-ciklus i= 1 .. N ismétel

Be: A[i]

c1-vége

ck-ciklus i=1 .. N-1 ismétel

cb-ciklus j= i+1 .. N ismétel

ha A[j] < A[i] akkor

C:=A[i], A[i]:= A[ j], A[ j]:=C

feltétel vége

cb-vége

ck-vége

c2-ciklus i= 1 .. N ismétel

Ki: A[i]

c2-vége

i = 1 .. n-1

m = A [1]

Be: n

i = 1 .. n

Be: A [ i ]

c=A[i]A[i]=A[ j]A[ j]=c

j = i+1 .. n

A[ j]<A[i]Igen Nem

i = 1 .. n

Ki: A [i]

Struktogram:Pszeudokód:

Page 178: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/178

1

i = 1

j = i + 1

c = A [i]A[i] = A[ j]A[ j] = c

j < n

Igen

Nem STOP

A[ j]<A[i]

Igen

Nem

Rendezés

c: segédváltozó

j = j+1

i = i+1

i < n-1Igen

Nem

2

i = 0

i= i + 1

Ki: A[ i ]

i < nIgen

Nem

2START

Be: n

i = 0

i= i + 1

Be: A[ i ]

i < n

1

Igen

Nem

Page 179: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/179

Programfejlesztő eszközök

Összefésülés

Megszámlálás

Alapalgoritmusok

Összegzés

Kiválasztás

Kiválasztásos rendezés

Szétválogatás

Page 180: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/180

Feladat: Adott két vagy több rendezett számhalmaz.

Egyesítsük úgy az adatokat, hogy az eredmény halmaza is

rendezett legyen.

5 10 13

7 15 20

5 7 10 13 15 20

Összefésülés

Page 181: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/181

Összefésülés

Két tömb elemeinek összefésülése növekvő sorrendben:

1-re beállítjuk két segédváltozó értékét, ezek jelzik, hogy

a két kiinduló tömb hányadik elemét vizsgáljuk meg.

Indítunk egy ciklust, melynek lépésszáma a két tömb

elemszámának az összege, így tudunk majd mindkét

kiinduló tömb elemein végigmenni.

A ciklusban megállapítjuk, hogy a segédváltozók által

jelzett tömbelemek közül melyik a kisebb, és ezt az

elemet áttesszük az eredmény tömbbe, és amelyik

kiinduló tömbből áttettük az elemet, annak a

segédváltozóját megnöveljük 1-el.

Eredmény az eredmény tömb.

Page 182: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/182

Összefésülés

Pszeudokód:

Be: N

ciklus i= 1 .. N ismétel

Be: A[i]

ciklus vége

Be: M

ciklus i= 1 .. M ismétel

Be: B[i]

ciklus vége

j= 1, k= 1

ciklus i= 1 .. N+M ismétel

ha A[ j] < B[k] akkor

C[i] = A[ j]

j= j+1

különben

C[i] = B[k]

k= k+1

feltétel vége

ciklus vége

ciklus i= 1 .. N+M ismétel

Ki: C[i]

ciklus vége

Page 183: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/183

1

Összefésülés

2

START

Be: n

i = 0

i= i + 1

Be: A[ i ]

i < n

1

Igen

Nem

Be: m

i = 0

i= i + 1

Be: B[ i ]

i < mIgen

Nem

2

i = 0j = 1k = 1

i = i + 1

Igen

Nem

A[ j]<B[k]Nem

Igen

3

C[i]=A[ j]j = j+1

C[i]=B[k]k = k+1

i < n+m

Page 184: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/184

Összefésülés

STOP

i = 0

i= i + 1

Ki: C[ i ]

i < n+mIgen

Nem

3

i = 1 .. n+m

j = 1, k = 1

Be: n

i = 1 .. n

Be: A [ i ]

A[ j]<B[k]

C[i]=A[ j]

j = j+1

Igen Nem

Be: m

i = 1 .. m

Be: B [ i ]

C[i]=B[k]

k = k+1

i = 1 .. n+m

Ki: C[ i ]

Page 185: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/185

Programfejlesztő eszközök

Összefésülés

Megszámlálás

Alapalgoritmusok

Összegzés

Kiválasztás

Kiválasztásos rendezés

Szétválogatás

Page 186: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/186

Feladat: Adott egy számhalmaz, és egy (vagy több) feltétel.

Válogassuk szét az adatokat a feltételnek megfelelően több

halmazba.

5 7 10 14 15 20

Feltétel: páros és páratlan számok

10 14 20

5 7 15

Szétválogatás

Page 187: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/187

Szétválogatás

Páros vagy páratlan számok:

1-re beállítjuk két segédváltozó értékét, ezek jelzik, hogy

a két eredmény tömb (páros, páratlan) hányadik helyére

kerül a kiinduló tömb aktuálisan vizsgált eleme.

Ciklus segítségével végigmegyünk a kiinduló tömbön.

Ha az aktuális elem 2-vel elosztva 0 maradékot ad

(páros), akkor a páros tömbbe, a segédváltozója által

jelzett helyre rakjuk, és a segédváltozót növeljük 1-el. Ha

a maradék 1, akkor a vizsgált elem a páratlan tömbbe

kerül, és ennek segédváltozóját növeljük meg.

Eredmény a két eredmény tömb.

Page 188: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/188

Szétválogatás

Be: N

ciklus i= 1 .. N ismétel

Be: A[i]

ciklus vége

j= 1, k= 1

ciklus i= 1 .. N ismétel

ha A[i] mod 2 = 0 akkor

B[ j] = A[i]

j= j+1

különben

C[k] = A[i]

k= k+1

feltétel vége

ciklus vége

ciklus i= 1 .. j-1 ismétel

Ki: B[i]

ciklus vége

ciklus i= 1 .. k-1 ismétel

Ki: C[i]

ciklus vége

Pszeudokód:

Page 189: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/189

Szétválogatás

START

Be: n

i = 0

i= i + 1

Be: A[ i ]

i < n

1

Igen

Nem

1

i = 0j = 1k = 1

i = i + 1

Igen

Nem

A[i] mod 2=0Nem

Igen

2

B[ j]=A[ i]j = j+1

C[k]=A[ i]k = k+1

i < n

i = 0

i= i + 1

Ki: B[ i ]

i < j-1Igen

Nem

2

3

Page 190: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/190

Szétválogatás

STOP

i = 0

i= i + 1

Ki: C[ i ]

i < k-1Igen

Nem

3

i = 1 .. n

j = 1, k = 1

Be: n

i = 1 .. n

Be: A [ i ]

A[i] mod 2=0

B[ j]=A[i]

j = j+1

Igen Nem

C[k]=A[i]

k = k+1

i = 1 .. j-1

Ki: B[ i ]

i = 1 .. k-1

Ki: C[ i ]

Page 191: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/191

Page 192: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/192B IT MAN

Ellenőrző kérdések

Információs technológiák

Page 193: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/193

Ellenőrző kérdések 1.

1. Melyik nem operációs rendszer?

A: AIX

B: LINUX

C: COBOL

D: UNIX

E: OS/2

2. Milyen jogállású programra igaz az alábbi leírás:

Kis ideig szabadon használható, aztán fizetni kell érte.

A: Jogdíjas

B: Shareware

C: Freeware

D: Public Domain

Page 194: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/194

Ellenőrző kérdések 2.

3. Melyik operációs rendszer verziói a következők:

Puma, Jaguar, Leopard, Tiger?

A: UNIX

B: LINUX

C: MAC

D: Windows

4. Melyek a kernel feladatai?

Processzor kezelés

Memória kezelés

Eszközkezelés

Kapcsolattartás a felhasználóval

Page 195: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/195

Ellenőrző kérdések 3.

6. Számozza be az egyes lépések sorrendjét. Kezdje a

legkorábbival!

Mentés

Programírás

Futtatás

Algoritmus alkotás

Fordítás

5. Írja a vonalak fölé a megfelelő fogalmakat!?

Programnév.c

Page 196: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/196

Ellenőrző kérdések 4.

7. Felhasználói program (F),

segédprogram (S), vagy egyéb program (E)?

Tűzfal:

Táblázatkezelő:

Tömörítő:

Rajzoló program:

Linux:

Víruskereső:

Java:

Böngésző:

CD-író program:

Page 197: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/197

Ellenőrző kérdések 5.

8. Melyik alkalmazói programcsoportra jellemzőek

a következő kifejezések: cella, képlet, függvény ?

A: Szövegszerkesztő D: A és B csoportra

B: Táblázatkezelő E: B és C csoportra

C: Adatbázis-kezelő F: C és D csoportra

9. Melyik alkalmazói programcsoportra jellemzőek a következő kifejezések: rekord, jelentés ?

A: Szövegszerkesztő D: A és B csoportra

B: Táblázatkezelő E: B és C csoportra

C: Adatbázis-kezelő F: C és D csoportra

Page 198: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/198

Ellenőrző kérdések 6.

10. Igaz vagy Hamis az állítás?

Az első Windowst a Microsoft adta ki, 1974-ben.

A freeware jogállású program teljesen ingyenes bármilyen célra.

A UNIX-ot eredetileg UNICS-nak nevezték.

A felhasználói programok operációs rendszer nélkül is futtathatók.

Az operációs rendszer nem program.

A C nyelv középszintű programozási nyelv.

Az assembly nyelven írt programot az assemblerrel fordítják le gépi kódúra.

Az ADD utasítás egy gépi kódú utasítás.

A kémprogram kereső olyan program, ami ellen védekezni kell.

Page 199: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/199

Ellenőrző kérdések 7.

11. Mi az operációs rendszer?

A: A hardver elemeket összefogó keretrendszer.

B: Műtéteknél használt beavatkozási környezet.

C: A hardver és a szoftver közötti programok gyűjteménye.

D: A számítógép alapvető működéséért felelős

programcsomag.

12. Melyik a kakukktojás?

A: szövegszerkesztő

B: képszerkesztő

C: böngésző

D: operációs rendszer

E: táblázatkezelő

Page 200: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/200

Ellenőrző kérdések 8.

13. Word, Excel, PowerPoint. Mik ezek?

A: szövegszerkesztő programok

B: a Microsoft által gyártott hardverek

C: alkalmazói programok

D: segédprogramok

14. Melyik a kakukktojás?

A: word

B: excel

C: firefox

D: access

E: powerpoint

Page 201: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/201

Ellenőrző kérdések 9.

15. Melyik állítás igaz a compilerre?

A: Egyszerre lefordítja az egész forrásprogramot

B: Egyszerre a forrásprogram egyetlen utasítását fordítja és hajtja végre

C: Kimenete minden esetben gépi kód

D: A forrásnyelven megírt programot lefordítja és rögtön végrehajtja

16. Jelölje be az összes állítást, mely igaz a változóra!

A: A változó egy memóriaterület, melynek változhat az értéke

B: A változó logikailag tovább nem bontható, elemi egység

C: A változót azonosítani kell

D: A változónak meg kell adni a típusát

Page 202: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/202

Ellenőrző kérdések 10.

17. Mit csinál a programszerkesztő (linker)?

A: A linkerrel a forrásprogramot szerkeszthetjük meg

B: A linker a külön lefordított tárgykódú modulokból

kapcsolja össze a futtatható kódot.

C: A linkerrel tárgykódú programot lehet írni

D: A linkerrel végrehajtható kódot lehet írni

18. Tegye helyes sorrendbe a programfejlesztés lépéseit!

Dokumentálás

Kódolás

Algoritmus készítés

Specifikáció készítés

Page 203: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/203

19. Jelölje be az összes helyes párosítást!

A: Editor – Programszerkesztő

B: Bináris kód – Gépi kód

C: Fortran – Magas szintű programnyelv

D: Interpreter – Fordító

Ellenőrző kérdések 11.

20. Mi a szekvencia? Jelölje be az összes jó választ!

A: Választás megadott tevékenységek között

B: Megadott tevékenységek feltételtől függő, ismételt

végrehajtása.

C: Egymás után végrehajtandó tevékenységek sorozata

D: Feltétel nélküli, időben egyszerre végrehajtandó

tevékenységek

Page 204: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/204

Ellenőrző kérdések 12.

21. Igaz vagy Hamis az állítás?

A linker ugyanaz, mint az editor .

A memória tartalma a program futása közben nem

változik.

A fordító kiszűri a szemantikai hibákat.

Az assembly alacsony szintű programozási nyelv.

Egy algoritmusnak több kezdési pontja is lehet.

Az assembly nyelv előnye, hogy gyorsabb és kisebb

helyfoglalású program írható vele.

Egy gépi kódú program csak gépi kódú utasításokat

tartalmaz, adatokat nem.

A fordítóprogram output-ja a forráskód.

A magas szintű nyelv gépi kódja az assembly.

Page 205: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/205

23. Mi jellemzi a szoftver minőségét? Jelölje be az összes

jó választ!

A: Program mérete

B: Szabványosság

C: Felhasználóbarátság

D: Hibatűrés

Ellenőrző kérdések 13.

22. Mit ír le az alábbi pszeudokód?

Ha feltétel, akkor

utasítás

Elágazás vége

A: Szekvenciát B: Egyágú szelekciót

C: Elöltesztelő ciklust D: Növekményes ciklust

Page 206: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/206

24. Igaz vagy Hamis az állítás?

A hátultesztelő ciklusra jellemző, hogy a ciklusmag

egyszer mindenképpen végrehajtódik.

A strukturált algoritmusra nem jellemző a többágú

szelekció alkalmazása.

Az algoritmus minden lépésének egyértelműen

végrehajthatónak kell lennie.

A folyamatábra az algoritmus leírására szolgáló,

mondatszerű elemekből felépülő jelölésrendszer.

A pszeudokód egy programozási nyelv.

Az algoritmus egy adott tevékenység ismételt

végrehajtása, mely a feladat megoldását célozza.

Ellenőrző kérdések 14.

Page 207: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/207

Ellenőrző kérdések 15.

Igen

Nem

a < 5Igen Nem

25. Beolvasáskor az a

változó 4-es értéket kap.

Kövesse a folyamatábrát!

Mit ír ki az algoritmus?

A: 15, 7

B: 7, 14

C: 5, 15

D: 21, 14

E: 5, 19

F: 6, 19

G: 12, 17

H: 20, 17

START

be: a

s=3

a= a+1 s= s+a

s < 12

ki: a, s

s= s+3

STOP

Page 208: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/208

26. Mikor jelent meg az első magas szintű

programnyelv?

A: 1944

B: 1954

C: 1964

D: 1974

Ellenőrző kérdések 16.

27. Kinek a nevéhez kötődik a strukturált programozás alaptétele?

A: Bill Gates

B: Neumann János

C: Böhm-Jacopini

D: Dijsktra

Page 209: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/209

Ellenőrző kérdések 17.

28. Értékelje ki a kifejezéseket!

3+5*2-6*2/3

4*(5-3)/2

6/3*2+4/2*3

5+6*2-3*(7-2)*2

29. Igaz vagy Hamis az állítás?

(2 > 3 or 5 <= 4)

(5 = 3 and 3 > 2)

(4 < 6 and 5 < 4 xor 3 < 5)

(not(3 = 5) or 6 > 3 and 2 < 3)

Page 210: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/210

30. Melyik programozási módszer alkalmazza az

öröklődés lehetőségét?

A: Moduláris programozás

B: Gépi kódú programozás

C: Strukturált programozás

D: Objektum-orientált programozás

Ellenőrző kérdések 18.

31. Melyik adatszerkezet valósítja meg a FIFO elvet?

A: Sor

B: Verem

C: Struktúra

D: Állomány

Page 211: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/211

32. Melyik adatszerkezeten értelmezhető az

& és a * művelet?

A: String

B: Tömb

C: Struktura

D: Mutató

Ellenőrző kérdések 19.

33. Írja be a megfelelő fogalom betűjelét!

Különböző típusú elemek halmaza

Egyforma típusú elemek halmaza

Adatok és metódusok halmaza

A: Objektum B: Tömb C: Rekord

Page 212: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/212

Ellenőrző kérdések 20.

34. Mi a helyes viszonya az alábbi fogalmaknak?

A: Algoritmus < Alkalmazás < Program

B: Algoritmus < Program < Alkalmazás

C: Alkalmazás < Program < Algoritmus

D: Alkalmazás < Algoritmus < Program

35. A változó… (melyik igaz?)

A: a memória egy adott helyére mutató programelem.

B: egymáshoz tartozó adatok elnevezése.

C: értéket képviselő programelem.

D: névvel ellátott tároló hely a számítógép memóriájában.

Page 213: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/213

Ellenőrző kérdések 21.

36. Alakítson ki két kategóriát, nevezze el azokat,

és sorolja az alábbi típusokat az egyes kategóriákba!

Kategóriák: Típusok:

A: Int E: Real

B: Állomány F: String

C: Rekord G: Tömb

D: Long H: Double

Page 214: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/214

37. Jelölje meg azokat a fogalmakat, amelyek a

következő meghatározáshoz kapcsolódnak!

Azt az elemet vehetjük ki legelőször, amelyiket utoljára tettük be.

A: FIFO B: LIFO C: Sor D: Verem

Ellenőrző kérdések 22.

38. Melyik ciklust kell alkalmazni a következő feladat

megoldására:

Addig kell beolvasni számokat, még a számok kisebbek

egy megadott értéknél!

A: Elöltesztelő ciklus

B: Hátultesztelő ciklus

C: Számláló ciklus

Page 215: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/215

39. Ábrát rajzolunk programmal.

Az E betű 1 egységnyi rajzolást jelent, a B betű balrafordulást (rajzolás nélkül), a J betű jobbra fordulást(rajzolás nélkül).

A legelső E betű hatására mindig balról jobbra haladva rajzolódik egy egységnyi vonal. Egy kis minta ábra, és programja:

A: Mit rajzol ki a következő program: EBEEJE?

B: Mit rajzol ki a következő program: EBEJEJEBE?

C: Írja meg az egységnyi oldalú négyzet megrajzolásához szükséges programot!

Ellenőrző kérdések 23.

EBEBBEE

Page 216: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/216

40. Egészítse ki a következő mondatokat!

A logikai IGAZ értéket 0-val, a logikai HAMIS értéket

............ jelöljük.

Ha egy reláció teljesül akkor logikai értéke ............ , ha

nem teljesül akkor ........... lesz.

A logikai ÉS művelet eredménye csak akkor egy, ha

............. komponens értéke egy.

A logikai VAGY művelet eredménye csak akkor nulla, ha

............ komponens értéke nulla.

A logikai ÉS művelet eredménye ............., ha egy

komponens értéke HAMIS.

A logikai VAGY művelet eredménye ............, ha egy

komponens értéke IGAZ.

Ellenőrző kérdések 24.

Page 217: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/217

41. Egészítse ki a következő mondatokat!

Értékadáskor mindig a ……… oldal kapja meg a ………

oldalon álló kifejezés értékét.

Ha egy kifejezés több operátort is tartalmaz, akkor a

kiértékelésük sorrendjét a …………………………

határozzák meg.

A ………………. szereplő operátorok a teljes kifejezés

kiértékelése szempontjából nem számítanak, mert azok

külön értékelődnek ki.

A különböző ……………….. operátorok esetén mindig a

……………………….. hajtódik végre először, ha ez

azonos, a …………………………. dönt.

Ellenőrző kérdések 25.

Page 218: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/218

Ellenőrző kérdések 26.

42. Kövesse a struktogramot!

Mit ír ki az algoritmus?

A: 11

B: 13

C: 15

D: 21

E: 23

F: 24

G: 26

H: 30

i = 1 .. n

s = 4, n = 5

Ki: s

s < 10

s=s+n

Igen Nem

s=s+i

Page 219: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/219

43. Igaz vagy Hamis az állítás?

Az Assembly magas szintű programnyelv.

Alacsony szintű programnyelven könnyebb

programozni.

A szemantika a programozás nyelvtani

szabályrendszere.

A szemantikai hibákat kijelzi a fordítóprogram.

A forráskódot compilerrel fordítjuk le gépi kódra.

Létezik végtelen számú lépésből álló algoritmus.

A kinullázás egy változónak nulla érték adását jelenti.

A pszeudokód egy téglalap alakú ábra egy algoritmus

leírására.

Ellenőrző kérdések 27.

Page 220: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/220

44. Adott egy tömb, elemei: [ -5, 9, 6, -3, -7, 1 ]

Mely algoritmus adja a legnagyobb értéket eredményül, a

tömbön lefuttatva?

A: Összegzés

B: Megszámlálás (5-nél nagyobb elemek)

C: Kiválasztás (legnagyobb elem)

Ellenőrző kérdések 28.

45. Mely önálló elemekből épül fel egy folyamatábra?

A: Adatbevitel D: Adatkivitel

B: Szelekció E: Kezdőpont, végpont

C: Művelet F: Iteráció

Page 221: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/221

Ellenőrző kérdések 29.

46. Alakítson ki két kategóriát, és sorolja az alábbi

tesztelési megállapításokat az egyes kategóriákba!

Kategóriák: Megállapítások:

A: A program lassú B: Nehéz kezelni a programot

C: A program hibás eredményt ad

D: Zavaró az ablakok színösszeállítása

E: Hiányzik a nyomtatás funkció

F: Nem lehet kiválasztani a szükséges adatot

G: A rendezés menü nem működik

Page 222: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/222

47. Ábrát rajzolunk programmal.

Az E betű 1 egységnyi rajzolást jelent, a B betű balrafordulást (rajzolás nélkül), a J betű jobbra fordulást(rajzolás nélkül), a C ciklust: C(művelet, ismétlésszám).

A legelső E betű hatására mindig balról jobbra haladva rajzolódik egy egységnyi vonal. Egy kis minta ábra, és programja:

A: Mit rajzol ki a következő program: EBC(EJ,2)EBE?

B: Mit rajzol ki a következő program: EC(BE,2)C(EJ,3)C(E,2) ?

C: Írja meg az egységnyi oldalú négyzet megrajzolásához szükséges legrövidebb programot!

Ellenőrző kérdések 30.

EBEC(B,2)C(E,2)

Page 223: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/223

Ellenőrző kérdések 29.

48. Jelölje be az összes helyes párosítást!

A: Editor – Programszerkesztő

B: Bináris kód – Gépi kód

C: Fortran – Magas szintű programnyelv

D: Interpreter – Fordító

Page 224: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/224

Page 225: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/225

IHM: IT – Alapismeretek elektronikus jegyzet

Szijártó Miklós: Informatika I. elektronikus jegyzet

Knuth, D.E: A számítógép-programozás

művészete 1-3, Műszaki Könyvkiadó, Budapest,

1987-88.

Brian W. Kernighan – Dennis M. Ritchie: A C

programozási nyelv, Műszaki Könyvkiadó, 1988

Wirth, N: Algoritmusok + Adatstruktúrák =

Programok, Műszaki Könyvkiadó, Budapest, 1982

Felhasznált irodalom

Page 226: Információs technológiák - University of Miskolcusers.iit.uni-miskolc.hu/~szucs/oktatea/EA15_04_A_lelek.pdf226/6 B IT MAN Szoftverek jogállása 1. A számítógépes programokat

B IT MAN226/226

VÉGEVÉGE