Programming issues. Writing a tax calculator.
My Objective C reading doesn’t go as I would like to, but in a way proceeds. Today I forgot the ObjC manual in the military chamber, while going home, so I couldn’t read much. I decide to solve a simple self assigned exercise. Nothing complicated, it could be done in less than 4 seconds using Python or even C.
Anyway the good thing about this book is that, as Stephen Kochan explains, I’ll start programming using the specific object oriented programming mindset, avoiding some issues that more experienced programmers have when they try to learn objective C and object oriented programming. First, I’ll show you my code:
The header file
// ivacalc.h header #import #import @interface TAX: Object { double price; } -(void) setPrice: (int) p; -(double) price; @end
The main program (implementation/main function)
// Calculating the tax of a give price v1.1 // main program // ivacalc.m #import #import #import "ivacalc.h" @implementation TAX; -(void) print { printf("The price is %.2f and the tax is %.2f.\nThe sum is %.2f\n", price, price * 0.19, price + (price*0.19)); } -(double) price { return price; } -(void) setPrice: (int) p { price = p; } @end int main(int argc, char *argv[]) { int j; TAX *myTax = [[TAX alloc] init]; // allocating and initializing a TAX-fellow class! printf("Price: "); scanf("%i", &j); printf("\n"); [myTax setPrice: j]; [myTax print]; [myTax free]; return 0; }
As you can see the program above is quite simple. It does not much. The hard part was defining correctly the interface and implementation sections and the inner goal is to get more familiar with methods and classes. However the first issue I’ve encountered was the data encapsulation. Which raises the question: What would have happened if I had put the scanf code inside the setPrice method? I could change the method, in order to make the method perform all the test + scanf execution internally. I tried to do it, I wrote the code but I` didn’t manage to get the print method accept a variable that is calculated from a method within the same class of the implementation section. I’m quite that this is possible though.
The problem is, which programming style is correct? When must I write a function or perform a specific operation inside the method and not on the main() function, as a C-style program, and then must I put the more possible options inside the method? Is there a universal answer or there are many, depending on the program?
I’ll continue writing code tomorrow! Bye
Related posts:
- A few words about ruby 1.9 Recently, I start messing up with Ruby 1.9 . I...
Related posts brought to you by Yet Another Related Posts Plugin.
Tweet