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

 
Hledat
Moderní platforma pro vytvoření vašeho nového webu – Wix.com.
Nyní už můžete mít web zdarma.
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno

C++ – prefixy, postfixy a cykly

Google       Google       1. 7. 2007       19 815×

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 SODAT vidí budoucnost datové bezpečnosti ve strojovém učení

SODAT vidí budoucnost datové bezpečnosti ve strojovém učení

Firmy chrání svá citlivá data často nedostatečně. Podle průzkumu společnosti SODAT se v minulém roce setkalo až 80 % z nich s bezpečnostním incidentem ztráty nebo úniku dat. Jedna z pilotních firem, která testovala novou verzi řešení SODAT Protection & Analytics 2.0pro bezpečností analýzu a monitoring dat díky novince zjistila, kdo z disku smazal důležité výkresy a mohla na incident včas reagovat.

Reklama
Reklama
Obrázek ke článku Kontrolujete pracovní emaily i na dovolené? 7 tipů odborníka, jak nepřijít o data

Kontrolujete pracovní emaily i na dovolené? 7 tipů odborníka, jak nepřijít o data

Letní měsíce jsou pro většinu zaměstnanců spojené s každoroční dovolenou. Z údajů Českého statistického úřadu vyplývá, že v roce 2017 podnikli Češi přes 13 milionů delších cest (tzn. s více než čtyřmi noclehy). Přitom právě na období července, srpna a září připadá více než 7,5 milionů z nich. Nicméně tradiční představu o dovolené jako o čase, kdy má práci na starost někdo jiný, Češi boří. 

Obrázek ke článku 10 SEO mýtů, které už nemusíte v roce 2018 řešit

10 SEO mýtů, které už nemusíte v roce 2018 řešit

„Kolik má být na stránce klíčových slov?“, „Nemáš vyplněný meta tag keywords, to nebude fungovat.“, „Katalogy jsou mrtvý“. Také jste už slyšeli některé z těchto otázek? Pojďme si na ně konečně jednou provždy odpovědět.

Obrázek ke článku Trend Micro pomohlo usvědčit viníky v mezinárodním případu Scan4You

Trend Micro pomohlo usvědčit viníky v mezinárodním případu Scan4You

Společnost Trend Micro Incorporated, globální lídr v oblasti kybernetické bezpečnosti, oznámila podrobnosti o své úzké spolupráci s FBI v případu Scan4You. Trend Micro se podílelo na identifikaci osob, které byly spojeny se službou Scan4You Counter Antivirus, což vedlo k jejich odsouzení.

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