![Page 1: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/1.jpg)
Arrays (Chapter 5)
• Definition• Applications• One-Dimensional
– Declaration– Initialization– Use
• Multidimensional
![Page 2: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/2.jpg)
Declaration
#define SIZE 10int main(void){ float sample[SIZE];
![Page 3: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/3.jpg)
Initialization
#define SIZE 10int main(void){ float sample[SIZE] = {5.0, 1.2, -4.6, -7.5, 8.9, -1.0, 12.7, 0.0, 6.6, 4.2};
![Page 4: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/4.jpg)
Gotchas
• First element of array is [0]• Last element of array is [n-1] (major source of bugs!)• No bounds check (MAJOR source of impossible-to-find bugs!)
![Page 5: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/5.jpg)
Amino Acids
• I like this problem, but I don't especially like the way the book does it.
• The book isn't careful enough about range errors.• We can use a table-driven approach to looking up
the atomic weights of the elements. This takes more space (bad), less time (good) than the way the book looks up the weights. Also less opportunity for bugs (very, very good).
![Page 6: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/6.jpg)
Background
• Amino Acid: Organic molecule composed of carbon, hydrogen, nitrogen, oxygen, sulfur.
• Building blocks of proteins.• Amino acids are what DNA codes for.• Weight is sum of weights of component atoms
![Page 7: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/7.jpg)
Syntax
• One amino acid formula on a single line• Amino acid formula consists of sequence of atom
counts• Atom count is a letter specifying the atom, maybe
followed by a number specifying how many of them.• O2C3NH7\n
![Page 8: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/8.jpg)
Semantics
• O2C3NH7\n– Two Oxygen (2.0 * 15.9994 = 31.9988)
![Page 9: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/9.jpg)
Semantics
• O2C3NH7\n– Two Oxygen (2.0 * 15.9994 = 31.9988)– Three Carbon (3.0 * 12.011 = 36.033)
![Page 10: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/10.jpg)
Semantics
• O2C3NH7\n– Two Oxygen (2.0 * 15.9994 = 31.9988)– Three Carbon (3.0 * 12.011 = 36.033)– One Nitrogen (14.00674)
![Page 11: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/11.jpg)
Semantics
• O2C3NH7\n– Two Oxygen (2.0 * 15.9994 = 31.9988)– Three Carbon (3.0 * 12.011 = 36.033)– One Nitrogen (14.00674)– Seven Hydrogen (7.0 * 1.00794 = 7.05558)
![Page 12: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/12.jpg)
Semantics
• O2C3NH7\n– Two Oxygen (2.0 * 15.9994 = 31.9988)– Three Carbon (3.0 * 12.011 = 36.033)– One Nitrogen (14.00674)– Seven Hydrogen (7.0 * 1.00794 = 7.05558)
• Total: 31.9988 + 36.033 + 14.00674 + 7.05558 = 89.09412
![Page 13: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/13.jpg)
ParsingO2C3NH7\n
• Find new atoms (letters)
![Page 14: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/14.jpg)
ParsingO2C3NH7\n
• Find new atoms (letters)– Look up atomic weight of atom (12.011)
![Page 15: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/15.jpg)
ParsingO2C3NH7\n
• Find new atoms (letters)– Look up atomic weight of atom (12.011)
• Count how many we've got (numbers)
![Page 16: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/16.jpg)
ParsingO2C3NH7\n
• Find new atoms (letters)– Look up atomic weight of atom (12.011)
• Count how many we've got (numbers)– 3
![Page 17: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/17.jpg)
ParsingO2C3NH7\n
• Find new atoms (letters)– Look up atomic weight of atom (12.011)
• Count how many we've got (numbers)– 3
• When we reach next atom, add previous to atomic weight of molecule
![Page 18: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/18.jpg)
ParsingO2C3NH7\n
• Find new atoms (letters)– Look up atomic weight of atom (12.011)
• Count how many we've got (numbers)– 3
• When we reach next atom, add previous to atomic weight of molecule– 3*12.011 = 36.033
![Page 19: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/19.jpg)
Look Up Atomic Weight
![Page 20: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/20.jpg)
Look Up Atomic Weight
![Page 21: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/21.jpg)
Look Up Atomic Weight
![Page 22: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/22.jpg)
Counting
numatoms = numatoms * 10.0 + newdigit;
![Page 23: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/23.jpg)
Counting
numatoms = numatoms * 10.0 + newdigit;
123
![Page 24: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/24.jpg)
Counting
numatoms = numatoms * 10.0 + newdigit;
1230*10 + 1 = 1
![Page 25: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/25.jpg)
Counting
numatoms = numatoms * 10.0 + newdigit;
1231*10 + 2 = 12
![Page 26: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/26.jpg)
Counting
numatoms = numatoms * 10.0 + newdigit;
12312*10 + 3 = 123
![Page 27: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/27.jpg)
Special Cases
• First letter: make sure we don't put gibberish in molecular weight
• End of string: make sure we account for last atom• If user didn't enter number for an atom, it means '1'
![Page 28: Arrays (Chapter 5) Definition Applications One-Dimensional –Declaration –Initialization –Use Multidimensional](https://reader038.vdocuments.mx/reader038/viewer/2022110213/56649d7d5503460f94a5faf6/html5/thumbnails/28.jpg)
Writing the code
• Write initialization, input, core loop, output• Handle special cases• Error checking