//-----------------------------------------------------------------------------
// short_demo.c
//
// some small code snips
// demonstrationg classical programming problems
//
// group: group 1,13 study assistant AltiHar
//
// author: Altinger Harald 0630xxx
//
// last change: created all (Altinger Harald)
//-----------------------------------------------------------------------------
//

#include <stdio.h>

//----------------------------------------------------------------------------- 
/// 
/// The main program. 
///
/// print different excamples, demonstrating logical programming mistakes
/// 
///  @return int  always zero 
// 
int main()
{
  //declare the variables
  int a_number;
  float b_number;
  
  //declare & initialize the variables
  int number = 2;
  int Number = 3;
  
  int logical_var_x = 0;
  int logical_var_y = 3;

  printf("------uninitialized------\n");

  //old memory
  printf("oldMem:    %d\n",a_number);
  
  printf("------casesensitive------\n");
  
  //case sensetive
  printf("number:    %d\n",number);
  printf("Number:    %d\n",Number);
  
  printf("------int vs. float------\n");
  
  //assign values
  a_number = 3.141;
  b_number = 3.141;
  
  //what is happening?
  printf("int   %%d:  %d\n",a_number);
  printf("float %%f:  %f\n",b_number);
  printf("1/2:  %%d:  %d\n",1/2.0);
  printf("1/2:  %%f:  %f\n",1/2.0);
  
  printf("--different number sys.--\n");
  
  //"number"
  a_number = 123;
  printf("number:    %d\n",a_number);
  
  //"leading 0"
  a_number = 0123;
  printf("leading 0: %d\n",a_number);
  
  //"Hexa"
  a_number = 0x123;
  printf("Hexa:      %d\n",a_number);
  
  printf("---------overflow--------\n");
  
  //overflow
  a_number = 2147483647;
  printf("original:  %d\n",a_number);
  
  a_number += 1;
  printf("added 1:   %d\n",a_number);
  
  printf("--------if / else--------\n");
  
  printf("logical_var_x:         %d\n",logical_var_x);
  printf("logical_var_y:         %d\n",logical_var_y);
  
  //remember, right side won't be executed if left side is false!
  (logical_var_x!=0) && (logical_var_y = 4);
  
  printf("logical_var_x:         %d\n",logical_var_x);
  printf("logical_var_y:         %d\n",logical_var_y);

  logical_var_x = 1;
  (logical_var_x != 0) && (logical_var_y = 4);
  
  printf("logical_var_x:         %d\n",logical_var_x);
  printf("logical_var_y:         %d\n",logical_var_y);
  
  return 0;
}


