ch-02 programming style
TRANSCRIPT
![Page 1: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/1.jpg)
Programming style
![Page 2: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/2.jpg)
Good Programming• Good programming style
Simple, easy-to-read program• Style is the most important part of
programmingLearn good programming style before typing first line of code will create the highest quality of code
![Page 3: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/3.jpg)
Writing program vs Maintenance
• 74% of the managers surveyed at the 1990 Annual Meeting and Conference of Software Maintenance Association reported that :“they have system in their department that have to be maintained by specific individuals because no one else understand them”
![Page 4: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/4.jpg)
Compact instruction = Problem
• Programming believe that the purpose of a program is only to present the computer with a compact set of instructionTHIS IS WRONG!
• Problems emerge :• Program difficult to correct, sometimes author
does not understand them• Modification and upgrades are difficult to make,
maintenance programmer must spend a considerable amount of time figuring out what the program does from its code
![Page 5: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/5.jpg)
Style• Comments• Naming Style• Indentation• Clarity• Simplicity• Consistency
![Page 6: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/6.jpg)
COMMENT
![Page 7: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/7.jpg)
Comments• Two purposes of a program :
– Present the computer with a set of instruction– Provide the programmer with a clear, easy-to-read
description of what the program does• Program contains a glaring error :
#include <iostream.h>int main(){
Printf(“Hello World\n”);return 0;}
• The program contains no comments
![Page 8: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/8.jpg)
Uncommented Program• It is an error that many programmers still
make and one that causes more trouble than any other problem
• A working but uncommented program is a time bomb waiting to explode
• Sooner or later someone will have to modify or upgrade the program, and the lack of comment will make the job ten times more difficult
A well-commented, simple program is a work of art
![Page 9: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/9.jpg)
Flavors of comments• Start with /* and ends with */
/* This is a single-line comment. *//* * This is a multiline comment*/
• Begin with // and goes to the end of the line– // This is another form of comment.– // The // must begin each line that is to be comment.
![Page 10: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/10.jpg)
Comment your program!/********************************************************************* hello –program to print out “Hello World”. ** Not an especially earth-shattering program. ** ** Author : John Smith ** ** Purpose : Demonstration of a simple program ** ** Usage : Run the program and the message appears **********************************************************************#include <iostream.h>int main(){
//tell the world helloprintf(“Hello World\n”);return 0;
}
![Page 11: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/11.jpg)
NAMING STYLE
![Page 12: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/12.jpg)
Naming Style• Names can contain both uppercase and
lowercase letters• Classic convention :
– Use all lowercase names for variables• e.g. source_ptr, current_index
– All uppercase is reserved for constants• e.g. MAX_ITEMS, SCREEN_WIDTH
• Newer program : mix-case names– e.g. RecordsInFile
• Choose any naming style as long as you are consistent
![Page 13: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/13.jpg)
INDENTATION
![Page 14: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/14.jpg)
Indentation• Indent program to make program
easier to understand• General rule for a C/C++ program :
– Indent one level for each new block or conditional
• The amount of indentation is left to the programmer– Two, four, and eight spaces are common– Choose any indent size as long as you
are consistent
![Page 15: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/15.jpg)
Style of Indentation (1)while(!done) {
cout << “Processing\n”;next_entry();}if (total <= 0) {
cout<< “You owe nothing\n”;total = 0;
} else {cout<< “You owe “<< total << “dollars\n”;all_totals = all_totals + total;
}Most of the curly braces are put on the
same line as the statements
![Page 16: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/16.jpg)
Style of Indentation (2)while(!done) {cout << “Processing\n”;next_entry();}if (total <= 0) {cout << “You owe nothing\n”;total = 0;} else {cout << “You owe “<< total << “dollars\n”;all_totals = all_totals + total;}
Curly braces are put on lines by themselves
![Page 17: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/17.jpg)
CLARITY
![Page 18: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/18.jpg)
Clarity• Program should read like a technical
paper– Should be organized into sections and
paragraphs– Procedure form a natural section
boundary• Organized your code into
paragraph– Good idea : begin a paragraph with a
topic sentence comment and separate it from other paragraphs by a blank line
![Page 19: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/19.jpg)
Clarity, Example ://poor programmingtemp = box_x1;box_x1 = box_x2;box_x2 = temp;temp = box_y1;box_y1 = box_y2;box_y2 = temp;
better version/** Swap the two corner*//* Swap X coordinate */temp = box_x1;box_x1 = box_x2;box_x2 = temp;/* Swap Y coordinate */temp = box_y1;box_y1 = box_y2;box_y2 = temp;
![Page 20: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/20.jpg)
SIMPLICITY
![Page 21: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/21.jpg)
General rule of thumb (1)
• A single function should not be longer than one or two pages– If it gest longer, it can probably be split into two
simpler functions– Human mind can hold only so much in short-
term memory• Avoid complex logic
– The more complex your code, the more indentation level you will need
– Splitting your code into multiple procedures and thus decreasing the level of complexity
![Page 22: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/22.jpg)
General rule of thumb (2)
• Avoid long statements– If an equation formula looks like it is
going to be longer than one or two lines, split it into two shorter equations
• Split large single code files into multiple smaller ones(modular programming)– Keep files smaller than 1500 lines– Easy to edit and print
![Page 23: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/23.jpg)
General rule of thumb (3)
• Make program as simple and easy to understand as possible, even if it means breaking some of the rule– The goal is clarity– It is possible to create program with a
single statement that spanned more than 20 pages, because of specialized nature of the program, this statement more simple and easy to understand
![Page 24: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/24.jpg)
CONSISTENCY
![Page 25: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/25.jpg)
Consistency• Consistency is also factor in creating high-
quality program
• Books usually is organized with the table of contents at the front and the index at the back– Almost every book printed has a similar
organization– This consistency makes it easy to look up word
in the index or find a chapter title in the table of contents
• Good style is nice, but consistency is better
![Page 26: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/26.jpg)
Contoh:
![Page 27: Ch-02 Programming Style](https://reader035.vdocuments.pub/reader035/viewer/2022062401/577ccf091a28ab9e788eb647/html5/thumbnails/27.jpg)
Summary• A program should be concise and easy to
read• A program must serve as a set of computer
instructions, but also as a reference work describing the algorithms and data used inside it
• Everything should be documented with comments
• Comments serve two purpose :– Describe your program to any maintenance
programmer who has to fix it– Comment help you remember what you did