Programming C - Lecture 1: Introduction to Computers and Programming

pdf 36 trang Gia Huy 17/05/2022 2050
Bạn đang xem 20 trang mẫu của tài liệu "Programming C - Lecture 1: Introduction to Computers and Programming", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfprogramming_c_lecture_1_introduction_to_computers_and_progra.pdf

Nội dung text: Programming C - Lecture 1: Introduction to Computers and Programming

  1. Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering Chapter 1: Introduction to Computers and Programming Introduction to Computer Programming (C language) TS. Võ Thị Ngọc Châu (chauvtn@cse.hcmut.edu.vn, chauvtn@hcmut.edu.vn) 2017 – 2018, Semester 2
  2. Course Content C.1. Introduction to Computers and Programming C.2. C Program Structure and its Components C.3. Variables and Basic Data Types C.4. Selection Statements C.5. Repetition Statements C.6. Functions C.7. Arrays C.8. Pointers C.9. File Processing 2
  3. References [1] “C: How to Program”, 7th Ed. – Paul Deitel and Harvey Deitel, Prentice Hall, 2012. [2] “The C Programming Language”, 2nd Ed. – Brian W. Kernighan and Dennis M. Ritchie, Prentice Hall, 1988 and others, especially those on the Internet 3
  4. Content Introduction Computer Organization Programming Languages Programming Tasks Data and Algorithms Summary 4
  5. Introduction Computer Programming  Computer a device that can perform computations and make logical decisions billions of times faster than human beings can  Programming The act of writing the programs executable on the computers to produce intended results  Program A sequence of instructions written in a programming language to perform a specified task by the computer 5
  6. Introduction Programs and Computers Programming their Results 6
  7. Computer Organization Hardware: physical components of computer (including peripherals)  the keyboard, screen, mouse, hard disk, memory, DVDs and processing units, Software: a set of machine-readable instructions that directs a computer's processor to perform specific operations [Wikipedia]  Application softwares  Operating system  System softwares 7
  8. Computer Organization - Hardware Computer Architecture ALU = Arithmetic/logic gate unit: performing arithmetic and logic operations on data 8
  9. Computer Organization – Software 9
  10. Programming Languages Programming language: a formal language for writing a computer program as a sequence of instructions  C, C++, C#, Java, PHP, Python, Three general types  Machine languages  Assembly languages  High-level languages Providing a sequence of instructions that directly understandable by computers or requiring some intermediate translation steps 10
  11. Programming Languages – Machine Languages First-generation language: strings of numbers (ultimately reduced to 1s and 0s) that instruct computers to perform their most elementary operations one at a time  Directly understandable by computers  Machine-dependent For example, instructions for adding overtime pay to base pay and then storing the result in gross pay 11
  12. Programming Languages – Assembly Languages Second-generation language: a low-level language used to interface with computer hardware using English-like abbreviations to represent elementary operations  Less understandable by computers  Need for translation steps to convert an assembly language program to machine codes Translator = Assembler For example, instructions for adding overtime pay to base pay and then storing the result in gross pay 12
  13. Programming Languages – High-level Languages Third-generation language: written instructions that look almost like everyday English and contain commonly used mathematical notations  Less understandable by computers  Translator program is called compiler.  The C language is a high-level language that needs a compiler.  Scripting languages such as PHP and Perl need an interpreter. For example, instructions for adding overtime pay to base pay and then storing the result in gross pay: grosspay = basepay + overpay. 13
  14. Programming Languages – High-level Languages Program File Compiler Binary File CPU Result C, C++, Java, Program File Interpreter CPU Result PHP, Perl, A history of computer programming languages – Wikipedia Graph of programming language history – www.levenez 14
  15. Programming Languages – The C language Evolved from B by Dennis Ritchie at Bell Laboratories and originally implemented on a DEC PDP-11 computer in 1972 Using many of the important concepts of BCPL and B while adding data typing and other powerful features Used for many important application trends  Developing new major operating systems: UNIX, Linux, Android,  Developing programs in the embedded systems in cars, medical machines, 15
  16. Programming Languages – The C language Ken Thompson (left) with Dennis Ritchie (right, the inventor of the C programming language) [Wikipedia] The development of the C language  Dennis M. Ritchie Full history of the C language  Wikipedia 16
  17. Programming Tasks Design of Library Library program (Header: *.h) (Object code: *.lib; *.dll; *.so) Editor Preprocessor Compiler Linker Executable Program Source code Enhanced source code Object code *.h + *.c *.h + *.c (*.cpp) *.obj (*.cpp) gcc; g++ Integrated Development Environment (IDE): Visual Studio; Eclipse; Qt Creator; Code block; Online tool; etc 17
  18. Programming Tasks Editor: supports text editing feature for writing source code Preprocessor: preprocesses the source code with replacing macro, inserting library files *.h, Compiler: translates the source code into target machine language Linker: links the object code to other library files 18
  19. Data and Algorithms – Concepts Program = A Sequence of Instructions Written in a Programming Language to Perform a Specified Task by the Computer = Data and their Structures + Algorithms Input/Output/ Process Example 1: instructions for adding overtime pay to base pay and then storing the result in gross pay: grosspay = basepay + overpay. Example 2: given n positive numbers, find the smallest one. 19
  20. Data and Algorithms – Data Atomic data: int, double, char, Non-atomic data: array, struct, enum, A strong relationship between the data structures and the operations on the data in the corresponding structures Example 1: instructions for adding overtime pay to base pay and then storing the result in gross pay: grosspay = basepay + overpay. - Input Data: basepay and overpay are positive real numbers (double). - Output Data: grosspay is also a positive real number (double). Example 2: given n positive numbers, find the smallest one. - Input Data: n positive real numbers are treated individually OR as a collection (double) - Output Data: minNumber is a positive real number (double). 20
  21. Data and Algorithms – Algorithms Algorithm = a sequence of unambiguous instructions for solving a problem, i.e. for obtaining a required output for any legitimate input in a finite amount of time  Anany Levitin, Introduction to the Design and Analysis of Algorithms, 2nd Edition, Addison Wesley, 2007 Algorithm representation  Pseudo code  Flowchart  Real code in a high-level programming language 21
  22. Data and Algorithms – Algorithms Example 2: given n positive numbers, find the smallest one. Task solution:  1. Suppose that the first number is the smallest one (current one).  2. Check if the current smallest one is a real one as compared to the next number. If yes then compared to the next number of the next one like step 2 till all numbers are checked. Otherwise, . update the smallest one with the smaller one . And then move next to check with the next number of the next number like step 2 till all numbers are checked. 22
  23. Data and Algorithms – Algorithms – Pseudo Code Header  Algorithm name Header  Input data and their data types  Task purpose Body  Pre-conditions  Post-conditions  Output data and their data types Body  (Numbered) (control) statements  Comments 23
  24. Data and Algorithms – Algorithms – Pseudo Code Algorithm findMinNumber Example - Input: positiveNumber[n] which is an array of n positive double values - Output: minNumber which is the smallest one whose type is double 2: given - Purpose: find the smallest number in a collection - Precondition: n data inputs are positive. n positive Begin Algorithm Check positiveNumber[n] contains only positive values numbers, minNumber = positiveNumber[1] iteration = 2 find the While (iteration <= n) smallest Begin While If (minNumber <= positiveNumber[iteration]) Then one. iteration = iteration + 1 Else Begin minNumber = positiveNumber[iteration] iteration = iteration + 1 End End While 24 End Algorithm
  25. Data and Algorithms – Algorithms – Flowchart Symbols used for drawing a flowchart 25
  26. Data and Algorithms – Algorithms - Flowchart Terminal: starting point or end point Input/Output: input data/output data of the algorithm Flow line: shows a control flow of the algorithm. Execution follows this part. Decision: allows a condition (expressed as a boolean expression) to be checked Process: data processing block 26
  27. Data and Algorithms – Algorithms - Flowchart Predefined process: an existing data processing block On-page connector: a gathering point of the flow lines in a flowchart Off-page connector: a gathering point of the flow lines from another page Preparation: preparation steps, setting for initial conditions Annotation: comments 27
  28. Data and Algorithms – Algorithms - Flowchart false true if Statement 28
  29. Data and Algorithms – Algorithms - Flowchart false true if-else Statement 29
  30. Data and Algorithms – Algorithms - Flowchart false false false true true true switch-case Statement 30
  31. Data and Algorithms – Algorithms - Flowchart false true Modification> for Statement 31
  32. Data and Algorithms – Algorithms - Flowchart false true true false while Statement do while Statement 32
  33. Flowchart vs. Pseudo Code? Example 2: minNumber = How to add the checking positiveNumber[1] given n of n positive numbers? positive iteration = 2 numbers, false iteration <= n find the smallest true minNumber<= true one. iteration = positiveNumber[iteration] iteration + 1 false minNumber = positiveNumber[iteration] 33
  34. Data and Algorithms – Algorithms – Real code in C void main() { double positiveNumber[10] = {2, 1, 3, 10, 8, 3, 4, 5, 9, 12}; int n = 10; How to add the checking double minNumber = positiveNumber[0]; of n positive numbers? int iteration = 1; while (iteration < n) { if (minNumber <= positiveNumber[iteration]) iteration = iteration + 1; else { minNumber = positiveNumber[iteration]; iteration = iteration + 1; } } } Pseudo Code vs. Flowchart vs. Real Code in C? 34
  35. Summary Concepts related to computer programming Short introduction to computers, programs, programming, and programming languages Short introduction to the C language Preparation for computer programming  Programming tasks  Data and basic data types  Algorithms and their representations 35
  36. Chapter 1: Introduction to Computers and Programming 36