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

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

 

C++ – prefixy, postfixy a cykly

Google       Google       1. 7. 2007       22 359×

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

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 Stavebnice umělé inteligence 1

Stavebnice umělé inteligence 1

Článek popisuje první část stavebnice umělé inteligence. Obsahuje lineární a plošnou optimalizaci.  Demo verzi je možné použít pro výuku i zájmovou činnost. Profesionální verze je určena pro vývojáře, kteří chtějí integrovat popsané moduly do svých systémů.

Obrázek ke článku Hybridní inteligentní systémy 2

Hybridní inteligentní systémy 2

V technické praxi využíváme často kombinaci různých disciplín umělé inteligence a klasických výpočtů. Takovým systémům říkáme hybridní systémy. V tomto článku se zmíním o určitém typu hybridního systému, který je užitečný ve velmi složitých výrobních procesech.

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý