C++
  Home arrow C++ arrow Page 7 - Programming in C
Dev Articles Forums 
ADO.NET  
Apache  
ASP  
ASP.NET  
C#  
C++  
ColdFusion  
COM/COM+  
Delphi-Kylix  
Design Usability  
Development Cycles  
DHTML  
Embedded Tools  
Flash  
Graphic Design  
HTML  
IIS  
Interviews  
Java  
JavaScript  
MySQL  
Oracle  
Photoshop  
PHP  
Reviews  
Ruby-on-Rails  
SQL  
SQL Server  
Style Sheets  
VB.Net  
Visual Basic  
Web Authoring  
Web Services  
Web Standards  
XML  
Mobile Linux 
App Generation ROI 
IBM® developerWorks 
Weekly Newsletter
 
Developer Updates  
Free Website Content 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us Get Paid 
Request Media Kit
Contact Us 
Site Map 
Privacy Policy 
Support 
 USERNAME
 
 PASSWORD
 
 
  >>> SIGN UP!  
  Lost Password? 
C++

Programming in C
By: Apress Publishing
  • Search For More Articles!
  • Disclaimer
  • Author Terms
  • Rating: 4 stars4 stars4 stars4 stars4 stars / 35
    2005-10-27

    Table of Contents:
  • Programming in C
  • Creating Your First Program
  • Editing Your First Program
  • Dissecting a Simple Program
  • The Body of a Function
  • Developing Programs in C
  • Functions and Modular Programming
  • Common Mistakes

  • Rate this Article: Poor Best 
      ADD THIS ARTICLE TO:
      Del.ici.ous Digg
      Blink Simpy
      Google Spurl
      Y! MyWeb Furl
    Email Me Similar Content When Posted
    Add Developer Shed Article Feed To Your Site
    Email Article To Friend
    Print Version Of Article
    PDF Version Of Article
     
     
    ADVERTISEMENT


    Programming in C - Functions and Modular Programming


    (Page 7 of 8 )

     

    The word “function” has appeared a few times so far in this chapter with reference to main(), printf(), function body, and so on. Let’s explore in a little more depth what functions are and why they’re important.

    Most programming languages, including C, provide a way of breaking up a program into segments, each of which can be written more or less independently of the others. In C these segments are called functions. The program code in the body of one function is completely insulated from that of other functions. A function will have a specific interface to the outside world in terms of how information is transferred to it and how results generated by the function are transmitted back from it. This interface is specified in the first line of the function, where the function name appears.

    Figure 1-3 shows a simple example of a program to analyze baseball scores that is composed of four modules.


    Figure 1-3.  Modular programming

    Each of the four modules does a specific, well-defined job. Overall control of the sequence of operations in the program is managed by one module,main(). There is a module to read and check the input data and another module to do the analysis. Once the data has been read in and analyzed, a fourth module has the task of outputting the team and player rankings.

    Segmenting a program into manageable chunks is a very important aspect to programming, so let’s go over the reasons for doing this:

    • Dividing the program into a number of separate functions allows each function to be written and tested separately. This greatly simplifies the process of getting the total program to work.
    • Several separate functions are easier to handle and understand than one huge function.
    • Libraries are just sets of functions that people tend to use all the time. Because they’ve been prewritten and pretested, you know they’ll work, so you can use them without worrying about their code details. This will accelerate your program development, by allowing you to concentrate on your own code, and it’s a fundamental part of the philosophy of C. The richness of the libraries greatly amplifies the power of the language.
    • You can accumulate your own libraries of functions that are applicable to the sorts of programs that you’re interested in. If you find yourself writing a particular function frequently, you can write a generalized version of it to suit your needs and build this into your own library. Then, whenever you need to use that particular function, you can simply use your library version.
    • In the development of very large programs, which can vary from a few thousand to millions of lines of code, development can be undertaken by teams of programmers, with each team working with a defined subgroup of the functions that make up the whole program.

    You’ll learn about C functions in greater detail in Chapter 8. Because the structure of a C program is inherently functional, you’ve already encountered one of the standard library functions in one of this chapter’s earliest examples: the functionprintf().

    .........................................................................................

    Try It Out: Exercising What You Know

    Let’s now look at an example that puts into practice what you’ve learned so far. First, have a look at the following code and see whether you can understand what it does without running it. Then type it in; compile, link, and run it; and see what happens.

    /* Program 1.7 A longer program */
    #include <stdio.h>    /* Include the header file for input and output */
    void main()
    {
      printf("Hi there!\n\n\nThis program is a bit");
      printf(" longer than the others.");
      printf("\nBut really it's only more text.\n\n\n\a\a");
      printf("Hey, wait a minute!! What was that???\n\n");
      printf("\t1.\tA bird?\n");
      printf("\t2.\tA plane?\n");
      printf("\t3.\tA control character?\n"); 
      printf("\n\t\t\b\bAnd how will this look when it prints out?\n\n");
    }

    The output will be as follows:

    ----------------------------------------------------------------------Hi there!
    This program is a bit longer than the others.
    But really it's only more text.
    Hey, wait a minute!! What was that???
      1.  A
    bird?
      2. 
    A plane?
      3. 
    A control character?
        And how will this look when it prints out?

    --------------------------------------------

    HOW IT WORKS

    The program looks a little bit complicated, largely because the text strings between parentheses include a lot of escape sequences. Each text string is bounded by a pair of double quotation marks. However, the program is just a succession of calls to theprintf()function, and it demonstrates that output to the screen is controlled by what you pass to theprintf()function. Let’s look at this program in detail.

    You include thestdio.hfile through the preprocessing directive:

    #include <stdio.h>    /* Include the header file for input and output */

    You can see that this is a preprocessing directive because it begins with#. Thestdio.hfile provides the definitions you need to be able to use theprintf()function.

    You then define the start of the functionmain()and specify that it doesn’t return a value with this line:

    void main()

    The opening brace on the next line indicates that the body of the function follows:

    {

    The next statement calls the standard library functionprintf()to outputHi there!to your display screen, followed by two blank lines and the phraseThis program is a bit.

    printf("Hi there!\n\n\nThis program is a bit");

    The two blank lines are produced by the three\nescape sequences. Each of these starts a new line when the characters are written to the display. The first ends the line containingHi there!, and the next two produce the two empty lines. The textThis program is a bitappears on the fourth line of output. You can see that this one line of code produces a total of four lines of output on the screen.

    The next line of output produced by the nextprintf()starts at the character position immediately following the last character in the previous output. The next statement outputs the textlonger than the others.with a space as the first character of the text:

    printf(" longer than the others.");

    This output will simply continue where the last line left off, following thetinbit. This means that you really do need the space at the beginning of the text, otherwise the computer will displayThis program is a bitlonger than the others, which isn’t what you want.

    The next statement starts its output on a new line, immediately following the previous line, because of the\nat the beginning of the text string between double quotation marks:

    printf("\nBut really it's only more text.\n\n\n\a\a");

    It then displays the text and adds two empty lines (because of the three\nescape sequences) and beeps twice. The next output to the screen will start at the beginning of the line that follows the second empty line produced here.

    The next output is produced by the following statement:

    printf("Hey, wait a minute!! What was that???\n\n");

    This outputs the text and then leaves one empty line. The next output will be on the line following the empty line.

    Each of the next three statements inserts a tab, displays a number, inserts another tab followed by some text, and ends with a new line. This is useful for making your output easier to read:

    printf("\t1.\tA bird?\n");
    printf("\t2.\tA plane?\n");
    printf("\t3.\tA control character?\n");

    This produces three numbered lines of output.

    The last statement that produces output adds a new line, so that there will be an empty line after the previous output. Two tabs are then sent to the display, followed by two backspaces, which moves your cursor back two spaces from the last tab position. Lastly, the text is displayed, and two newline characters are sent to the display:

    printf("\n\t\t\b\bAnd how will this look when it prints out?\n\n");

    The closing brace marks the end of the function body:

    }

    .............................................

    More C++ Articles
    More By Apress Publishing


       · This article is an excerpt from the book "Beginning C, third edition", published by...
       · I need a C program for character stuffing.
       · source code for characterstuffing in c
       · i want a program on character stuffing using files
     

    Buy this book now. This article is excerpted from the book Beginning C, third edition, written by Ivor Horton (Apress, 2004; ISBN: 1590592530). Check it out today at your favorite bookstore. Buy this book now.

    C++ ARTICLES

    - Preparing For Programming Contests
    - Programming Contests: Why Bother?
    - Polymorphism in C++
    - Overview of Virtual Functions
    - Inheritance in C++
    - Extending the Basic Streams in C++
    - Using Stringstreams in C++
    - Custom Stream Manipulation in C++
    - General Stream Manipulation in C++
    - Serialize Your Class into Streams in C++
    - Advanced File Handling with Streams in C++
    - File Handling and Streams in C++
    - The STL String Class
    - Iostream Library and Basic I/O in C++
    - Introduction to Streams







    © 2003-2009 by Developer Shed. All rights reserved. DS Cluster 5 hosted by Hostway
    Stay green...Green IT