Pocet referatov: 42

Dynamické vytváranie objektov

Definujte triedu Tovar s 1 atribútom (pocet) a 1 metódou (ExpedujTovar()). Definujte statické a dynamické pole tovarov.

#include <iostream>
using namespace std;

class Tovar
{
int pocet;
public:
Tovar(int p = 0){
pocet = p;
}
void ExpedujTovar() {
// vykonaj procedúru expedície tovaru k zákazníkovi
cout << "Expedujem tovar ... " << endl;
}
};
void Expeduj(Tovar* t){
for(int i=0; i<20

Neobjektové oblasti

// Zapis 10 celych cisiel do suboru a ich opatovne nacitanie zo suboru neznamej velkosti
// Pouzijeme prud ifstream (konstruktor ma sice 3 parametre,
// musime ale zadat iba prvy - meno suboru).

#include <iostream>
#include <fstream>

using namespace std;

const char* meno = "cisla.txt";

void Chyba()
{
cerr << "nepodarilo sa otvorit subor " << meno << endl;
exit(1);
}

void main()

Statické prvky a funkcie typu friend

Príklad 4.1 V príklade 3.2 dodefinujte počítadlo objektov. Zabezpečte správne počítanie vytvorených a zrušených objektov

#include <iostream>
using namespace std;

class Zlomok
{
private:
int citatel;
int menovatel;
public :
static int objectCount;
// Konstruktor
Zlomok( int cit, int men ){
cout << "Parametricky konstruktor Zlomok(" << cit << "," << men << ")" << endl;

Úvod do objektového programovania

Príklad 1.1 Určte veľkosti dátových typov (int, short, long, char, bool, float, double) premenných na Vašom počítači .

#include <iostream>
using namespace std;

int main()
{
cout << "The size of an int is:\t\t"
<< sizeof(int) << " bytes." << endl;
cout << "The size of a short int is:\t"
<< sizeof(short) <<" bytes.\n";
cout << "The size of a long int is:\t" <

Úvod do objektov

Definujte triedu Zlomok, ktorá bude mať: 2 public atribúty citatel a menovatel (typu int) a metódu vypis(), ktorá vypíše na štandardný výstup hodnoty atribútov v tvare "citatel / menovatel". Vo funkcii main() vytvorte inštanciu triedy Zlomok, inicializujte hodnoty citatel, menovatel a zavolajte metódu vypis().
#include <iostream.h>

class Zlomok
{
public :
int citatel; //atribut
int menovatel;

void vypis() { //metoda
cout << this -> citate

Zdrojáky - objektové 1/5

#include<iostream>
using namespace std;

enum nota {C,D,E,F,G,A,H};

class Instrument{
public:
Instrument()
{
cout << "Konstruktor Instrument" << endl;
}

~Instrument()
{
cout << "Destruktor Instrument" << endl;
}

void play(nota n)
{
cout << n << endl;
}

};

class Dychove:public Instrument
{
public:
Dy

Zdrojáky - objektové 2/5

#include <iostream>
using namespace std;


class Zlomok
{
private:
int citatel;
int menovatel;
public:
void vypis()
{
cout << this->citatel << "/" << this->menovatel << endl;
}
//konstruktory
Zlomok(int citat, int menov)
{
this -> citatel =citat;
this -> menovatel=menov;
cout << "Konstruktor zlomku" << this->citatel <<","<

Zdrojáky - objektové 3/5

#include <iostream>
using namespace std;


class Zlomok
{
private:
int citatel;
int menovatel;
static int pocet;

public:
void vypis() const
{
cout << this->citatel << "/" << this->menovatel << endl;
}
//konstruktory
Zlomok(int citat, int menov)
{
this -> citatel =citat;
this -> menovatel=menov;
cout << "Konstruktor zlomku" << thi

Zdrojáky - objektové 4/5

#include<iostream>
#include<stdlib.h>

using namespace std;

class Utvar
{
public:
virtual void vykreslit()=0;
};
class Stvorec:public Utvar
{
public:
void vykreslit()
{
cout<<"Kreslim stvorec"<<endl;
}
};
class Kruh:public Utvar
{
public:
void vykreslit()
{
cout<<"Kreslim kruh"<<endl;
}
};

int main()

Zdrojáky - objektové 5/5

#include <iostream>
#include <math.h>
using namespace std;

class Bod{
private:
double xp, yp;
public:
/*bod(){
this->xp=0;
this->yp=0;
}*/
Bod(double x=0, double y=0):xp(x),yp(y){
}
double x() const {
return xp;
}
double y() const {
return yp;
}
double x(double _xp){
return this->xp=_xp;
}
double y(double _yp){
return this->yp=_yp;
}
void pri

Úvod do programovania v C++

Algoritmus a programovanie

* Algoritmus je návod, opis, postup ako niečo vyriešiť
* Algoritmy zapisujeme v jazyku, ktorému počítač rozumie - takému jazyku hovoríme programovací jazyk
* Programovanie je prepis algoritmu do programovacieho jazyka – náš programovací je C++. Programovací jazyk má určité pravidlá zápisu (tzv. syntax), ktoré musíme pri písaní programov dodržiavať
* Programy väčšinou zapisujeme, opravujeme a testujeme pomocou špecializovaných programov - vo vývojový

Vlastnosti a premenné

Vlastnosti

Vlastnosti komponentov nastavujeme v okne Inšpektora. Vlastnosti môžeme meniť aj počas behu programu. Ukážka:

Na formulár sme položili tlačidlo. Pri jeho stlačení (udalosť OnClick) sa vykoná funkcia:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Button1->Left=0;
Button1->Caption="Nový nadpis";
}

Button1->Left ... Button1 má vlastnosť vlastnosť Left (poznáme z Inšpektora) - určuje polohu
Button1->Cap

Cyklus

Úvod

Chceme nakresliť vedľa seba štvorce - toľko, koľko sa zmestí na šírku grafickej plochy. Musí sa vykonať niekoľko príkazov
g->Rectangle(..., ..., ..., ...);
s vhodnými súradnicami:
g->Rectangle(0, 0, 20, 20);
g->Rectangle(20, 0, 40, 20);
g->Rectangle(40, 0, 60, 20);
...

Vidíme, že príkaz na kreslenie obdĺžnika sa v programe vyskytuje viacej krát a menia sa iba jeho parametre (x-sová súradnica sa pravidelne zväčšuje o 20). Slovne by sm

Podmienený príkaz

Úvod

Predstavme si program, ktorý od používateľa vypýta číslo n a zobrazí hodnotu 1.0/n. Vieme ale, že pre n=0 nemá výraz 1/0 zmysel. Preto by mal byť program natoľko inteligentný, aby používateľa pre n=0 varoval:

n=StrToInt(Edit1->Text)
ak n==0 zobraz_chybu;
inak vypočítaj 1.0/n;

Program sa podľa podmienky n==0 rozhodne, ktorý príkaz vykoná - či vypíše chybovú správu alebo sa zobrazí správny výsledok. Program obsahuje dva alternatívne postupy - dve verv

Funkcie

Lokálne a globálne premenné

Lokálne premenné sme používali doteraz:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int Pocet=0;
Pocet++;
Button1->Caption=Pocet;
}

Premenná Pocet je deklarovaná v rámci tela funkcie. Taká premenná:

* vznikne pri spustení funkcie a zanikne pri skončení funkcie - má lokálnu existenciu
* je "viditeľná" od miesta deklarácie, ale iba pre príkazy funkcie, v ktorej bola deklarovaná (prí

Textové súbory

Znaková premenná

Znaková premenná je premenná typu char. Takáto premenná si pamätá práve jeden znak (písmenko, číslica, symbol):
A, B, ..., a, b, ..., 0, 1, 2, ..., +, *, !, @, #, $, %, &

char c;
c='A'; // znak je uzavretý medzi apostrofmi - do premennej c sa priradí znak A
g->TextOut(0 ,0, c); // do grafickej plochy sa nakreslí písmeno A

Znaky môžeme testovať na rovnosť:
if (c=='A') g->TextOut(0, 20, "Áno");

Polia

Úvod

Polia používame vtedy, keď potrebujeme v pamäti evidovať a spracovávať veľké množstvo údajov (tabuľky hodnôt, zoznamy čísel...).

Pole zadeklarujeme:

float v[7];

V pamäti vznikne 7 premenných typu float, ktoré sú uložené postupne za sebou - takúto údajovú štruktúru nazývame pole (anglicky array). Jednotlivým premenným hovoríme prvky poľa {pole v má 7 prvkov):

v[0] v[1] v[2] ... v[6]





...


Práca s myšou

Krátke opakovanie - čo vieme o udalostiach

Udalosť (anglicky event) ovplyvňuje ďalší beh programu - príklady udalostí:

* kliknutie na tlačidlo - naše programy čosi vykonali pri stlačení tlačidla
* pohyb myšou (naučíme sa dnes)
* stlačenie tlačidla na klávesnici.

Okrem kliknutia vie tlačidlo reagovať aj na iné udalosti:


Zoznam udalostí, na ktoré dokáže komponent reagovať sa zobrazuje na záložke Events v okne Inšpektora.

Vši

Premenné typu štruktúra

Úvod

* jednoduché premenné: int, float, double, char, bool, TColor ...
* štruktúrované premenné:
o polia
o struct
o objekt grafická plocha TCanvas, objekty pre prácu so súbormi, komponenty.

Zatiaľ sme informácie, ktoré spolu súvisia, ukladali do viacerých premenných. Napríklad:

* súradnice bodov:
int StredX, StredY; ... súradnice stredu grafickej plochy
int x[100], y[100]; ... dvojice x[0], y[0]; x[1], y[1]; ... sú súradnice bodov.
*

Textové reťazce

Úvod

Textový reťazec = konečná postupnosť znakov.

S reťazcami sme sa už stretli:

* výpis textu do grafickej plochy: g->TextOut(0, 0, "Ahoj, ako sa máš?");
* reťazec: "Ahoj, ako sa máš?" je tzv. textová konštanta
* trochu sme používali premenné typu AnsiString st="Ahoj, ako sa máš?";

V C++ existuje viacej možností, ako sú textové reťazce v pamäti počítač uložené a ako sa s nimi ďalej manipuluje. Ukážeme si dva

(1/3)
>>