Upload
cristina-haselton
View
235
Download
5
Tags:
Embed Size (px)
Citation preview
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
1
Engineering Problem Solving with C++, Etter/Ingber
Chapter 1
Introduction to Computing and Engineering Problem Solving
Historical Perspective Recent Engineering Achievements Computing Systems Data Representation and Storage An Engineering Problem Solving Methodology
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
2
HISTORICAL PERSPECTIVE
Charles Babbage
Analytical Engine
Augusta Ada Byron
Digital Computers
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
3
Charles Babbage, Esq. 1792-1871
English mathematician. Designed the Analytical Engine in the early
1800s. Published “Of the Analytical Engine” in
1864.04/18/23 Engineering Problem Solving with
C++ second edition, J. ingber4
Analytical Engine
Designed to process base ten numbers. Consisted of four parts:
– Storage unit– Processing unit– Input device– Output device
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
5
Analytical Engine
Luigi F. Menabrea, French engineer and mathematician, described Babbage’s vision of a machine capable of solving any problem using: – Inputs– Outputs– Programs written on punch cards
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
6
Augusta Ada Byron, 1815-1852
Wrote the English translation of Menabrea’s Sketch of the Analytical Engine.
Envisioned the multidisciplinary potential of the Analytical Engine.
Wrote detailed instructions for performing numerical computations using the Analytical Engine.
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
7
Digital Computers ABC (Atanasoff Berry Computer)
• Developed at Iowa State University between 1939 and 1942 by John Atanasoff and Clifford Berry.
• Weighed 700 pounds.
• Executed one instruction every 15 seconds.
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
8
Digital Computers ENIAC(Electronic Numerical Integrator
And Calculator)• Developed by research team lead by John Mauchly
and J. Presper Eckert during the early 1940s.
• Weighed 30 tons.
• Executed hundreds of instructions every second.
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
9
Digital Computers
Intel Pentium 4 Processor.• Weighs < 16 ounces.
• Executes trillions of instructions per second.
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
10
RECENT ENGINEERING ACHIEVEMENTS
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
11
Recent Engineering Achievements
Digital computers facilitate multidisciplinary engineering achievements that:– Improve our lives
– Expanded the possibilities for our future.
Changing engineering environment requires engineers with:– Communication skills
– Skills for working in interdisciplinary teams
– An awareness of ethic issues and environmental concerns.
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
12
COMPUTING SYSTEMS
Computer Hardware
Computer Software
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
13
Computing Systems
A computing system is a complete working system that includes:– Hardware– Software
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
14
Hardware
Hardware refers to the physical parts off the computing system that have mass (ie they can actually be touched):– Computer– Display– Mouse– Printer– …
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
15
Computer Hardware
Jon von Neumann computing model– Input device– Output device– Memory Unit– CPU(Central Processing Unit) consisting of:
• Control Unit
• ALU(Arithmetic Logic Unit)
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
16
Von Neumann computing model
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
17
Software Computer software refers to programs that
reside and execute electronically on the hardware.– Compilers
– Translate source code
– Operating systems– Provide the HCI (Human Computer Interface)
– Application programs– Provide problem solutions
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
18
Hierarchy of Computer Languages
Natural Language Processing Cobol Pascal Java C++ Assembler Machine Language04/18/23 Engineering Problem Solving with
C++ second edition, J. ingber19
Executing a C++
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
20
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
21
Key Terms Source Program
– printable/Readable Program file Object Program
– nonprintable machine readable file Executable Program
– nonprintable executable code Syntax errors
– reported by the compiler Linker errors
– reported by the linker Execution/Run-time errors
– reported by the operating system Logic errors
– not reported
DATA REPRESENTATION AND STORAGE
Number Systems
Data Types and Storage
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
22
Data Representation and Storage
Digital computers store information as a sequence of bits (binary digits).
The value or state of a bit at any given time can be 0 or 1 (off or on).
Data is stored as a sequence of bytes. – A byte is a sequence of 8 bits.
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
23
Data Representation and Storage:Memory DiagramAddress Sixteen Bit Word
000 0000101011011101
001 1010001011010100
010 1011010010100101
011 0101001101010101
010 0101000111001110
010 1100110000111010
110 0100011101001001
111 0101110001001000
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
24
Address Space = 8Word Size = 16
Data Representation and Storage
Right most bit is referred to as the least significant bit.
Left most bit is referred to as the most significant bit.
Value stored at address 000 is 00001010110111012 = 278110 But what does it
represent?
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
25
Number Systems
Base ten number system• Ten decimal digits (0,1,2,3,4,5,6,7,8,9)
• Each digit multiplies a power of ten
– Example:
24510 = 2*102 + 4*101 + 5*100
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
26
Number Systems
Base two (binary) number system• Two binary digits (0,1)
• Each digit multiplies a power of two
– Example:
101102 = 1*24 + 0*23 + 1*22 + 1*21 + 0*20
= 1*16 + 0*8 + 1*4 + 1*2 + 0*1
= 16 + 0 + 4 + 2 + 0
= 2210
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
27
Number Systems
Base eight number system• Eight octal digits (0,1,2,3,4,5,6,7)
• Each digit multiplies a power of eight
– Example:
2458 = 2*82 + 4*81 + 5*80
= 2*64 + 4*8 + 5*1
= 128 + 32 + 5
= 1658
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
28
Number Systems
Base sixteen number system• Sixteen hex digits (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)
• Each digit multiplies a power of sixteen
– Example:
2FB16 = 2*162 + F*161 + B*160
= 2*256 + F*16 + B*1
= 512 + 240 + 11
= 76310
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
29
Number Systems: Practice!
1002 = ?8
37168 = ?2
1101001112 = ?10
3A1B16 = ?2
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
30
Data Types
Integer Data Type:– Often represented in 4 bytes (System
Dependent)– Left most bit is reserved for the sign of the
number– Remaining 31 bits represent the magnitude of
the number.
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
31
Data Types
Representation of data affects the efficiency of arithmetic and logic operations.
For efficiency, negative integers are often represented in their 2’s complement form.
The 2’s complement of an integer is formed by negating all of the bits and adding one.
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
32
Example: 2’s Complement
Form the 2’s complement representation for the value -12710 assuming a word size of 8 for simplicity.12710 = 011111112
Negate bits: 10000000
Add 1: 10000001
2’s complement is 10000001
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
33
Example: 2’s Complement
Add 127 to -12701111111
+10000001
= _______00000000
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
34
Data Types
Floating Point Data– Floating point types represent real numbers,
such as 1.25, that include a decimal point.– Digits to the right of the decimal point form the
fractional part of the number.– Digits to the left of the decimal point form the
integral part of the number.
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
35
Practice! Floating Point Data
Convert 12.2510 to binary.
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
36
AN ENGINEERING PROBLEM-SOLVING METHODOLOGY
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
37
5 Step Problem Solving Methodology1. State the problem clearly.
2. Describe the input and output.
3. Work a hand example.
4. Develop a solution.
5. Test your solution.
04/18/23 Engineering Problem Solving with C++ second edition, J. ingber
38