Pseudo-code vs. Assembly. Introduction to High-Level Language Programming. Disadvantages of Assembly. Pseudo-code vs. High-level Programs

Similar documents
Computer Programming : C++

Algorithm Discovery and Design. Why are Algorithms Important? Representing Algorithms. Chapter 2 Topics: What language to use?

Add Subtract Multiply Divide

Chapter 1 INTRODUCTION

From Pseudcode Algorithms directly to C++ programs

Chapter 2. C++ Basics. Copyright 2014 Pearson Addison-Wesley. All rights reserved.

Creating a C++ Program

1. a) What #include statement do you put at the top of a program that does uses cin, cout or endl?

By the end of this section you should: Understand what the variables are and why they are used. Use C++ built in data types to create program

Chapter 2. C++ Basics. Copyright 2014 Pearson Addison-Wesley. All rights reserved.

Chapter 2. C++ Basics

Chapter 3. More Flow of Control. Copyright 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Programming. C++ Basics

CS242 COMPUTER PROGRAMMING

Data Types and the while Statement

Computer Components. Software{ User Programs. Operating System. Hardware

Unit 3, Lesson 2 Data Types, Arithmetic,Variables, Input, Constants, & Library Functions. Mr. Dave Clausen La Cañada High School

Fundamentals of Programming CS-110. Lecture 2

Programming Language. Control Structures: Selection (switch) Eng. Anis Nazer First Semester

7/8/10 KEY CONCEPTS. Problem COMP 10 EXPLORING COMPUTER SCIENCE. Algorithm. Lecture 2 Variables, Types, and Programs. Program PROBLEM SOLVING

Maciej Sobieraj. Lecture 1

Chapter 2: Basic Elements of C++ Objectives. Objectives (cont d.) A C++ Program. Introduction

STUDENT OUTLINE. Lesson 8: Structured Programming, Control Structures, if-else Statements, Pseudocode

Chapter 1 Introduction to Computers and C++ Programming

Chapter Overview. C++ Basics. Variables and Assignments. Variables and Assignments. Keywords. Identifiers. 2.1 Variables and Assignments

Introduction to Programming EC-105. Lecture 2

The C++ Language. Arizona State University 1

Chapter 2: Overview of C++

CSCE 110 PROGRAMMING FUNDAMENTALS

C++ Basics. Lecture 2 COP 3014 Spring January 8, 2018

UNIT- 3 Introduction to C++

Review: Exam 1. Your First C++ Program. Declaration Statements. Tells the compiler. Examples of declaration statements

Compilation and Execution Simplifying Fractions. Loops If Statements. Variables Operations Using Functions Errors

Control Structures. Lecture 4 COP 3014 Fall September 18, 2017

Objectives. In this chapter, you will:

BASIC ELEMENTS OF A COMPUTER PROGRAM

Objectives. Chapter 2: Basic Elements of C++ Introduction. Objectives (cont d.) A C++ Program (cont d.) A C++ Program

Review for COSC 120 8/31/2017. Review for COSC 120 Computer Systems. Review for COSC 120 Computer Structure

Chapter 2: Basic Elements of C++

The following expression causes a divide by zero error:

The Von Neumann Architecture Odds and Ends. Designing Computers. The Von Neumann Architecture. CMPUT101 Introduction to Computing - Spring 2001

Topic 2: C++ Programming fundamentals

Chapter 2 Basic Elements of C++

Class 2: Variables and Memory. Laura Marik Spring 2012 C++ Course Notes (Provided by Jason Minski)

C++ Basic Elements of COMPUTER PROGRAMMING. Special symbols include: Word symbols. Objectives. Programming. Symbols. Symbols.

1. In C++, reserved words are the same as predefined identifiers. a. True

Lecture 3 Tao Wang 1

BITG 1233: Introduction to C++

C++ Basics. Data Processing Course, I. Hrivnacova, IPN Orsay

Basic program The following is a basic program in C++; Basic C++ Source Code Compiler Object Code Linker (with libraries) Executable

CMPUT101 Introduction to Computing - Summer 2002

Computer Programming. Basic Control Flow - Loops. Adapted from C++ for Everyone and Big C++ by Cay Horstmann, John Wiley & Sons

Introduction to C++ General Rules, Conventions and Styles CS 16: Solving Problems with Computers I Lecture #2

C++ Programming: From Problem Analysis to Program Design, Third Edition

Laboratory 0 Week 0 Advanced Structured Programming An Introduction to Visual Studio and C++

Getting started with C++ (Part 2)

5. Control Statements

Full file at C How to Program, 6/e Multiple Choice Test Bank

1- Write a single C++ statement that: A. Calculates the sum of the two integrates 11 and 12 and outputs the sum to the consol.

I SEMESTER EXAM : : XI :COMPUTER SCIENCE : MAX MARK a) What is the difference between Hardware and Software? Give one example for each.

A First Program - Greeting.cpp

2 nd Week Lecture Notes

Programming with C++ Language

APCS Semester #1 Final Exam Practice Problems

Building Java Programs. Chapter 2: Primitive Data and Definite Loops

CS313D: ADVANCED PROGRAMMING LANGUAGE

c) Comments do not cause any machine language object code to be generated. d) Lengthy comments can cause poor execution-time performance.

Chapter 4: Control Structures I (Selection) Objectives. Objectives (cont d.) Control Structures. Control Structures (cont d.

WEEK 4 OPERATORS, EXPRESSIONS AND STATEMENTS

2.1. Chapter 2: Parts of a C++ Program. Parts of a C++ Program. Introduction to C++ Parts of a C++ Program

CSI33 Data Structures

Introduction to Programming using C++

ECOR Come to the PASS workshop with your mock exam complete. During the workshop you can work with other students to review your work.

WARM UP LESSONS BARE BASICS

Chapter 4 Computation

Computer Components. Software{ User Programs. Operating System. Hardware

CS106X Handout 03 Autumn 2012 September 24 th, 2012 Getting Started

Score score < score < score < 65 Score < 50

C++ Support Classes (Data and Variables)

LAB 4.1 Relational Operators and the if Statement

CS 251 Intermediate Programming Java Basics

Programming in C Course Technology, a part of Cengage Learning.

CS 142 Style Guide Grading and Details

3. Except for strings, double quotes, identifiers, and keywords, C++ ignores all white space.

DHA Suffa University CS 103 Object Oriented Programming Fall 2015 Lab #01: Introduction to C++

Introduction to Computers and C++ Programming p. 1 Computer Systems p. 2 Hardware p. 2 Software p. 7 High-Level Languages p. 8 Compilers p.

Ex: If you use a program to record sales, you will want to remember data:

CMPUT 101 with Solutions Quiz 2 (50 minutes) November 16, 2000

Non-numeric types, boolean types, arithmetic. operators. Comp Sci 1570 Introduction to C++ Non-numeric types. const. Reserved words.

Programming Language. Functions. Eng. Anis Nazer First Semester

Overview of C, Part 2. CSE 130: Introduction to Programming in C Stony Brook University

CSc 10200! Introduction to Computing. Lecture 2-3 Edgardo Molina Fall 2013 City College of New York

Superior University. Department of Electrical Engineering CS-115. Computing Fundamentals. Experiment No.1

Objectives. Chapter 4: Control Structures I (Selection) Objectives (cont d.) Control Structures. Control Structures (cont d.) Relational Operators

VARIABLES. 1. STRINGS Data with letters and/or characters 2. INTEGERS Numbers without decimals 3. FLOATING POINT NUMBERS Numbers with decimals

Multiple Choice (Questions 1 13) 26 Points Select all correct answers (multiple correct answers are possible)

Problem Solving With C++ Ninth Edition

Input And Output of C++

int n = 10; int sum = 10; while (n > 1) { sum = sum + n; n--; } cout << "The sum of the integers 1 to 10 is " << sum << endl;

INTRODUCTION TO COMPUTER SCIENCE - LAB

Transcription:

Pseudo-code vs. Assembly Introduction to High-Level Language Programming Chapter 7 Set sum to 0 While i 5 do Get value for N Add N to sum Increase value of i by 1 Print the value of sum.begin -- Sum 5 numbers Loop: LOAD Five COMPARE i JUMPGT Done IN N LOAD sum ADD N STORE sum INCREMENT i JUMP Loop Done: OUT sum HALT Five:.DATA 5 i:.data 1 sum:.data 0 N:.DATA 0 CMPUT101 Introduction to Computing.END (c) Yngvi Bjornsson 2 Disadvantages of Assembly The programmer must manage movement of data items between memory locations and the ALU. Programmer must take a microscopic view of a task, breaking it down to manipulate individual memory locations. Assembly language is machine-specific. Statements are not English-like (Pseudo-code) CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 3 Pseudo-code vs. High-level Programs Set sum to 0 While i 5 do Get value for N Add N to sum Increase value of i by 1 Print the value of sum int i, sum, N; Wouldn t sum = 0; it be nice if we i = 1; could instead write while ( i <= 5 ) our program cin >> in N; a language sum more = sum similar + N; to a pseudo-code? i = i + 1; cout << sum; CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 4 High-level Programming Languages Program Translation The programmer need not manage the details of the movement of data items between memory and ALU. Doesn t even have know there is a register in the ALU for performing arithmetic. The programmer has more macroscopic view of a task, using less primitive building blocks E.g. doesn t work with individual memory locations anymore. High-level languages are portable. Same program can run on different architectures. More English (pseudo-code) like! A=B+C 0101 1001 Compiler Linker LOAD STORE 0101 1001 0110 Assembler Loader 0101 CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 5 CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 6

The C ++ Programming Language We will use (a subset of) the C++ programming language to introduce you to programming in a high-level language. Although the syntax differ from one programming language to the next, the basic concepts apply to all (most) high-level languages. C++ is an object-oriented language although we will not learn about that in this course but you can learn all about it in CMPUT114! CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 7 Example C ++ Program // Program Numerology. This program gets the user s favorite // number and prints a greeting. int your_number; cout << Please enter your favorite number: ; cout << endl; cout << Your favorite number is << your_number <<. << endl; cout << That is a nice number. << endl; CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 8 General C ++ Program Structure Prologue comment Include directives Functions Main function Declarations Body [optional] [optional] [optional] [optional] CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 9 Prologue comment Include directives Functions Main function Declarations Body Structure of Example Program // This program gets the user s favorite // number and prints a greeting. int your_number; cout << Please enter your favorite number: ; cout << endl; cout << Your favorite number is << cout << That is a nice number. << endl; CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 10 Virtual Data Storage (Data items) One improvement of a high-level language is to make data manipulation easier. J:.DATA -1 -- tedious in an assembly! LOAD J and STORE J Instead of working with individual memory locations (as in assembly), we work with more abstraction in form of data items. In the program we give English like names to data items to identify them. CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 11 Identifiers Names in programs are called identifiers. An identifier can consist of any combination of letters, digits, and _, except: cannot start with a digit cannot be same name as a C++ keyword. Should try to use descriptive names Identifier are case-sensitive, for example a and A do refer to different data items CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 12

Example of identifiers Legitimate names: cmput101, My1stCar A, b Your_Guess, Number_Of_Homeruns A_speling_mistake Not legitimate names (Why?) 1stCar int Iwin! arrrgg@#!#t CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 13 Data items Store data used in program: read in from user ( Get / In ) constants used in program ( N:.DATA 5) A data item can be declared either as a constant or a variable. Constants are initialized with a value, but their value cannot be changed after that. The value of a variable can be changed as needed. The keyword const in the declaration indicates that the data item is a constant. CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 14 Declaration of data items. We need to declare data items in our program prior to using them. The declaration tells: whether the data item is a constant or a variable. the identifier that will be used in the program to name the data item. the data type for the data item. Standard Data Types in C++ Following are examples of predefined data types used in C++: There are more basic data types. Programmers can create their own types. int an integer number (e.g. 10, -5). double a real number (e.g. 3.1415, 2.1). char a character (e.g. a, C ). CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 15 CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 16 // Declaring a constant. const double PI = 3.1416; Example // Single variable declared at a time. int my_number; double GPA; char initial_letter; // Can declare many data-items of the same type together. int height, base; CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 17 Example // Declaring constants const int MIN_VALUE = 0; const int MAX_VALUE; MIN_VALUE = 45; cout << MIN_VALUE is now << MIN_VALUE; // Error // Error CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 18

Statement Types Three different kind of statements: Input/Output (I/O) Statements Assignment Statements Control Statements Notes: An executable statement ends with a ; (semi-colon). Can split one statement between lines! Comments: // Indicates that the rest of the line is a comment. CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 19 In algorithms: Get value of A Print value of A In assembly: IN A OUT A In C++: cin >> A; cout << A; Input/Output Statements CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 20 Input Statement Output Statement The input statement reads a value from the input stream (keyboard) into a variable Upon entering the input statement the program stops and waits for the user to enter a value, e.g. 24 <enter> The variable your_number now contains the value 24 CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 21 The output statement writes a value of a variable(s) to the output stream (screen) cout << your_number; We can write more than one value at a time: cout << Your number is << your_number << endl; Your number is 24 CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 22 Special considerations We need to include the compiler directive to tell in which library the cin and cout commands are. When printing text we enclose it within, e.g. cout << My lucky number is: << endl; endl forces a line-break on the screen CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 23 Example program using I/O Let us look at our example program again // Example Program Using I/O. int your_number; cout << Please enter your favorite number: ; cout << endl; cout << Your favorite number is << your_number << endl; cout << That is a nice number. << endl; CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 24

Output when we run the program Please enter your favorite number: 2 4 <enter> Your favorite number is 24 That is a nice number. The Assignment Statement The assignment statement assigns a value to a program variable. General format in C++: <variable> = <expression>; The expression to the right gets evaluated, and the result is written into the memory location referenced to by the variable. CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 25 CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 26 Examples of assignments int A, B, C; int my_number, your_number, our_number; A = 0; B = -2; C = (A-B) / B + (2*B) ; my_number = 5; your_number = 3; our_number = my_number + your_number; Arithmetic Operations in Expressions Addition + C = A + B; Subtraction - C = A B; Multiplication * C = A * B; Division / C = A / B; CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 27 CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 28 A Practice Problem Write a program that calculates the area of a triangle, given its height and base. A = (height x base) / 2 Write the algorithm in pseudo-code: base height Get values for height and base Set value of area to (height*base)/2 Print value of area CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 29 C ++ code // This program calculates the area of a triangle, given its // height and base. double area, height, base; cout << Enter the height of the triangle: ; cin >> height; cout << Enter the base of the triangle: ; cin >> base; area = (height * base) / 2; // Note parentheses! cout << The area of the triangle is << area << endl; CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 30

Running Our Program Enter the height of the triangle: 2 Enter the base of the triangle: 4 The area of the triangle is 4 Enter the height of the triangle: 10 Enter the base of the triangle: 5 The area of the triangle is 25 Control Flow Statements We have three types of a control flow in a program: Sequential Conditional Looping CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 31 CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 32 Sequential Flow of Control Example:Sequential Flow in C++ S1 S2 S3 The default case. No special commands needed. // An example of sequential flow. int your_number; cout << Please enter a number: ; cout << Your number is << your_number <<. << endl; CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 33 CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 34 Example Program Output Please enter a number: 2 Your number is 2. Please enter a number: 5 Your number is 5. S1 S3 Conditional Flow of Control false S2 Begins with evaluating a Boolean condition. If condition is, then execute statement S1. Otherwise, if condition is false, execute statement S2. In both cases, statement S3 is executed next. CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 35 CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 36

If- Statement in C ++ if ( <boolean expression> ) <statement-1>; <statement-2>; if ( <boolean expression> ) <statement-1>; CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 37 Example: Conditional Flow in C ++ // An example of conditional flow. const int lucky_number = 8; int your_number; cout << Please guess my lucky number: ; cout << Your number is << your_number <<. << endl; if ( your_number == lucky_number ) // boolean expression cout << You win! ; cout << You lose! ; CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 38 Example Program Output Please, guess my lucky number: 2 Your number is 2. You lose! Please, guess my lucky number: 8 Your number is 8. You win! Multi-way If- Statement if ( <condition> ) if ( <condition> ) if ( <condition> ) CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 39 CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 40 Boolean Conditions (Expressions) C++ Comparison Operators Expression can be either or false. The same value as == 2 == 5 false Expression A == 0 A=0; B=1; A=1; B=2; Less than Less than or equal to Greater than < <= > 2 < 5 5 <= 5 2 > 5 false A!= B Greater than or equal to >= 2 >= 5 false (A+1) < B Not the same value as!= 2!= 5 CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 41 CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 42

Examples: Comparison Operators if ( your_number == 8 ) cout << You win! ; cout << You lose! ; C ++ Boolean Operators Boolean operators can be used to make more complex Boolean expressions. AND && (2<5) && (2>7) false if ( your_weight_lbs > your_ideal_weight_lbs ) cout << You need to diet! ; cout << More ice-cream? ; OR NOT! (2<5) (2>7)!(2==5) CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 43 CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 44 Examples: Boolean Operators if ( (your_number > 5) && (your_number<8) ) cout << You win! ; cout << You lose! ; if ( (your_weight < your_lower_limit_weight ) (your_weight > your_upper_limit_weight) ) cout << See your doctor about your weight. ; cout << You are in a good shape. ; Compound Statements What if we want to execute more than one statement within a if-statement? We can group arbitrary many statements together by enclosing them within. <statement-1>; <statement-2>; CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 45 CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 46 Example: Compound statements if ( (your_number > 5) && (your_number<8) ) cout << You win! ; cout << Guess you got lucky! ; cout << You lose! ; cout << You ll never guess the right number! ; CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 47 // Example program using a compound if- statement. int your_number, my_number; cout << Please enter a positive number: ; if ( your_number >= 0 ) // need to use a compound form my_number = 2 * your_number; cout << My number is << my_number; // not necessary to use a compound form. cout << Sorry, your number is negative! << endl; CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 48

Looping Flow of Control (while) While-loop Statement in C ++ false S1 S2 Begins with evaluating a Boolean condition. While condition is execute statement S1 and then re-evaluate Boolean condition. Repeat until condition is false, then go to statement S2. CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 49 while ( <Boolean expression> ) <statement-1>; while ( <Boolean expression> ) <statement-1>;... <statement-n>; CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 50 Examples of while loops What does this program print out? while ( M >= 1 ) M = M - 2; while ( i <= 5 ) cout << "Enter a grade: "; cin >> grade; total = total + grade; i = i + 1; CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 51 // What is the output? int number; number = 1; while ( number > 0 ) cout << number << endl; number = number - 1; cout << number; // What is the output? int number; number = 1; while ( number > 0 ) cout << number << endl; number = number - 1; cout << number; CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 52 // Example #1: Use of the while statement. // The user guesses the program s lucky number! const int lucky_number = 8; int your_number ; cout << "Please, guess my lucky number: "; while ( your_number!= lucky_number ) cout << "Sorry, enter another number: "; cout << "You guessed " << lucky_number << ", my lucky number!"; Example #1: Program Output Please, guess my lucky number: 2 Sorry, enter another number: 6 Sorry, enter another number: 9 Sorry, enter another number: 8 You guessed 8, my lucky number! CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 53 CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 54

// Example #2: Use of the while-statement. // The user enters a number, and the program divides // the number in half while it is greater or equal to one, // printing out all the intermediate results. int number; cout << "Enter a number: "; cin >> number; while ( number >= 1 ) cout << number << endl; number = number / 2; Example #2: Program Output Enter a number: 40 CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 55 CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 56 40 20 10 5 2 1 // Example #3: Use of the while statement. // The program determines if a given number is odd or even. int number ; cout << "Enter a positive number: "; cin >> number; while ( number >= 1 ) number = number - 2; if ( number == 0 ) cout << "The number is even."; cout << "The number is odd."; CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 57 Example #3: Program Output Enter a positive number: 4 The number is even. Enter a positive number: 7 The number is odd. CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 58 Practice Problem 1 Write a program that calculates the user's GPA. Before entering the grades the user first enters how many grades there are. Get a value for N, the number of courses Set the value of total to 0 Set the value of i to 1 While i N do Get a value for grade Set total to ( total + grade ) Increase the value of i by 1 Set the value of GPA to ( total / N ) Print the value of GPA CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 59 // Example #4: This program calculates GPA. int i, N; double grade, GPA, total; total = 0.0; cout << "Enter the number of courses taken: "; cin >> N; i = 1; while ( i <= N ) cout << "Enter a grade: "; cin >> grade; total = total + grade; i = i + 1; GPA = total / N; cout << "The GPA is " << GPA << endl; CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 60

Practice Problem 1: Program Output Enter the number of courses taken: 5 Enter a grade: 5 Enter a grade: 7 Enter a grade: 8 Enter a grade: 5 Enter a grade: 8 The GPA is 6.6 CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 61 Practice Problem 2 (take one) Write a program that reads in 5 integers and prints out the numbers that are larger than the last number entered (i.e. the fifth number). Get values for N 1, N 2,, N 5 While i < 5 do If N i > N 5 then Print N i Increase i by 1 How do we write this algorithm in C++? CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 62 The Array Data Type An array groups together a collection of data items of the same type, e.g. 0 5 1 6 2 1 3 9 In a C++ program we: Specify the size of the array when we declare it. Use an index in the range 0,, size-1 to refer to individual elements in the array. 4 4 CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 63 5 5 6 3 7 8 8 10 9 5 Arrays in C++ int grade[10]; // Declaring an array of 10 integers. int i; grade[0] = 9; grade[1] = 6; grade[9] = 8; i = 0; // Note: indexing range is from 0 9 while ( i < 10 ) cout << grade[ i ] << endl; i = i + 1; CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 64 Arrays in C++ // This program reads in 5 integers and stores them in an array. const int MAX = 5; // The number of integers to read in. int a[max]; int n, i; i = 0; while ( i < MAX ) cout << "Enter a number: "; cin >> n; // Note: Why not cin >> a[ i ]? Limitation in lab-software! a[ i ] = n; i = i + 1; CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 65 Practice Problem 2 (take two) Write a program that reads in 5 integers and prints out the numbers that are larger than the last number entered (i.e. the fifth number). Get values for N 1, N 2,, N 5 While i < 5 do If N i > N 5 then Print N i Increase i by 1 CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 66

const int MAX = 5; // Number of values to read in. int i, n, N[MAX]; // Read in the integers; use a loop! cout << "Enter the numbers: " << endl; i = 0; while ( i < MAX ) cin >> n; N[ i ] = n; ++i; // Note: same as i = i + 1; // Print out the numbers that are larger than the last (fifth) number. cout << "Larger than last:"; i = 0; // Remember to reset i while ( i < MAX-1 ) // Note: MAX-1! if ( N[ i ] > N[ MAX-1 ] ) cout << " " << N[ i ]; i = i + 1; CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 67 Practice Problem 2: Program Output Enter the numbers: 2 5 1 8 4 Larger than last: 5 8 CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 68 Repeat Loops What if we use a Repeat loop in the algorithm? Get values for N 1, N 2,, N 5 Repeat until i 5 do If N i > N 5 then Print N i Increase i by 1 How do we code Repeat loops in C++? CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 69 Repeat vs. While We can always rewrite a Repeat as a While loop C++ has a loop similar to Repeat, but we will not look at that in this course. Get values for N 1, N 2,, N 5 Repeat until i 5 do If N i > N 5 then Print N i Increase i by 1 Get values for N 1, N 2,, N 5 While i < 5 do If N i > N 5 then Print N i Increase i by 1 CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 70 Elements Correctness and Style Important to make our programs correct: Logically correct (do what supposed to do) Syntactically correct (so can compile) Also, important to make them readable (why?): No more than one statement in each line. Proper indentation. Descriptive identifier names. Documentation ( comments ). What does this program do? int x; int q10; x=1; cout << "Enter a number: "; cin >> q10; while ( q10 > 1 ) x = x * q10; q10 = q10-1; cout << x; CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 71 CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 72

Continued One statement each line int x; int q10; x=1; cout << "Enter a number: "; cin >> q10; while ( q10 > 1 ) x = x * q10; q10 = q10-1; cout << x; Continued Proper indentation int x; int q10; x = 1; cout << "Enter a number: "; cin >> q10; while ( q10 > 1 ) x = x * q10; q10 = q10-1; cout << x; CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 73 CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 74 Continued Descriptive identifier names int factorial; int n; factorial = 1; cout << "Enter a number: "; cin >> n; while ( n > 1 ) factorial = factorial * n; n = n - 1; cout << factorial; Continued Documentation added. // Given a number n the program outputs n factorial, e.g. // n! = n * (n-1) * (n-2) * * 2 * 1 int factorial; int n; factorial = 1; // 0! = 1 cout << "Enter a number: "; cin >> n; while ( n > 1 ) factorial = factorial * n; n = n - 1; cout << factorial; CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 75 CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 76