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

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