4. Reynolds number is calculated using formula (D*v*rho)/mu Where D = Diameter, V= velocity, rho = density mu = viscosity Write a program that will accept all values in appropriate units (Don't worry about unit conversion) If number is < 2100, display Laminar flow, If it's between 2100 and 4000 display 'Transient flow' and if more than '4000', display 'Turbulent Flow' (If, else, then...)

5. Modify the above program such that it will ask for 'Do you want to calculate again (y/n), if you say 'y', it'll again ask the parameters. If 'n', it'll exit. (Do while loop)

While running the program give value mu = 0. See what happens. Does it give 'DIVIDE BY ZERO' error? Does it give 'Segmentation fault..core dump?'. How to handle this situation. Is there something built in the language itself? (Exception Handling)

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace lrn2csharp4_5 { class Program { static void Main( string[ ] args ) { char answer = 'y'; Console.WriteLine( "Today we are going to calculate Reynolds Number (D*v*rho)/mu" ); while ( answer.Equals( 'y' ) ) { try { calcReynolds( ); } catch ( System.DivideByZeroException dbze ) { Console.WriteLine( dbze.Message ); } Console.Write( "Do you want to calculate again (y/n): " ); try { answer = Convert.ToChar( Console.ReadLine( ) ); } catch ( System.FormatException ) { answer = 'n'; } } } static void calcReynolds( ) { Console.Write( "Enter Diameter: " ); double d = Convert.ToDouble( Console.ReadLine( ) ); Console.Write( "Enter Velocity: " ); double v = Convert.ToDouble( Console.ReadLine( ) ); Console.Write( "Enter Density: " ); double rho = Convert.ToDouble( Console.ReadLine( ) ); Console.Write( "Enter Viscosity: " ); double mu = Convert.ToDouble( Console.ReadLine( ) ); // C# actually handles divide by zero well and wont throw an exception automatically, so do it manually if ( mu.Equals( 0 ) ) throw new System.DivideByZeroException( "Cannot divide by zero. Viscosity was zero. You erred." ); double reynolds = ( d * v * rho ) / mu; if ( reynolds < 2100 ) Console.WriteLine( "Laminar flow (" + reynolds + ")" ); else if ( reynolds >= 2100 && reynolds <= 4000 ) Console.WriteLine( "Transient flow (" + reynolds + ")" ); else Console.WriteLine( "Turbulent flow (" + reynolds + ")" ); } } }

posted by dharh 3:01 AM Nov 29th, 2009

3. Accepting series of numbers, strings from keyboard and sorting them ascending, descending order. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace lrn2CSharp3 { class Program { static void Main( string[ ] args ) { Console.Write( "Please enter the number of items you wish to enter: " ); int num_item = Convert.ToInt32( Console.ReadLine( ) ); int[ ] nums = new int[ num_item ]; for ( int i = 0; i < num_item; i++ ) { Console.Write( "Item " + i + ": " ); nums[ i ] = Convert.ToInt32( Console.ReadLine( ) ); } qsort( nums ); foreach ( int num in nums ) Console.Write( num.ToString( ) + " " ); Console.WriteLine( "" ); nums = reverse( nums ); foreach ( int num in nums ) Console.Write( num.ToString( ) + " " ); Console.WriteLine( "" ); Console.WriteLine( "Press esc to exit." ); while ( !keyPressHandler( Console.ReadKey( true ) ) ) { Thread.Sleep( 250 ); /* no op */ } } static void swap<T>( ref T lhs, ref T rhs ) { T temp; temp = lhs; lhs = rhs; rhs = temp; } static void qsort( int[ ] nums ) { qs( nums, 0, nums.Length - 1 ); } static void qs( int[ ] items, int left, int right ) { int i, j; int x; i = left; j = right; x = items[ ( left + right ) / 2 ]; do { while ( ( items[ i ] < x ) && ( i < right ) ) i++; while ( ( x < items[ j ] ) && ( j > left ) ) j--; if ( i <= j ) { swap<int>( ref items[ i ], ref items[ j ] ); i++; j--; } } while ( i <= j ); if ( left < j ) qs( items, left, j ); if ( i < right ) qs( items, i, right ); } static int[ ] reverse( int[ ] items ) { int[ ] reversed = new int[ items.Length ]; int j = 0; for ( int i = items.Length - 1; i >= 0; i-- ) { reversed[ j ] = items[ i ]; j++; } return reversed; } protected static Boolean keyPressHandler( ConsoleKeyInfo input ) { if ( input.Key == ConsoleKey.Escape ) return true; return false; } } }

posted by dharh 1:40 AM Nov 29th, 2009

2. Fibonacci series, swapping two variables, finding maximum/minimum among a list of numbers. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace lrn2Csharp2 { class Program { static void Main( string[ ] args ) { int fibs = 21; int[ ] fib_series = new int[ fibs ]; Console.WriteLine( "Outputing Fib 0 through " + fibs ); for ( int i = 0; i < fib_series.Length; i++ ) { fib_series[ i ] = fibonacci( i ); } printArray( fib_series ); Console.WriteLine( "" ); Console.WriteLine( "Max in Fib Series: " + max( fib_series ) ); Console.WriteLine( "Min in Fib Series: " + min( fib_series ) ); Console.WriteLine( "Swapping front with end: " ); swap<int>( ref fib_series[ 0 ], ref fib_series[ fib_series.Length - 1 ] ); printArray( fib_series ); Console.WriteLine( "" ); Console.WriteLine( "Press esc to exit." ); while ( !keyPressHandler( Console.ReadKey( true ) ) ) { Thread.Sleep( 250 ); /* no op */ } } static void swap<T>( ref T lhs, ref T rhs ) { T temp; temp = lhs; lhs = rhs; rhs = temp; } public static int fibonacci( int n ) { if ( n <= 1 ) { return n; } else { return fibonacci( n - 1 ) + fibonacci( n - 2 ); } } public static int max( int[ ] n ) { int max = n[ 0 ]; for ( int _i = 0; _i < n.Length; _i++ ) { if ( n[ _i ] > max ) max = n[ _i ]; } return max; } public static int min( int[ ] n ) { int min = n[ 0 ]; for ( int _i = 0; _i < n.Length; _i++ ) { if ( n[ _i ] < min ) min = n[ _i ]; } return min; } public static void printArray( int[ ] n ) { for ( int _i = 0; _i < n.Length; _i++ ) { Console.Write( n[ _i ] + " " ); } } protected static Boolean keyPressHandler( ConsoleKeyInfo input ) { if ( input.Key == ConsoleKey.Escape ) return true; return false; } } }

posted by dharh 12:47 AM Nov 29th, 2009

1. Display series of numbers (1,2,3,4, 5....etc) in an infinite loop. The program should quit if someone hits a specific key (Say ESCAPE key). using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace lrn2CSharp1 { class Program { static void Main( string[ ] args ) { for ( int i = 0; ; i++ ) { if ( Console.KeyAvailable && keyPressHandler( Console.ReadKey( true ) ) ) break; Console.Write( i + " " ); Thread.Sleep( 250 ); } } protected static Boolean keyPressHandler( ConsoleKeyInfo input ) { if ( input.Key == ConsoleKey.Escape ) return true; return false; } } }

posted by dharh 7:13 PM Feb 10th, 2008

Part of the passion in my life, besides life itself, is programming and computers. I especially like the idea of smart computing through smart programs and smart OSes. Which is what I want to focus on in my career, creating intelligence to various degrees to help create better and more efficient user experiences using computers.

Bellow is a table of various code snippets and articles organized by language.

C/C++ C# Java JavaScript
Returning an Array of Pointers javascript trim

15 Exercises for Learning a new Programming Language

This is an exercise to both learn a language, but also to compare different languages. The original idea can be found here.

  1. Display series of numbers (1,2,3,4, 5....etc) in an infinite loop. The program should quit if someone hits a specific key (Say ESCAPE key).
  2. Fibonacci series, swapping two variables, finding maximum/minimum among a list of numbers.
  3. Accepting series of numbers, strings from keyboard and sorting them ascending, descending order.
  4. Reynolds number is calculated using formula (D*v*rho)/mu Where D = Diameter, V= velocity, rho = density mu = viscosity Write a program that will accept all values in appropriate units (Don't worry about unit conversion) If number is < 2100, display Laminar flow, If it's between 2100 and 4000 display 'Transient flow' and if more than '4000', display 'Turbulent Flow' (If, else, then...)
  5. Modify the above program such that it will ask for 'Do you want to calculate again (y/n), if you say 'y', it'll again ask the parameters. If 'n', it'll exit. (Do while loop)

    While running the program give value mu = 0. See what happens. Does it give 'DIVIDE BY ZERO' error? Does it give 'Segmentation fault..core dump?'. How to handle this situation. Is there something built in the language itself? (Exception Handling)
  6. Scientific calculator supporting addition, subtraction, multiplication, division, square-root, square, cube, sin, cos, tan, Factorial, inverse, modulus
  7. Printing output in different formats (say rounding up to 5 decimal places, truncating after 4 decimal places, padding zeros to the right and left, right and left justification)(Input output operations)
  8. Open a text file and convert it into HTML file. (File operations/Strings)
  9. Time and Date : Get system time and convert it in different formats 'DD-MON-YYYY', 'mm-dd-yyyy', 'dd/mm/yy' etc.
  10. Create files with date and time stamp appended to the name
  11. Input is HTML table, Remove all tags and put data in a comma/tab separated file.
  12. Extract uppercase words from a file, extract unique words
  13. Implement word wrapping feature (Observe how word wrap works in windows 'notepad')
  14. Adding/removing items in the beginning, middle and end of the array.
  15. Are these features supported by your language: Operator overloading, virtual functions, references, pointers etc.

C# Java Python
Learn 2 C# 1 Learn 2 Java 1
Learn 2 C# 2
Learn 2 C# 3
Learn 2 C# 4 and 5
Learn 2 C# 6
Learn 2 C# 7
Learn 2 C# 8
Learn 2 C# 9
Learn 2 C# 10
Learn 2 C# 11
Learn 2 C# 12


posted by dharh 2:06 PM Mar 15th, 2006


« Previous 1 2
Next »


2011: 5 3 1
2010: 12 9 7 1
2009: 12 11 8 5
2008: 12 5 4 3 2 1
2007: 12 11 10 9 8 7 6 5 4 3 2 1
2006: 12 11 10 9 8 7 6 5 4 3 2 1
2005: 12 10 7 6
2004: 10 9 6 5 4 3 2 1