Object-oriented Programming

Docs

1 Visual Studio Community Edition

Theory

  • Read Reiter book: till page 13
  • Watch videos and code: MVA video 1

Links

2 Hello World

Theory

Links

3 Data Types

Theory

Links

4 Control Structures – sequential and selection

Theory

Coding

Create a “Make a Star” application. Improve the Program class with three static methods called by Main(). One of them should ask for a color from the keyboard, the other is responsibel for creating stars, and the last one should display the star details on the screen.

The class diagram:

Legend:

  • s static
  • c const
  • + public
  • – private
  • 0 zero
  • * many

5 Control Structures – repetition

Theory

Coding

Create a very simple Twitter clone by following the class diagram:

Twitter clone
  • A SzövegBekérés metódus kérje be a felhasználótól az üzenet szövegét, és ellenőrizze (if), hogy megfelelő hosszúságú-e. Az ellenőrzés az Üzenet konstans mezőit használva történjen. Ha a felhasználó által megadott szöveg nem megfelelő hosszúságú, akkor a metódus írja ki ezt a képernyőre, és fejeződjön be a program futása.
  • Ha a SzövegBekérés sikeres volt, akkor hozzuk létre magát az üzenetet az ÜzenetLétrehozása metódussal. A tetszikek és nemtetszikek száma kezdetben 0. Az üzenet létrehozásáról tájékoztassuk a felhasználót: írassuk ki az Üzenet példány mezőit a képernyőre.
  • Tegyük fel, hogy amíg fut a program, egy másik felhasználó ül le a gép elé, és kérjük meg, hogy értékelje az üzenetet. Az ÉrtékelésBekérése metódus úgy működik, hogy a felhasználótól bekér egy egész számot, ami lehet pl. 100, ha nagyon tetszett, -45, ha nem tetszett, és 0, ha közömbös. Viszont a metódusnak meg kell előznie a túlzásokat (if), ezért a pozitív számokat tekintse egységesen 1-nek, a negatív számokat egységesen -1-nek, a 0-át pedig 0-nak. Tehát a metódus 1, -1 vagy 0 értékkel térhet vissza. Ezt és a következő metódust hívjuk meg többször egymás után, más és más értékeléssel.
  • Az ÜzenetÉrtékelése növelje a tetszikek számát, ha az ÉrtékelésBekérése 1-gyel tért vissza, és növelje a nemtetszikek számát, ha az ÉrtékelésBekérése -1-gyel tért vissza.
  • Végül az ÖsszevontEredményKiiratása írja ki, hogy az adott üzenet milyen eredménnyel zárt: tetszik – nemtetszik aritmetikai kifejezés alapján.

6 Arrays and Collections

Theory

7 Basic Algorithms

Theory

  • Read Reiter book: 77 – 80
  • Example projects: S06

Links

Coding

Improve the class created before according to this class diagram:

basic algorithms
  • Négyzetek összege: a tömb elemeit emeljük négyzetre, és ezen négyzeteket adjuk össze.
    [-2, 0, 3] ⟶ 13
  • Szorzás számmal: a függvénynek két paramétere van, a tömb és egy szám. A tömb elemeit szorozzuk meg ezzel a számmal, és adjuk össze a részeredményeket.
    [-2, 0, 3, 6], 2 ⟶ 14 vagy [-2, 0, 3, 6], 10 ⟶ 70 vagy [-2, 0, 3, 6], 0 ⟶ 0
  • Párosak összadása: csak a páros számok összegére vagyunk kíváncsiak (if).
    [-2, 0, 3, 6] ⟶ 4
  • Normalizálás: a függvény egy új tömbbel térjen vissza úgy, hogy a 0-nál nagyobbakat 1-re, a 0-nál kisebbeket -1-re cseréljük le.
    [-2, 0, 3, 6] ⟶ [-1, 0, 1, 1]
  • Lecserélés: a függvénynek három paramétere van, a tömb és két szám. Készítsünk egy új tömböt úgy, hogy a páratlanok helyett a paraméterként kapott első szám, míg a párosak helyet a paraméterként kapott második szám szerepeljen. Ezzel az új tömbbel térjünk vissza.
    [-2, 0, 3, 6], 8, 44 ⟶ [44, 44, 8, 44]
  • Igazak és Hamisak: a függvény egy új logikai tömbbel térjen vissza úgy, hogy a páros számokat igazra, a páratlanokat hamisra cseréljük le.
    [-2, 0, 3, 6] ⟶ [true, true, false, true]
  • Egyesek, tízesek, százasok: a függvény egy új string tömbbel térjen vissza úgy, hogy az egyeseket az “egyes”, a tízeseket a “tízes”, a százasokat a “százas” szóra cseréljük le.
    [-2, 0, 33, 666] ⟶ [“egyes”, “egyes”, “tízes”, “százas”]

8 Data Structures – preface

Theory

Coding

Reiter könyv 77. oldaltól a Szigetek és az Átlaghőmérséklet.
Oldják meg mindkét feladatot tömbökkel és programozási tételekkel, illetve generic collection-ökkel és azok metódusaival.

9 Data Structures – fields, properties, methods

Theory

Coding

Az órán vett Circle típus és annak tesztjéhez hasonló Rectangle típus tervezése és implementálása.

10 Data Structures – operators, exception handling

Theory

Coding

Az órán vett Circle típus és annak tesztjéhez hasonló Rectangle típus tervezése és implementálása.

11 Data Structures – indexers, events, generics

Theory

Coding

Az órán vett Circle típus és annak tesztjéhez hasonló Rectangle típus tervezése és implementálása (indexelő).

Reiter könyv 130. o.: Láncolt lista típus megvalósítása, és további metódusok:

  • Remove(): LinkedList – első elem törlése
  • Count: Int32 – elemek száma
  • Contains(int): Boolean – adott elem benne van-e a listában
  • FindFirst(int): Int32 – adott elem első előfordulásának keresése, és visszatérés az indexével (hanyadik elem a listában). Ha nincs ilyen elem, térjen vissza -1-gyel

Szorgalmi: A Rectangle osztályon valósítsa meg a Pub/Sub tervezési mintát. A teszt úgy nézzen ki, hogy a Rectangle objektumok feliratkoznak egy adott Beautifier objektem eseményére. A Beautifier objektum pedig egyszerre szinezi be az összes feliratkozott téglalapot.

12 Inheritance and Interfaces

Theory

  • Read Reiter book: parts 12, 13, 18, 20, 21
  • Example projects: S10

Coding

Transform the following Unity examples into .Net. They have MonoBehavior class, w have Progam.cs file. They have Start() method, we have Main() method.

13 Complex project – Shapes

Theory

  • Read Reiter book: part 24

Coding

Implementálja az alábbi osztálydiagramot: Shapes

14 Complex project – Ports

Theory

  • Read Reiter book: part 32
  • Example projects: S04

Coding

Implementálja az alábbi osztálydiagramot: Összetett feladat

15 Regular Expressions

Theory

Links

16 Unity Game Engine

Links

Coding