Informatika3-2024/Gyakorlat5
A MathWikiből
A lap korábbi változatát látod, amilyen Kkovacs (vitalap | szerkesztései) 2024. március 21., 12:35-kor történt szerkesztése után volt.
Tartalomjegyzék |
Feladatok
Minden feladathoz nyiss új projektet IDE-ben vagy írd új file-ba ha parancssorból dolgozol!
Mostantól .cpp kiterjesztésû file-okban dolgozzunk!
Complex osztály elõadásról
Futassuk le az elõadáson látott Complex osztályt:
#include<iostream> #include<cmath> using namespace std; class Complex { private: float re; float im; public: Complex(); Complex(const Complex& other); Complex(float r); Complex(float r, float i); Complex add(Complex other); Complex times(Complex other); float abs(); void print(); ~Complex(); }; Complex::Complex() { re = 0; im = 0; } Complex::Complex(const Complex& other) { re = other.re; im = other.im; } Complex::Complex(float r) { re = r; im = 0; } Complex::Complex(float r, float i) { re = r; im = i; } Complex Complex::add(Complex other) { return Complex(this->re + other.re, this->im + other.im); } Complex Complex::times(Complex other) { float real = this->re * other.re - this->im * other.im; float imag = this->re * other.im + this->im * other.re; return Complex(real, imag); } float Complex::abs() { return sqrt(this->re * this->re + this->im * this->im); } void Complex::print() { cout << re << " + " << im << "i" << endl; } Complex::~Complex() { } int main(void) { Complex a; Complex b = Complex(1,2); Complex c = a.times(b); a.print(); b.print(); c.print(); (b.add(c)).print(); cout << b.abs() << endl; return 0; }
Téglalap
Készítsünk egy téglalap osztályt!
- Létrehozáskor kelljen megadni az oldalak hosszát.
- Tudjuk lekérdezni a területét és kerületét.
- Legyen egy scale metódusa, amivel nagyítani tudjuk (adott számmal szorzódik mind2 oldal).
- Lehessen másolni így (copy konstruktor):
Tegla a(2, 5); Tegla b(a);
Vissza a komplexre
Nézzünk vissza a Complex osztályra. Etessük meg a kódot a pythontutor-al és kövessük végig, hogy mikor melyik metódus, konstruktor hívódik meg.
String osztály
Írjunk String osztályt, amivel kényelmesebben tudunk stringeket kezelni.
- Default konstruktor üres string-et hozzon létre
- Lehessen C string-bõl konstruálni, ekkor a konstruktor fejének így kell kinéznie:
String(const char* s);
- Lehessen lekérni a hosszát
- Legyen print metódus, ami kiírja a string-et
- Lehessen két String-et konkatenálni
Láncolt lista
Valósítsuk meg a korábban használt láncolt listát mostmár osztályokkal. Tároljon a lista float-okat. A következõk mûködjenek:
- default konstruktor: üres lista
- copy konstruktor
- konstruktor ami tömbbõl építi fel a listát
- destruktor
- append: új elem berakása
- insert: új elem adott helyre berakása
- size: tárolt elemek számát adja vissza
- in: az adott elem benne van-e a listában
- index: adott indexû elemet adja vissza
- remove: adott indexû elemet törli a listából
- where: visszaadja az elsõ indexet ahol elõfordul az adott érték, -1-et, ha nincs a listában