Скачать презентацию Computers and Programming CPC The 1 st lecture Скачать презентацию Computers and Programming CPC The 1 st lecture

68d41b4357d548b672161bb0f857d4ef.ppt

  • Количество слайдов: 37

Computers and Programming CPC The 1 st lecture Jiří Šebesta • Complete sources are Computers and Programming CPC The 1 st lecture Jiří Šebesta • Complete sources are available on the Web pages: http: //www. urel. feec. vutbr. cz/~sebestaj/CPC

TOPIC 1. 2. 3. 4. Numeric systems Basic structure of the program Algorithms Variables TOPIC 1. 2. 3. 4. Numeric systems Basic structure of the program Algorithms Variables and data in C language

Numeric systems (1/3) General expression of integer number : Used systems : Numeric systems (1/3) General expression of integer number : Used systems :

Numeric systems (2/3) Used symbols are 0 – 9 and letters from alphabet for Numeric systems (2/3) Used symbols are 0 – 9 and letters from alphabet for systems with basis over 10: e. g. for hexadecimal system: A = 10 D = 13 B = 11 E = 14 C = 12 F = 15 Example for hexadecimal number expression: Hex. number 0 x 3 CF 0 represents decimal value: 3 · 4096 + 12 · 256 + 15 · 16 = 15600

Numeric systems (3/3) General expression of rational (floating point) number: - storage in memory Numeric systems (3/3) General expression of rational (floating point) number: - storage in memory (generally according to standard IEEE 754) S is sign bit (+ = 0; - = 1) E is binary value of exponent M is binary value of mantissa

Basic structure of the program (1/10) What is a computer program? Assembler = readable Basic structure of the program (1/10) What is a computer program? Assembler = readable machine code using name abbreviations derived from instruction meaning, e. g. MOV, INC, ADD, and their operands (name of register, address in memory, numerical constant… How to create a computer program?

Basic structure of the program (2/10) inserted header files (libraries) notices header of #include Basic structure of the program (2/10) inserted header files (libraries) notices header of #include // precompiled header files main #include function body of function int main(void) { char c; variable declaration calling of library functions // header of main function // body of main function // variable declaration printf("ahoj"); // printing fuct. (stdio. h) scanf("%c", &c); // wait until key pressed (stdio. h) return 0; } command for comeback from function with return value (0)

Basic structure of the program (3/10) • Application solutions in C: • CONSOLE APPLICATION Basic structure of the program (3/10) • Application solutions in C: • CONSOLE APPLICATION (independent on platform) – ANSI C • APPLICATION DEPENDENT ON PLATFORM (for given OS with utilize offered functions, for given microcontroller with utilize its peripheral) – extensive libraries, e. g. API, MFC, Active X • Integrated Development Environment IDE – complete set of tools for application creation including wizards for project setting, e. g. MS Visual Studio - open source environments, e. g. Code: : Blocks or Eclipse or Code. Lite (license is not required)

Basic structure of the program (4/10) • Code: : Blocks – our programming tool Basic structure of the program (4/10) • Code: : Blocks – our programming tool • Project new project open a previously created projects for microcontrollers AVR 8 bits ARM 32 bits console application = text output in DOS box

Basic structure of the program (5/10) • Compiler language setting Basic structure of the program (5/10) • Compiler language setting

Basic structure of the program (6/10) • Project name setting Basic structure of the program (6/10) • Project name setting

Basic structure of the program (7/10) • Kind of compiler setting GNU – open Basic structure of the program (7/10) • Kind of compiler setting GNU – open free software GCC = GNU Compiler Collection

Basic structure of the program (8/10) • Debug version vs. release version DEBUG – Basic structure of the program (8/10) • Debug version vs. release version DEBUG – excellent debugging, final code is not optimized RELEASE – final version – optimized code for distribution

Basic structure of the program (9/10) • debugging and executing of an application – Basic structure of the program (9/10) • debugging and executing of an application – menu DEBUG start of debugging, program stops at breakpoints stop of debugging (program can be in undefined cycle state) breakpoint inserting to given row (where the cursor actually is placed) Příklad: Ex 01. c stepping in program according to the source code without jumps to functions stepping in program including jumps to functions, by Step out given function can be

Basic structure of the program (10/10) • Where you can obtain Code: : Blocks Basic structure of the program (10/10) • Where you can obtain Code: : Blocks ? ?

Algorithms (1/6) • Algorithms defines a procedure of operations with data • Fundamental aspects Algorithms (1/6) • Algorithms defines a procedure of operations with data • Fundamental aspects of algorithm: Finiteness – algorithm consists of elementary steps (of procedure or process), whereas their number must be finite Inputs/outputs – algorithm has to defined unambiguous inputs and outputs (data, e. g. given structure of a file) Necessatarianism – algorithm must be punctually and clearly defined Effectiveness – algorithm must be effective and optimally used system capability (effectiveness in point of view operation time vs. occupation of operation memory or code length)

Algorithms (2/6) Versatility – algorithm has to be able to work with required data Algorithms (2/6) Versatility – algorithm has to be able to work with required data set in required range • Basic entities of algorithm: • Variables • Start of algorithm • End of algorithm • Steps of algorithm • Subroutines • Conditions (binary relations) • Decision making • Sequences • Cycles • Jumps (to use minimally)

Algorithms (3/6) Resources for algorithm definition (description): • Lexical – native form: textual (intellectual) Algorithms (3/6) Resources for algorithm definition (description): • Lexical – native form: textual (intellectual) guide, order, law – often not too exact definition, then transcription to programming language is impossible • Graphical – flowchart – transparent visualization of complex algorithms including branching by using defined flowchart symbols with description and oriented flowlines • Symbolic – algorithm description by exactly defined syntax (key word of programming language; metalanguage – generative grammar)

Algorithms (4/6) Flowchart - symbols: Algorithm start or algorithm end Common statement Conditional branching Algorithms (4/6) Flowchart - symbols: Algorithm start or algorithm end Common statement Conditional branching Cycle with defined number of repetitions Cycle with condition in the end Cycle with condition in the beginning Manual input (e. g. from keyboard) Output displaying File processing Data saving to a file Subroutine Joiner Oriented flowline

Algorithms (5/6) Flowchart - example: • Program that compute roots of any quadratic equation: Algorithms (5/6) Flowchart - example: • Program that compute roots of any quadratic equation: ax 2 + bx + c = 0 Read coefficients from keyboard. If roots are complex, print error message.

Algorithms (6/6) float a, b, printf( Algorithms (6/6) float a, b, printf("a = printf("b = printf("c = getchar(); c, y 1, y 2, r; "); scanf("%f", &a); "); scanf("%f", &b); "); scanf("%f", &c); r = b*b-4*a*c; if(r>=0) { y 1 = (-b+sqrt(fabs(r)))/(2*a); y 2 = (-b-sqrt(fabs(r)))/(2*a); printf("n 1 st root: %. 3 f", y 1); printf("n 2 nd root: %. 3 f", y 2); } else printf("n Result is not real"); Příklad: Ex 02. c

Data and variables (1/15) • Data – I (Input), – O (Output) , auxiliary Data and variables (1/15) • Data – I (Input), – O (Output) , auxiliary (used for internal results) • Data sources a targets – file (I/O – binary, text), keyboard (I), console (O), printer (O), communication port (I/O) – e. g. serial port, USB, LPT - often the functions for programming with data sources and targets are defined as functions for files • Kind of data (variables) – numerical (integer or rational), characters and strings (string is array of characters terminated by character NULL), arrays (one-dimensional = vectors, multidimensional = matrix, 3 D matrix, tensor …), pointer (reference to position in memory), structure (defined encapsulated set of variables with different types)

Data and variables (2/15) • Named place in memory with the desired size (in Data and variables (2/15) • Named place in memory with the desired size (in bytes) • GLOBAL – valid in whole program • LOCAL – valid in body of function (only) // precompiled header files #include // standard inputs and outputs int a = 5; // global variable int main(void) // main function { int b = 10; // local variable char c; printf("global: %drn ", a); printf("local: %drn ", b); scanf("%c ", &c); return 0; } Example: Ex 03. c

Data and variables (3/15) • Types of variables in ANSI C language – numeric Data and variables (3/15) • Types of variables in ANSI C language – numeric types

Data and variables (4/15) • Numeric types – fixed point for integral numbers - Data and variables (4/15) • Numeric types – fixed point for integral numbers - unsigned number - storing in memory - signed number - storing in memory

Data and variables (5/15) • Example unsigned char (8 bits) • Example signed char Data and variables (5/15) • Example unsigned char (8 bits) • Example signed char (8 bits) – standard expression

Data and variables (6/15) • Complementary code • Example for signed • One is Data and variables (6/15) • Complementary code • Example for signed • One is subtracted from absolu- char (8 bits) – complementary coded te value of coded number and negated • Simpler hardware implementation of ALU

Data and variables (7/15) • Numerical floating point types - storage in memory (generally Data and variables (7/15) • Numerical floating point types - storage in memory (generally according to IEEE 754 standard) S is sign bit E is binary value in exponent M is binary value in mantissa

Data and variables (8/15) • Numerical floating point types Float (4 bytes) Double (8 Data and variables (8/15) • Numerical floating point types Float (4 bytes) Double (8 bytes)

Data and variables (9/15) • Float (4 bytes) Data and variables (9/15) • Float (4 bytes)

Data and variables (10/15) • Double (8 bytes) Data and variables (10/15) • Double (8 bytes)

Data and variables (11/15) • Types of variables – array #include Data and variables (11/15) • Types of variables – array #include "stdio. h" int main(void) { int A[5] = {0, 1, 2, 3, 4}; int B[3][2] = {0, 1, 2, 3, 4, 5}; int i, j; char c; for( i=0; i<5; i++) printf("A[%d] = %drn", i, A[i]); B[0][0] = A[4]; for( i=0; i<3; i++) { for( j=0; j<2; j++) printf("B[%d, %d] = %drn", i, j, B[i][j]); } scanf("%c", &c); return 0; } Example: Ex 04. c

Data and variables (12/15) • String: an array of characters memory: 1 byte/character – Data and variables (12/15) • String: an array of characters memory: 1 byte/character – ASCII coding) (in • NTS (Null Terminated Strings) : the last character of string null – spec. notation v C/C++ ’’ • Array elements: pointers to characters

Data and variables (13/15) • String as an array of ASCII codes of characters Data and variables (13/15) • String as an array of ASCII codes of characters in memory:

Data and variables (14/15) • Special characters: b - backspace BS f - form Data and variables (14/15) • Special characters: b - backspace BS f - form feed FF (also clear screen) n - new line NL r - carriage return CR t - horizontal tab HT v - vertical tab (not all versions) “ - double quotes (not all versions) ' - single quote character ' \ - backslash character ddd - character ddd, where ddd is an ASCII code given in octal base xhhh - character hhh, where hhh is an ASCII code given in hexadecimal base

Data and variables (15/15) • Types of variables – pointer (= address of variable Data and variables (15/15) • Types of variables – pointer (= address of variable in memory) #include "stdio. h" int main(void) { float x = 3. 14, y = 2. 27; float* p; // address of float variable p = &x; *p = y; return 0; } Example: Ex 05. c // address of x to p // content of y on address in p

TOPICS OF THE NEXT LECTURE 1. 2. 3. 4. Expressions Arithmetic conversions Operators Statements TOPICS OF THE NEXT LECTURE 1. 2. 3. 4. Expressions Arithmetic conversions Operators Statements if-else and for THANK YOU FOR YOUR ATTENTION