// 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); }
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;
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" <
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;
* 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 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
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
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
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í
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 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):
* 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. *
* 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