headerphoto

Podmíněný příkaz

Podmíněný příkaz slouží k větvení programu. Umožňuje vykonávat příkazy jen když platí určitá podmínka.

Obecný popis (syntaxe) příkazu if:

if (log_vyraz) prikaz1 else prikaz2

V závorce za klíčovým slovem je logický výraz. Jde často o běžnou podmínku, kde výsledek je platí/neplatí nebo pravda/nepravda. Celá část příkazu od klíčového slova else je nepovinná, nemusí být tedy uvedena.

Poznámky ke zpracování příkazu if:

  • nejdříve se vyhodnotí logický výraz
  • když je výsledek "pravda", vykoná se prikaz1
  • když je výsledek "nepravda", vykoná se příkaz2, uvedený za else (pokud je v příkazu použito)
  • místo jednoduchých příkazů prikaz1 a prikaz2 můžeme použít blok příkazů (posloupnost příkazů uzavřena ve složených závorkách)
  • na místě příkazů prikaz1, prikaz2 může být uveden jakýkoliv příkaz, tedy i příkaz if. Příkazy if můžeme do sebe vnořovat
  • při sestavování podmínky je potřebné seznámit se s logickými operátory. Je vhodné znát pravidla pro vyhodnocování logických výrazů v jazyce C.

/*
 * Program urci, zda zadane cislo je sude nebo liche
 * 
 */
  
    #include <stdio.h> 
    #include <stdlib.h> 
                   
    int main()
    {       
      int cislo;

      printf("Zadejte cislo : "); 
      scanf("%d", &cislo);

      if (cislo%2 == 0)         //kdyz zbytek po deleni 2 je 0
      { 
         printf("\nCislo %d je sude\n",cislo);
       }   
      else
      { 
         printf("\nCislo %d je liche\n",cislo);
       }  

      system("pause");
      return 0;
}

Dále uvedeme příklad pro řešení kvadratické rovnice ve tvaru ax + bx + c = 0, kde a,b,c jsou reálná čísla, číslo a nesmí být nulové. Postup řešení znáte z matematiky. V programu je použitý příkaz if bez části else.

  #include <stdio.h>  
  #include <math.h> 
  #include <stdlib.h> 
  
  int main()
   {
     float a,b,c,D,x1,x2;
   
     printf("\nZadejte koeficienty kvadraticke rovnice\n ");
     printf("\ta : ");
     scanf("%f",&a);
     printf("\tb : ");
     scanf("%f",&b);
     printf("\tc : ");
     scanf("%f",&c);
     getchar();

     if (a == 0)
      {
        printf("Nejedna se o kvadratickou rovnici");
        system("pause");
        return 0;
      }

     D = b*b-4*a*c;
     if (D == 0) printf("\nRovnice ma jeden koren x = %.2f", -b/(2*a));
     if (D > 0)   
     {
        x1 = (-b+sqrt(D))/(2*a);
        x2 = (-b-sqrt(D))/(2*a);
        printf("\nRovnice ma dva koreny : x1 = %.2f, x2 = %.2f", x1, x2);
     }
     if (D < 0)     
     {
        printf("\nRovnici nelze resit v oboru realnych cisel");
     }
     system("pause");
     return 0;
  }

Design downloaded from Free Templates - your source for free web templates