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

 
Hledat
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno
Laser Game Ostrava

C++ – prefixy, postfixy a cykly

Google       Google       1. 7. 2007       20 828×

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 Konference: Moderní informační systémy podporují automatizaci

Konference: Moderní informační systémy podporují automatizaci

Současná situace v šíření onemocnění Covid-19 klade na řadu firem nové nároky a mnohé z nich jsou nyní více než kdy jindy závislé na nejmodernějších informačních technologiích. Proto i v oblasti podnikových informačních systémů vidíme rostoucí důraz na automatizaci nebo na důslednou integraci. Také o těchto trendech se bude mluvit na konferenci Firemní informační systémy, která se koná 24.9.2020 v pražském Kongresovém centru Vavruška na Karlově náměstí.

Reklama
Reklama
Obrázek ke článku Nebezpečí ukrytá v USB: z nuly na škvarek za pět sekund

Nebezpečí ukrytá v USB: z nuly na škvarek za pět sekund

Za cenu šesti dolarů lze celkem bez obtíží koupit nový, líbivě vyhlížející flash disk. Přidaná hodnota, které se vám spolu s ním dostane, už tak moc líbivá není. To, co se před pár sekundami tvářilo jako externí disk, se po připojení k počítači změní v důmyslné elektrické křeslo, které vaše zařízení v onen příslovečný škvarek promění za pár sekund. Cílovou skupinou pro koupi takových zařízení by mohli být záškodníci, kteří by tímto způsobem osnovali pomstu třeba vůči záletnému partnerovi. 

Obrázek ke článku Znalosti, dovednosti i prestižní titul MBA: Jde to i moderně a online

Znalosti, dovednosti i prestižní titul MBA: Jde to i moderně a online

Snad nikdy není špatná příležitost na investici do hodnotného vzdělání. Obzvlášť v případě, že absolvent dovede teoretické poznatky přetavit v praktické dovednosti, využitelné při řešení problémů i v komunikaci. Právě na to se specializuje studijní program MBA Řízení informačních technologií, vyučovaný na Business Institutu.

Obrázek ke článku Coding Bootcamp Praha: Obor IT krize nepoznamenala, žádaní jsou weboví vývojáři

Coding Bootcamp Praha: Obor IT krize nepoznamenala, žádaní jsou weboví vývojáři

Pandemie Covid-19 otřásla trhem práce v základech. Dopady krize pocítilo celkově až 45 % zaměstnanců. Není divu, že čím dál větší jistotu přináší obor IT. Ten zůstal krizí téměř nepoznamenán a při nutnosti začít dělat věci na dálku se ještě více ukázalo, jak moc mnohé firmy kvalitní IT potřebují. Do IT nyní přicházejí začátečníci, kteří v něm vidí lukrativní budoucnost a jistotu, ale i freelanceři a zaměstnanci z oborů zasažených krizí

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