Mine sisu juurde

C algajatele/tingimuslaused

Allikas: Vikiõpikud

Tingimused

[muuda]

Programmeerimisel on üldjuhul vaja, et käske täidetaks ainult siis või seni kui mingi tingimus on täidetud.

If..else

[muuda]

See programm küsib kasutajalt kahe kuubi küljepikkused, arvutab ja kuvab seejärel suurema kuubi ruumala. Et aru saada kumb küljepikkus suurem on, kasutatakse if..else lauset.

#include <stdio.h>
#include <math.h>

int main() {
  int a1, a2, kuubi_ruumala;    
   
  //andmete sisestus
  printf("Esimese kuubi kyljepikkus? ");
  scanf("%d", &a1);
  printf("  Teise kuubi kyljepikkus? ");
  scanf("%d", &a2);
   
  if (a1 > a2) {                  //kui esimene küljepikkus on suurem
       kuubi_ruumala = pow(a1, 3); //tõsta a1 kuupi
  } else {
      kuubi_ruumala = pow(a2, 3); //muul juhul tõsta a2 kuupi
  }
   
  //väljasta tulemus
  printf("Suurema kuubi ruumala on %d yhikut\n", kuubi_ruumala);
       
  getchar();
  return 0;
}

Do..While

[muuda]

See programm teostab liitmistehteid. Kasutajalt küsitakse mitu liitmistehet on vaja teha, seejärel küsitakse vastav arv kordi liidetavat ning lõpuks väljastatakse vastus.

#include <stdio.h>

int main() {
  int i=0, mitu, vahevastus, liidetav;
   
  //andmete sisestus
  printf("Mitu arvu liita kavatsed? ");
  scanf("%d", &mitu);
   
  //tsükkel
  do {
      printf("Liidetav? ");
      scanf("%d", &liidetav);
      vahevastus = vahevastus + liidetav;
      ++i;
  } while (i<mitu);
   
  //vastuse väljastamine
  printf("Vastus on %d\n", vahevastus);
  
  getchar();
  return 0;
}

While

[muuda]

Programm teeb põhimõtteliselt sama mis eelmine, aga kasutab while ehk järelkontrolliga tsüklit ülesande täitmiseks.

#include <stdio.h>

int main() {
  int i=0, mitu, vahevastus, liidetav;
   
  //andmete sisestus
  printf("Mitu arvu liita kavatsed? ");
  scanf("%d", &mitu);
   
  //tsükkel
  while (i<mitu) {
      printf("Liidetav? ");
      scanf("%d", &liidetav);
      vahevastus = vahevastus + liidetav;
      ++i;
  }
   
  //vastuse väljastamine
  printf("Vastus on %d\n", vahevastus);
   
  getchar();
  return 0;
}

For

[muuda]

Taaskord sama ülesande pisut erinev lahendus.

#include <stdio.h>

int main() {
  int i, mitu, vahevastus, liidetav;
   
  //andmete sisestus
  printf("Mitu arvu liita kavatsed? ");
  scanf("%d", &mitu);
   
  //tsükkel
  for (i=0; i<mitu; ++i) {
      printf("Liidetav? ");
      scanf("%d", &liidetav);
      vahevastus = vahevastus + liidetav;
  }
  
  //vastuse väljastamine
  printf("Vastus on %d\n", vahevastus);
  
  getchar();
  return 0;
}