Presentation is loading. Please wait.

Presentation is loading. Please wait.

Overview of Computers and C Programming

Similar presentations


Presentation on theme: "Overview of Computers and C Programming"— Presentation transcript:

1 Overview of Computers and C Programming
Review Ch 1~2 Overview of Computers and C Programming Dr. J.-Y. Pan Dept. Comm. Eng. Nat. Chung Cheng Univ.

2 Outline Von Neumann architecture Computer languages
Software developing method Applying the method Case study: CONVERTING MILES TO KILOMETERS

3 Figure 1.3 Components of a Computer

4 Memory Memory cell Address Contents Stored program concept
an individual storage location Address relative position in memory Contents the data stored in a memory cell Stored program concept an ability to store program instructions in main memory for execution We can change the computer’s operation by storing a different program in memory

5 Figure 1.4 1000 Memory Cells in Main Memory

6 Von Neumann architecture a definition from http://computing-dictionary
Has a random-access memory (RAM) which means that each successive operation can read or write any memory location, independent of the previous access. Has a central processing unit (CPU) The CPU has a set of registers and a set of built-in operations (its instruction set). The CPU can interpret the contents of memory either as instructions or as data according to the fetch-execute cycle.

7 Central Processing Unit
Retrieves each instruction in sequence (called fetching an instruction) Interprets the instruction to determine what should be done and then retrieves any data needed to carry out that instruction Performs the actual manipulation, or processing, of the data it retrieved Store the results in main memory

8 Hence, write in High-level languages
Computer languages Software developers rarely write in the language directly understood by a computer The machine language is a collection of binary numbers, not easy to understand by human It is not standardized, different for different CPU Hence, write in High-level languages That combine algebraic expressions and symbols taken from English Computers do NOT understand it… Translation… By a compiler

9 Figure 1.12 Entering, Translating, and Running a High-Level Language Program
記得,要常常存檔 The loader must copy all its instructions into memory and direct the CPU to begin execution with the first instruction.

10 Figure 1.13 Flow of Information During Program Execution
As the program executes, it takes input data from one or more sources and sends results to output and/or secondary storage devices. Although the instructions normally are executed in sequence, it is possible to have the CPU skip over some instructions or execute some instructions more than once.

11 Software development method
Specify the problem requirements State the problem clearly and gain a clear understanding of what is required for its solutions Analyze the problem Identify the problem Input/Output/Extra_requirements Design the algorithm to solve the problem Develop a list of steps (called algorithm) to solve it Implement the algorithm Convert each algorithm step into statements in C Test and verify the completed program Maintain and update the program Modify a program to remove previously undetected errors and to keep it up-to-date

12 1.5 APPLYING THE SOFTWARE DEVELOPMENT METHOD
CASE STUDY CONVERTING MILES TO KILOMETERS

13 Problem (Specify the problem requirements)
Your summer surveying job requires you to study some maps that gives distances in kilometers and some use miles. You and your coworkers prefer to deal in metric measurements. Write a program that performs the necessary conversion. Analysis (Analyze the problem) Purpose : Conversion from miles to kilometers. To solve this problem, you need to know the relationship between miles and kilometers. Data Requirements Problem input :miles /* The distances in miles */ Problem output:kms /* The distances in kilometers */ Relevant Formula : 1 mile = kilometers

14 Design (Design the algorithm to solve the problem)
Get the distance in miles Convert the distance to kilometers Display the distance in kilometers Algorithm with refinements 2.1 The distance in kilometers is times the distance in miles Implementation (Figure 1.14) (talks in Ch3) Testing

15 Figure 1.14 Miles-to-Kilometers Conversion Program
Step 1 Step 2 Step 3

16 Question? A good question deserve a good grade…

17 Outline (Part 2) C language elements A running program, what happens?
Syntax and semantics Input and output Arithmetic operators Program-Controlled Input and Output Files

18 Figure 2.1 C Language Elements in Miles-to-Kilometers Conversion Program

19 Preprocessor directives
2.1 C Language Elements Preprocessor a system program that modifies the text of a C program before it is compiled Preprocessor directives commands that provides instructions to the C preprocessor Library a collection of useful functions and symbols that may be accessed by a program each library has a standard header file

20 Preprocessor Directives(1/2)
#include gives a program access to a library <stdio.h> standard header file include printf 、 scanf #include <stdio.h> notify the preprocessor that some names used in the program are found in <stdio.h>

21 Part 2: Executable statements
Function Main(1/2) Contains two parts Part 1: Declarations the part of a program that tells the compiler the names of memory cells in a program Part 2: Executable statements program lines that are converted to machine language instructions and executed by the computer

22 Function Main (2/2) Syntax: int main(void) { /* function body */ printf(“Hello world\n”); return(0); }

23 Reserved Words A word that has special meaning in C Appendix E  背起來
int main function returns an integer value void main function receives no data from the operating system double the memory cells store real numbers return control from the main function to the operating system Appendix E  背起來

24 A word having special meaning but one that a programmer may redefine
Standard Identifiers A word having special meaning but one that a programmer may redefine In Figure 2.1, the standard identifiers printf and scanf are names of operations defines in the standard input/output library. Appendix B shows ANSI C standard libraries P.800~801, stdio.h所列之functions P.799, math.h所列之functions P.802, string.h所列之functions (教到字串時請自學) 自行參考其功用,大略記一下

25 User-Define Identifiers
Syntax rules An identifier must consist only of letters, digits, and underscores An identifier cannot begin with a digit A C reserved word cannot be used as an identifier An identifier defined in a C standard library should not be redefined 大小寫不一樣 Rate, rate, RATE Wildly adopted in industry uses all uppercase letters in the names of constant macros

26 Programs in memory Figure 2
Programs in memory Figure 2.2 Memory(a) Before and (b) After Execution of a Program

27 Assignment Statement Figure 2.3 Effect of kms = KMS_PER_MILE * miles;

28 Output operation: The printf function Syntax Display for Function Call
printf(format string, print list); printf(format string); Examples: printf(“I am %d years old, and my gpa is %f\n”, age, gpa); printf(“Enter the object mass in grams> ”);

29 Formatting Numbers in Program Output
Field width the number of columns used to display a value Value Format Displayed Output 234 %4d ▓234 -234 %5d ▓▓234 ▓-234 %6d ▓▓▓234 ▓▓-234 %1d %2d

30 Formatting Values of Type double
Displayed Output %5.2f ▓3.14 %4.2f 3.14 %3.2f %5.1f ▓▓ 3.1 %5.3f 3.142 %8.5f .1234 0.12 -.006 -0.01 %8.3f ▓▓ %.3f -0.006 %.4f

31 Input operation: The scanf Functon
scanf(“%lf”, &miles); (Figure 2.5) scanf(“%c%c%c”, &letter_1, &letter_2, &letter_3); (Figure 2.6) & The C address-off operator Tell the scanf function where to find each variable into which it is to store a new value Beware the difference between SCANF and PRINTF in input arguments

32 Figure 2.5 Effect of scanf("%lf", &miles);

33 Arithmetic operators, Appendix C, 背優先權
Category  Operator  Associativity  Postfix  () [] ->   Left to right  Unary  + - ! ~ (type) * & sizeof   Right to left  Multiplicative   * / %  Additive   + -  Shift   << >>  Relational   < <= > >=  Equality   == !=  Bitwise AND  Bitwise XOR  Bitwise OR  Logical AND  &&  Logical OR  ||  Conditional  ?:  Assignment  = += -= *= /= %= >>= <<= &= ^= |=  Comma 

34 Type Conversion through Casts
type cast converting an expression to a different type by writing the desired type in parentheses in front of the expression Table 2.9 (Page 63, 課本有錯) Application Example Avoiding integer division Average = (double)total_score / (double)num_students; Rounding a number Rounded_x = (int)(x + 0.5)

35 Program-Controlled Input and Output Files
declare a file pointer variable FILE *inp , /* pointer to input file */ *outp ; /* pointer to output file */ the calls to function fopen inp = fopen(“b:distance.dat”, “r” ) ; outp = fopen(“b:distance.out”, “w”) ; use of the functions fscanf(inp, “%lf”, &miles); fprintf(outp, “The distance in miles is %.2f. \n”, miles); end of use fclose(inp); fclose(outp);

36 Figure 2.14 Miles-to-Kilometers Conversion Program with Named Files


Download ppt "Overview of Computers and C Programming"

Similar presentations


Ads by Google