HI WELCOME TO Sirees
Showing posts with label c# interview programs. Show all posts
Showing posts with label c# interview programs. Show all posts

## How to get the total number of decimal places using c#

For example, please refer to the sample input and output below.
 Input Output 1 0 1.0 0 1.1 1 1.12 2 1.123 3 1.1100 2 1.010 2 1.001100 4

using System;namespace SampleProgram{    class MainProgram    {        public static void Main(string[] args)        {            // Create the decimal array for sample test data            decimal[] decimalNumbers = { 1, 1.0M, 1.1M, 1.12M, 1.123M, 1.1100M,                                                                  1.010M, 1.001100M };
// Loop thru each decimal number            foreach (decimal decimalNumber in decimalNumbers)            {                // Print the original number and total decimal places                Console.WriteLine("Original Decimal Number = {0}, Total Decimal Places = {1}",                    decimalNumber, GetDecimalPartCount(decimalNumber));            }        }        // Function that return the total decimal places        private static int GetDecimalPartCount(decimal decimalNumber)        {            // Dividing decimal number with 1 gives the decimal part            decimal decimalPlaces = decimalNumber % 1;            if (decimalPlaces != 0)            {                // Get the index of dot from the decimal part                int indexOfDot = decimalPlaces.ToString().IndexOf('.');                // Use the 0.######## format string to rip off trailing zeros, and get the count                int numberOfDecimals =                decimalPlaces.ToString("0.##########").Substring(indexOfDot).Length - 1;
return numberOfDecimals;            }            // Finally convert decimal to int and return            return (int)decimalPlaces;        }    }}

## C# Program to compute factorial of a number

In mathematics, 5 factorial is computed as 5X4X3X2X1, which is equal to 120. 5 factorial is denoted as 5 and an exclamation mark as shown below.
5 Factorial = 5! = 5X4X3X2X1 = 120
4 Factorial = 4! = 4X3X2X1 = 24
3 Factorial = 3! = 3X2X1 = 6

Factorial of Zero is 1.

C# Program below shows how to compute factorial for a given number.

using System;
namespace SamplePrograms
{
class Factorial
{
public static void Main()
{
// Prompt the user to enter their target number to calculate factorial
Console.WriteLine("Please enter the number for which you want to compute factorial");

try
{
// Read the input from console and convert to integer data type

// Factorial of Zero is 1
if (iTargetNumber == 0)
{
Console.WriteLine("Factorial of Zero = 1");
}
// Compute factorial only for non negative numbers
else if (iTargetNumber < 0)
{
Console.WriteLine("Please enter a positive number greater than 1");
}
// If the number is non zero and non negative
else
{
// Declare a variable to hold the factorial result.
double dFactorialResult = 1;

// Use for loop to calcualte factorial of the target number
for (int i = iTargetNumber; i >= 1; i--)
{
dFactorialResult = dFactorialResult * i;
}

// Output the result to the console
Console.WriteLine("Factorial of {0} = {1}", iTargetNumber, dFactorialResult);
}
}
catch (FormatException)
{
// We get format exception if user enters a word instead of number
}
catch (OverflowException)
{
// We get overflow exception if user enters a very big number,
// which a variable of type Int32 cannot hold
Console.WriteLine("Please enter a number between 1 and {0}"Int32.MaxValue);
}
catch (Exception)
{
// Any other unforeseen error
Console.WriteLine("There is a problem! Please try later");
}
}
}
}

## Find smallest and largest number in an integer array

I want a c# program that can find and print, the smallest and largest number in a given integer array.

using System;using System.Linq;

namespace SamplePrograms{    class LargestSmallest    {        public static void Main()        {            // Declare and initialize the integer array            int[] NumbersArray = { 102, 34, 89, 12, 187, 29, 111};                        // Sort the array, first element in the array will be            // smallest and the last element will be largest            Array.Sort(NumbersArray);

// Print the smallest number in the array            Console.WriteLine("Samllest Number = {0}", NumbersArray);

// Print the largest number in the array.            Console.WriteLine("Largest Number = {0}", NumbersArray[NumbersArray.Length -1]);

// Linq makes this much easier, as we have Min() and Max() extension methods            // Console.WriteLine("Samllest Number = {0}", NumbersArray.Min());            // Console.WriteLine("Largest Number = {0}", NumbersArray.Max());

}    }}

## Exception handling at its best

Write a c# program to add two numbers. This may sound very simple, but the catch, is - The program should not break, and always should give meaningful error messages when exception conditions occur. For example, the following error conditions should be handled in your program. Also, the program should run as long as the user wants it to run.
1. If the user enters "Ten" instead of 10, the program should let the user know only numbers can be added.
2. If the user, enters a very large number, the program should let the user know about the range allowed.

using System;

namespace SamplePrograms
{
class ExceptionHandlingAtItsBest
{
public static void Main()
{
string strUserChoice = String.Empty;
do
{
try
{

int Total = FN + SN;

Console.WriteLine("Total = {0}", Total);
}
catch (FormatException)
{
}
catch (OverflowException)
{
Console.WriteLine("Only numbers between {0} and {1} are allowed"
Int32.MinValue, Int32.MaxValue);
}
catch (Exception)
{
}

do
{
Console.WriteLine("Do you want to continue - Yes or No");
}
while (strUserChoice.ToUpper() != "YES" && strUserChoice.ToUpper() != "NO");
}
while (strUserChoice.ToUpper() != "NO");
}
}
}

## Insert space before every upper case letter in a string

Write a c# program that inserts a single space before every upper case letter. For example, if I have string like "ProductUnitPrice", the program should convert it to "Product Unit Price". Usually database column names will not have spaces, but when you display them to the user, it makes sense to have spaces.

using System;
using System.Text;

namespace SamplePrograms
{
class SpaceBeforeUpperCaseLetter
{
public static void Main()
{
// Prompt the user for input

// Read the input from the console

// Convert the input string into character array
char[] arrUserInput = UserInput.ToCharArray();

// Initialize a string builder object for the output
StringBuilder sbOutPut = new StringBuilder();

// Loop thru each character in the string array
foreach (char character in arrUserInput)
{
// If the character is in uppercase
if (char.IsUpper(character))
{
// Append space
sbOutPut.Append(" ");
}
// Append every charcter to reform the output
sbOutPut.Append(character);
}
// Remove the space at the begining of the string
sbOutPut.Remove(0, 1);

// Print the output
Console.WriteLine(sbOutPut.ToString());

}
}
}

## C# program to remove duplicates

Write a c# program to print unique names, by removing the duplicate entries. For example, in the Input String below, Rob and Able names are repeated twice. The c# program that you write should remove the duplicates and return the string as shown in Output String. The output string contains each name only once, eliminating duplicates.

Input String    = "Rob;Mike;Able;Sara;Rob;Peter;Able;"
Output String = "Rob;Mike;Able;Sara;Peter;"

using System;
using System.Linq;
using System.Text;

namespace SamplePrograms
{
class PrintUniqueNames
{
public static void Main()
{
// Prompt the user to enter the list of user names
Console.WriteLine("Please enter list of names seperated by semi colon");

// Read the user name list from the console

// Sampe list of user names that can be used as an input

// Split the string into a string array based on semi colon

// Use the Distinct() LINQ function to remove duplicates
string[] arrUniqueNames = arrUsersNames.Distinct().ToArray();

// Using StringBuilder to concatenate strings is more efficient
// than using immutable string objects for better performance

// Build the string from unique names appending semi colon
foreach (string strName in arrUniqueNames)
{
}

// Remove the extra semi colon in the end

// Finally print the unique names
Console.WriteLine();
Console.WriteLine("Printing names without duplicates");
}
}
}

## C# program to sort names in ascending and descending order

I have a string of user names seperated by semi colon. I want a c# program that can sort these names in both ascending and descending order.

using System;

namespace SamplePrograms{    class SortNamesInAscendingAndDescendingOrder    {        public static void Main()        {            // Prompt the user to enter the list of user names            Console.WriteLine("Please enter list of names seperated by semi colon");                        // Read the user name list from the console            string strUserNames = Console.ReadLine();

// Sampe list of user names that can be used as an input            // strUserNames = "Rob;Mike;Able;Sara;Peter;John;Tom;Ben";

// Split the string into a string array based on semi colon            string[] arrUsersNames = strUserNames.Split(';');

// Print the names before sorting using foreach loop            Console.WriteLine("Names before sorting");            foreach (string UserName in arrUsersNames)            {                Console.WriteLine(UserName);            }

// Sort the elements in the array in ascending order            Array.Sort(arrUsersNames);

// Print the elements of the array after sorting            Console.WriteLine("Names after sorting in ascending order");            foreach (string UserName in arrUsersNames)            {                Console.WriteLine(UserName);            }

// Reverse the elements in the sorted array to get            // the elements in descending order            Array.Reverse(arrUsersNames);                        // Finally print the elements            Console.WriteLine("Names after sorting in descending order");            foreach (string UserName in arrUsersNames)            {                Console.WriteLine(UserName);            }