Understanding the Structure of a C Program
In C programming, a program consists of essential parts such as the preprocessor section, the main function containing declaration, initialization, input processing, and output return components. Each part plays a crucial role in the overall functionality of the program as explained in the detailed breakdown provided.
Download Presentation
Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
E N D
Presentation Transcript
7. C PROGRAM STRUCTURE
1. STRUCTURE OF A C PROGRAM Any C Program consists of the following parts: Preprocessor part Main function. This consists of the following: The declaration part The Initialization part The Input Processing (Assignment, if/switch, calculations, or any other C statements that will be covered later) The Output Return (0) command This is shown in the diagram of the next slide. Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 2 2
1. STRUCTURE OF A C PROGRAM - SUMMARIZED Preprocessor part (#include, #define) Main function int main (void) { // declaration part // initialization part // input part // processing // output Return (0); } // end of main function Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 3 3
1.1 DECLARATION PART Preprocessor part (#include, #define) Main function int main (void) { // declaration part int number1, number2, number3; char gender; double salary; // initialization part // input part // processing // output Return (0); } // end of main function Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 4 4
1.2 INITIALIZATION PART Preprocessor part (#include, #define) Main function int main (void) { // declaration part // initialization part total = 0; // previously declared double product = 1.0; // undeclared charname[20] = xxxxxxxxxxxxxxxx ; //undeclared // input part // processing // output Return (0); } // end of main function Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 5 5
1.3 INPUT PART Preprocessor part (#include, #define) Main function int main (void) { // declaration part // initialization part // input part printf ( Enter the values of three integers\n ); scanf ( %d%d%d , &number1, &number2, &number3); // processing // output Return (0); } // end of main function Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 6 6
1.4 PROCESSING PART Preprocessor part (#include, #define) Main function int main (void) { // declaration part // initialization part // input part // processing total = number1 + number2 + number3; // output Return (0); } // end of main function Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 7 7
1.4 PROCESSING PART (2) Preprocessor part (#include, #define) Main function int main (void) { // declaration part // initialization part // input part // processing total = total + number1; product = product * number2; // output Return (0); } // end of main function Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 8 8
1.4 PROCESSING PART (3) Preprocessor part (#include, #define) Main function int main (void) { // declaration part // initialization part // input part // processing if (total == 0) total = total + number1; else product = product * number1; // output Return (0); } // end of main function Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 9 9
1.5 OUTPUT PART Preprocessor part (#include, #define) Main function int main (void) { // declaration part // initialization part // input part // processing // output printf ( Final Results are: ); printf ( Total = %d, Product = %f , total, product); Return (0); } // end of main function Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 10 10
2. EXAMPLE (1) Write a complete program that calculates the average of three integer numbers. I Input? nput? number1 number2 number3 T Type? ype? integer integer integer value? value? Through scanf Through scanf Through scanf Output? Output? average T Type? ype? double double value? value? To To be be calculated calculated // declaration part int number1, number2, number3; double average; // input part printf ( Enter the values of the three integers: \n ); scanf ( %d%d%d , &number1, &number2, &number3); Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 11 11
2. EXAMPLE (1) CONTD Write a complete program that calculates the average of three integer numbers. int main (void) { #include <stdio.h> // declaration part int number1, number2, number3; double average; // input part printf ( Enter the values of the three integers: \n ); scanf ( %d%d%d , &number1, &number2, &number3); // processing part average = (number1 + number2 + number3) /3.0; // output part printf ( The average equals %f , average); return (0); Dr. Soha S. Zaghloul } // end of main Dr. Soha S. Zaghloul 12 12
2. EXAMPLE (2) Write a complete program to select an operation based on the value of inventory. Increment total_paper by paper_order if inventory is B or C ; increment total_ribbon by ribbon_order if inventory is E , F , or D ; increment total_label by label_order if inventory is A or X . Do nothing if inventory is M . Display an error message if the value of inventory is not one of these eight letters. input? input? inventory paper_order ribbon_order label_order type? type? char integer integer integer value? value? Through scanf Through scanf Through scanf Through scanf // declaration part char inventory; int paper_order, ribbon_order, label_order; Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 13 13
2. EXAMPLE (2) CONTD Write a complete program to select an operation based on the value of inventory. Increment total_paper by paper_order if inventory is B or C ; increment total_ribbon by ribbon_order if inventory is E , F , or D ; increment total_label by label_order if inventory is A or X . Do nothing if inventory is M . Display an error message if the value of inventory is not one of these eight letters. { #include <stdio.h> int main (void) // declaration part char inventory; int paper_order, ribbon_order, label_order; // input part printf ( Enter inventory \n ); scanf ( %c , inventory); Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 14 14
2. EXAMPLE (2) CONTD #include <stdio.h> int main (void) { Write a complete program to select an operation based on the value of inventory. Increment total_paper by paper_order if inventory is B or C ; increment total_ribbon by ribbon_order if inventory is E , F , or D ; increment total_label by label_order if inventory is A or X . Do nothing if inventory is M . Display an error message if the value of inventory is not one of these eight letters. printf ( Enter inventory \n ); scanf ( %c , inventory); // declaration part char inventory; int paper_order, ribbon_order, label_order; // input part // iniatlization part int total_paper = 0; // processing part switch (inventory) { case B : case C : printf ( Enter amount of ordered paper \n ); scanf ( %d , &paper_order); total_paper = total_paper + paper_order; printf ( Total paper = %d , total_paper); break; Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 15 15
2. EXAMPLE (2) CONTD #include <stdio.h> int main (void) { Write a complete program to select an operation based on the value of inventory. Increment total_paper by paper_order if inventory is B or C ; increment total_ribbon by ribbon_order if inventory is E , F , or D ; increment total_label by label_order if inventory is A or X . Do nothing if inventory is M . Display an error message if the value of inventory is not one of these eight letters. printf ( Enter inventory \n ); scanf ( %c , inventory); // iniatlization part int total_paper = 0, total_ribbon = 0; // declaration part char inventory; int paper_order, ribbon_order, label_order; // input part // processing part // continuation of the switch statement case E : case F : case D : printf ( Enter amount of ordered ribbon \n ); scanf ( %d , &ribbon_order); total_ribbon = total_ribbon + paper_order; printf ( Total ribbon = %d , total_ribbon); break; Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 16 16
2. EXAMPLE (2) CONTD #include <stdio.h> int main (void) { Write a complete program to select an operation based on the value of inventory. Increment total_paper by paper_order if inventory is B or C ; increment total_ribbon by ribbon_order if inventory is E , F , or D ; increment total_label by label_order if inventory is A or X . Do nothing if inventory is M . Display an error message if the value of inventory is not one of these eight letters. printf ( Enter inventory \n ); scanf ( %c , inventory); // declaration part char inventory; int paper_order, ribbon_order, label_order; // input part // iniatlization part int total_paper = 0, total_ribbon = 0, total_label = 0; // processing part // continuation of the switch statement case A : case X : printf ( Enter amount of ordered label \n ); scanf ( %d , &label_order); total_label = total_label + label_order; printf ( Total label = %d , total_label); break; Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 17 17
2. EXAMPLE (2) CONTD #include <stdio.h> int main (void) { Write a complete program to select an operation based on the value of inventory. Increment total_paper by paper_order if inventory is B or C ; increment total_ribbon by ribbon_order if inventory is E , F , or D ; increment total_label by label_order if inventory is A or X . Do nothing if inventory is M . Display an error message if the value of inventory is not one of these eight letters. scanf ( %c , inventory); // declaration part char inventory; int paper_order, ribbon_order, label_order; // input part printf ( Enter inventory \n ); // iniatlization part int total_paper = 0, total_ribbon = 0,total_label = 0; // processing part // continuation of the switch statement case M : break; default: printf ( Invalid input \n ); //invalid inventory value break; } // end of switch statement return (0); Dr. Soha S. Zaghloul } //end of main Dr. Soha S. Zaghloul 18 18
2. EXAMPLE (2) CONTD // processing part // Using if statement if (inventory == B ) || (inventory == C ) { printf ( Enter amount of ordered paper \n ); scanf ( %d , &paper_order); total_paper = total_paper + paper_order; printf ( Total paper = %d , total_paper); } // (inventory == B ) || (inventory == C ) else if (inventory == E ) || (inventory == F ) || (inventory == D ) { printf ( Enter amount of ordered ribbon \n ); scanf ( %d , &ribbon_order); total_ribbon = total_ribbon + paper_order; printf ( Total ribbon = %d , total_ribbon); } // (inventory == E ) || (inventory == F ) || (inventory == D ) else if (inventory == A ) || (inventory == X) { printf ( Enter amount of ordered label \n ); scanf ( %d , &label_order); total_label = total_label + label_order; printf ( Total label = %d , total_label); } // (inventory == A ) || (inventory == X) else if (inventory != M ) // what if (inventory == M)? printf ( Invalid Input \n ) Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 19 19
2. EXAMPLE (3) The table below shows the normal boiling points of several substances. Write a program that prompts the user for the observed boiling point of a substance in C. The program then identifies the substance if the observed boiling point is within 5% (more or less) of the expected boiling point. If the data input is more than 5% higher or lower than any of the boiling points in the table, the program should output the message Substanceunknown . Substance Expected Boiling Point ( C) Water 100 Mercury 357 Copper 1187 Silver 2193 Gold 2660 Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 20 20
2. EXAMPLE (3) The table below shows the normal boiling points of several substances. Write a program that prompts the user for the observed boiling point of a substance in C. The program then identifies the substance if the observed boiling point is within 5% (more or less) of the expected boiling point. If the data input is more than 5% higher or lower than any of the boiling points in the table, the program should output the message Substanceunknown . Substance Expected Boiling Point ( C) Water 100 Mercury 357 Copper 1187 Silver 2193 Gold 2660 Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 21 21
2. EXAMPLE (3) I Input? nput? observed T Type? ype? double value? value? Through scanf Output? Output? substance T Type? ype? string string value? value? To To be be calculated calculated #include <stdio.h> int main (void) { // declaration part int observed; char substance[20]; // input part printf ( Enter the observed boiling point: \n ); scanf ( %d , &observed); return (0); Dr. Soha S. Zaghloul } // end of main Dr. Soha S. Zaghloul 22 22
2. EXAMPLE (3) The table below shows the normal boiling points of several substances. Write a program that prompts the user for the observed boiling point of a substance in C. The program then identifies the substance if the observed boiling point is within 5% (more or less) of the expected boiling point. If the data input is more than 5% higher or lower than any of the boiling points in the table, the program should output the message Substanceunknown . Substance Expected Boiling Point ( C) Water 100 Mercury 357 Copper 1187 Silver 2193 Gold 2660 water_plus5 = (100 * 0.05) + 100; water_minus5 = (100 * 0.05) 100; if (observed >= water_minus5) && (observed <= water_plus5) strcopy (substance, water ); Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 23 23
2. EXAMPLE (3) The table below shows the normal boiling points of several substances. Write a program that prompts the user for the observed boiling point of a substance in C. The program then identifies the substance if the observed boiling point is within 5% (more or less) of the expected boiling point. If the data input is more than 5% higher or lower than any of the boiling points in the table, the program should output the message Substanceunknown . Substance Expected Boiling Point ( C) Water 100 Mercury 357 Copper 1187 Silver 2193 Gold 2660 in the same way, calculate: mercury_plus5, mercury_minus5, copper_plus5, copper_minus5, silver_plus5, silver_minus5, gold_plus5, gold_minus5 Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 24 24
2. EXAMPLE (3) The table below shows the normal boiling points of several substances. Write a program that prompts the user for the observed boiling point of a substance in C. The program then identifies the substance if the observed boiling point is within 5% (more or less) of the expected boiling point. If the data input is more than 5% higher or lower than any of the boiling points in the table, the program should output the message Substanceunknown . Substance Expected Boiling Point ( C) Water 100 Mercury 357 Copper 1187 Silver 2193 Gold 2660 Don t forget to declare your variables!!! Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 25 25
2. EXAMPLE (3) The table below shows the normal boiling points of several substances. Write a program that prompts the user for the observed boiling point of a substance in C. The program then identifies the substance if the observed boiling point is within 5% (more or less) of the expected boiling point. If the data input is more than 5% higher or lower than any of the boiling points in the table, the program should output the message Substanceunknown . Substance Expected Boiling Point ( C) Water 100 Mercury 357 Copper 1187 Silver 2193 Gold 2660 Complete the if statement and conclude your program Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 26 26
2. EXAMPLE (4) Write a program that calculates and prints the bill for Riyadh s power consumption. The rates vary depending on whether the user is residential, commercial, or industrial. A code of R corresponds to a Residential, C corresponds to a Commercial, and I to Industrial. Any other code should be treated as an error. The program should read the power consumption rate in KWH (Kilowatt per Hour); then it calculates the due amount according to the following: The rate is SAR 5 per KWH for Residential, SAR 10 per KWH for Commercial and SAR 20 per KWH for Industrial. Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 27 27
2. EXAMPLE (4) INPUT Write a program that calculates and prints the bill for Riyadh s power consumption. The rates vary depending on whether the user is residential, commercial, or industrial. A code of R corresponds to a Residential, C corresponds to a Commercial, and I to Industrial. Any other code should be treated as an error. The program should read the power consumption rate in KWH (Kilowatt per Hour); then it calculates the due amount according to the following: The rate is SAR 5 per KWH for Residential, SAR 10 per KWH for Commercial and SAR 20 per KWH for Industrial. Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 28 28
2. EXAMPLE (4) INPUT Write a program that calculates and prints the bill for Riyadh s power consumption. The rates vary depending on whether the user is residential, commercial, or industrial. A code of R corresponds to a Residential, C corresponds to a Commercial, and I to Industrial. Any other code should be treated as an error. The program should read the power consumption rate in KWH (Kilowatt per Hour); then it calculates the due amount according to the following: The rate is SAR 5 per KWH for Residential, SAR 10 per KWH for Commercial and SAR 20 per KWH for Industrial. Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 29 29
2. EXAMPLE (4) OUTPUT Write a program that calculates and prints the bill for Riyadh s power consumption. The rates vary depending on whether the user is residential, commercial, or industrial. A code of R corresponds to a Residential, C corresponds to a Commercial, and I to Industrial. Any other code should be treated as an error. The program should read the power consumption rate in KWH (Kilowatt per Hour); then it calculates the due amount according to the following: The rate is SAR 5 per KWH for Residential, SAR 10 per KWH for Commercial and SAR 20 per KWH for Industrial. Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 30 30
2. EXAMPLE (4) PROCESSING Write a program that calculates and prints the bill for Riyadh s power consumption. The rates vary depending on whether the user is residential, commercial, or industrial. A code of R corresponds to a Residential, C corresponds to a Commercial, and I to Industrial. Any other code should be treated as an error. The program should read the power consumption rate in KWH (Kilowatt per Hour); then it calculates the due amount according to the following: The rate is SAR 5 per KWH for Residential, SAR 10 per KWH for Commercial and SAR 20 per KWH for Industrial. Dr. Soha S. Zaghloul Dr. Soha S. Zaghloul 31 31