Introduction • Without software, the computer is useless. • Software is developed with programming languages. • C++ is one of the most popular programming languages. – TIOBE Index – LangPop.com – IEEE • C++ is suited for a wide variety of programming tasks.
C++ Versus C • C++ evolved from C, and you can think of C as being a subset of C++. • So in learning C++, you’re also learning C (and then some). C C++
• Other popular languages that evolved from C include Java, C#, Objective-C.
Software • Software: programs that do specific tasks. • System programs control the computer. – Operating system monitors the overall activity of the computer and provides services such as: • Memory management • Input/output activities • Storage management
• Application programs perform a specific task. – Word processors – Spreadsheets – Games
The Language of a Computer • Digital devices (computers, iPods, cell phones, …) use binary code to represent information. This means they store all information (numbers, text, images, music, …) as sequences of 0s and 1s. • Each 0 or 1 in such a sequence is called a bit (short for binary digit). • Example of an 8-bit sequence: 01101100 • A typical song in an MP3 file might contain 40 million bits.
The Language of a Computer (cont’d.) • Byte: – A sequence of eight bits
• Kilobyte (KB): 210 bytes = 1024 bytes • Table 1-1 on page 7(next slide) shows some other related terms. • This is useful general information, but not critical to what we’ll do in this course.
The Language of a Computer (cont’d.)
The Language of a Computer (cont’d.) • At least three different encodings have been used to represent text as sequences of 0s and 1s. • ASCII (American Standard Code for Information Interchange) – 128 characters; see Appendix C in textbook.
• EBCDIC – Formerly used by IBM.
• Unicode – 65,536 characters; covers most modern alphabets.
The Evolution of Programming Languages • Early computers were programmed in machine language., which required the programmer to type sequences of 0s and 1s. • To calculate wages = rate * hours in machine language: 100100 010001
//Load
100110 010010
//Multiply
100010 010011
//Store
The Evolution of Programming Languages (cont’d.) • Assembly language replaces sequences of 0s and 1s with mnemonics (abbreviations such as LOAD or MULT). • Using assembly language instructions, wages = rate * hours can be written as: LOAD rate MULT hour STOR wages
The Evolution of Programming Languages (cont’d.) • High-level languages include Basic, FORTRAN, COBOL, Pascal, C, C++, C#, and Java. Programs written in these language look much more like English. • Compiler: translates a program written in a highlevel language into machine language. • The equation wages = rate * hours can be written in C++ as: wages = rate * hours;
Processing a C++ Program
Processing a C++ Program (cont’d.) • Steps in processing a C++ program: – Use an editor to create source code in C++. – Preprocessor directives begin with # and are processed by the preprocessor. – Compiler: • Checks that the program obeys the language rules. • Translates into machine language (object program).
Processing a C++ Program (cont’d.) • Steps in processing a C++ program (cont’d.): – Linker: • Combines object program with other files to create executable code. • Library: contains prewritten code you can use.
– Loader: • Loads executable program into main memory.
– The last step is to execute the program.
Programming with the Problem Analysis– Coding–Execution Cycle • Algorithm: – Step-by-step problemsolving process – Solution achieved in finite amount of time
• Programming is a process of problem solving.
The Problem Analysis–Coding–Execution Cycle (cont’d.) • Step 1: Analyze the problem. – Outline the problem and its requirements. – Design steps (algorithm) to solve the problem.
• Step 2: Implement the algorithm. – Implement the algorithm in code. – Verify that the algorithm works.
• Step 3: Maintain. – Use and modify the program if the problem domain changes.
Example 1-1 • Design an algorithm to find the perimeter and area of a rectangle. • The perimeter and area of the rectangle are given by the following formulas:
Example 1-1 (cont’d.) • Algorithm: – Get length of the rectangle.
– Get width of the rectangle. – Find the perimeter using the following equation: perimeter = 2 * (length + width)
– Find the area using the following equation: area = length * width
chapter 1.pdf
Operating system monitors the overall activity of the computer and provides ... means they store all information (numbers, text, ... to what we'll do in this course.