A Beginner's Guide to Thinking Like a Programmer![]() By Alex Allain
A lot of people email
me asking the way to start some program or another. Perhaps the
best advice is simply to start writing down a layout for the program:
once you start writing down ideas or code you'll start to get a
feel for your project. There are two standard methods of program
design: the top-down approach and the bottom-up approach. Top-down
programming involves writing code that calls functions you haven't
defined and working through the general algorithm before writing
the functions that do the processing. Top-down programming is, to
a good degree, a very abstract way of writing code because it starts
out by using functions you haven't designed, and that you perhaps
do not know how to design. The bottom-up approach to programming
is the opposite: the programmer writes the basic functions she realizes
will be necessary at some point in the programming and then work
up to the more complex parts of the program. It's interesting that both of these approaches focus on the actions of the program rather than the objects the program manipulates - variables. Many times, the best way to write a program is to figure out the variables you need to work with and then progress with a top-down approach to the program that manipulates those variables. By defining variables first and then working with functions that work on them, you will always maintain a basic foundation of what your program should be doing. Once you have an idea of what variables you will be using, then you can write functions to perform the operations you need to perform on the variables while maintaining sight of the goal. Finally you can write the code for each individual function. Another value to defining
variables before writing code is that many times you can accomplish
an entire program without many functions; this fact is especially
true when you are a beginner making simple programs. The variables
give you the raw materials you need to begin working with the tools:
loops, if statements, library functions, and perhaps user defined
functions. Let's take a look at
an example of how to go about thinking about a program. If you were
to write a program to simulate a video store rental system that
calculates the gross revenue from rentals, you might be asked to
write a program that accepts a code telling you whether a certain
video was rented at $2.00 (input as 2) a day or $3.00 (input as
3) a day and then asks for how many days it was rented out for;
finally, if the code for the cost of rental is 0 the program should
terminate. You should also count the number of days videos were
rented at $3.00 per day and $2.00 per day. The best way to think
about the design for a program such as this one is to imagine what
information you need to store in order to calculate the revenue:
Once you realize you need these variables, you can easily imagine how to translate them in terms of each other: for example, you know the total amount of revenue is the number of days videos at $2.00 were rented times $2.00; in similar fashion, you know the relationship for $3.00 a day videos. You should understand that the transaction 'code' determines which variables are manipulated when the user inputs the number of days a specific video was rented (for example, whether to add to the count of days for $2.00 videos or $3.00 videos). You'll probably need a loop in your program (although you can't necessarily infer this from the variables). The code might look as follows: int main() { int total_dollars = 0; int total_days_at_3_dollars = 0; int total_days_at_2_dollars = 0; int transaction_code = 0; int days_for_one_video = 0; do { if(transaction_code==2) total_days_at_2_dollars+=days_for_one_video; if(transaction_code==3) total_days_at_3_dollars+=days_for_one_video; cout<<"Please enter a transaction code and number of days a video was rented: "; cin>>transaction_code>>days_for_one_video; }while(transaction_code!=0) } Hopefully, you now have a basic idea of how to lay out your program structure in your mind before you begin to write code. Related articles Using Comments to Improve your Code Common Programming Mistakes |