C++ – prefixy, postfixy a cykly
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

C++ – prefixy, postfixy a cyklyC++ – prefixy, postfixy a cykly

 

C++ – prefixy, postfixy a cykly

Google       Google       1. 7. 2007       18 655×

Tento kurz troška pozmením. Nebudem používať žiadne vývojové prostredie a nechám to na vás.

Reklama
Reklama

1. Prefix a Postfix

Asi Vám tieto slová na prvýkrát nič nehovoria. Ale je to veľmi známa inkrementácia a dekrementácia, pred alebo po použití, nebudem to tu preberať dopodrobna. Urobíme si príklad a na ňom si to všetko vysvetlíme:

//Demonstracia prefix a postfix
#include <iostream>
int main() {
    using namespace std;
    
    int pomocna1 = 3; //vytvorime si nejake premenne
    int pomocna2 = 5;
    
    cout << "Prva je " << pomocna1 << " \n" ;
    cout << "Druha je " << pomocna2 << " \n" ;
    pomocna1++;
    ++pomocna2;
    cout << "Cele sme to zinkrementovali.... :-D \n";
    cout << "Prva je " << pomocna1 << " \n" ;
    cout << "Druha je " << pomocna2 << " \n" ;
    cout << "Cele sme to zinkrementovali.... :-D (zasa)\n";
    cout << "Prva je " << pomocna1++ << " \n" ;
    cout << "Druha je " << ++pomocna2 << " \n" ;
    cout << "Este raz.... :-) (tisk) \n";
    cout << "Prva je " << pomocna1 << " \n" ;
    cout << "Druha je " << pomocna2 << " \n" ;
    cout << "Pozrieme sa na dekrementaciu \n" << "Cize si vynulojeme pomocne premenne. \n";
    pomocna1 = 3;
    pomocna2 = 5;
    pomocna1--;
    --pomocna2;
    cout << "Cele sme to zinkrementovali.... :-D \n";
    cout << "Prva je " << pomocna1 << " \n" ;
    cout << "Druha je " << pomocna2 << " \n" ;
    cout << "Cele sme to zinkrementovali.... :-D (zasa)\n";
    cout << "Prva je " << pomocna1-- << " \n" ;
    cout << "Druha je " << --pomocna2 << " \n" ;
    cout << "Este raz.... :-) (tisk) \n";
    cout << "Prva je " << pomocna1 << " \n" ;
    cout << "Druha je " << pomocna2 << " \n" ;
    return 0;
}

No, tak keď sa pozrieme, ako sa chová, najprv sme si premenne inicializovali. Prvom výpise nám ich iba vypíše, potom sme použili prefix a postfix, ako vidíte tu sa ich rozdielne chovanie neprejavilo. Tak som to použil priamo vo vypíše a výsledok je taký, že prefix sa prejavil už hneď pri výpise a postfix až po výpise. Dúfam, že je to každému jasné. Možno si myslite, že to nemá žiaden význam ale uvidíte, v neskoršom štúdiu, ako sa to dá pekne využiť. A dekrementáciu som tu uviedol iba pre kontrolu, aby ste videli, že to funguje tiež. ;-)

2. Príkaz IF a Switch

Ideme ďalej, zoberme si základné podmienkové funkcie. Ako ste si mohli všimnúť, že ak je splnená určitá podmienka vykoná sa istý príkaz, funkcia a podobne. Vyjadrime si tu najprv ako vyzerajú a potom krátky kúsok kódu na pochopenie:-).

Syntax: Podoba 1:

if(vyraz) prikaz; dalsi prikaz;
› Ak je výraz vyhodnotený ako pravdivý, vykoná sa príkaz a program vykonáva ďalšie príkazy, ale ak nie, tak sa príkaz preskočí a vykonávajú sa ďalšie príkazy. Podoba 2:
if(vyraz) prikaz1; else prikaz2; dalsi prikaz;
› V tomto prípade, aj keď výraz nepravdivý, tak sa vykoná príkaz po ELSE a pokračuje sa ďalej.

Jednoduchý príklad:

if(vyraz){
   if(vyraz2) 
       prikaz1;
   else 
   {
        if(vyraz3)
           prikaz2;
        else
           prikaz3;
   }
}
else
   prikaz4;

Switch:

switch(vyraz)
{
  case prvaHodnota:  prikaz1;
        break;
  case druhaHodnota: prikaz2;
        break;
  ....
  case poslednaHodnota: prikazN;
        break;
  default : prikaz;
}
Vidíme, že switch nám dovoľuje vetvenie podľa rôznych hodnôt výrazu, čiže ak sa výraz bude rovnať nejakej hodnote, vykoná sa príslušný príkaz a pre všetky ostatné hodnoty sa priradí k výrazu DEFAULT a prevedie sa pridelený príkaz. Za každým príkazom musí nasledovať BREAK, inak by sa vykonali všetky príkazy, ktoré by boli nižšie ako správny výraz. Vysvetlime si ho neskôr.

Spojíme použitie príkazov if a switch v jednom príklade:

//Demonstracia IF a SWITCH
#include <iostream>
using namespace std;

int main() {
    int x; //Nasa pomocna
    cout << "Zadajte cislo menisie 10 alebo vacsie 100: \n";
    cin >> x ;
    cout << "\n";
    if (x >= 10) {
          if (x > 100) {
                cout << "Dakujem (nad 100)\n";
          }
          else {
               cout << "Ste mimo!! \n";
               }
    }
    else
    {
        cout << "Dakujem (pod 10) \n";
    }
    cout << "Zadali ste cislo " << x << "\n";
    
    cout << "Zadajte cislo a skuste sa trafit : \n";
    cin >> x ;
    
    switch(x) {
              case 15: cout << "Napisali ste 15 \n";
                   break;
              case 24: cout << "Napisali ste 24 \n";
                   break;
              case 1034: cout << "Napisali ste 1034 \n";
                   break;
              case 199: cout << "Napisali ste 199 \n";
                   break;
              default : cout << "Ste uplne mimo :-D \n";
    }
    return 0;
}

Tak a ideme si to prejsť. ;-) Ako vidíme, if iba čaká či bude výraz spĺňať podmienku, ak ju splní, tak sa prevedie príkaz. Ak používate rovnakú premennú a budete chcieť použiť 3 a viac ifov, tak odporúčam použiť príkaz switch, no je určený aby nám pomohol a sprehľadnil kód. Čiže switch sa skladá z výrazu, ktorý porovnávame zo stavmi, ktoré sú v CASE, ak sa zhodujú, prevedie sa výraz, ktorý mu je pridelený. Spomínaný break je vlastne prerušenie, ktoré preruší celý switch, nebudem ho teraz rozoberať na to si nechám ďalšie diely kurzu, to len aby ste vedeli, že ak ho tam nedáte, prevedú sa všetky príkazy od toho správneho. Príkaz DEFAULT funguje ako else, pri if je na všetky ostatné hodnoty, po ňom už nemusí nasledovať break.

3. Na záver zhrnutie a nejaká tá úloha…

Prešli sme základné príkazy v rámci podmienok. Je to rýchle preletenie a keď vám niečo nebude jasné, môžete sa na mňa obrátiť, buď mailom alebo na ICQ. Ale buďte ohľaduplní a posielajte mi, keď tak kód, ktorý nefunguje než otázky typu: „Ako sa to robí?“. Ďakujem a rýchlo k úlohe. Bude mať dve časti, prvá bude analýza kódu (Čo je výstup alebo je tam chyba? Ak áno, kde?) a druhá napísanie vlastného kódu.

1.Kod:
//Demonstracia IF a SWITCH
#include <iostream>
using namespace std;

int main() {
    int x; //Nasa pomocna
    cout << "Zadajte cislo menisie 10 alebo vacsie 100: \n";
    cin >> x ;
    cout << "\n";
    if (x >= 10) {
          if (x > 100) {
                cout << "Dakujem (nad 100)\n";
          }
          else {
               cout << "Ste mimo!! \n";
               }
    }
    else
    {
        cout << "Dakujem (pod 10) \n";
    }
    cout << "Zadali ste cislo " << x << "\n";
    
    cout << "Zadajte cislo a skuste sa trafit : \n";
    cin >> x ;
    
    switch(x) {
              case 15: cout << "Napisali ste 15 \n";
                   break;
              case 24: cout << "Napisali ste 24 \n";
                   break;
              case 1034: cout << "Napisali ste 1034 \n";
                   break;
              case 199: cout << "Napisali ste 199 \n";
                   break;
              default : cout << "Ste uplne mimo :-D \n";
    }
    return 0;
}
› Napíšte program, kde využijete 5 × if, vnoríte ich do seba a na tieto if využijete switch a vysvetlíte prečo je lepšie ho používať.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

4 názory  —  4 nové  
Hlasování bylo ukončeno    
0 hlasů
Google
Autor rád robi vsetko co ho napadne vramci IT.

Nové články

Obrázek ke článku RAD Studio a Windows Store

RAD Studio a Windows Store

RAD Studio je první vývojové prostředí se zabudovanou podporou balení aplikací typu Win32 a Win64 pro jejich umístění a šíření prostřednictvím Windows 10 Store.

Reklama
Reklama
Obrázek ke článku Testujte na 2 400+ Android a iOS zařízení

Testujte na 2 400+ Android a iOS zařízení

V dnešní době, kdy většina softwaru pro mobilní aplikace je tvořena a distribuována průběžně, mnohdy do celého světa je třeba zajistit také průběžnou automatizaci testování mobilního softwaru. V případě mobilních aplikací pro Android a iOS začíná být problém, jak testovat na obrovském množství kombinací HW variant, rozměrů, edic operačních systémů různých výrobců v různých částech světa na reálných zařízení. Simulátory a emulátory nejsou většinou to pravé. Pokud již testuji, jak si udělat vlastní beta distribuci opravdovým reálným testerům napříč platformami?

Obrázek ke článku Funkcie main vo Windows API

Funkcie main vo Windows API

V tretej časti seriálu o Windows API budeme hovoriť o funkčných prototypoch main. Funkčný prototyp je tvorený názvom funkcie a typom signatúry, pričom sa vynecháva telo funkcie. 

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032017 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý