IF

Sąlyginis sakinys IF

Sąlyginiu sakiniu keičiama nuosekli sakinių atlikimo tvarka: jei sąlyga tenkinama, atliekamas sakinys_1, jei sąlyga netenkinama, atliekamas sakinys_2.

if (sąlyga)    sakinys_1;
else sakinys_2;

Kai reikia atlikti du ir daugiau sakinių, esant sąlygai teisingai ir/arba neteisingai, tie sakiniai skliaudžiami figūriniais skliausteliais „{}“. Paprastai rekomenduojama skliaustelius naudoti bet kuriuo atveju, net jei reikia rašyti vieną sakinį.

if (sąlyga)
   {sakiniai_kai_sąlyga_teisinga;}
   else {sakiniai_jei_sąlyga_neteisinga;}

Sąlygai užrašyti gali būti naudojami šie ženklai:

 <    mažiau
 >    daugiau
 ==   lygu
 >=   daugiau arba lygu
 <=   mažiau arba lygu
 !=   nelygu

1 pavyzdys, reikia nustatyti, kuris iš dvejų skaičių yra didesnis: čia bus atliekamas sakinys po sąlygos. Ekrane matysime pranešimą didesnis 6.

Pvz.1
a = 6; b = 5;
if (a > b) cout << “didesnis “ << a; 
else  cout << “didesnis “ << b;
Pvz. 2

a = 5; b = 6;

if (a > b) 
    { 
        skirtumas = a - b;
        cout << “didesnis - mažesnis = “ << skirtumas; 
    } 
else 
    { 
        skirtumas = b - a;
        cout << “didesnis - mažesnis = “ << skirtumas; 
    }

2 pavyzdyje bus atliekamas sakinys, parašytas po žodžio else, nes sąlyga neteisinga.

Ekrane matysim pranešimą: didesnis – mažesnis = 1

PAVYZDŽIAI

1

Duoti du skaičiai a ir b. parašyti, kuris iš jų mažesnis.

#include <iostream>
using namespace std;

int a, b, mazesnis;

int main()
{
  cout << "įveskite du skačius:" << endl;
  cin >> a >> b;
  if (a < b) mazesnis = a;
  else  mazesnis = b;
  cout << "Mažesnis skaičius - " << mazesnis << endl;
  return 0;
}

2

Duoti du skaičiai. Padalinti pirmą iš antro.

Būtų paprasti veiksmai, jei antras skaičius niekada nebūtų lygus 0. Bet mes to nežinome, todėl, prieš atlikdami dalybą, turime pasitikrinti.

#include <iostream>
using namespace std;
int main()
{
  int a, b, rez;
  cout << “įveskite du skaičius: “; cin >> a >> b;
  if (b!= 0)
  {
     rez = a / b;
     cout << “ dalybos rezultatas = “ << rez;
  }
  else cout << “dalyba iš nulio negalima”;
  return 0;
}

Laikrodis rodo h valandų ir min minučių. Kokį laiką jis rodys praėjus vienai valandai?

#include <iostream>
using namespace std;
int main()
{
 int h, min;
 cout <<"Laikrodis rodo:" << endl;
 cout <<"Valanda: "; cin >> h;
 cout <<"Minutės: "; cin >> min;
 cout << endl;
 h = h + 1; //praėjus 1 valandai
 if (h == 24) h = 0;
 cout << " Nuujas laikas " << h << " h " << min << " min." << endl;
return 0;
}

Modifikuokite programą. Laikrodis rodo h valandų ir min minučių. Kokį laiką jis rodys praėjus n valandų?

4

Duoti keturi skaičiai, rasti didžiausią.

#include <iostream>
using namespace std;
int main()
{
 int s1, s2, s3, s4; //keturi skaičiai
 int max; //didžiausias
 cout << "Įveskite keturis sveikuosius skaičius: "<< endl;
 cin >> s1 >> s2 >> s3 >> s4;
 if (s1 > s2) max = s1;
 else max = s2;
 if (s3 > max) max = s3;
 if (s4 > max) max = s4;
 cout << "didžausia reikšmė yra " << max;
return 0;
}

5

Duoti du skaičiai. Rasti jų sandaugą, sumą, dalybą ir skirtumą, kai dalijamas didesnis iš mažesnio ir atimamas iš didesnio mažesnis.

#include <iostream>
using namespace std;
int main()
{
int a, b, sum, sand, skirt, dal;
cout << "iveskite du skaicius nelygius 0" << endl;
cin >> a>> b;
if (a > b)
     {
       skirt = a - b;
       dal   = a / b;
     }
else {
       skirt = b - a;
       dal   = b / a;
     }
sum  = a + b;
sand = a * b;
cout << "sandauga  =" << sand << endl;
cout << "dalmuo    =" << dal << endl;
cout << "skirtumas =" << skirt << endl;
cout << "suma      =" << sum << endl;
return 0;
}

6

Olimpinės žaidynės prasidėjo 1896 m ir buvo organizuojamos kas 4 metai. Jei žaidynės neįvykdavo, metai vis vien buvo laikomi olimpiniais. Parašykite programą, kuri patikrintų, ar duotieji m metai yra olimpiniai, jei taip, tai koks jų numeris n.

#include <iostream>
#include <iomanip>
using namespace std;
int m,          //metai
n;              //olimp žaidynių nr.
int main()
{
  cout << "Įveskite metus ";
  cin >> m;
  if ((m-1896)% 4 == 0)
  {
     cout << m << " metai olimpiniai ";
     n = (m-1896) / 4 + 1;
     cout << n << "-ieji";
  }
  else cout << m << " metai neolimpiniai";
  return 0;
}

7

Ūkininkas nusprendė virve pažymėti stačiakampį plotą bulvėms apsodinti. Virvės ilgis m metrų (sveikasis skaičius). Kokį didžiausią plotą galės pažymėti ūkininkas. Pasitikrinkite, kai m = 22, plotas = 30, kai m = 21, plotas = 25.

#include <iostream>
using namespace std;
int m;                      //virvės ilgis
int s;                      //didžiausias plotas
int x, x1, x2, liek;        //tarpiniai kintamieji
int main()
{ 
  cout << "Koks virvės ilgis - " ; cin >> m;
  x  = m / 2;      //virvę dalijame į dvi lygias dalis
  x1 = x / 2;      //dar kartą per pusę
  x2 = x1;
  liek = x % 2;
  if (liek == 1)
     x2 = x1 + liek;
  else;
  s = x1 * x2;
  cout << "S= " << s << endl;
  return 0;
  }

8

Duoti du skaičiai. Parašykite programą, kuri juos palygina ir praneša, ar jie lygūs, o jei ne, tai –  kuris didesnis.

#include <iostream>
using namespace std;
int s1, s2;
int main()
{
  cout << "Darbą pradedame" << endl;
  cuot << "iveskite du skaičius"<<endl;
  cin >> s1 >> s2 ;
  if ( s1 == s2 )  cout <<"abu lygus"<<endl;
  else if  (s1 > s2) cout << s1 <<" didesnis už "<< s2 << endl;
       else cout << s2 <<" didesnis už "<< s1 << endl;
  return 0;
}

Duoti du skaičiai. Rasti jų sandaugą, sumą, dalybą ir skirtumą, kai dalijamas didesnis iš mažesnio ir atimamas iš didesnio mažesnis. Gali būti, kad kažkuris iš jų lygus 0.

#include <iostream>
using namespace std;
int main()
{
  int a, b, sum, sand, skirt;
  double dal;
  cout << "iveskite du skaicius" << endl;
  cin >> a>> b;
  if (a > b)
  {
    skirt = a - b;
    if (b != 0)
    {
      dal   = a / b;
      cout << a << "didesnis už " << b << " " << dal << " karto";
    }
    else cout << "dalyba iš 0 negalima " << endl;
  }
  else {
       skirt = b - a;
       if (a != 0)
       {
          dal   = b / a;
          cout << b << "didesnis už " << a << " " << dal << " karto";
       }
       else cout << "dalyba iš 0 negalima";
  }
  sum  = a + b;
  sand = a * b;
  cout << "sandauga  =" << sand << endl;
  cout << "dalmuo    =" << dal << endl;
  cout << "skirtumas =" << skirt << endl;
  cout << "suma      =" << sum << endl;
  return 0;
}