Over the last four posts I’ve built up the engine of an RPN calculator in the form of a DLL. Now it’s finaly time to put it use. In this post I’ll present the code for a console-based user interface for our calculator.
17 April, 2011
13 April, 2011
Exercise 6 (part 4) – The Calculator Engine and Anonymous Methods
In this post I’ll complete the RPN Calculator engine we’ve been looking at. This will complete the DLL I’ve been working on, and next time I’ll run through the code for a Console-based front-end.
10 April, 2011
Exercise 6 (part 3) – Delegates and Class Inheritance
So, back to my RPN calculator implementation. Bear in mind that I wrote this code over six months ago, and I’ve learned a lot since then. If I was to do it again now I may make different design decisions, but for the moment I’ll stick with the original code. Let’s see what we can learn.
13 July, 2010
Exercise 5 – Reynolds again: overflow without exception
The 5th of Prashant’s 15 Exercises for Learning a new Programming Language builds directly onto the 4th:
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)
The first bit is easy, the second bit may be surprising. First thing I’ll do is show you what happens when I run the program from last time with mu = 0.
Exercise 4 – Reynold’s Number: a basic class
The fourth of Prashant's exercises is:
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...)
In working this solution I decided to declare a class to help in the calculation. The solution also shows some details of reading input from the console.
02 July, 2010
Exercise 3 - Collections and Sorting
The third exercise in 15 Exercises for Learning a new Programming Language is:
Accepting series of numbers, strings from keyboard and sorting them ascending, descending order.
The naive solution would be to build an array of entered strings/numbers and then write a method that will sort that array - a simple bubble sort would do. Of course, .NET offers a better way…
30 June, 2010
Max/Min revisited
A kind commenter on my last post (thanks Matt) told me about an alternative to my Max/Min implementation. The .NET framework includes a class library called LINQ (Language INtegrated Query). In looking through the MSDN library I had seen this mentioned, but figured it had something to do with database queries. I was partly right, but it turns out that LINQ is far more, and allows an alternate solution to Prashant's second exercise.
19 June, 2010
C#’s type system
C# is a strongly-typed object-oriented language. Many of the types will appear familiar, at first glance, to those who know C or C++, and most C expressions will behave similarly in C#, but the C# type-system is fundamentally different.
In my previous post I introduced C#’s integral types. In this post I’ll look at C#’s type system.