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

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

 

C++ – prefixy, postfixy a cykly

Google       Google       1. 7. 2007       18 401×

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 Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres HCPP16 pořádá od 30. září do 2. října nezisková organizace Paralelní Polis již potřetí, a to ve stejnojmenném bitcoinovém prostoru v pražských Holešovicích. Letos přiveze na třídenní konferenci přes 40 většinou zahraničních speakerů – lídrů z oblastí technologií, decentralizované ekonomiky, politických umění a aktivismu. Náměty jejich přednášek budou také hacking, kryptoměny, věda, svoboda nebo kryptoanarchie.

Reklama
Reklama
Obrázek ke článku ICT PRO školení zaměřené nejenom na ICT

ICT PRO školení zaměřené nejenom na ICT

Dovolte, abychom se představili. Jsme zaměstnanci společnosti ICT Pro, profesionálové v oblasti poskytování komplexních ICT služeb. Neboli služeb spojených s informačními a komunikačními technologiemi, které dnes - ve 21. století - tvoří  nedílnou součást běžného provozu všech moderních firem.

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 © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý