progi Flashcards
programozási paradigma
Bizonyos tulajdonságok figyelembevételével osztályozzák a programozási nyelveket, segitenek abban, hogy adott esetben eldontsuk, mely programnyelv a legalkalmasabb az adott feladat elvegzesere.
imperativ nyelv
Azokat a programozasi nyelveket foglaljak ossze, amelyekben a programozo lepesrol lepesre megadja azt az utasitassorozatot, amelyet a program vegigjar, kozben valtoztatva az allapotat.
deklerativ nyelv
Azok a nyelvek, amelyben a kivant eredmeny tukajdonsagait rogziti a programozó, nem azt, hogyan is kell azt elerni.
programozas
Valos problemak szamitogepes megoldása.
algoritmus
Adott típusú osszes feladat megoldasara vonatkozo pontos eloiras, amely megmondja, hogy a kezdeti adatokon milyen muveleteket milyen sorrendben kell elvegezni.
algoritmus szeleskoru
Egesz feladatosztalyokra vonatkozik.
algoritmus veges
Veges szamu lepesben fejezodjon be.
programozasi nyelv
Egy olyan nyelv, amely szintaktikai es szemantikai szabalyok osszesege altal egy problemat megoldo algoritmus leirasara szolgal. Magas szintu, alacsony szintu. (KOZEL TAVOL)
program
Egy adott algoritmus adott programozasi nyelven torteno leírása.
Hardver
Szamitast vegzo fizikai-technikai rendszer.
szoftver
A hardvert mukodteto programok es parancsok osszessege.
szoftverfejlesztesi modell
A programozas egymástól jol elkulonitheto fazisokbol epul fel, amelyek sajatos kolcsonhatasban vannak egymassal, ezt a kapcsolatot fejezi ki a szoftverfejlesztesi modell.
Vízesés modell
A feladat lepesei jol elkulonulten, egymas utan mennek vegbe.
Spiral modell
A vizeses modellt egesziti ki prototipus-hasznalat resszel valamint a lepesek ismetlesevel, iteraciojaval.
V-modell
Biztonsagkritikus szamitogeprendszerek fejlesztese eseteben terjedt el, itt a vizeses modellhez képest a szoftver ellenorzese is reszletesen ki van bontva, valamint az egyes fázisok kozotti kapcsolatok es tovabblepes is szigorubban szabalyozva van.
extrem programozas
gyors fejlesztesi ciklusokra osztott fejlesztes, ahol elvarjak a kovetelmenyek viselkedes alapu felbontasat, a tesztek elore megadasat, a folyamatos integraciot es refaktoralast.
követelmény-specifikáció
A felhasználó (megrendelő) a saját szakterülete nyelvén megfogalmazza a problémát (problémafelvetés). Ez önmagában még nem elég ahhoz, hogy az algoritmust meghatározzuk, ehhez fel kell mérni, hogy a program bemenő, illetve kimenő adatainak milyen feltételrendszert kell kielégíteniük. Ez a rész a specifikáció.
algoritmus tervezés
amikor felülről lefelé haladó módon megadjuk a probléma megoldását. Ez azt jelenti, hogy a kiindulási P problémát P1, …, Pn részproblémákra bontjuk, majd minden Pi problémára megadjuk annak egy Mi megoldását. Az Mi műveleteket alkalmas módon összetéve a P problémát megoldó algoritmus megoldását kapjuk.
A részproblémákat mindaddig bontjuk kisebb és kisebb részproblémákra, amíg olyan elemi szintű utasításig nem jutunk, ami az adott programozási nyelv egyszerű műveleteivel megvalósítható.
megvalósítás
A megvalósítás során az előbbi fázisban kifejlesztett algoritmusnak megadjuk egy adott programozási nyelven való leírását, azaz lekódoljuk azt. Ekkor elkészül a program. Ebben a fázisban szigorúan követjük az előző fázis leírását, maximum technikai jellegű különbségek lehetnek a megvalósításaink között.
ellenőrizni, tesztelni
Egyfelől meg kell mutatni, hogy az valóban a kiindulási probléma megoldását adja (helyességigazolás), de azt is meg kell mutatni, hogy ezt milyen költséggel teszi meg (memória és időigény).
fenntartás
A fenntartás fázisban elkezdődik a program felhasználása és végrehajtása a megfelelő bemenő adatokra, ugyanakkor ha a használat során hiba jelentkezik, azt orvosolni kell. Illetve ekkor szokott fény derülni olyan hiányosságokra, amelyek már a specifikáció megadása során kimaradtak, ezeket is pótolni kell.
algoritmus vezérlése
Az algoritmus vezérlése az az előírás, amely az algoritmus minden lépésére (részműveletére) kijelöli, hogy a lépés végrehajtása után melyik lépés végrehajtásával folytatódjék (esetleg fejeződjék be) az algoritmus végrehajtása. Az algoritmusnak, mint műveletnek a vezérlés a legfontosabb komponense.
vezérlési mód
A vezérlési mód azt fejezi ki, hogy egyszerűbb műveletekből hogyan építünk fel összetett műveletet és ennek milyen lesz a vezérlése, azaz milyen sorrendben kell végrehajtani az őt felépítő utasításokat, részfeladatokat.
Négy fő vezérlési mód
Szekvenciális: véges sok adott művelet rögzített sorrendben egymás után történő végrehajtása.
Szelekciós: véges sok rögzített művelet közül adott feltétel alapján valamelyik végrehajtása.
Ismétléses: adott művelet adott feltétel szerinti ismételt végrehajtása.
Eljárás: adott művelet alkalmazása adott argumentumokra, ami az argumentumok értékének pontosan meghatározott változását eredményezi.
Strukturált nyelv
Strukturált nyelv, aminek lényege, hogy az elvégzendő feladatokat kisebb, egymáshoz meghatározott módon kapcsolódó részfeladatokra kell bontani.
C fordítás lépései
preprocessing – előfeldolgozás
compilation – fordítás (assembly nyelvre)
assembly – fordítás (gépi kódra)
linking – szerkesztés, a futtatható állomány előállítása (ehhez szükséges, hogy az összeszerkesztett object állományok egyikében legyen pontosan egy main függvény, ami a program belépési pontja lesz.)
file.c
C source file – C forrásfájl
file.h
C header file – C fejléc fájl
file.i
preprocessed C file – előfeldolgozott C fájl
file.s
assembly source file – assembly nyelvű forrásfájl
file.o
object file – gépi kódú fájlfile.o object file – gépi kódú fájl
a.out
linked executable – szerkesztett futtatható fájl
szintaxis
Formai szabályok olyan rendszerét, amely meghatározza, hogy egy adott kommunikációs nyelvben melyek a szabályos jelsorozatok, a nyelv szintaxisának nevezzük.
szemantika
Egy nyelv szemantikája pedig azt határozza meg, hogy a szintaktikusan helyes jelsorozatok mit jelentenek.
karakter
char Egy karakter (betű, szám, írásjel, . . . ) ábrázolására való.
egész
short int, int, long int Egész számok ábrázolására való típusok, értékkészletükben különböznek.
valós
float, double Valós számok ábrázolására való típusok, értékkészletükben, pontosságukban különböznek.
logikai
Bool C nyelvnek
előtt nem volt része a logikai _Bool adattípus, de logikai értéket adó műveletek már akkor is voltak. A
szabvány óta létező stdbool.h header fájl pedig tartalmazza a true és false értékekkel rendelkező bool típus definícióját is.
numerikus adattípusok
int, float és double
numerikus adattípusok értékei
A numerikus adattípusok értékeinek leírására számleírást, röviden számokat használunk
kifejezés
A kifejezésen olyan programkomponenst értünk, amely egy adattípus értékének olyan jelölése, amely műveleteket is tartalmazhat. A kifejezés által jelölt értéket a kifejezés kiértékelése határozza meg.