/* toto je viacriadková poznámka */ ako v Delphi, len sa rozlišujú malé a veľké písmená!!!
|
|
- Dayna Marylou Palmer
- 5 years ago
- Views:
Transcription
1 Organizácia programu #include <meno knižnice> using namespace std; int main() return 0; // jednoriadková poznámka Identifikátor Dátové typy int (long), unsigned, float (double), bool 0,1, char, trieda string Deklarácie a pretypovanie Typ Meno_premennej alebo aj s hodnotou: Typ Meno_premennej = Hodnota; príkazy; Operátory a výrazy + - * / %... premenná operátor = premenná/hodnota premenná++; ++premenná; premenná--; --premenná; x = = y x!= y!x x && y x y výraz1? výraz2 : výraz3; Priorita operácií 1. (zmena znamienka) 2. *, /, % 3. +, - 4.! 5. >, >=, <, <= 6. ==,!= 7. && = (príkaz priradenia) napr. hlavička <iostream> definuje vstupno-výstupné služby štandardnej knižnice; každé slovo z programu musí byť definované v jadre (int, float, for, while,...) alebo v knižnici doplní v celom programe std:: pred cin, cout,... program sa spustí práve zavolaním funkcie main, nulová návratová hodnota znamená úspešné vykonanie programu (return 0;); teoreticky nemusí nič vrátiť (void main()), potom implementácia predpokladá, že bola vrátená nula begin a end v C++ nahrádzajú zložené zátvorky a /* toto je viacriadková poznámka */ ako v Delphi, len sa rozlišujú malé a veľké písmená!!! a je znaková konštanta dĺžky 1, \n je znak konca riadka (ako endl) a je konštanta typu string dĺžky 1+1 (končí znakom \0 ) s.size() alebo s.length() vracia dĺžku reťazca s, reťazec začína 0-tým znakom! int x; string meno = Juro ; const float g = 9.81; float vysledok = a / b; int a, c; a = c = 5; int b = 3; Výstup: cout << a/b << endl; 1 cout << (float) a/b << endl; cout << (int) A << << a - A ; blok príkazov, premenné deklarované v bloku (aj v podmienke, napr. príkazu for) sú na jeho konci zrušené! funkcia pow(základ, exponent) základ exponent // #include <cmath> a + = b; znamená a = a + b; a % = b; a = a % b; // % znamená mod p++ inkrementuje, vracia pôvodnú hodnotu ++p inkrementuje, vracia inkrementovanú hodnotu p-- dekrementuje, vracia pôvodnú hodnotu --p dekrementuje, vracia dekrementovanú hodnotu x sa rovná y x je rôzne od y negácia x typu bool x a zároveň y - konjunkcia x alebo y - alternatíva vráti hodnotu výrazu2, ak výraz1 nadobudne true inak vráti hodnotu výrazu3; výraz2 a 3 sú rovnakého typu / môže znamenať delenie aj celočíselné delenie (pozri vyššie) rand() - vráti náhodné celé číslo z množiny 0 až rand() % 2 vráti 0 alebo 1 rand() % 10 vráti 0 až 9 srand((unsigned) time (NULL)); - znáhodní výber aj prvého čísla (môže požadovať knižnice cstdlib a time.h) 1
2 Príkazy Vstup z klávesnice string sl; cin >> sl; char zn; cin.get(zn); getline(cin, ret); Výstup na monitor cout<<premenná/ reťazec ; cout << endl; Priradenie = if (podmienka) prikaz1; else prikaz2; switch (výraz) case hodnota: príkazy; break; case hodnota: príkazy; break;... default: príkazy; for (inicializácia rpc; test; akcia) príkaz; while (podmienka) príkaz; do príkaz while (podmienka); návestie: príkazy;... goto návestie; break; continue; do sl načíta znaky len po prvú medzeru!!! do zn načíta jeden znak (môže to byť aj '\n' - bol stlačený kláves Enter) do ret načíta celý zadaný reťazec!!! na monitore zobrazí hodnotu premennej alebo reťazec nastaví výstup na nový riadok, analog. '\n' al. \n ; '\t ' - vloží tabulátor napr. prem = výraz1? výraz2 : výraz3; je to isté ako if (výraz1) prem=výraz2; else prem=výraz3; pred else sa vkladá bodkočiarka! Podmienky sa uvádzajú vždy v zátvorkách! switch (cislo) case 0: cout << Číslo je 0 \n ; break; case 1: case 2: case 3: cout << Číslo je kladné menšie ako 4 \n ; break; default: cout << Číslo je záporné alebo väčšie ako 3 \n ; break a default nie sú povinné // neustále vyhodnocuje test for (i = 0; i < pocet && pole[i]!= x; i++); cyklus sa opakuje, pokiaľ je podmienka splnená cyklus sa opakuje, pokiaľ je podmienka splnená! skok: cislo++ if (cislo % 2 == 0) goto skok; vykoná skok na miesto bezprostredne za koncom najbližšieho uzavretého príkazu while, for, do alebo switch vykoná skok na začiatok ďalšej iterácie (vrátane testu) v najbližšom uzavretom príkaze while, for alebo do; napr.: for (int i=0; i < 10; i++) if (i % 3 == 0) continue; cout << i << endl; vypíše pod seba
3 Pamätaj! 1. Po čítaní operátorom >> zo cin vždy zavolaj cin.ignore() (vo vstupnom bufferi zostane vždy minimálne znak '\n'). 2. Za volaním getline(cin, retazec) už cin.ignore() nevolaj (getline z buffera odstráni aj '\n'). 3. Keď čítaš jeden znak funkciou cin.get(znak), skontroluj, či vo vstupnom bufferi nezostali znaky: cin.get (znak); if (znak!= '\n') cin.ignore(); //ak načítaný znak je rôzny od konca riadku, z buffera treba odstrániť ešte ďalšie znaky! 4. Parametre príkazu cin.ignore(parametre) treba nastaviť podľa situácie, ktorá môže nastať, pozri nižšie. Prečo to je také komplikované so vstupom v C++ 1. Z klávesnice vkladané znaky nejdú rovno do programu, ale do vyrovnávacej pamäte, tzv. buffera. Ak bol buffer prázdny, čítanie dát z buffera do programu začne až po stlačení klávesu Enter (stlačený Enter sa do buffera zapíše ako znak '\n'). Preto sa v bufferi, okrem vložených znakov, nachádza na ich konci aj znak '\n'. Ak buffer nie je prázdny, a požaduje sa čítanie zo vstupu, automaticky sa načítajú údaje z buffera, nečaká sa na potvrdenie stlačením klávesu Enter. 2. Príkaz cin.ignore() odstráni z buffera jeden znak. Ak je buffer prázdny, čaká na jeho naplnenie! Príkaz napríklad cin.ignore(255,'\n') odstráni z buffera najviac 255 znakov resp. znaky po znak '\n' vrátane. getline (cin, retazec) do programu prenesie všetky znaky z buffera okrem '\n', ten z buffera odstráni a buffer zostane prázdny. cin >> prenesie z buffera do programu znaky po prvú medzeru, tabulátor alebo kláves Enter, a ostatné znaky (aj medzera alebo tabulátor) zostanú v bufferi vrátane '\n'. Preto pri ďalšom vstupe sa do programu (aj bez stlačenia klávesu Enter) načíta zvyšok z buffera, čo väčšinou nechceme. Preto treba použiť cin.ignore() ak chceme odstrániť len jeden znak, najčastejšie '\n', alebo napríklad cin.ignore(80, '\n'), čo odstráni z buffera najviac 80 znakov alebo všetky znaky po znak '\n' vrátane. cin.get (znak) načíta z buffera do programu jeden znak. Ak sme z klávesnice vložili jeden znak a buffer bol predtým prázdny, v bufferi zostane '\n'. Na jeho odstránenie potrebujeme použiť cin.ignore(). Ak sme z klávesnice nevložili znak, len stlačili Enter, z buffera sa do premennej znak uloží '\n' a buffer zostane prázdny. Keby sme teraz použili cin.ignore(), program čaká minimálne na stlačenie klávesu Enter, aby cin.ignore() malo čo odstrániť! Preto je po príkaze cin.get (znak) vykonanie príkazu cin.ignore() podmienené neprázdnosťou buffera, t.j. že v bufferi pred čítaním cin.get(znak) nebol len znak '\n'! Príkaz cin.get() načíta - odstráni z buffera jeden znak a teda pracuje rovnako ako cin.ignore(). Odporúčame ak chceme načítať reťazec, použiť funkciu getline (cin, premenná). ak chceme načítať viacznakovú hodnotu, použiť cin >> premenná; cin.ignore(); ak chceme načítať jeden znak alebo kláves Enter, použiť cin.get (premenná); if (premenná!= '\n') cin.ignore(); // pri použití príkazu cin >> premenná; nevieme načítať stlačenie len klávesu Enter Funkcie na klasifikáciu znakov (knižnica cctype; vracajú true alebo false) isalpha písmená abecedy Napr. if (isalpha(znak))...; isalnum písmená abecedy a číslice isdigit číslice islower malé písmená abecedy isupper veľké písmená abecedy isspace biele znaky: medzera, horizontálny tabulátor \t, koniec riadka \n, vertikálny tabulátor, nová strana, na začiatok riadka Formátovanie výstupu \t tabulátor napr.: cout << meno << \t << priemer << endl; setprecision manipulátor definovaný v hlavičke <iomanip>, umožňuje zadať počet platných cifier výstupu; napr.: streamsize povodna_presnost = cout.precision(); cout << Priemer známok na stotiny: << setprecision(3) << priemer << setprecision(povodna_presnost) << endl; premenné typu streamsize sa používajú na vyjadrenie veľkosti výstupu priemer = 1, zobrazí ako 1.99; priemer = ,4 zobrazí ako 1.99e+005 string (p, ) výraz typu string, v prúde cout vypíše p medzier napr. cout << meno << string (25 - meno.size(), ) <<... 3
4 Jednorozmerné pole Pole v C++ existuje len statické, v tom slova zmysle, že síce môže vzniknúť až počas behu programu, počet jeho prvkov však nemožno meniť (možno celé zrušiť a vytvoriť nové pole). Indexy poľa musia byť typu integer (nie napr. char) a vždy začínajú nulou! Pole je súčasťou jadra jazyka C++ (nie štandardnej knižnice). - ak je počet prvkov poľa známy už pri písaní programu: Typ_prvku Názov_poľa [ Počet_prvkov ] rezervuje príslušnú veľkosť pamäte napr. int pole [100]; vyhradí pamäť pre pole celých čísel od indexu 0! int pole [5] = 1,2,3,4,5; pole[0] má hodnotu 1,..., pole[4] hodnotu 5 const int pocet=4; používajte konštantu pocet float priemer[]=1.4, 2.7, 3, 1.00; //pri vymenovaní nemusíme uviesť počet prvkov float sucet=0; for (int i=0; i<pocet; i++) sucet+=priemer[i]; cout << sucet/pocet << endl; - pole sa vytvorí až počas behu programu (dynamická alokácia pamäte): Typ_prvku *Názov_poľa = new Typ_prvku [ Počet_prvkov ]; napr. const int pocet; cout << "Pocet prvkov pola: "; cin >> pocet; cin.ignore(); int *pole = new int [pocet]; for (int i=0; i<pocet; i++) cout << i+1 << ". prvok "; cin >> pole[i]; cin.ignore(); Treba používať premennú (konštantu) počet, lebo pre pole nie sú definované žiadne funkcie na zistenie jeho dĺžky alebo maximálneho indexu, ako napr. length, size, high,... Funkcia (podprogram) Definovanie funkcie Typ_výsledku Názov_funkcie (void alebo zoznam parametrov) deklarácie lokálnych premenných a statických lokálnych premenných; príkazy; prípadne return hodnota; Napr. int sucet(int x, int y) return x+y volanie napr. cout << sucet(a,b); Funkcia sa volá Názov_funkcie( ) alebo Názov_funkcie (parametre); Globálne premenné sa deklarujú nad funkciami. Statická lokálna premenná static Typ_premennej Názov_premennej = Inicializačná_hodnota; má rozsah platnosti lokálnej premennej ale životnosť globálnej premennej (po ukončení funkcie nezaniká). Parametre môžu byť nahradzované hodnotou alebo odkazom. Pri nahradzovaní odkazom sa medzi typ parametra a názov parametra píše ampersand (&). Napríklad void cosi(int x, int y, int& plus, int& minus) plus = x+y; minus = x-y; volanie napr. cosi(cislo1, cislo2, sucet, rozdiel); Nad funkciami môže byť uvedený prototyp nižšie definovanej funkcie, ktorý má rovnaký tvar ako hlavička definície funkcie, ale zoznam parametrov môže obsahovať len zoznam typov parametrov. void vytvor(int, int []); void vypis(int, int []); int main() int poceta; cout << "Počet prvkov poľa: "; cin >> poceta; cin.ignore(); int *polea = new int[poceta]; vytvor(poceta,polea); vypis(poceta,polea); delete [] polea; void vytvor(int pocet, int pole[]) for (int i=0; i<pocet; i++) cout << i+1 << ". prvok "; cin >> pole[i]; cin.ignore(); void vypis(int pocet, int pole[]) for (int i=0; i<pocet; i++) cout << pole[i] << '\t'; 4
5 Textový súbor #include <fstream> Premenné typu fstream sú určené na čítanie zo súboru aj zápis do súboru. fstream f; // deklaruje prúd f pre čítanie zo alebo zápis do súboru f.open ("subor.txt", ios::in); // otvorí súbor na čítanie, vstupný prúd f prepojí so súborom f.open ("subor.txt", ios::out); // otvorí súbor na zápis, výstupný prúd f prepojí so súborom f.open ("subor.txt", ios::out ios::app ); // otvorí súbor na pripisovanie na koniec súboru f.close(); // zavrie súbor K dispozícii máme štyri príznaky funkcie na zaznamenanie stavu vstupu a výstupu: f.eof() vracia true, ak bol dosiahnutý koniec súboru, inak vracia false f.bad() vracia true, ak posledná operácia zlyhala z dôvodu neplatných údajov f.fail() vracia true, ak je bad true alebo zlyhala nejaká operácia pre hardvérové alebo systém. problémy f.good() vracia true, ak bola posledná operácia so súborom úspešná Príznaky môžu mať po skončení práce so súborom rôzne hodnoty. Preto ich, pred opätovným otvorením súboru, treba zmazať príkazom f.clear()! Odporúčame po príkaze close hneď použiť príkaz clear. Príkaz f.open ("subor.txt", ios::in); neoznámi chybu, keď súbor na disku neexistuje, len nastaví príznak f.fail() na true. Preto odporúčame po pokuse otvoriť súbor na čítanie vykonať test úspešnosti: if ( f.fail() ) cout << "Problem so suborom!\n"; system("pause"); return 1; Aj čítanie zo súboru a zápis do súboru sa realizuje cez vyrovnávacie pamäte. Pri zápise často až príkaz close vyvolá zápis posledných údajov na vonkajšiu pamäť, aj preto je dôležité ho nezabudnúť použiť po každom skončení práce so súborom. Vyčistiť vstupný buffer možno príkazom f.ignore(), podobne ako pri vstupných operáciách z klávesnice. V nasledovných ukážkach sme pracovali so súborom subor.txt s obsahom: Vypísanie obsahu súboru znak po znaku: fstream f; f.open ("subor.txt", ios::in); if (f.fail()) cout << "Problem so suborom!\n"; system("pause"); return 1; char znak; while ( f.get (znak) ) cout << znak; f.close(); f.clear(); cout << endl; Vypísanie obsahu súboru po riadkoch a počtu znakov v každom riadku: fstream f; f.open ("subor.txt", ios::in); if (f.fail()) cout << "Problem so suborom!\n"; system("pause"); return 1; string s; while (!f.eof() ) getline ( f, s ); cout << s << '\t' << s.size() << endl; f.close(); f.clear(); Pokiaľ sme si nie istý korektnosťou vstupného súboru (napríklad, či za posledným údajom v súbore nebol ešte stlačený kláves Enter, t.j. vložený znak koniec riadka '\n'), je lepšie použiť schému: getline ( f, s ); // pokus o načítanie prvého riadka zo súboru while (!f.fail() ) // pokiaľ nenastala chyba; môžete skúsiť aj while (f.good()) cout << s << endl; getline (f, s); // pokus o načítanie ďalšieho riadka zo súboru 5
6 Čítanie číselných hodnôt zo súboru, pričom umiestnenie čísel do riadkov nie je pre riešenie úlohy dôležité; napríklad výpočet aritmetického priemeru zo všetkých čísel zapísaných v súbore: fstream f; f.open ("subor.txt", ios::in); if (f.fail()) cout << "Problem so suborom!\n"; system("pause"); return 1; float x, sucet = 0; int pocet = 0; f >> x; // rieši aj situáciu, keď za posledným číslom v súbore bol stlač. Enter while ( f.good() ) // prípadne while (!f.fail()) alebo while (!f.eof()) sucet += x; pocet++; f >> x; f.close(); f.clear(); cout << "Priemer: " << sucet/pocet << endl; // pri deklarácii int x, sucet = 0; by sme museli použiť // konverziu (float) sucet/pocet! Čítanie číselných hodnôt zo súboru, pričom rozdelenie súboru na riadky je pre riešenie úlohy dôležité; napríklad výpočty aritmetických priemerov z čísel uložených v jednotlivých riadkoch: float x, sucet; int pocet; while (!f.eof() ) sucet = 0; pocet = 0; while ( f.peek()!= '\n' &&!f.eof() ) // pokiaľ nenasleduje koniec riadka a nie je koniec súboru f >> x; sucet += x; pocet++; if (pocet > 0) cout << "Priemer cisel v riadku: " << sucet/pocet << endl; else cout << "V riadku nie je ani jedno cislo!\n"; f.ignore(); f.close(); f.clear(); // odstráň z buffera '\n' Predchádzajúcu úlohu možno riešiť aj načítaním celého riadka ako typu string a rozrezaním a konverziou na jednotlivé čísla (predpokladáme, že súbor obsahuje len celé čísla oddelené medzerami, tabulátormi alebo koncami riadka): int cislo, sucet, pocet, i; // pre reálne čísla float cislo, sucet; string riadok, cislostr; // cislostr je premenná, v ktorej bude číslo uložené ako typ string while (!f.eof() ) getline ( f, riadok ); cislostr = ""; sucet = 0; pocet = 0; i=0; while ( i <= riadok.size() ) if (!isspace(riadok[i]) && i < riadok.size() ) cislostr += riadok[i]; //vysvetlenie pozri nižšie else cislo = atoi ( cislostr.c_str() ); // pre reálne čísla cislo = atof ( cislostr.c_str() ); cislostr = ""; sucet += cislo; pocet++; i++; if (pocet > 0) cout << "Priemer cisel v riadku: " << (float) sucet/pocet << endl; 6
7 else cout << "V riadku nie je ani jedno cislo!\n"; f.close(); f.clear(); Vysvetlenie zvýrazneného vetvenia (prvý riadok vytvorí číselný reťazec, v else sa zmení na číslo): ak ( znak_riadok[i] nie je biely_znak a i < pocet_znakov_v_riadku) tak cislostr = cislostr + riadok[i]; // do reťazca cislostr sa postupne uložia znaky celého čísla až po medzeru alebo koniec riadka inak cislo priraď ascii_reťazec_konvertuj_na_int (cislostr_zmeň_na_c_ascii_reťazec); V jazyku C existujú konverzné funkcie atoi a atof, ktoré konvertujú reťazce na celé alebo reálne čísla (skratky slov ascii_to_int a ascii_to_float, analógia s funkciami StrToInt a StrToFloat v Delphi). Ak ich chceme použiť v jazyku C++, musíme najprv reťazec previesť na C-čkovský reťazec funkciou retazec.c_str(). Zápis do súboru Pripomeňme si, že príkaz f.open (meno_suboru, ios::out); otvorí súbor na zápis; ak súbor existuje, jeho obsah bude zmazaný, a f.open (meno_suboru, ios::out ios::app ); otvorí súbor na pripisovanie na koniec súboru, ak súbor neexistuje, bude vytvorený. Nasledujúci výpis popisuje vytvorenie prázdneho súboru a zápis zadaného textu po riadkoch, prípadne pridanie ďalších riadkov na koniec súboru a výpis novovytvoreného súboru. fstream f; string riadok; char odp; // zapíše zadané riadky do súboru f.open ( "vytvor.txt", ios::out ); // vytvorí prázdny súbor do cout << "Napis riadok na zapis: "; getline ( cin, riadok ); f << riadok << '\n'; // zapíše riadok do súboru (pozri poznámku 1) cout << "Dalsi? (Nie -> N) "; cin.get ( odp ); if ( odp!= '\n' ) cin.ignore(); while ( toupper(odp)!= 'N' ); f.close(); // ak sme na niečo zabudli, teraz môžeme pridať na koniec súboru f.open ( "vytvor.txt", ios::out ios::app ); // otvorí súbor a zápis nastaví na koniec súboru cout << "Zabudol si nieco? (Ano -> A) "; cin.get ( odp ); if ( odp!= '\n' ) cin.ignore(); if ( toupper ( odp ) == 'A' ) do cout << "Napis riadok na zapis: "; getline ( cin, riadok ); f << riadok << '\n'; // zapíše riadok do súboru (pozri poznámku 2) cout << "Dalsi? (Nie -> N) "; cin.ge t( odp ); if ( odp!= '\n' ) cin.ignore(); while ( toupper ( odp )!= 'N' ); f.close(); // vypíše obsah súboru (dve alternatívy) f.open ( "vytvor.txt", ios::in ); while (!f.eof() ) getline ( f, riadok ); cout << riadok << endl; f.close(); f.open ( "vytvor.txt", ios::in ); char zn; while ( f.get(zn) ) cout << zn; f.close(); cout << endl; 7
8 Vytvorený súbor má chybu krásy, na jeho konci je vložený prázdny riadok, čo pri ďalšom spracovávaní údajov zo súboru môže spôsobovať problémy. Poznámka 1 - vytvorenie čistého súboru bez prázdneho riadka na konci súboru Keďže každý zadaný riadok má byť zapísaný v súbore v samostatnom riadku, realizovali sme zápis do súboru príkazom f << riadok << '\n'; čo spôsobilo, že za posledným riadkom v súbore je tiež vložený koniec riadka a teda nepotrebný prázdny riadok. Podobne príkaz f << '\n' << riadok; by spôsobil, že prvý riadok v súbore by bol vždy prázdny, čo by bola vyslovene chyba. Funkciou tellg však vieme rozpoznať, či sme na začiatku súboru a teda, že netreba vložiť znak koniec riadka. Funkcia f.tellg() (tell get) vráti celé číslo udávajúce, za koľký znak v súbore je nastavený get ukazovateľ (ak je súbor prázdny, vráti 0). Ak v programe namiesto príkazu f << riadok << '\n'; vložíme príkazy if (f.tellg() >0) f << '\n'; f << riadok; dosiahneme, že koniec riadka bude vložený do súboru, len pred druhým a ostatnými korektnými riadkami a nie za posledný riadok v súbore. Funkciou f.tellg() zisťujeme, či nasledujúci riadok bude prvý (f.tellg() musí vrátiť nulu) alebo nie. Ak bude prvý, pred neho nepotrebujeme zapísať koniec riadka. Ak f.tellg() má kladnú hodnotu, v súbore už je minimálne jeden riadok zapísaný a pred zápisom nasledujúceho riadka treba vložiť koniec riadka, aby sa text zapísal na nový riadok. Poznámka 2 - vytvorenie čistého súboru bez prázdneho riadka na konci súboru aj po pripísaní dát Rovnaký postup, aký sme opísali v pozn.1, môžeme uplatniť aj v časti pre pripísanie ďalších riadkov na koniec súboru. Keď začíname zápis do novovytvoreného prázdneho súboru, funkcia f.tellg() určite vráti nulu. Pred pripisovaním na koniec existujúceho súboru, keďže sme súbor museli zavrieť a otvoriť s novými parametrami (ios::out ios::app) musíme pred prvým použitím funkcie tellg get ukazovateľ nastaviť na koniec otvoreného súboru príkazom f.seekg (0,ios::end). Preto musíme pred cyklus do... vložiť riadok s príkazom f.seekg (0,ios::end); a príkaz f << riadok << '\n'; nahradiť už v poznámke 1 popísanými príkazmi if ( f.tellg() > 0 ) f << '\n'; f << riadok; Funkcia f.seekg (parametre) nastaví get ukazovateľ na parametrami určenú pozíciu. Napríklad f.seekg (0, ios::beg); na začiatok a f.seekg (0, ios::end); na koniec súboru. Sekvencia príkazov f.seekg(0,ios::end); cout << Pocet znakov v subore: << f.tellg() << endl; vráti počet znakov otvoreného súboru (pripomíname, že koniec riadka sa zapíše ako dva znaky ASCII kód 10 a 13). Ukážka časti programu, ktorý umožní do súboru znamky.txt zapísať mená študentov a ich známky. fstream f; char znamka; string meno; f.open ( "znamky.txt", ios::out ); cout << "Meno studenta (Koniec -> Enter): "; getline ( cin, meno ); while ( meno!= "" ) f << meno << '\n'; cout << "Znamky (Koniec -> Enter)" << endl; cin.get ( znamka ); if ( znamka!= '\n' ) cin.ignore(); while ( znamka!= '\n' ) f << ' ' << znamka; // zapíše medzeru ako oddeľovač známok a známku cin.get ( znamka ); if ( znamka!= '\n' ) cin.ignore(); cout << "Meno studenta: "; getline ( cin, meno ); if ( meno!= "" ) f << '\n'; f.close(); Bude vytvorený korektný súbor (na konci súboru nebude prázdny riadok). Pred každú, teda aj prvú známku v riadku bude vložená medzera (zvolená ako oddeľovač známok), čo však nemôže pri ďalšom spracovávaní známok zapísaných v súbore spôsobovať problémy, keďže biele znaky pred číslami sa pri načítavaní čísel ignorujú. 8
9 Ďalšie možnosti zápisov pri práci so súbormi: súbor možno súčasne otvoriť pre čítanie aj zápis príkazom f.open (meno_suboru, ios::in ios::out); ak súbor existuje, jeho obsah sa zachová, ak neexistuje, vytvorí sa prázdny súbor po príkaze otvoriť súbor jeho úspešnosť môžeme testovať aj if (f)... alebo if (!f)... príkazy fstream f; f.open(...,...); možno nahradiť jediným príkazom fstream f (...,...) knižnica fstream pozná aj údajové typy určené len na čítanie zo súboru ifstream (input file stream) alebo len na zápis do súboru ofstream (output file stream) ifstream f; deklaruje vstupný prúd, t.j. f možno použiť len na čítanie zo súboru ofstream f; deklaruje výstupný prúd, t.j. f možno použiť len na zápis do súboru Ďalej sa s f pracuje ako s prúdmi typu fstream, napríklad f.open (meno_suboru); alebo ifstream f (meno_súboru); - deklaruje f a zároveň otvorí súbor pre čítanie ofstream f (meno_súboru); - deklaruje f a zároveň otvorí súbor pre zápis 9
10 Typ vector knižnica vector, t.j. musíte použiť #include <vector> Dynamické pole v C++ možno vytvoriť pomocou údajového typu vector. Je to pole v tom slova zmysle, že všetky prvky sú rovnakého typu. Aj pre typ vector platí, že indexy musia byť typu integer a vždy začínajú nulou! vector < Typ_prvku > Meno_vektora; Na vkladanie hodnôt do vektora sa používa príkaz v.push_back(h), ktorý zapíše za posledný prvok vektora v hodnotu h a zvýši veľkosť vektora o 1. Napr.: vector <int> vektor; int pocet; cout << "Pocet prvkov: "; cin >> pocet; for (int i=0; i<pocet; i++) vektor.push_back (rand()%10); // naplní vektor náhodnými jednocif. číslami Vypísanie prvkov vektora: for (int i=0; i<vektor.size(); i++) cout << vektor[i] << '\t'; cout << endl; Ak majú byť všetky vkladané hodnoty rovnaké, môžeme použiť príkaz v.insert(v.end(), p, h), ktorý do vektora v za posledný prvok vloží skopíruje p-krát hodnotu h. Napr.: vector <int> vektor; int pocet; cout << "Pocet prvkov: "; cin >> pocet; vektor.insert (vektor.end(), pocet, 0); // naplní vektor nulami Ak by sme použili namiesto funkcie end() funkciu begin(), nuly by boli nakopírované pred prvý prvok vektora. Ostatné prvky budú automaticky posunuté a preindexované. Všeobecne príkaz v.insert(z, p, h) vloží do vektora v od indexu z (musí byť tzv. iterátor) p-krát hodnotu h. Napr. vektor.insert(vektor.begin()+1, 2, -100); vloží do vektora na pozície s indexami 1 a 2 hodnotu -100, veľkosť vektora sa zväčší o dva, prvky sa automaticky preindexujú. Na odstránenie - vyrezanie prvkov z vektora slúži príkaz v.erase(z,k), ktorý z vektora v odstráni prvky s indexami z intervalu <z, k). Napr. vektor.erase ( vektor.begin()+2, vektor.begin()+5 ) odstráni z vektora prvky s indexami 2, 3 a 4; vektor.erase ( vektor.begin(), vektor.begin()+1 ) odstráni z vektora prvok s index 0 (prvý prvok), čo možno zapísať aj vektor.erase ( vektor.begin() ); príkaz vektor.erase ( vektor.begin()+3 ) odstráni prvok s indexom 3. Zmeniť veľkosť vektora možno príkazom v.resize(p), ktorý ponechá z vektora v len prvých p prvkov (ak p < v.size()), prípadne zväčší veľkosť vektora v na p prvkov (ak p > v.size()) a dokopíruje hodnotu nula. Príkaz v.resize(p,h) dokopíruje hodnotu h. Na prácu s vektormi slúži mnoho príkazov a funkcií, pozri napríklad stránku Napríklad: v.begin() ukazuje na prvý prvok vektora v v.end() ukazuje na (jednu pozíciu za) posledný prvok vektora v v.size() počet prvkov vektora v v[n] hodnota n-tého prvku vektora v v.empty() vráti True, ak je vektor v prázdny, inak False v.clear() vyprázdni vektor v, ako v.erase(v.begin(), v.end()) v.pop_back() odstráni z vektora v posledný prvok a zmenší veľkosť vektora o 1 Vytvorenie a vypísanie vektora so zadaným počtom prvkov: vector<int> v; int pocet; srand((unsigned)time(null)); // knižnica #include <vector> // ako randomize // vytvorí vektor 10
11 cout << "Pocet prvkov: "; cin >> pocet; cin.ignore(); for ( int i = 0; i < pocet; i++ ) v.push_back (rand()%100); //vloží náhodné celé čísla z intervalu <0,100) // vypíše prvky vektora for ( int i = 0; i < v.size(); i++ ) cout << v[i] << '\t'; cout << endl; // bublinkové triedenie int i, pp; int pom; for ( pp = 1; pp < v.size(); pp++ ) for ( i = 0; i < v.size() - pp; i++ ) if ( v[i] > v[i+1] ) pom = v[i]; v[i] = v[i+1]; v[i+1] = pom; Ak potrebujeme použiť parametre, môžeme definovať typ vektor zápisom: typedef vector<int> tvektor; void Vytvor ( tvektor &v ) int pocet; cout << "Pocet prvkov: "; cin >> pocet; cin.ignore(); for ( int i = 0; i < pocet; i++ ) v.push_back ( rand()%10 ); /* teoreticky aj v.resize ( pocet ); for ( int i = 0; i < v.size(); i++ ) v[i] = rand()%10; */ void Vypis ( tvektor v ) for( int i = 0; i < v.size(); i++ ) cout << v[i] << '\t'; cout << endl; void UtriedBubble ( tvektor &v ) int pp, i; int pom; for ( pp = 1; pp < v.size(); pp++ ) for ( i = 0; i < v.size() - pp; i++ ) if ( v[i] > v[i+1] ) pom = v[i]; v[i] = v[i+1]; v[i+1] = pom; int main() tvektor a; Vytvor(a); Vypis(a); UtriedBubble(a); Vypis(a);... Ak nedefinujeme typ vektor, v špecifikácii formálnych parametrov namiesto tvektor píšeme vector<int>. 11
12 Utriediť vzostupne hodnoty vektora v možno aj jediným príkazom sort (v.begin(), v.end()); ktorý je definovaný v knižnici algorithm. Všeobecne sort (z, k); utriedi hodnoty z intervalu <z, k). Iterátory Iterátory možno použiť namiesto indexov sú zviazané s vektorom zápisom vector <Typ_prvku>::iterator Meno_iterátora; napr. vector <int>::iterator it; #include <iostream> #include <vector> #include <algorithm> using namespace std; vector <string> v; typedef vector<string>::iterator iter; void init() v.resize(10); v[0]="fero"; v[1]="adela"; v[2]="zuzana"; v[3]="cyril"; v[4]="darina"; v[5]="dorota"; v[6]="pavol"; v[7]="peter"; v[8]="zora"; v[9]="boris"; sort(v.begin(),v.end()); /* bool bin_vlozit(string x) iter dh = v.begin(); iter hh = v.end(); iter stred = dh + (hh-dh) / 2; do stred = dh + (hh-dh) / 2; if (*stred!= x) if (*stred<x) dh= stred+1; else hh= stred-1; while (*stred!=x && dh<=hh); if (*stred==x) return 1; else if (*stred<x) stred+=1; v.insert(stred,1,x); return 0; */ void bin_vlozit(string x, bool &je, int &index) iter dh=v.begin(); iter hh=v.end(); iter stred; do stred= dh + (hh-dh)/2; if (*stred!= x) if (*stred<x) dh= stred+1; else hh= stred-1; 12
13 while (*stred!=x && dh<=hh); if (*stred==x) je= true; index= stred-v.begin(); else je= false; if (*stred<x) stred+=1; index= stred-v.begin(); //posledne dva príkazy nemožno vymeniť!!! v.insert(stred,1,x); void vypis() for (int i= 0; i< v.size(); i++) cout << i+1 << ". " << v[i] << endl; // for (vector<string>::size_type i= 0; i < v.size(); i++) cout << i+1 << ". " << v[i] << endl; // alebo i!= v.size(); // for (vector<string>::iterator i= v.begin(); i< v.end(); i++) cout << *i << endl; // int j; // for (vector<string>::iterator i= v.begin(); i< v.end(); i++) j= i-v.begin(); cout << j+1 << ". " << v[j] << endl; // for (vector<string>::const_iterator i= v.begin(); i< v.end(); i++) cout << *i << endl; int main() init(); string Meno; bool Je; int Index; cout << "Hladat meno: "; cin >> Meno; cin.ignore(); if (islower(meno[0])) Meno[0]= toupper(meno[0]); bin_vlozit(meno,je,index); if (Je) cout << "Meno sa v zozname nachadza na " << Index+1 << ". mieste!"; else cout << "Meno sa v zozname nenachadza, vlozil som ho na " << Index+1 << ". miesto!"; cout << endl; vypis(); return 0; 13
Databázové systémy. SQL Window functions
Databázové systémy SQL Window functions Scores Tabuľka s bodmi pre jednotlivých študentov id, name, score Chceme ku každému doplniť rozdiel voči priemeru 2 Demo data SELECT * FROM scores ORDER BY score
More informationVYLEPŠOVANIE KONCEPTU TRIEDY
VYLEPŠOVANIE KONCEPTU TRIEDY Typy tried class - definuje premenné a metódy (funkcie). Ak nie je špecifikovaná inak, viditeľnosť členov je private. struct - definuje premenné a metódy (funkcie). Ak nie
More informationRegistrácia účtu Hik-Connect
Registrácia účtu Hik-Connect Tento návod popisuje postup registrácie účtu služby Hik-Connect prostredníctvom mobilnej aplikácie a webového rozhrania na stránke www.hik-connect.comg contents in this document
More informationSpájanie tabuliek. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c)
Spájanie tabuliek Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c) 2011-2016 Úvod pri normalizácii rozdeľujeme databázu na viacero tabuliek prepojených cudzími kľúčmi SQL umožňuje tabuľky opäť spojiť
More informationJeden z variantov príkazu priradenia nám umožňuje zadať za sebou aj viacej vstupných hodnôt, ako napríklad
Príkaz priradenia Príkaz priradenia slúži na priradenie hodnoty premennej. Má tvar premenná = výraz, kde premenná je identifikátor, znak = sa číta priraď a vyhodnotením výrazu sa získa hodnota určitého
More informationProgramovanie v jazyku Python. Michal Kvasnica
Programovanie v jazyku Python Michal Kvasnica Organizačné detaily Prednášky aj cvičenia v 638 Povinná účasť na cvičeniach Hodnotenie: priebežné odovzdávanie zadaní (40% známky) záverečný projekt na skúške
More informationDatabázy (1) Prednáška 11. Alexander Šimko
Databázy (1) Prednáška 11 Alexander Šimko simko@fmph.uniba.sk Contents I Aktualizovanie štruktúry databázy Section 1 Aktualizovanie štruktúry databázy Aktualizácia štruktúry databázy Štruktúra databázy
More informationkucharka exportu pro 9FFFIMU
požiadavky na export kodek : Xvid 1.2.1 stable (MPEG-4 ASP) // výnimočne MPEG-2 bitrate : max. 10 Mbps pixely : štvorcové (Square pixels) rozlíšenie : 1920x1080, 768x432 pre 16:9 // výnimočne 1440x1080,
More informationDatabázy (1) Prednáška 08. Alexander Šimko
Databázy (1) Prednáška 08 Alexander Šimko simko@fmph.uniba.sk Contents I Subqueries (poddopyty) konštrukcia WITH Section 1 Subqueries (poddopyty) Subquery (poddopyt) Použitie SELECTu na mieste, kde sme
More informationDatabázy (2) Prednáška 08. Alexander Šimko
Databázy (2) Prednáška 08 Alexander Šimko simko@fmph.uniba.sk Contents I Funkcie Zložené typy PL/pgSQL Agregačné funkcie Funkcie Section 1 Funkcie Funkcie PostgreSQL umožňuje vytvoriť si vlastné databázové
More informationPoradové a agregačné window funkcie. ROLLUP a CUBE
Poradové a agregačné window funkcie. ROLLUP a CUBE 1) Poradové a agregačné window funkcie 2) Extrémy pomocou DENSE_RANK(), TOP() - Príklady 3) Spriemernené poradia 4) Kumulatívne súčty 5) Group By a Datepart,
More information1 Vytvorenie tabuľky
Základy jazyka SQL (Structured Query Language) - vyvinula IBM začiatkom 70-tych rokov - je to deklaratívny jazyk (popisuje čo urobiť, nie ako) - je súčasťou veľkých databázových systémov (Informix, Oracle,
More informationConstraint satisfaction problems (problémy s obmedzujúcimi podmienkami)
I2AI: Lecture 04 Constraint satisfaction problems (problémy s obmedzujúcimi podmienkami) Lubica Benuskova Reading: AIMA 3 rd ed. chap. 6 ending with 6.3.2 1 Constraint satisfaction problems (CSP) We w
More informationWeek 3: File I/O and Formatting 3.7 Formatting Output
Week 3: File I/O and Formatting 3.7 Formatting Output Formatting: the way a value is printed: Gaddis: 3.7, 3.8, 5.11 CS 1428 Fall 2014 Jill Seaman spacing decimal points, fractional values, number of digits
More informationTextový formát na zasielanie údajov podľa 27 ods. 2 písm. f) zákona
Popis textového formátu a xsd schémy na zasielanie údajov podľa 27 ods. 2 písm. f) zákona (formu na zaslanie údajov si zvolí odosielateľ údajov) Textový formát na zasielanie údajov podľa 27 ods. 2 písm.
More informationPRACOVNÝ ZOŠIT Z PROGRAMOVANIA 2
PRACOVNÝ ZOŠIT Z PROGRAMOVANIA 2 Ing. Igor Marko, 2011 PODPROGRAMY V PASCALE DEFINÍCIA, GLOBÁLNE A LOKÁLNE PREMENNÉ Podprogram v programovacom jazyku je postupnosť príkazov vystupujúcich pod jedným názvom,
More informationCS 31 Review Sheet. Tau Beta Pi - Boelter Basics 2. 2 Working with Decimals 2. 4 Operators 3. 6 Constants 3.
CS 31 Review Sheet Tau Beta Pi - Boelter 6266 Contents 1 Basics 2 2 Working with Decimals 2 3 Handling Strings and Numbers with stdin/stdout 3 4 Operators 3 5 Common Mistakes/Misconceptions 3 6 Constants
More informationDeveloped By : Ms. K. M. Sanghavi
Developed By : Ms. K. M. Sanghavi Designing Our Own Manipulators We can design our own manipulators for certain special purpose.the general form for creating a manipulator without any arguments is: ostream
More information1 Komplexný príklad využitia OOP
1 Komplexný príklad využitia OOP Najčastejším využitím webových aplikácií je komunikácia s databázovým systémom. Komplexný príklad je preto orientovaný práve do tejto oblasti. Od verzie PHP 5 je jeho domovskou
More informationCharacters, c-strings, and the string Class. CS 1: Problem Solving & Program Design Using C++
Characters, c-strings, and the string Class CS 1: Problem Solving & Program Design Using C++ Objectives Perform character checks and conversions Knock down the C-string fundamentals Point at pointers and
More informationStrings and Stream I/O
Strings and Stream I/O C Strings In addition to the string class, C++ also supports old-style C strings In C, strings are stored as null-terminated character arrays str1 char * str1 = "What is your name?
More informationTP-LINK 150Mbps Wireless AP/Client Router Model TL-WR743ND Rýchly inštalačný sprievodca
TP-LINK 150Mbps Wireless AP/Client Router Model TL-WR743ND Rýchly inštalačný sprievodca Obsah balenia TL-WR743ND Rýchly inštalačný sprievodca PoE injektor Napájací adaptér CD Ethernet kábel Systémové požiadavky
More informationVnorené SQL. Autor prezentácie: Peter Šípoš
Vnorené SQL Autor prezentácie: Peter Šípoš Literatúra Programmatic SQL od Pearson Ed Embedded SQL: http://download.oracle. com/docs/cd/b10501_01/appdev.920/a97269/pc_06sql.htm Oracle Dynamic SQL: http://download.oracle.
More informationConvenient way to deal large quantities of data. Store data permanently (until file is deleted).
FILE HANDLING Why to use Files: Convenient way to deal large quantities of data. Store data permanently (until file is deleted). Avoid typing data into program multiple times. Share data between programs.
More informationStreams in C++ Stream concept. Reference information. Stream type declarations
Stream concept A stream represent a sequence of bytes arriving, being retrieved, being stored, or being sent, in order. A stream is continuos and offer sequential access to the data. Each byte can be read
More informationCopyright 2016 by Martin Krug. All rights reserved.
MS Managed Service Copyright 2016 by Martin Krug. All rights reserved. Reproduction, or translation of materials without the author's written permission is prohibited. No content may be reproduced without
More informationDesatinné čísla #1a. Decimal numbers #1b. How much larger is 21,8 than 1,8? Desatinné čísla #2a. Decimal numbers #2b. 14 divided by 0,5 equals...
Desatinné čísla #1a Mravec išiel 5,5 cm presne na sever, potom 3,4 cm na východ, 1,8 cm na juh, 14,3 cm na západ, 1,3 cm na sever a 10,9 cm na východ. Najmenej koľko cm musí teraz prejsť, aby sa dostal
More informationIntroduction to Algorithms and Data Structures. Lecture 6 - Stringing Along - Character and String Manipulation
Introduction to Algorithms and Data Structures Lecture 6 - Stringing Along - Character and String Manipulation What are Strings? Character data is stored as a numeric code that represents that particular
More informationJazyk SQL. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c)
Jazyk SQL Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c) 2011-2016 Jazyk SQL - Structured Query Language SQL je počítačový jazyk určený na komunikáciu s relačným SRBD neprocedurálny (deklaratívny) jazyk
More informationTestovanie bieleho šumu
Beáta Stehlíková FMFI UK Bratislava Opakovanie z prednášky Vygenerujeme dáta Vygenerujeme dáta: N
More informationChapter 8 File Processing
Chapter 8 File Processing Outline 1 Introduction 2 The Data Hierarchy 3 Files and Streams 4 Creating a Sequential Access File 5 Reading Data from a Sequential Access File 6 Updating Sequential Access Files
More informationCours de C++ Introduction
Cours de C++ Introduction Cécile Braunstein cecile.braunstein@lip6.fr Cours de C++ 1 / 20 Généralité Notes Interros cours 1/3 Contrôle TP 1/3 Mini-projet 1/3 Bonus (Note de Participation) jusqu à 2 points
More informationI/O Streams and Standard I/O Devices (cont d.)
Chapter 3: Input/Output Objectives In this chapter, you will: Learn what a stream is and examine input and output streams Explore how to read data from the standard input device Learn how to use predefined
More informationC++ Programming Lecture 10 File Processing
C++ Programming Lecture 10 File Processing By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department Outline Introduction. The Data Hierarchy. Files and Streams. Creating a Sequential
More informationObject Oriented Programming In C++
C++ Question Bank Page 1 Object Oriented Programming In C++ 1741059 to 1741065 Group F Date: 31 August, 2018 CIA 3 1. Briefly describe the various forms of get() function supported by the input stream.
More informationSummary of basic C++-commands
Summary of basic C++-commands K. Vollmayr-Lee, O. Ippisch April 13, 2010 1 Compiling To compile a C++-program, you can use either g++ or c++. g++ -o executable_filename.out sourcefilename.cc c++ -o executable_filename.out
More informationAdvanced I/O Concepts
Advanced Object Oriented Programming Advanced I/O Concepts Seokhee Jeon Department of Computer Engineering Kyung Hee University jeon@khu.ac.kr 1 1 Streams Diversity of input sources or output destinations
More informationBETA BASIC 3.0 (C) Betasoft 1985, 92 Oxford Road, Masley, Birmingham
BETA BASIC 3.0 (C) Betasoft 1985, 92 Oxford Road, Masley, Birmingham PREHĽAD...2 PRÍKAZY:...2 FUNKCIE:...3 ÚVOD...4 EDITÁCIA...4 PROCEDÚRY A PARAMETRE...5 Referencie, alebo odovzdávanie parametra adresou:...7
More informationUnit-V File operations
Unit-V File operations What is stream? C++ IO are based on streams, which are sequence of bytes flowing in and out of the programs. A C++ stream is a flow of data into or out of a program, such as the
More informationRandom File Access. 1. Random File Access
Random File Access 1. Random File Access In sequential file access, the file is read or written sequentially from the beginning. In random file access, you can skip around to various points in the file
More informationCS31 Discussion 1E. Jie(Jay) Wang Week3 Oct.12
CS31 Discussion 1E Jie(Jay) Wang Week3 Oct.12 Outline Problems from Project 1 Review of lecture String, char, stream If-else statements Switch statements loops Programming challenge Problems from Project
More information1- Write a single C++ statement that: A. Calculates the sum of the two integrates 11 and 12 and outputs the sum to the consol.
1- Write a single C++ statement that: A. Calculates the sum of the two integrates 11 and 12 and outputs the sum to the consol. B. Outputs to the console a floating point number f1 in scientific format
More informationChapter Overview. I/O Streams as an Introduction to Objects and Classes. I/O Streams. Streams and Basic File I/O. Objects
Chapter 6 I/O Streams as an Introduction to Objects and Classes Overview 6.1 Streams and Basic File I/O 6.2 Tools for Stream I/O 6.3 Character I/O Copyright 2008 Pearson Addison-Wesley. All rights reserved.
More informationc++ keywords: ( all lowercase ) Note: cin and cout are NOT keywords.
Chapter 1 File Extensions: Source code (cpp), Object code (obj), and Executable code (exe). Preprocessor processes directives and produces modified source Compiler takes modified source and produces object
More informationfor (int i = 1; i <= 3; i++) { do { cout << "Enter a positive integer: "; cin >> n;
// Workshop 1 #include using namespace std; int main () int n, k; int sumdigits; for (int i = 1; i n; cin.clear (); cin.ignore (100,
More informationThe C++ Language. Output. Input and Output. Another type supplied by C++ Very complex, made up of several simple types.
The C++ Language Input and Output Output! Output is information generated by a program.! Frequently sent the screen or a file.! An output stream is used to send information. Another type supplied by C++
More informationChapter 6. I/O Streams as an Introduction to Objects and Classes. Copyright 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Chapter 6 I/O Streams as an Introduction to Objects and Classes Overview 6.1 Streams and Basic File I/O 6.2 Tools for Stream I/O 6.3 Character I/O Slide 6-3 6.1 Streams and Basic File I/O I/O Streams I/O
More informationThis chapter introduces the notion of namespace. We also describe how to manage input and output with C++ commands via the terminal or files.
C++ PROGRAMMING LANGUAGE: NAMESPACE AND MANGEMENT OF INPUT/OUTPUT WITH C++. CAAM 519, CHAPTER 15 This chapter introduces the notion of namespace. We also describe how to manage input and output with C++
More informationSpôsoby zistenia ID KEP
Spôsoby zistenia ID KEP ID KEP (kvalifikovaný elektronický podpis) je možné zistiť pomocou napr. ovládacieho panela, prostredíctvom prehliadača Internet Expolrer, Google Chrome alebo Mozilla Firefox. Popstup
More informationC++ Binary File I/O. C++ file input and output are typically achieved by using an object of one of the following classes:
C++ Binary File I/O C++ file input and output are typically achieved by using an object of one of the following classes: ifstream for reading input only. ofstream for writing output only. fstream for reading
More informationTYPY, KONŠTANTY, PROCEDÚRY A FUNKCIE PRE PRÁCU S POĽOM
TYPY, KONŠTANTY, PROCEDÚRY A FUNKCIE PRE PRÁCU S POĽOM Doposiaľ sme si ukázali základné štruktúry a jednotky jazyka. Pracovali sme s premennými rôznych typov ako aj s konštantnými hodnotami. Používali
More informationInput and Output File (Files and Stream )
Input and Output File (Files and Stream ) BITE 1513 Computer Game Programming Week 14 Scope Describe the fundamentals of input & output files. Use data files for input & output purposes. Files Normally,
More informationDue Date: See Blackboard
Source File: ~/2305/lab33.C Input: under control of main function Output: under control of main function Value: 3 The Shell sort, named after its inventor Donald Shell, provides a simple and efficient
More informationTriedy v C++ 1. Úvod do tried
1. Úvod do tried Používanie nového dátového typu ktorý budeme oht class trieda nás dovedie k využívaniu objektových vlastností jazyka C++. Tento nový typ programov OOP objektovo orientované programovanie
More informationStrings and Streams. Professor Hugh C. Lauer CS-2303, System Programming Concepts
Strings and Streams Professor Hugh C. Lauer CS-2303, System Programming Concepts (Slides include materials from The C Programming Language, 2 nd edition, by Kernighan and Ritchie, Absolute C++, by Walter
More informationUEE1303(1070) S 12 Object-Oriented Programming in C++
Computational Intelligence on Automation Lab @ NCTU Learning Objectives UEE1303(1070) S 12 Object-Oriented Programming in C++ Lecture 06: Streams and File Input/Output I/O stream istream and ostream member
More informationFundamentals of Programming Session 27
Fundamentals of Programming Session 27 Instructor: Reza Entezari-Maleki Email: entezari@ce.sharif.edu 1 Fall 2013 These slides have been created using Deitel s slides Sharif University of Technology Outlines
More informationBITG 1113: Files and Stream LECTURE 10
BITG 1113: Files and Stream LECTURE 10 1 LEARNING OUTCOMES At the end of this lecture, you should be able to: 1. Describe the fundamentals of input & output files. 2. Use data files for input & output
More informationobsahuje 5 príkladov, spolu 29>25 bodov skupina:
Midterm 2013, verzia A Meno a priezvisko: obsahuje 5 príkladov, spolu 29>25 bodov skupina: 1A) [8 bodov] Zistite, čo počíta nasledujúca rekurzívna funkcia foo pre n>=0. Hint: foo(2013) = 6. static long
More informationChapter 10 - Notes Applications of Arrays
Chapter - Notes Applications of Arrays I. List Processing A. Definition: List - A set of values of the same data type. B. Lists and Arrays 1. A convenient way to store a list is in an array, probably a
More informationREPORT DESIGNER 1 VYTVORENIE A ÚPRAVA FORMULÁRA. úprava formulárov v Money S4 / Money S Vytvorenie formulára
REPORT DESIGNER úprava formulárov v Money S4 / Money S5 Informačný systém Money S4/S5 umožňuje upraviť tlačové zostavy tak, aby plne vyhovovali potrebám používateľa. Na úpravu tlačových zostáv slúži doplnkový
More informationCS2141 Software Development using C/C++ Stream I/O
CS2141 Software Development using C/C++ Stream I/O iostream Two libraries can be used for input and output: stdio and iostream The iostream library is newer and better: It is object oriented It can make
More informationWriting a Good Program. 7. Stream I/O
Writing a Good Program 1 Input and Output I/O implementation is hardware dependent C++ does not, as a part of the language, define how data are sent out and read into the program The input and output (I/O)
More information6. Riadenie chodu programu
6. Riadenie chodu programu 6.1. Výrazový príkaz 6.2. Prázdny príkaz 6.3. Bloky. 6.4. Oblasť platnosti identifikátora 6.5. Podmienený príkaz if-else. 6.6. Prepínač 6.7. Cykly Cyklus while Cyklus for Cyklus
More informationWhat we will learn about this week:
What we will learn about this week: Streams Basic file I/O Tools for Stream I/O Manipulators Character I/O Get and Put EOF function Pre-defined character functions Objects 1 I/O Streams as an Introduction
More informationC++ does not, as a part of the language, define how data are sent out and read into the program
Input and Output C++ does not, as a part of the language, define how data are sent out and read into the program I/O implementation is hardware dependent The input and output (I/O) are handled by the standard
More informationLab Instructor : Jean Lai
Lab Instructor : Jean Lai Group related statements to perform a specific task. Structure the program (No duplicate codes!) Must be declared before used. Can be invoked (called) as any number of times.
More informationSoftware Design & Programming I
Software Design & Programming I Starting Out with C++ (From Control Structures through Objects) 7th Edition Written by: Tony Gaddis Pearson - Addison Wesley ISBN: 13-978-0-132-57625-3 Chapter 3 Introduction
More information7. UKAZOVATELE, POLIA A REŤAZCE
7. UKAZOVATELE, POLIA A REŤAZCE 7.1. Ukazovatele 7.2. Pole 7.3. Aritmetika ukazovateľov 7.4. Reťazce 7.5. Viacrozmerné pole, ukazovateľ na ukazovateľ 7.6. Ukazovateľ na ukazovateľ a pole ukazateľov 7.7.
More informationAdvanced File Operations. Review of Files. Declaration Opening Using Closing. CS SJAllan Chapter 12 2
Chapter 12 Advanced File Operations Review of Files Declaration Opening Using Closing CS 1410 - SJAllan Chapter 12 2 1 Testing for Open Errors To see if the file is opened correctly, test as follows: in.open("cust.dat");
More informationAnycast. Ľubor Jurena CEO Michal Kolárik System Administrator
Anycast Ľubor Jurena CEO jurena@skhosting.eu Michal Kolárik System Administrator kolarik@skhosting.eu O nás Registrátor Webhosting Serverové riešenia Správa infraštruktúry Všetko sa dá :-) Index Čo je
More information2. Týždeň MySQL - dátové typy a funkcie num. a reťazcové
2. Týždeň MySQL - dátové typy a funkcie num. a reťazcové 1. Prvky jazyka MySQL http://dev.mysql.com/doc/refman/5.7/en/language-structure.html 2. Typy a pretypovanie http://dev.mysql.com/doc/refman/5.7/en/data-types.html
More information#include <iostream> #include <algorithm> #include <cmath> using namespace std; int f1(int x, int y) { return (double)(x/y); }
1. (9 pts) Show what will be output by the cout s in this program. As in normal program execution, any update to a variable should affect the next statement. (Note: boolalpha simply causes Booleans to
More informationObrázok č. 1 Byte. Obrázok č. 2 Slovo
C++ pod lupou Nie som ortodoxným prívržencom nijakého dnes používaného jazyka, poznám ich už riadnu kôpku, ale najbližšie mám práve k C++. Prečo, o tom by sa dalo diskutovať donekonečna, nie je to však
More informationSystem Design and Programming II
System Design and Programming II CSCI 194 Section 01 CRN: 10968 Fall 2017 David L. Sylvester, Sr., Assistant Professor Chapter 10 Characters, Strings, and the string Class Character Testing The C++ library
More informationDue Date: See Blackboard
Source File: ~/2315/38/lab38.(C CPP cpp c++ cc cxx cp) Input: under control of main function Output: under control of main function Value: 3 A bucket sort begins with a one-dimensional array of positive
More informationMultiple Choice (Questions 1 14) 28 Points Select all correct answers (multiple correct answers are possible)
Name Closed notes, book and neighbor. If you have any questions ask them. Notes: Segment of code necessary C++ statements to perform the action described not a complete program Program a complete C++ program
More informationXHTML1folie.doc XHTML Čo bolo predtým?
XHTML1folie.doc 1 1.1 XHTML 1.1.1 Čo bolo predtým? XHTML - nová definícia jazyka HTML vo forme XML. Vývoj HTML: r. 1995 HTML 2.0 (základné formátovanie a štruktúrovanie, obrázky, formuláre). V r. 1995
More informationAplikačný dizajn manuál
Aplikačný dizajn manuál Úvod Aplikačný dizajn manuál je súbor pravidiel vizuálnej komunikácie. Dodržiavaním jednotných štandardov, aplikácií loga, písma a farieb pri prezentácii sa vytvára jednotný dizajn,
More informationMikroprocesor. Mikroprocesor. Program. Federico Faggin, tvorca prvého mikroprocesora i4004
Mikroprocesor Federico Faggin, tvorca prvého mikroprocesora i4004 Mikroprocesor Program 1. Choď z D-110 do D0A1 2. Presuň obsah z adresy 33 do košíka 3. Prines obsah košíka do D-110 4. Spracuj obsah 5.
More informationC++ for Python Programmers
C++ for Python Programmers Adapted from a document by Rich Enbody & Bill Punch of Michigan State University Purpose of this document This document is a brief introduction to C++ for Python programmers
More informationDue Date: See Blackboard
Source File: ~/2336/43/lab43.(C CPP cpp c++ cc cxx cp) Input: under control of main function Output: under control of main function Value: 2 The purpose of this assignment is to modify Lab 38. Instead
More informationCSc Introduc/on to Compu/ng. Lecture 19 Edgardo Molina Fall 2011 City College of New York
CSc 10200 Introduc/on to Compu/ng Lecture 19 Edgardo Molina Fall 2011 City College of New York 18 Standard Device Files Logical file object: Stream that connects a file of logically related data to a program
More informationThe cin Object. cout << "Enter the length and the width of the rectangle? "; cin >> length >> width;
The cin Object Short for console input. It is used to read data typed at the keyboard. Must include the iostream library. When this instruction is executed, it waits for the user to type, it reads the
More informationDefinition Matching (10 Points)
Name SOLUTION Closed notes and book. If you have any questions ask them. Write clearly and make sure the case of a letter is clear (where applicable) since C++ is case sensitive. There are no syntax errors
More informationMultiple Choice (Questions 1 13) 26 Points Select all correct answers (multiple correct answers are possible)
Name Closed notes, book and neighbor. If you have any questions ask them. Notes: Segment of code necessary C++ statements to perform the action described not a complete program Program a complete C++ program
More informationName Section: M/W T/TH Number Definition Matching (8 Points)
Name Section: M/W T/TH Number Definition Matching (8 Points) 1. (8 pts) Match the words with their definitions. Choose the best definition for each word. Iteration Counter Event Counter Loop Abstract Step
More informationUNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY
UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY Diagramatická konverzia súborov 2014 János Farkas UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFOMATIKY
More informationAgenda. The main body and cout. Fundamental data types. Declarations and definitions. Control structures
The main body and cout Agenda 1 Fundamental data types Declarations and definitions Control structures References, pass-by-value vs pass-by-references The main body and cout 2 C++ IS AN OO EXTENSION OF
More informationI BSc(IT) [ Batch] Semester II Core: Object Oriented Programming With C plus plus - 212A Multiple Choice Questions.
Dr.G.R.Damodaran College of Science (Autonomous, affiliated to the Bharathiar University, recognized by the UGC)Reaccredited at the 'A' Grade Level by the NAAC and ISO 9001:2008 Certified CRISL rated 'A'
More informationFormatting outputs String data type Interactive inputs File manipulators. Access to a library that defines 3. instead, a library provides input
Input and Output Outline Formatting outputs String data type Interactive inputs File manipulators CS 1410 Comp Sci with C++ Input and Output 1 CS 1410 Comp Sci with C++ Input and Output 2 No I/O is built
More informationIntroduction to C++ Professor Hugh C. Lauer CS-2303, System Programming Concepts
Introduction to C++ Professor Hugh C. Lauer CS-2303, System Programming Concepts (Slides include materials from The C Programming Language, 2 nd edition, by Kernighan and Ritchie, Absolute C++, by Walter
More informationCISC 1110 (CIS 1.5) Introduc2on to Programming Using C++
CISC 1110 (CIS 1.5) Introduc2on to Programming Using C++ Spring 2012 Instructor : K. Auyeung Email Address: Course Page: Class Hours: kenny@sci.brooklyn.cuny.edu hbp://www.sci.brooklyn.cuny.edu/~kenny/cisc1110
More informationIn this chapter, you will learn about: An Array Type for Strings. The Standard string Class. Vectors. Introduction Computer Science 1 CS 23021
Chapter 8 In this chapter, you will learn about: An Array Type for Strings The Standard string Class Vectors The C Language Representation of Strings (C-Strings) The C-String Variable: Array of Characters
More informationType Aliases. Examples: using newtype = existingtype; // C++11 typedef existingtype newtype; // equivalent, still works
Type Aliases A name may be defined as a synonym for an existing type name. Traditionally, typedef is used for this purpose. In the new standard, an alias declaration can also be used C++11.Thetwoformsareequivalent.
More informationJavascript Manuál. Drgo Pavel SOŠ
2016 Javascript Manuál Drgo Pavel SOŠ 24.7.2016 OBSAH JavaScript návod 01 Úvod do JavaScriptu...3 JavaScript návod 02 Kam s ním...5 JavaScript návod 03 Premenné úvod...9 JavaScript návod 04 Premenné typy...11
More informationRýchlosť Mbit/s (download/upload) 15 Mbit / 1 Mbit. 50 Mbit / 8 Mbit. 80 Mbit / 10 Mbit. 10 Mbit / 1 Mbit. 12 Mbit / 2 Mbit.
Fiber 5 Mbit ** 5 Mbit / Mbit 5,90 Fiber 50 Mbit * 50 Mbit / 8 Mbit 9,90 Fiber 80 Mbit * 80 Mbit / Mbit 5,90 Mini Mbit* Mbit / Mbit 9,90 Klasik 2 Mbit* 2 Mbit / 2 Mbit Standard 8 Mbit* 8 Mbit / 3Mbit Expert
More informationProgramming in C/C
Programming in C/C++ 2004-2005 http://cs.vu.nl/~nsilvis/c++/2005 Natalia Silvis-Cividjian e-mail: nsilvis@few.vu.nl Topics about C++ language about this course C++ basics self test exercises (10 min) (10
More informationA SHORT COURSE ON C++
Introduction to A SHORT COURSE ON School of Mathematics Semester 1 2008 Introduction to OUTLINE 1 INTRODUCTION TO 2 FLOW CONTROL AND FUNCTIONS If Else Looping Functions Cmath Library Prototyping Introduction
More information2. prednáška ( )
2. prednáška (24.9.2018) č 1 Na predošlej prednáške (1) Vytvorenie objektu triedy a premennej (napr. franklin), cez ktorú s vytvoreným objektom komunikujeme: Turtle franklin = new Turtle(); Volanie metód
More information