Chapter 1 PROGRAMMING PRINCIPLES 1 Introduction Problems with large programs 2. The Game of Life a continuing example 3. Programming style 4. Coding, Testing and Further Refinement 5. Program Maintenance
Chapter 1 PROGRAMMING PRINCIPLES 1. Introduction : Problems with large programs 2.The Game of Life (a continuing example) 3. Programming style 4. Coding, Testing ,and Further Refinement 5. Program Maintenance
6. Preview a software engineering b) Problem analysis c) Requirements Specification (d)coding I7 Pointers and Pitfalls 8. References
6. Preview (a) Software Engineering (b) Problem Analysis (c) Requirements Specification (d) Coding 7. Pointers and Pitfalls 8. References
1.1 Introduction Problems of Large Programs 1. The patchwork approach 2. Problem specification 3. Program organization 4. Data organization and data structures 5. Algorithm selection and analysis 6. Debugging 7. Testing and verification 8. Maintenance
Problems of Large Programs 1. The patchwork approach 2. Problem specification 3. Program organization 4. Data organization and data structures 5. Algorithm selection and analysis 6. Debugging 7. Testing and verification 8. Maintenance 1.1 Introduction
9. Highlights of c++ (a)Data abstraction (b)Object-oriented design (c)Reusable code (d) Refinement, improvement, extension of c
9. Highlights of C++ (a) Data abstraction (b) Object-oriented design (c) Reusable code (d) Refinement, improvement, extension of C
1.2 The Game of life Rules for the game of life 1. The neighbors of a given cell are the eight cells that touch it vertically, horizontally, or diagonally. Every cell is either living or dead. 2. a living cell stays alive in the next generation if it has either 2 or 3 living neighbors; it dies if it has O, 1, 4, or more living neighbors
Rules for the Game of Life 1. The neighbors of a given cell are the eight cells that touch it vertically, horizontally, or diagonally. Every cell is either living or dead. 2. A living cell stays alive in the next generation if it has either 2 or 3 living neighbors; it dies if it has 0, 1, 4, or more living neighbors. 1.2 The Game of life
3. a dead cell becomes alive in the next generation if it has exactly three neighboring cells, no more or fewer, that are already alive. All other dead cells remain dead in the next generation 4. All births and deaths take place at exactly the same time, so that a dying cell can help to give birth to another, but cannot prevent the death of others by reducing overcrowding, nor can cells being born either preserve or kill cells living in the previous generation
3. A dead cell becomes alive in the next generation if it has exactly three neighboring cells, no more or fewer, that are already alive. All other dead cells remain dead in the next generation. 4. All births and deaths take place at exactly the same time, so that a dying cell can help to give birth to another, but cannot prevent the death of others by reducing overcrowding, nor can cells being born either preserve or kill cells living in the previous generation
Life: Examples and outline 000 00000 122 0111 122 00000 0000 Life: moribund examples
Life: Examples and Outline Life: moribund examples
0 0 000000 2 2 2 023320 023320 2 000000 0 Life: stability examples
Life: stability examples
0000|0 0 next 1232 generation 230 00000 1232 2 1232 0 12 21 00 00 00 Life: alternation examples
next generation Life: alternation examples
Set up a life configuration as an initial arrangement of living and dead cells While the user wants to see further generations: Update the configuration by applying the rules of the life game. Print the current configuration
Set up a Life configuration as an initial arrangement of living and dead cells. While the user wants to see further generations: Update the configuration by applying the rules of the Life game. Print the current configuration