Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

Hasonló dokumentumok
9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

Programkonstrukciók A programkonstrukciók programfüggvényei Levezetési szabályok. 6. előadás. Programozás-elmélet. Programozás-elmélet 6.

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás

ALAPFOGALMAK 1. A reláció az program programfüggvénye, ha. Azt mondjuk, hogy az feladat szigorúbb, mint az feladat, ha

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

Programozási Módszertan definíciók, stb.

3. előadás. Programozás-elmélet. A változó fogalma Kiterjesztések A feladat kiterjesztése A program kiterjesztése Kiterjesztési tételek Példa

Programozási tételek. PPT 2007/2008 tavasz.

Objektum Orientált Programozás VII.

Bevezetés a programozáshoz I. Feladatok

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

Összetett programozási tételek

Algoritmizálás, adatmodellezés tanítása 1. előadás

Programozási módszertan

Bevezetés az informatikába

Algoritmizálás és adatmodellezés tanítása 2. előadás

Algoritmizálás, adatmodellezés 1. előadás

Algoritmizálás és adatmodellezés 2. előadás

ELEMI PROGRAMOZÁSI TÉTELEK

Egyszerű programozási tételek

Programozási segédlet

PROGRAMOZÁSI TÉTELEK

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

Algoritmizálás és adatmodellezés tanítása 3. előadás

Rekurzió. (Horváth Gyula és Szlávi Péter előadásai felhasználásával)

Készítette: Nagy Tibor István Felhasznált irodalom: Kotsis Domokos: OOP diasor Zsakó L., Szlávi P.: Mikrológia 19.

Algoritmizálás, adatmodellezés tanítása 1. előadás

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

A félév során előkerülő témakörök

Programozási tételek. Dr. Iványi Péter

Bevezetés a programozásba 1

BEVEZETÉS A PROGRAMOZÁSHOZ

NEM-DETERMINISZTIKUS PROGRAMOK HELYESSÉGE. Szekvenciális programok kategóriái. Hoare-Dijkstra-Gries módszere

PROGRAMOZÁS MÓDSZERTANI ALAPJAI I. TÉTELEK ÉS DEFINÍCIÓK

Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat

Algoritmizálás, adatmodellezés tanítása 2. előadás

Adatbázis és szoftverfejlesztés elmélet. Programozási tételek

Adatbázis rendszerek Info MÁTRIX

BEVEZETÉS A PROGRAMOZÁSHOZ

PROGRAM STATIKUS FOGALMA DINAMIKUSAN VÁLTOZÓ ÁLLAPOTTÉRBEN 1

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar

A = fx j P (x) igazg ; A = fx j 1 x 7; x prímszámg : A [ B = fx j x 2 A, vagy x 2 Bg ; [a::b] := [a; b] \ Z

Hatékonyság 1. előadás

Egyszerű programozási tételek

Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs

Matematikai alapok 1 Tantárgyi útmutató

Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek

Térinformatikai algoritmusok Elemi algoritmusok

Objektumorientált Programozás VI.

TANTÁRGYI PROGRAM Matematikai alapok I. útmutató

Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs

Nagy Gábor compalg.inf.elte.hu/ nagy

Algoritmizálás, adatmodellezés tanítása 7. előadás

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

TANTÁRGYI PROGRAM Matematikai alapok I. útmutató

Analízis I. beugró vizsgakérdések

Láncolt listák Témakörök. Lista alapfogalmak

KÖVETELMÉNYEK 2017/ félév. Informatika II.

Térinformatikai algoritmusok Elemi algoritmusok

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

PROGRAMOZÁSMÓDSZERTAN

Algoritmuselmélet 1. előadás

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

Gazdasági matematika 1 Tantárgyi útmutató

Informatikai tehetséggondozás:

Algoritmizálás és adatmodellezés tanítása 6. előadás

SZOFTVERFEJLESZTÉS. Földtudományi mérnöki mesterszak / Geoinformatikus-mérnöki szakirány. 2017/18 II. félév. A kurzus ebben a félévben nem indult

11. Előadás. 11. előadás Bevezetés a lineáris programozásba

Objektumorientált Programozás VI.

Algoritmizálás, adatmodellezés tanítása 2. előadás

7.4. A programkonstrukciók és a kiszámíthatóság

Diszkrét matematika I.

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

Nagy Gábor compalg.inf.elte.hu/ nagy

Metrikus terek, többváltozós függvények

4. Fuzzy relációk. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI

Adatszerkezetek 7a. Dr. IványiPéter

Megoldás meghatározása Ez a szakasz kitölti a c és S táblázatokat, a kiíratás S alapján egy rekurzív algoritmussal megtehető.

Logika és informatikai alkalmazásai kiskérdések február Mikor mondjuk, hogy az F formula a G-nek részformulája?

KÖVETELMÉNYRENDSZER NÖVÉNYTERMESZTÉSTANBÓL 2013/2014. tanév 1. félévében

Edényrendezés. Futási idő: Tegyük fel, hogy m = n, ekkor: legjobb eset Θ(n), legrosszabb eset Θ(n 2 ), átlagos eset Θ(n).

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

Totális Unimodularitás és LP dualitás. Tapolcai János

Funkcionálanalízis. n=1. n=1. x n y n. n=1

2. hét (Ea: ): Az egyváltozós valós függvény definíciója, képe. Nevezetes tulajdonságok: monotonitás, korlátosság, határérték, folytonosság.

Bevezetés a programozásba. 5. Előadás: Tömbök

Algoritmuselmélet 1. előadás

Leképezések. Leképezések tulajdonságai. Számosságok.

TANTÁRGYI KOMMUNIKÁCIÓS DOSSZIÉ STATIKA

Az összetett programozási tételek is egy tőről fakadnak

1. Házi feladat. Határidő: I. Legyen f : R R, f(x) = x 2, valamint. d : R + 0 R+ 0

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

ANALÍZIS III. ELMÉLETI KÉRDÉSEK

Alkalmazott modul: Programozás. Programozási tételek, rendezések Giachetta Roberto

Adatbázis rendszerek Gy: Algoritmusok C-ben

Matematika alapjai; Feladatok

6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok

Bevezetés a programozásba I 3. gyakorlat. PLanG: Programozási tételek. Programozási tételek Algoritmusok

Átírás:

ÜTEMTERV Programozás-elmélet c. tárgyhoz (GEMAK233B, GEMAK233-B) BSc gazdaságinformatikus, programtervező informatikus alapszakok számára Óraszám: heti 2+0, (aláírás+kollokvium, 3 kredit) 2019/20-es tanév I. félév. Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból 1. hét: Alapfogalmak (halmazok, relációk, függvények, projekciók, sorozatok). 2. hét: A programozás alapfogalmai (programozási feladat, program, programfüggvény, feladat megoldása). 3. hét: A változó fogalma. Kiterjesztések, kiterjesztési tétel. 4. hét: Specifikáció, leggyengébb előfeltétel, paramétertér, specifikáció tétele, 5. hét: Elemi programok, elemi programok programfüggvényei, programkonstrukciók (szekvencia, elágazás, ciklus). 6. hét: 1. zárthelyi dolgozat megírása. 7. hét: Programkonstrukciók programfüggvényei. Levezetési szabályok. 8. hét: Adattípusok és adatszerkezetek (elemi és strukturált adattípusok): tömb mátrix, rekord, egyesítés típus. 9. hét: Adattípusok: sorozat típusok (halmaz típus, szekvenciális fájl, sor, verem, listák.) 10. hét: Elemi programozási tételek (sorozatszámítás, eldöntés) 11. hét: Elemi programozási tételek (kiválasztás, lineáris keresés, megszámlálás) 12. hét: 2. zárthelyi dolgozat megírása. 13. hét: Összetett programozási tételek (másolás, kiválogatás, szétválogatás, keresések, rendezések) 14. hét: Pótzárthelyi dolgozat megírása A tárgy lezárásának módja: aláírás, kollokvium Az aláírás feltétele: Az előadások felkészült, rendszeres látogatása és a zárthelyi dolgozatok megírása. A félév során a két zárthelyi dolgozat (6. és 12. héten) lesz. A zárthelyi dolgozatok elméleti kérdéseket (tételek, definíciók) illetve számolási feladatokat tartalmazhatnak.

A vizsga írásbeli. Meg nem engedett eszközök használata esetén a vizsga elégtelen és további vizsga abban a vizsgaidőszakban csak szóban, bizottság előtt, a tanszék által megadott időpontban lehetséges. Miskolc, 2019. szeptember 6. (Dr. Házy Attila) a tárgy jegyzője

Miskolci Egyetem Miskolc, 2018. október 29. Alkalmazott Matematikai Tanszék Név:.............................. Neptun-kód:....................... Zárthelyi dolgozat Programozás-elmélet c. tantárgyból 1. Feladat Definiálja a következő fogalmakat: (1-1 pont) (a) Programfüggvény: (b) Állapottér: (c) Sorozat redukáltja: (d) Leggyengébb előfeltétel: (e) Félkiterjesztés: (f) Feladat kiterjesztése:

2. Feladat Fogalmazza meg a következő tételeket: (2-2 pont) (a) Dijkstra tétele: (b) Kiterjesztési tétel: (c) Specifikáció tétele:

3. Feladat Legyen A = {,,,, }, S A A program. S = { ( ), ( ), (...), ( ), ( ), (...), ( ), ( ), ( ), ( ), ( ), ( ), ( )} F = { (, ), (, ), (, ), (, ), (, )} (a) Adja meg az S program programfüggvényét! (2 pont) (b) Megoldja-e S a feladatot? (2 pont)

Miskolci Egyetem Alkalmazott Matematikai Tanszék Név:............................. Neptun-kód:..................... Zárthelyi dolgozat Programozás-elmélet (GEMAK233B) c. tantárgyból gazdaságinformatikus, programtervező informatikus alapszakok számára 2018. december 10. 1. Feladat Mondja ki a következő definíciókat és állításokat: (2-2 pont) (a) Elemi program definíciója: (b) Elágazás definíciója: (c) A szekvencia programfüggvénye: (d) A ciklus levezetési szabálya: (e) Az szekvencia levezetési szabályának következménye: (f) Az elágazás levezetési szabályának megfordítása:

2. Feladat Ismertesse a Maximum kiválasztás programozási tételét (input, output, előfeltétel, utófeltétel, változók, függvények és az algoritmus)! (6 pont) 3. Feladat Ismertesse a Szétválogatás programozási tételét (input, output, előfeltétel, utófeltétel, változók, függvények és az algoritmus)! (6 pont)

Miskolci Egyetem Miskolc, 2018. október 29. Alkalmazott Matematikai Tanszék Név:.............................. Neptun-kód:....................... Zárthelyi dolgozat Programozás-elmélet c. tantárgyból 1. Feladat Definiálja a következő fogalmakat: (1-1 pont) (a) Program: Az S A A relációt programnak nevezzük, ha 1. D S = A, 2. a A : α S (a) : α 1 = a, 3. α R S : α = red (α). (b) Állapottér: Legyenek A 1, A 2,..., A n tetszőleges véges, vagy megszámlálhatóan végtelen halmazok. Az A = A 1 A 2... A n halmazt állapottérnek nevezzük. (c) Sorozat redukáltja: Egy α A sorozat redukáltja az a sorozat, amelyet úgy kapunk, hogy az α sorozat minden azonos elemből álló véges részsorozatát a részsorozat egyetlen elemével helyettesítjük. (d) Leggyengébb előfeltétel: Legyen S A A program, R az A állapottéren értelmezett állítás. Az S program R utófeltételhez tartozó leggyengébb előfeltétele az lf (S, R) állítás, amelyre [lf (S, R)] = { a D p(s) p (S) (a) [R] }. (e) Változó: Legyen A = A 1 A 2... A n állapottér. A pr Ai : A A i projekciós függvényeket változóknak nevezzük: pr Ai (a) = a i ( a = (a 1, a 2,..., a n ) A). (f) Feladat kiterjesztése: Legyen a B állapottér altere az A állapottérnek. Az F A A relációt az F B B feladat kiterjesztésének nevezzük, ha F = {(x, y) A A (pr B (x), pr B (y)) F }.

2. Feladat Fogalmazza meg a következő tételeket: (2-2 pont) (a) Dijkstra tétele: Legyen S A A program, R és Q az A halmazon értelmezett állítások, és HAMIS az azonosan hamis állítás. Ekkor 1. lf (S, HAMIS) = HAMIS, 2. Ha Q R, akkor lf (S, Q) lf (S, R), 3. lf (S, Q) lf (S, R) = lf (S, Q R), 4. lf (S, Q) lf (S, R) lf (S, Q R) (b) Kiterjesztési tétel: Legyen B altere A-nak, B a B kiegészítő altere A-ra, S program B-n, F B B feladat, S illetve F S-nek illetve F -nek a kiterjesztése A-ra. Legyen továbbá F A A olyan feladat, melyre pr B (F ) = F és S pedig olyan program, amely ekvivalens S-sel B-n. Ekkor az alábbi állítások teljesülnek: (1) ha S megoldása F -nek, akkor S megoldása F -nek, (2) ha S megoldása F -nek, akkor S megoldása F -nek, (3) ha S megoldása F -nek, akkor S megoldása F -nek, (4) ha S megoldása F -nek és p(s) vetítéstartó B felett, vagy F félkiterjesztés D F felett, akkor S megoldása F -nek, (5) ha S megoldása F -nek, akkor S megoldása F -nek, (6) ha S megoldása F -nek és F bővített identitás B felett és vetítéstartó B felett, akkor S megoldása F -nek, (7) ha S megoldása F -nek és p(s) félkiterjesztés D F felett, akkor S megoldása F -nek (c) Specifikáció tétele: Legyen F A A feladat, B az F egy paramétertere, F 1 A B, F 2 B A és F = F 2 F 1. Legyen b B és legyenek Q b és R b olyan állítások, amelyek igazsághalmazai [Q b ] = {a A (a, b) F 1 } = F ( 1) 1 (b), [R b ] = {a A (b, a) F 2 } = F 2 (b). Ha minden b B esetén Q b lf (S, R b ), akkor az S program megoldja az F feladatot.

3. Feladat Legyen A = {,,,, }, S A A program. S = { ( ), ( ), (...), ( ), ( ), (...), ( ), ( ), ( ), ( ), ( ), ( ), ( )} F = { (, ), (, ), (, ), (, ), (, )} (a) Adja meg az S program programfüggvényét! (2 pont) (b) Megoldja-e S a feladatot? (2 pont) Megoldás: (a) és D p(s) = {,, } p(s) = {(, ), (, ), (, ), (, ), (, ), (, )} (b) Nem oldja meg, mert p(s)( ) = {,, } F ( ) = {,, }

Miskolci Egyetem Alkalmazott Matematikai Tanszék Név:............................. Neptun-kód:..................... Zárthelyi dolgozat Programozás-elmélet (GEMAK233B) c. tantárgyból gazdaságinformatikus, programtervező informatikus alapszakok számára 2018. december 10. 1. Feladat Mondja ki a következő definíciókat és állításokat: (2-2 pont) (a) Elemi program definíciója: Az S A A program elemi, ha a A : S(a) { a, a, a, a,..., a, b b a}. (b) Elágazás definíciója: Legyenek π 1,..., π m : A L feltételek, S 1,..., S m programok A-n. Ekkor az IF A A relációt az S i -kből képezett π i -k által meghatározott elágazásnak nevezzük, és (π 1 : S 1,..., π m : S m )- vel jelöljük, ha minden a A esetén IF (a) = ( m i=1w i (a)) w 0 (a), ahol i [1..m] : és w i (a) = { Si (a), ha a [π i ], különben { a, a, a,..., ha a / m w 0 (a) = i=1 [π i ], különben. (c) A szekvencia programfüggvénye: Legyen A állapottér, S 1, S 2 programok A-n, S = (S 1 ; S 2 ) a belőlük képezett szekvencia. Ekkor p (S) = p (S 2 ) p (S 1 ). (d) A ciklus levezetési szabálya: Legyen P állítás A-n, DO = (π, S) és t : A Z. Ha 1. P π t > 0, 2. P π lf (S, P ), 3. P π t = t 0 lf (S, t < t 0 ), akkor P lf (DO, P π).

(e) Az szekvencia levezetési szabályának következménye: A szekvencia levezetési szabálya és a specifikáció tétele alapján a következőt mondhatjuk: ha S 1 és S 2 olyan programok, amelyekre a paramétertér minden pontjában Q b lf (S 1, Q b ) és Q b lf (S 2, R b ) teljesül, akkor (S 1 ; S 2 ) megoldja a Q b, R b párokkal megadott feladatokat. (f) Az elágazás levezetési szabályának megfordítása: Legyen IF = (π 1 : S 1,..., π m : S m ) elágazás, Q és R olyan állítások A-n, amelyekre Ekkor i [1..m] : Q π i lf (S i, R). Q ( m i=1π i ) lf (IF, R). 2. Feladat Ismertesse a Maximum kiválasztás programozási tételét (input, output, előfeltétel, utófeltétel, változók, függvények és az algoritmus)! (6 pont) A feladat az, hogy válasszuk ki egy sorozat legnagyobb (legkisebb) elemét: Input : n N 0, x H n, H rendezett halmaz ( <, reláció) Output : MAX N Q : n 1 R : 1 MAX n i (1 i n) : x MAX x i Az algoritmus: Változók: n : egész {a feldolgozandó sorozat elemszáma} x : tömb(1..n:elemtipus) {a feldolgozandó sorozat elemei} M AX : egész {a maximális értékű elem sorszáma} A sorozatszámításnál F (x 1,..., x n ) = max (x 1,..., x n ) és f (x, y) = max (x, y) függvényeket használjuk és az F 0 = x 1 választást (Nem neutrális elem, de az indexeléssel kompenzáljuk)! A megoldó algoritmus: maximumkiválasztás(n, x, M AX) MAX := 1 for i = 2 : n if x (MAX) < x (i) thenmax := i end eljárás vége 3. Feladat Ismertesse a Szétválogatás programozási tételét (input, output, előfeltétel, utófeltétel, változók, függvények és az algoritmus)! (6 pont) A feladat egy sorozat elemeinek szétválogatása két részsorozatba, ahol az egyik sorozatban adott tulajdonságú elemek, míg a másikban az adott tulajdonsággal nem rendelkező elemek vannak: Input : n N 0, x H n, T : H L, χ : H {0, 1} χ (x) = 1, ha T (x) és χ (x) = 0, ha T (x) Output : DBY, DBZ N 0, y, z H n Q : R : DBY = n i=1 χ (x i) y x i (1 i DBY ) : T (y i ) DBZ = n DBY z x i (1 i DBZ) : T (z i )

Az algoritmus: Függvény: T : elemtípus L Változók: n : egész {a feldolgozandó sorozat elemszáma} x : tömb(1..n:elemtipus) {a feldolgozandó sorozat elemei} DBY, DBZ : egész {a megfelelő sorozatok elemszámai} y, z : tömb(1..n:elemtípus) {a megfelelő sorozatok elemei} A megoldás: szétválogatás(n, x, DBY, y, z, DBZ) DBY, DBZ := 0, 0 for i = 1 : n if T (x (i)) then DBY := DBY + 1 Y (DBY ) = x (i) else DBZ := DBZ + 1 Z (DBZ) = x (i) end end eljárás vége

Miskolci Egyetem Alkalmazott Matematikai Tanszék Név:.................................... Neptun-kód:............................ Vizsgazárthelyi dolgozat Programozás-elmélet (GEMAK233B) c. tantárgyból gazdaságinformatikus, programtervező informatikus alapszakok számára 1. Feladat Definiálja a következő fogalmakat: (1-1 pont) (a) Programfüggvény: (b) Elágazás: (c) Leggyengébb előfeltétel: (d) Rekord: (e) Vetítéstartás: (f) ABORT program:

2. Feladat Fogalmazza meg a következő tételeket: (2-2 pont) (a) Kiterjesztési tétel: (b) Az elágazás programfüggvénye: (c) A szekvencia levezetési szabályának megfordítása: (d) Dikstra tétele: (e) Specifikáció tétele:

3. Feladat Fogalmazza meg az eldöntés programozási tételét (feladat, input, output, Q, R, egyik algoritmus)! (4 pont)