c++ arrays number conversions - github pages · c++ arrays a c++ array is a list of elements that...
TRANSCRIPT
![Page 1: C++ ARRAYS NUMBER CONVERSIONS - GitHub Pages · C++ Arrays A C++ array is a list of elements that share the same name, have the same data type and are located adjacent to each other](https://reader034.vdocuments.site/reader034/viewer/2022052008/601daed4dee4ec5faf248029/html5/thumbnails/1.jpg)
C++ ARRAYS NUMBER CONVERSIONS
Problem Solving with Computers-I
![Page 2: C++ ARRAYS NUMBER CONVERSIONS - GitHub Pages · C++ Arrays A C++ array is a list of elements that share the same name, have the same data type and are located adjacent to each other](https://reader034.vdocuments.site/reader034/viewer/2022052008/601daed4dee4ec5faf248029/html5/thumbnails/2.jpg)
General model of memory• Sequence of adjacent cells
• Each cell has 1-byte stored in it
• Each cell has an address (memory location)
0
1 2 3 4 5 6 7 8 9 10
Memory address Value stored
![Page 3: C++ ARRAYS NUMBER CONVERSIONS - GitHub Pages · C++ Arrays A C++ array is a list of elements that share the same name, have the same data type and are located adjacent to each other](https://reader034.vdocuments.site/reader034/viewer/2022052008/601daed4dee4ec5faf248029/html5/thumbnails/3.jpg)
Storing sequences in programs
Write a program to take a sequence of midterm scores (out of 100) and compute the average of the midterm
![Page 4: C++ ARRAYS NUMBER CONVERSIONS - GitHub Pages · C++ Arrays A C++ array is a list of elements that share the same name, have the same data type and are located adjacent to each other](https://reader034.vdocuments.site/reader034/viewer/2022052008/601daed4dee4ec5faf248029/html5/thumbnails/4.jpg)
C++ Arrays A C++ array is a list of elements that share the same name, have the same data type and are located adjacent to each other in memory
scores
10 20 30 40 50
Declare:
![Page 5: C++ ARRAYS NUMBER CONVERSIONS - GitHub Pages · C++ Arrays A C++ array is a list of elements that share the same name, have the same data type and are located adjacent to each other](https://reader034.vdocuments.site/reader034/viewer/2022052008/601daed4dee4ec5faf248029/html5/thumbnails/5.jpg)
What is the memory location of each element?
int scores[]={10, 20, 30, 40, 50}; If the starting location of the array is 0x200, what is memory location of element at index 2?
A. 0x201
B. 0x202
C. 0x204
D. 0x208
scores 10 20 30 40 50
![Page 6: C++ ARRAYS NUMBER CONVERSIONS - GitHub Pages · C++ Arrays A C++ array is a list of elements that share the same name, have the same data type and are located adjacent to each other](https://reader034.vdocuments.site/reader034/viewer/2022052008/601daed4dee4ec5faf248029/html5/thumbnails/6.jpg)
Exercise: Reassign each value to 60
int scores[]={20,10,50}; // declare an initialize
//Access each element and reassign its value to 60
scores[0] scores[1] scores[2]
![Page 7: C++ ARRAYS NUMBER CONVERSIONS - GitHub Pages · C++ Arrays A C++ array is a list of elements that share the same name, have the same data type and are located adjacent to each other](https://reader034.vdocuments.site/reader034/viewer/2022052008/601daed4dee4ec5faf248029/html5/thumbnails/7.jpg)
Exercise: Increment each element by 10
int scores[]={20,10,50}; // declare an initialize
//Increment each element by 10
scores[0] scores[1] scores[2]
![Page 8: C++ ARRAYS NUMBER CONVERSIONS - GitHub Pages · C++ Arrays A C++ array is a list of elements that share the same name, have the same data type and are located adjacent to each other](https://reader034.vdocuments.site/reader034/viewer/2022052008/601daed4dee4ec5faf248029/html5/thumbnails/8.jpg)
Most common array pitfall- out of bound access
int arr[]={20,10,50}; // declare an initialize
for(int i=0; i<=3; i++)
scores[i] = scores[i]+10;
Demo: Passing arrays to functions
scores[0] scores[1] scores[2]
![Page 9: C++ ARRAYS NUMBER CONVERSIONS - GitHub Pages · C++ Arrays A C++ array is a list of elements that share the same name, have the same data type and are located adjacent to each other](https://reader034.vdocuments.site/reader034/viewer/2022052008/601daed4dee4ec5faf248029/html5/thumbnails/9.jpg)
Tracing code involving arrays
int arr[]={1,2,3}; int tmp = arr[0]; arr[0] = arr[2];
arr[2] = tmp;
arr[0] arr[1] arr[2]1 2 3
arr[0] arr[1] arr[2]
Choose the resulting array after the code is executed
2 1 3arr[0] arr[1] arr[2]
3 2 1
arr[0] arr[1] arr[2]
A.
B.
C.
D. None of the above
![Page 10: C++ ARRAYS NUMBER CONVERSIONS - GitHub Pages · C++ Arrays A C++ array is a list of elements that share the same name, have the same data type and are located adjacent to each other](https://reader034.vdocuments.site/reader034/viewer/2022052008/601daed4dee4ec5faf248029/html5/thumbnails/10.jpg)
Converting between binary and decimal
Binary to decimal: 1 0 1 1 02 = ?10
Decimal to binary: 3410=?2
10
![Page 11: C++ ARRAYS NUMBER CONVERSIONS - GitHub Pages · C++ Arrays A C++ array is a list of elements that share the same name, have the same data type and are located adjacent to each other](https://reader034.vdocuments.site/reader034/viewer/2022052008/601daed4dee4ec5faf248029/html5/thumbnails/11.jpg)
Hex to binary• Each hex digit corresponds directly to
four binary digits • Programmers love hex, why?
• Convert to binary
0x25B= ?
11
00 0 000001 1 000102 2 001003 3 001104 4 010005 5 010106 6 011007 7 011108 8 100009 9 100110 A 101011 B 101112 C 110013 D 110114 E 111015 F 1111
![Page 12: C++ ARRAYS NUMBER CONVERSIONS - GitHub Pages · C++ Arrays A C++ array is a list of elements that share the same name, have the same data type and are located adjacent to each other](https://reader034.vdocuments.site/reader034/viewer/2022052008/601daed4dee4ec5faf248029/html5/thumbnails/12.jpg)
Hexadecimal to decimal
25B16 = ? Decimal
12
![Page 13: C++ ARRAYS NUMBER CONVERSIONS - GitHub Pages · C++ Arrays A C++ array is a list of elements that share the same name, have the same data type and are located adjacent to each other](https://reader034.vdocuments.site/reader034/viewer/2022052008/601daed4dee4ec5faf248029/html5/thumbnails/13.jpg)
Hexadecimal to decimal
• Use polynomial expansion
• 25B16 = 2*256 + 5*16 + 11*1 = 512 + 80 + 11
= 603
• Decimal to hex: 3610=?16
13
![Page 14: C++ ARRAYS NUMBER CONVERSIONS - GitHub Pages · C++ Arrays A C++ array is a list of elements that share the same name, have the same data type and are located adjacent to each other](https://reader034.vdocuments.site/reader034/viewer/2022052008/601daed4dee4ec5faf248029/html5/thumbnails/14.jpg)
Binary to hex: 1000111100A. 8F0
B. 23C
C. None of the above
14
![Page 15: C++ ARRAYS NUMBER CONVERSIONS - GitHub Pages · C++ Arrays A C++ array is a list of elements that share the same name, have the same data type and are located adjacent to each other](https://reader034.vdocuments.site/reader034/viewer/2022052008/601daed4dee4ec5faf248029/html5/thumbnails/15.jpg)
BIG IDEA: Bits can represent anything!!
Numbers Binary Code
0 1 2 3
Red
Green
Blue
Colors Binary code
N bits can represent at most 2N things
![Page 16: C++ ARRAYS NUMBER CONVERSIONS - GitHub Pages · C++ Arrays A C++ array is a list of elements that share the same name, have the same data type and are located adjacent to each other](https://reader034.vdocuments.site/reader034/viewer/2022052008/601daed4dee4ec5faf248029/html5/thumbnails/16.jpg)
What is the minimum number of bits required to represent all the letters in the English alphabet (assume only upper case)?
A. 3
B. 4
C. 5
D. 6
E. 26
![Page 17: C++ ARRAYS NUMBER CONVERSIONS - GitHub Pages · C++ Arrays A C++ array is a list of elements that share the same name, have the same data type and are located adjacent to each other](https://reader034.vdocuments.site/reader034/viewer/2022052008/601daed4dee4ec5faf248029/html5/thumbnails/17.jpg)
What is the maximum positive value that can be stored in a byte?
A. 127
B. 128
C. 255
D. 256
17
![Page 18: C++ ARRAYS NUMBER CONVERSIONS - GitHub Pages · C++ Arrays A C++ array is a list of elements that share the same name, have the same data type and are located adjacent to each other](https://reader034.vdocuments.site/reader034/viewer/2022052008/601daed4dee4ec5faf248029/html5/thumbnails/18.jpg)
BIG IDEA: Bits can represent anything!!
• Logical values? • 0 ⇒ False, 1 ⇒ True
• colors ?
• Characters? • 26 letters ⇒ 5 bits (25 = 32) • upper/lower case + punctuation
⇒ 7 bits (in 8) (“ASCII”) • standard code to cover all the world’s
languages ⇒ 8,16,32 bits (“Unicode”) www.unicode.com
• locations / addresses? commands?
• REMEMBER: N bits ⇔ at most 2N thingsASCII table
![Page 19: C++ ARRAYS NUMBER CONVERSIONS - GitHub Pages · C++ Arrays A C++ array is a list of elements that share the same name, have the same data type and are located adjacent to each other](https://reader034.vdocuments.site/reader034/viewer/2022052008/601daed4dee4ec5faf248029/html5/thumbnails/19.jpg)
Next time• Pointers • Mechanics of function calls – call by value and call by reference