Tuesday, 25 September 2012

A general console application programs Day-3

Day3-Console applications Programs

listing 1
// Demonstrate the % operator.

using System;

class ModDemo {  
  public static void Main() {  
    int iresult, irem;
    double dresult, drem;

    iresult = 10 / 3;
    irem = 10 % 3;

    dresult = 10.0 / 3.0;
    drem = 10.0 % 3.0;

    Console.WriteLine("Result and remainder of 10 / 3: " +
                       iresult + " " + irem);
    Console.WriteLine("Result and remainder of 10.0 / 3.0: " +
                       dresult + " " + drem);
  }  
}

listing 2
/*
   Demonstrate the difference between prefix
   postfix forms of ++.
*/
using System;

class PrePostDemo {
  public static void Main() {  
    int x, y;
    int i;

    x = 1;
    Console.WriteLine("Series generated using y = x + x++;");
    for(i = 0; i < 10; i++) {

      y = x + x++; // postfix ++

      Console.WriteLine(y + " ");
    }
    Console.WriteLine();

    x = 1;
    Console.WriteLine("Series generated using y = x + ++x;");
    for(i = 0; i < 10; i++) {

      y = x + ++x; // prefix ++

      Console.WriteLine(y + " ");
    }
    Console.WriteLine();
 
  }
}

listing 3
// Demonstrate the relational and logical operators.

using System;

class RelLogOps {  
  public static void Main() {  
    int i, j;
    bool b1, b2;

    i = 10;
    j = 11;
    if(i < j) Console.WriteLine("i < j");
    if(i <= j) Console.WriteLine("i <= j");
    if(i != j) Console.WriteLine("i != j");
    if(i == j) Console.WriteLine("this won't execute");
    if(i >= j) Console.WriteLine("this won't execute");
    if(i > j) Console.WriteLine("this won't execute");

    b1 = true;
    b2 = false;
    if(b1 & b2) Console.WriteLine("this won't execute");
    if(!(b1 & b2)) Console.WriteLine("!(b1 & b2) is true");
    if(b1 | b2) Console.WriteLine("b1 | b2 is true");
    if(b1 ^ b2) Console.WriteLine("b1 ^ b2 is true");
  }  
}

listing 4
// Create an implication operator in C#.
using System;

class Implication {
  public static void Main() {  
    bool p=false, q=false;
    int i, j;

    for(i = 0; i < 2; i++) {
      for(j = 0; j < 2; j++) {
        if(i==0) p = true;
        if(i==1) p = false;
        if(j==0) q = true;
        if(j==1) q = false;
       
        Console.WriteLine("p is " + p + ", q is " + q);
        if(!p | q) Console.WriteLine(p + " implies " + q +
                    " is " + true);
        Console.WriteLine();
      }
    }
  }
}

listing 5
// Demonstrate the short-circuit operators.

using System;

class SCops {  
  public static void Main() {  
    int n, d;

    n = 10;
    d = 2;
    if(d != 0 && (n % d) == 0)
      Console.WriteLine(d + " is a factor of " + n);

    d = 0; // now, set d to zero

    // Since d is zero, the second operand is not evaluated.
    if(d != 0 && (n % d) == 0)
      Console.WriteLine(d + " is a factor of " + n);
   
    /* Now, try the same thing without short-circuit operator.
       This will cause a divide-by-zero error.  */
    if(d != 0 & (n % d) == 0)
      Console.WriteLine(d + " is a factor of " + n);
  }  
}

listing 6
// Side-effects can be important.

using System;

class SideEffects {  
  public static void Main() {  
    int i;

    i = 0;

    /* Here, i is still incremented even though
       the if statement fails. */
    if(false & (++i < 100))
       Console.WriteLine("this won't be displayed");
    Console.WriteLine("if statement executed: " + i); // displays 1

    /* In this case, i is not incremented because
       the short-circuit operator skips the increment. */
    if(false && (++i < 100))
      Console.WriteLine("this won't be displayed");
    Console.WriteLine("if statement executed: " + i); // still 1 !!
  }  
}

listing 7
//  Use bitwise AND to make a number even.
using System;

class MakeEven {
  public static void Main() {
    ushort num;
    ushort i;  

    for(i = 1; i <= 10; i++) {
      num = i;

      Console.WriteLine("num: " + num);

      num = (ushort) (num & 0xFFFE); // num & 1111 1110

      Console.WriteLine("num after turning off bit zero: "
                        +  num + "\n");
    }
  }
}

listing 8
//  Use bitwise AND to determine if a number is odd.
using System;

class IsOdd {
  public static void Main() {
    ushort num;

    num = 10;

    if((num & 1) == 1)
      Console.WriteLine("This won't display.");

    num = 11;

    if((num & 1) == 1)
      Console.WriteLine(num + " is odd.");

  }
}

listing 9
// Display the bits within a byte.
using System;

class ShowBits {
  public static void Main() {
    int t;
    byte val;

    val = 123;
    for(t=128; t > 0; t = t/2) {
      if((val & t) != 0) Console.Write("1 ");
      if((val & t) == 0) Console.Write("0 ");
    }
  }
}

listing 10
//  Use bitwise OR to make a number odd.
using System;

class MakeOdd {
  public static void Main() {
    ushort num;
    ushort i;  

    for(i = 1; i <= 10; i++) {
      num = i;

      Console.WriteLine("num: " + num);

      num = (ushort) (num | 1); // num | 0000 0001

      Console.WriteLine("num after turning on bit zero: "
                        +  num + "\n");
    }
  }
}

listing 11
// Use XOR to encode and decode a message.

using System;

class Encode {
  public static void Main() {
    char ch1 = 'H';
    char ch2 = 'i';
    char ch3 = '!';

    int key = 88;

    Console.WriteLine("Original message: " +
                      ch1 + ch2 + ch3);

    // encode the message
    ch1 = (char) (ch1 ^ key);
    ch2 = (char) (ch2 ^ key);
    ch3 = (char) (ch3 ^ key);

    Console.WriteLine("Encoded message: " +
                      ch1 + ch2 + ch3);

    // decode the message
    ch1 = (char) (ch1 ^ key);
    ch2 = (char) (ch2 ^ key);
    ch3 = (char) (ch3 ^ key);
 
    Console.WriteLine("Decoded message: " +
                      ch1 + ch2 + ch3);
  }
}

listing 12
// Demonstrate the bitwise NOT.
using System;

class NotDemo {
  public static void Main() {
    sbyte b = -34;
    int t;

    for(t=128; t > 0; t = t/2) {
      if((b & t) != 0) Console.Write("1 ");
      if((b & t) == 0) Console.Write("0 ");
    }
    Console.WriteLine();

    // reverse all bits
    b = (sbyte) ~b;

    for(t=128; t > 0; t = t/2) {
      if((b & t) != 0) Console.Write("1 ");
      if((b & t) == 0) Console.Write("0 ");
    }
  }
}

listing 13
// Demonstrate the shift << and >> operators.
using System;

class ShiftDemo {
  public static void Main() {
    int val = 1;
    int t;
    int i;

    for(i = 0; i < 8; i++) {
      for(t=128; t > 0; t = t/2) {
        if((val & t) != 0) Console.Write("1 ");
        if((val & t) == 0) Console.Write("0 ");
      }
      Console.WriteLine();
      val = val << 1; // left shift
    }
    Console.WriteLine();

    val = 128;
    for(i = 0; i < 8; i++) {
      for(t=128; t > 0; t = t/2) {
        if((val & t) != 0) Console.Write("1 ");
        if((val & t) == 0) Console.Write("0 ");
      }
      Console.WriteLine();
      val = val >> 1; // right shift
    }
  }
}

listing 14
// Use the shift operators to multiply and divide by 2.
using System;

class MultDiv {
  public static void Main() {
    int n;

    n = 10;

    Console.WriteLine("Value of n: " + n);

    // multiply by 2
    n = n << 1;
    Console.WriteLine("Value of n after n = n * 2: " + n);

    // multiply by 4
    n = n << 2;
    Console.WriteLine("Value of n after n = n * 4: " + n);

    // divide by 2
    n = n >> 1;
    Console.WriteLine("Value of n after n = n / 2: " + n);

    // divide by 4
    n = n >> 2;
    Console.WriteLine("Value of n after n = n / 4: " + n);
    Console.WriteLine();

    // reset n
    n = 10;
    Console.WriteLine("Value of n: " + n);

    // multiply by 2, 30 times
    n = n << 30; // data is lost
    Console.WriteLine("Value of n after left-shifting 30 places: " + n);

  }
}

listing 15
// Prevent a division by zero using the ?.
using System;

class NoZeroDiv {
  public static void Main() {
    int result;
    int i;

    for(i = -5; i < 6; i++) {
      result = i != 0 ? 100 / i : 0;
      if(i != 0)
        Console.WriteLine("100 / " + i + " is " + result);
    }
  }
}

listing 16
// Prevent a division by zero using the ?.
using System;

class NoZeroDiv2 {
  public static void Main() {
    int i;

    for(i = -5; i < 6; i++)
      if(i != 0 ? true : false)
        Console.WriteLine("100 / " + i +
                           " is " + 100 / i);
  }
}

No comments:

Post a Comment

SharePoint tenant opt-out for modern lists is retiring in 2019

We're making some changes to how environments can opt out of modern lists in SharePoint. Starting April 1, 2019, we're going to be...