C algajatele/tingimuslaused

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;
}

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;
}