- Broschiertes Buch
- Merkliste
- Auf die Merkliste
- Bewerten Bewerten
- Teilen
- Produkt teilen
- Produkterinnerung
- Produkterinnerung
The aim of this book is to teach mathematics students how to program using their knowledge of mathematics. For this they require only to know how to construct a proof. The entire book's emphasis is on "how to think" when programming. Three methods for constructing an algorithm or a program are used: a) manipulation and enrichment of existing code; b) use of recurrent sequences; c) deferral of code writing, in order to deal with one difficulty at a time. Many theorems are mathematically proved and programmed. The last chapter explains how a compiler works and shows how to compile "by hand"…mehr
The aim of this book is to teach mathematics students how to program using their knowledge of mathematics. For this they require only to know how to construct a proof. The entire book's emphasis is on "how to think" when programming. Three methods for constructing an algorithm or a program are used: a) manipulation and enrichment of existing code; b) use of recurrent sequences; c) deferral of code writing, in order to deal with one difficulty at a time. Many theorems are mathematically proved and programmed. The last chapter explains how a compiler works and shows how to compile "by hand" little (but not trivial--even recursive) programs. The book is intended for anyone who thinks mathematically and wants to program and play with mathematics. TOC:Programming Proverbs.- Review of Arithmetic.- An Algorithmic Description Language.- How to Create an Algorithm.- Algorithms and Classical Constructions.- The Pascal Language.- How to Write a Program.- The Integers.- The Comlex Numbers.- Polynomials.- Matrices.- Recursion.- Elements of Compiler Theory.
Produktdetails
- Produktdetails
- Universitext
- Verlag: Springer / Springer Berlin Heidelberg / Springer, Berlin
- 1999.
- Seitenzahl: 432
- Englisch
- Abmessung: 236mm x 156mm x 26mm
- Gewicht: 672g
- ISBN-13: 9783540664222
- ISBN-10: 354066422X
- Artikelnr.: 08540307
- Universitext
- Verlag: Springer / Springer Berlin Heidelberg / Springer, Berlin
- 1999.
- Seitenzahl: 432
- Englisch
- Abmessung: 236mm x 156mm x 26mm
- Gewicht: 672g
- ISBN-13: 9783540664222
- ISBN-10: 354066422X
- Artikelnr.: 08540307
1. Programming Proverbs.- 1.1. Above all, no tricks!.- 1.2. Do not chewing gum while climbing stairs.- 1.3. Name that which you still don't know.- 1.4. Tomorrow, things will be better; the day after, better still.- 1.5. Never execute an order before it is given.- 1.6. Document today to avoid tears tomorrow.- 1.7. Descartes' Discourse on the Method.- 2. Review of Arithmetic.- 2.1. Euclidean Division.- 2.2. Numeration Systems.- 2.3. Prime Numbers.- 2.3.1. The number of primes smaller than a given real number.- 2.4. The Greatest Common Divisor.- 2.4.1. The Bezout Theorem.- 2.4.2. Gauss's Lemma.- 2.5. Congruences.- 2.6. The Chinese Remainder Theorem.- 2.7. The Euler phi Function.- 2.8. The Theorems of Fermat and Euler.- 2.9. Wilson's Theorem.- 2.10. Quadratic Residues.- 2.11. Prime Number and Sum of Two Squares.- 2.12. The Moebius Function.- 2.13. The Fibonacci Numbers.- 2.14. Reasoning by Induction.- 2.15. Solutions of the Exercises.- 3. An Algorithmic Description Language.- 3.1. Identifiers.- 3.2. Arithmetic Expressions.- 3.2.1. Numbers.- 3.2.2. Operations.- 3.2.3. Arrays.- 3.2.4. Function calls and parentheses.- 3.3. Boolean Expressions.- 3.4. Statements and their Syntax.- 3.4.1. Assignments.- 3.4.2. Conditionals.- 3.4.3. For loops.- 3.4.4. While loops.- 3.4.5. Repeat loops.- 3.4.6. Sequences of statements.- 3.4.7. Blocks of statements.- 3.4.8. Complex statements.- 3.4.9. Layout on page and control of syntax.- 3.4.10. To what does the else belong?.- 3.4.11. Semicolons: some classical errors.- 3.5. The Semantics of Statements.- 3.5.1. Assignments.- 3.5.2. Conditionals.- 3.5.3. First translations.- 3.5.4. The boustrophedon order.- 3.5.5. The for loop.- 3.5.6. The while loop.- 3.5.7. The repeat loop.- 3.5.8. Embedded loops.- 3.6. Which Loop to Choose?.- 3.6.1. Choosing a for loop.- 3.6.2. Choosing a while loop.- 3.6.3. Choosing a repeat loop.- 3.6.4. Inspecting entrances and exits.- 3.6.5. Loops with accidents.- 3.6.6. Gaussian elimination.- 3.6.7. How to grab data.- 4. How to Create an Algorithm.- 4.1. The Trace of an Algorithm.- 4.2. First Method: Recycling Known Code.- 4.2.1. Postage stamps.- 4.2.2. How to determine whether a postage is realizable.- 4.2.3. Calculating the threshold value.- 4.3. Second Method: Using Sequences.- 4.3.1. Creation of a simple algorithm.- 4.3.2. The exponential series.- 4.3.3. Decomposition into prime factors.- 4.3.4. The least divisor function.- 4.3.5. Cardinality of an intersection.- 4.3.6. The CORDIC Algorithm.- 4.4. Third Method: Defered Writing.- 4.4.1. Calculating two bizarre functions.- 4.4.2. Storage of the first N prime numbers.- 4.4.3. Last recommendations.- 4.5. How to Prove an Algorithm.- 4.5.1. Crashes.- 4.5.2. Infinite loops.- 4.5.3. Calculating the GCD of two numbers.- 4.5.4. A more complicated example.- 4.5.5. The validity of a result furnished by a loop.- 4.6. Solutions of the Exercises.- 5. Algorithms and Classical Constructions.- 5.1. Exchanging the Contents of Two Variables.- 5.2. Diverse Sums.- 5.2.1. A very important convention.- 5.2.2. Double sums.- 5.2.3. Sums with exceptions.- 5.3. Searching for a Maximum.- 5.4. Solving a Triangular Cramer System.- 5.5. Rapid Calculation of Powers.- 5.6. Calculation of the Fibonacci Numbers.- 5.7. The Notion of a Stack.- 5.8. Linear Traversal of a Finite Set.- 5.9. The Lexicographic Order.- 5.9.1. Words of fixed length.- 5.9.2. Words of variable length.- 5.10. Solutions to the Exercises.- 6. The Pascal Language.- 6.1. Storage of the Usual Objects.- 6.2. Integer Arithmetic in Pascal.- 6.2.1. Storage of integers in Pascal.- 6.3. Arrays in Pascal.- 6.4. Declaration of an Array.- 6.5. Product Sets and Types.- 6.5.1. Product of equal sets.- 6.5.2. Product of unequal sets.- 6.5.3. Composite types.- 6.6. The Role of Constants.- 6.7. Litter.- 6.8. Procedures.- 6.8.1. The declarative part of a procedure.- 6.8.2. Procedure calls.- 6.8.3. Communication of a procedure with the exterior.- 6.9. Visibility of the Variables in a Procedure.- 6.10. Context
1. Programming Proverbs.- 1.1. Above all, no tricks!.- 1.2. Do not chewing gum while climbing stairs.- 1.3. Name that which you still don't know.- 1.4. Tomorrow, things will be better; the day after, better still.- 1.5. Never execute an order before it is given.- 1.6. Document today to avoid tears tomorrow.- 1.7. Descartes' Discourse on the Method.- 2. Review of Arithmetic.- 2.1. Euclidean Division.- 2.2. Numeration Systems.- 2.3. Prime Numbers.- 2.3.1. The number of primes smaller than a given real number.- 2.4. The Greatest Common Divisor.- 2.4.1. The Bezout Theorem.- 2.4.2. Gauss's Lemma.- 2.5. Congruences.- 2.6. The Chinese Remainder Theorem.- 2.7. The Euler phi Function.- 2.8. The Theorems of Fermat and Euler.- 2.9. Wilson's Theorem.- 2.10. Quadratic Residues.- 2.11. Prime Number and Sum of Two Squares.- 2.12. The Moebius Function.- 2.13. The Fibonacci Numbers.- 2.14. Reasoning by Induction.- 2.15. Solutions of the Exercises.- 3. An Algorithmic Description Language.- 3.1. Identifiers.- 3.2. Arithmetic Expressions.- 3.2.1. Numbers.- 3.2.2. Operations.- 3.2.3. Arrays.- 3.2.4. Function calls and parentheses.- 3.3. Boolean Expressions.- 3.4. Statements and their Syntax.- 3.4.1. Assignments.- 3.4.2. Conditionals.- 3.4.3. For loops.- 3.4.4. While loops.- 3.4.5. Repeat loops.- 3.4.6. Sequences of statements.- 3.4.7. Blocks of statements.- 3.4.8. Complex statements.- 3.4.9. Layout on page and control of syntax.- 3.4.10. To what does the else belong?.- 3.4.11. Semicolons: some classical errors.- 3.5. The Semantics of Statements.- 3.5.1. Assignments.- 3.5.2. Conditionals.- 3.5.3. First translations.- 3.5.4. The boustrophedon order.- 3.5.5. The for loop.- 3.5.6. The while loop.- 3.5.7. The repeat loop.- 3.5.8. Embedded loops.- 3.6. Which Loop to Choose?.- 3.6.1. Choosing a for loop.- 3.6.2. Choosing a while loop.- 3.6.3. Choosing a repeat loop.- 3.6.4. Inspecting entrances and exits.- 3.6.5. Loops with accidents.- 3.6.6. Gaussian elimination.- 3.6.7. How to grab data.- 4. How to Create an Algorithm.- 4.1. The Trace of an Algorithm.- 4.2. First Method: Recycling Known Code.- 4.2.1. Postage stamps.- 4.2.2. How to determine whether a postage is realizable.- 4.2.3. Calculating the threshold value.- 4.3. Second Method: Using Sequences.- 4.3.1. Creation of a simple algorithm.- 4.3.2. The exponential series.- 4.3.3. Decomposition into prime factors.- 4.3.4. The least divisor function.- 4.3.5. Cardinality of an intersection.- 4.3.6. The CORDIC Algorithm.- 4.4. Third Method: Defered Writing.- 4.4.1. Calculating two bizarre functions.- 4.4.2. Storage of the first N prime numbers.- 4.4.3. Last recommendations.- 4.5. How to Prove an Algorithm.- 4.5.1. Crashes.- 4.5.2. Infinite loops.- 4.5.3. Calculating the GCD of two numbers.- 4.5.4. A more complicated example.- 4.5.5. The validity of a result furnished by a loop.- 4.6. Solutions of the Exercises.- 5. Algorithms and Classical Constructions.- 5.1. Exchanging the Contents of Two Variables.- 5.2. Diverse Sums.- 5.2.1. A very important convention.- 5.2.2. Double sums.- 5.2.3. Sums with exceptions.- 5.3. Searching for a Maximum.- 5.4. Solving a Triangular Cramer System.- 5.5. Rapid Calculation of Powers.- 5.6. Calculation of the Fibonacci Numbers.- 5.7. The Notion of a Stack.- 5.8. Linear Traversal of a Finite Set.- 5.9. The Lexicographic Order.- 5.9.1. Words of fixed length.- 5.9.2. Words of variable length.- 5.10. Solutions to the Exercises.- 6. The Pascal Language.- 6.1. Storage of the Usual Objects.- 6.2. Integer Arithmetic in Pascal.- 6.2.1. Storage of integers in Pascal.- 6.3. Arrays in Pascal.- 6.4. Declaration of an Array.- 6.5. Product Sets and Types.- 6.5.1. Product of equal sets.- 6.5.2. Product of unequal sets.- 6.5.3. Composite types.- 6.6. The Role of Constants.- 6.7. Litter.- 6.8. Procedures.- 6.8.1. The declarative part of a procedure.- 6.8.2. Procedure calls.- 6.8.3. Communication of a procedure with the exterior.- 6.9. Visibility of the Variables in a Procedure.- 6.10. Context