COSC 120 Computer Programming Instructor: Dr. Enyue (Annie) Lu Office hours: click here Office room: HS114 Email: ealu@salisbury.edu Course information: Website: http://faculty.salisbury.edu/~ealu/COSC120/COSC120.html. 1 Course overview Introduction to Programming Introduction to C++ Data types Control structures Functions Scope, overloading functions, files Arrays Searching & Sorting Arrays Characters, Strings, and the string Class Structured Data Introduction to class Pointers Operator overloading Optional topics 2 Chapter 1 Introduction to Computers and Programming 3 Contents Why Program? Computer Systems: Hardware and Software Programs and Programming Languages What Is a Program Made of? Input, Processing, and Output The Programming Process Procedural and Object-Oriented Programming 4 Why Program: Program: a set of instructions to a computer to perform a task Computer can do many different jobs because of its programmability. Programmer->software->computer 5 Elements of a Computer System Hardware CPU (central processing unit): CU, ALU Fetch/decode/execute Main Memory: RAM Secondary storage Byte, bits Memory address volatile Programs are stored in secondary memory and loaded into main memory Hard disks, floppy disks, Zip disks and CD Input/Output devices Software 6 Software – Programs That Run on a Computer Categories of software: Operating system: programs that manage the computer hardware and the programs that run on them. Ex: Windows, UNIX, Linux - Single tasking, multitasking - Single user, multiuser Application software: programs that provide services to the user. Ex: word processing, games, programs to solve specific problems 7 Programs and Programming Languages Program: a set of instructions to a computer to perform a task Programming Language: a language used to write programs 8 Programs and Programming Languages Types of languages: Low-level (machine): used for communication with computer hardware directly. Often written in binary machine code (0’s/1’s) directly. High-level: closer to human language A compiler or interpreter are programs that make the translations from high-level to lowlevel languages. 9 Table 1-1 Language Description C A structured, general purpose language developed at Bell Labs. C offers both high-level and low-level features. C++ Based on the C language, C++ offers object-oriented features not found in C. Also invented at Bell Laboratories. Java An object-oriented language invented at Sun Microsystems. Java may be used to develop programs that run over the Internet, in a web browser. BASIC Beginners All-purpose Symbolic Instruction Code. A general programming language originally designed to be simple enough for beginners to learn. COBOL Common Business-Oriented Language. A language designed for business applications. RPG A programming language for business applications used primarily on IBM midrange and mainframe computers. FORTRAN Pascal Formula Translator. A language designed for programming complex mathematical algorithms. A structured, general purpose language designed primarily for teaching programming. 10 From a High-level Program to an Executable File connect hardware-specific Source Code Preprocessor Modified Source Code code (library routines) to convert source file directives to source code machine instructions, Object Codean executable producing program statements file Linker convert source program Executable Code statements into machine language instructions Compiler 11 What Is a Program Made Of? Common elements in programming languages: Key Words Programmer-Defined Symbols Operators Punctuation Syntax 12 Language Elements, Table 1-2 Language Element Keywords Description Words that have a special meaning. Keywords may only be used for their intended purpose. AKA reserved words. Programmer- Words or names defined by the programmer. They are Defined symbolic names (identifiers) that refer to variables or Symbols programming routines. Operators Operators perform operations on one or more operands. An operand is a piece of data, like a number. Punctuation Punctuation characters that mark the beginning or ending of a statement, or separate items in a list. Syntax Rules that must be followed when construction a program. Syntax dictates how key words and operators may be used, and where punctuation symbols must appear. 13 Example Program #include <iostream> #include <string> using namespace std; int main() { string name; cout << "What is your name? "; cin >> name; cout << "Hello there, " << name; return 0; } 14 Program 1-1 // This program calculates gross pay. #include <iostream> using namespace std; int main() { float hours, rate, pay; cout << “How many hours did you work? ”; cin >> hours; cout << “How much do you get paid per hour? ”; cin >> rate; pay = hours * rate; cout << “You have earned $” << pay << endl; return 0; } 15 Key Words Also known as reserved words Have a special meaning in C++ Can not be used for another purpose Examples in program: using, namespace, int, main 16 Programmer-Defined Symbols ( Identifiers ) Names made up by the programmer Not part of the C++ language Used to represent various things: variables (memory locations), functions, etc. Example in program: name, hours, rate, calcPay() 17 Operators Used to perform operations on data Many types of operators: Arithmetic: +, -, *, / Assignment: = Examples in program: << stream insertion operator >> stream extraction operator 18 Punctuation Characters that mark the end of a statement, or that separate items in a list Examples in program: ; (),} 19 Syntax The rules of grammar that must be followed when writing a program Controls the use of: key words operators programmer-defined symbols punctuation 20 Lines and Statements cout << "How many hours did you work? "; cout << "How many hours " << "did you work? "; There are 2 statements above. The first statement uses one line the second statement spans two lines the semicolon ( ; ) is the statement terminator 21 Variable Definitions Two types of information: numbers and characters Numbers may be integers or floating-point The statement below creates three variables in memory named hours, rate, and pay that each can store a floating-point number float hours, rate, pay; 22 Input, Processing, and Output Three steps many programs perform: Gather input data: 1) - from keyboard from files on disk drives Process the input data Generate output: 2) 3) - send it to the screen write it to a file 23 Input, Processing, and Output Output cout << "Enter your hours and rate " << "separated by a space: "; Input: cin >> hours; cin >> rate; Processing: pay = hours * rate; Output cout << “You have earned $” << pay; 24 Program Output How many hours did you work? 10 How much do you get paid per hour? 15 You have earned $150 25 The Programming Process The programming process consists of several steps, which include: Design Code Test Debug Document 26 The Programming Process Clearly define what the program is to do. Purpose, Inputs /Outputs, Process Visualize the program running on the computer Design using a Hierarchy chart, flowchart or pseudocode. Desk check for logical errors. Enter/Edit the code and compile it. Correct any errors found during compilation. 1. 2. 3. 4. 5. 6. • • Run the program with test data for input Correct any errors found while running the program 7. 8. • • 9. Compile-time error (syntax/grammatical error) Repeat steps 5 and 6 as many times as necessary Run-time errors Repeat steps 5 through 8 as many times as necessary. Validate the results of the program. 27 Procedural and Object-Oriented Programming Procedural programming: focus is on the process. Procedures/functions are written to process data. Object-Oriented programming: focus is on objects, which contain data and the means to manipulate the data. Messages are sent to objects to perform operations. 28 Class Review Program A set of instructions to a computer to perform a task Why computer can do lots of job Programmability Elements of computer system Hardware (CPU, main memory, second storage, I/O), software Software categories OS, application software Programming languages Low-level, high-level Transfer a high-level program to an executable file Preprocess, compile, link Common elements in programming languages Keyword, programmer-defined symbols, operators, punctuation, syntax Which 3 steps most programs perform Gather input data, process data, generate output 29