Announcements. Lab 1 this week! Homework posted Wednesday (late)

Similar documents
Announcements. Lab 1 this week! Homework posted Thursday -Due next Thursday at 11:55pm

Announcements. Homework 0 out! Coming soon: 1. remote access 2. programming instructions 3. lab 1 (graded!) this week

CSCI Wednesdays: 1:25-2:15 Keller Thursdays: 4:00-4:50 Akerman 211

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

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

Two Types of Types. Primitive Types in Java. Using Primitive Variables. Class #07: Java Primitives. Integer types.

Discussion 1H Notes (Week 2, 4/8) TA: Brian Choi Section Webpage:

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

Objectives. In this chapter, you will:

Chapter 2: Basic Elements of C++

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

Chapter 2. Outline. Simple C++ Programs

Fundamentals of Programming CS-110. Lecture 2

C++ PROGRAMMING. For Industrial And Electrical Engineering Instructor: Ruba A. Salamh

Final exam. Final exam will be 12 problems, drop any 2. Cumulative up to and including week 14 (emphasis on weeks 9-14: classes & pointers)

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Agenda. The main body and cout. Fundamental data types. Declarations and definitions. Control structures

BITG 1233: Introduction to C++

Expressions and Data Types CSC 121 Spring 2015 Howard Rosenthal

3.1. Chapter 3: The cin Object. Expressions and Interactivity

! A program is a set of instructions that the. ! It must be translated. ! Variable: portion of memory that stores a value. char

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

More loops Ch

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

CS 151 Review #3. // More than one variable can be defined // in a statement. Multiple variables are // separated by a comma.

Chapter 2. C++ Basics

The C++ Language. Arizona State University 1

Lecture 3 Tao Wang 1

Chapter 2 C++ Fundamentals

COMP-202 Unit 2: Java Basics. CONTENTS: Using Expressions and Variables Types Strings Methods

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

Basic memory model Using functions Writing functions. Basics Prototypes Parameters Return types Functions and memory Names and namespaces

ENGINEERING 1020 Introduction to Computer Programming M A Y 2 6, R E Z A S H A H I D I

CHAPTER 3 Expressions, Functions, Output

A First Program - Greeting.cpp

CSC 120 Computer Science for the Sciences. Week 1 Lecture 2. UofT St. George January 11, 2016

Summary of basic C++-commands

Boolean Algebra Boolean Algebra

Chapter 3. Numeric Types, Expressions, and Output

C++ Programming Lecture 11 Functions Part I

Learning to Program with Haiku

Engineering Problem Solving with C++, Etter/Ingber

C++ Final Exam 2017/2018

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

Expressions and Data Types CSC 121 Fall 2015 Howard Rosenthal

EXPRESSIONS AND ASSIGNMENT CITS1001

Concepts Review. 2. A program is the implementation of an algorithm in a particular computer language, like C and C++.

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

Scientific Computing

More Flow Control Functions in C++ CS 16: Solving Problems with Computers I Lecture #4

CSCE 110 PROGRAMMING FUNDAMENTALS

Primitive Data, Variables, and Expressions; Simple Conditional Execution

UNIT- 3 Introduction to C++

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.

CPE 112 Spring 2015 Exam II (100 pts) March 4, Definition Matching (8 Points)

On a 64-bit CPU. Size/Range vary by CPU model and Word size.

Outline. Review of Last Week II. Review of Last Week. Computer Memory. Review Variables and Memory. February 7, Data Types

WARM UP LESSONS BARE BASICS

a data type is Types

BASIC COMPUTATION. public static void main(string [] args) Fundamentals of Computer Science I

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

Computing and Statistical Data Analysis Lecture 3

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

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

Full file at

Chapter 2: Overview of C++

I Internal Examination Sept Class: - BCA I Subject: - Principles of Programming Lang. (BCA 104) MM: 40 Set: A Time: 1 ½ Hrs.

Expressions, Input, Output and Data Type Conversions

Introduction to Programming EC-105. Lecture 2

Add Subtract Multiply Divide

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

CS Semester I. Quiz 1 (version A)

Integer Data Types. Data Type. Data Types. int, short int, long int

Welcome Back. CSCI 262 Data Structures. Hello, Let s Review. Hello, Let s Review. How to Review 8/19/ Review. Here s a simple C++ program:

Programming. C++ Basics

Lecture 3. Input and Output. Review from last week. Variable - place to store data in memory. identified by a name should be meaningful Has a type-

Using Free Functions

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

} Evaluate the following expressions: 1. int x = 5 / 2 + 2; 2. int x = / 2; 3. int x = 5 / ; 4. double x = 5 / 2.

Object Oriented Programming Using C++ Mathematics & Computing IET, Katunayake

Visual C# Instructor s Manual Table of Contents

1. Variables 2. Arithmetic 3. Input and output 4. Problem solving: first do it by hand 5. Strings 6. Chapter summary

These are notes for the third lecture; if statements and loops.

Chapter 3 - Functions

Variables and Operators 2/20/01 Lecture #

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

Lesson #3. Variables, Operators, and Expressions. 3. Variables, Operators and Expressions - Copyright Denis Hamelin - Ryerson University

ANSI C Programming Simple Programs

CS242 COMPUTER PROGRAMMING

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

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

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

SECTION II: LANGUAGE BASICS

MODULE 02: BASIC COMPUTATION IN JAVA

Number Systems. Binary Numbers. Appendix. Decimal notation represents numbers as powers of 10, for example

Creating a C++ Program

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

Functions and Recursion

#include <iostream> #include <algorithm> #include <cmath> using namespace std; int f1(int x, int y) { return (double)(x/y); }

A SHORT COURSE ON C++

Transcription:

C++ Basics

Announcements Lab 1 this week! Homework posted Wednesday (late)

Avoid errors To remove your program of bugs, you should try to test your program on a wide range of inputs Typically it is useful to start with a small piece of code that works and build up rather than trying to program everything and then debug for hours

Variables Variables are objects in program To use variables two things must be done: - Declaration - Initialization See: uninitialized.cpp Example if you forget to initialize: I am 0 inches tall. I am -1094369310 inches tall.

Variables int x, y, z; x = 2; y = 3; z = 4; Initialization Declaration Same as: int x=2, y=3, z=4; Variables can be declared anywhere (preferably at start)

Assignment operator = is the assignment operator The object to the right of the equals sign is stored into the object in the left int x, y; y = 2; x = y+2; See: assignmentop.cpp

Assignment operator = is NOT a mathematic equals x=3; x=4; // computer is happy! This does not mean 3=4

Assignment operator To the left of = needs to be a valid object that can store the type of data on the right int x; x=2.6; // unhappy, 2.6 is not an integer x+2 = 6; // x+2 not an object 2 = x; // 2 is a constant, cannot store x

Assignment operator What does this code do? int x = 2, y = 3; y=x; x=y; What was the intention of this code?

Increment operators What does this code do? int x = 2; x=x+1;

Increment operators What does this code do? int x = 2; x=x+1; x+=1; or x++; Same as:

Increment operators Two types of increment operators: x++; // increments after command vs ++x; // increments before command

Complex assignments The following format is general for common operations: variable (operator)= expression variable = variable (operator) expression Examples: x+=2 x = x + 2 x*=y+2 x = x * (y + 2)

Order of operations Order of precedence (higher operations first): -, +, ++, -- and! (unary operators) *, / and % (binary operators) + and - (binary operators) % is remainder operator (example later in simpledivision.cpp)

Order of operations Binary operators need two arguments Examples: 2+3, 5/2 and 6%2 Unary operators require only one argument: Examples: (see binaryvsunaryops.cpp) +x, x++,!x (! is the logical inversion operator for bool)

Identifiers

Identifiers An identifier is the name of a variable (or object, class, method, etc.) type int sum; identifier - Case sensitive - Must use only letters, numbers or _ - Cannot start with a number - (Some reserved identifiers, like main)

Identifiers Already did this in week 1! See: RuntimeError.cpp

Identifiers Which identifiers are valid? 1) james parker 2) BoByBoY 3) x3 4) 3x 5) x 6) x 7) Home.Class 8) Five% 9) x-1

Identifiers Which identifiers are valid? 1) james parker 2) BoByBoY 3) x3 4) 3x 5) x 6) x 7) Home.Class 8) Five% 9) x-1

(See: float.cpp) Identifiers

Identifiers

Variables We (hopefully) know that if you say: You ask the computer for a variable called x Each variable actually has an associated type describing what information it holds (i.e. what can you put in the box, how big is it, etc.)

Fundamental Types bool - true or false char - (character) A letter or number int - (integer) Whole numbers long - (long integers) Larger whole numbers float - Decimal numbers double - Larger decimal numbers See: intvslong.cpp

int vs long? int - Whole numbers in the approximate range: -2.14 billion to 2.14 billions (10 9 ) long - Whole numbers in the approximate range: -9.22 quintillion to 9.22 quintillion (10 18 ) Using int is standard (unless you really need more space, for example scientific computing)

float vs double?

float vs double? float is now pretty much obsolete. double takes twice as much space in the computer and 1) has wider range and 2) is more precise Bottom line: use double (unless for a joke)

float and double Both stored in scientific notation double x = 2858291; Computer's perspective: x = 2.858291e6 or x = 2.858291 * 10 6

Welcome to binary Decimal: Binary: 1/2 = 0.5 0.1 1/3 = 0.3333333 0.010101010101 1/10 = 0.1 0.0001100110011 double is often just an approximation!

Numerical analysis Field of study for (reducing) computer error See: subtractionerror.cpp Can happen frequently when solving system of linear equations

bool You can use integers to represent bool also. false = 0 true = anything else (You probably won't need to do this)

int or double? If you are counting something (money), use int If you are dealing with abstract concepts (physics), use double int doesn't make rounding mistakes

Primitive type hierarchy bool < int < long < float < double If multiple primitive types are mixed together in a statement, it will convert to the largest type present Otherwise it will not convert type

Primitive type hierarchy int x; double y; int x; int y; x+y x/y Converted to double Not converted (still int)

Integer division See: simpledivision.cpp Can be fixed by making one a double: 1/2.0 or static_cast<double>(1)/2

Constants You can also make a constant by adding const before the type This will only let you set the value once const double mypi = 3.14; mypi = 7.23; // unhappy computer!

Functions Functions allow you to reuse pieces of code (either your own or someone else's) Every function has a return type, specifically the type of object returned sqrt(2) returns a double, as the number will probably have a fractional part The 2 is an argument to the sqrt function

Functions Functions can return void, to imply they return nothing (you should not use this in an assignment operation) The return type is found right before the functions name/identifier. int main() {... means main returns an int type, which is why we always write return 0 and not return 'a' (there is no char main())

Functions A wide range of math functions are inside <cmath> (get it by #include <cmath>; at top) We can use these functions to compute Snell's Law for refraction angle (See: math.cpp)

Input and output

Strings and input char can only hold a single letter/number, but one way to hold multiple is a string string str; cin >> str; The above will only pull one word, to get all words (until enter key) use: getline(cin, str); (See: stringinput.cpp)

More Output When showing doubles with cout, you can change how they are shown For example, to show a number as dollars and cents, you would type (before cout): cout.setf(ios::fixed); cout.setf(ios::showpoint); cout.precision(2);

More Output There are two ways to get output to move down a line: endl and \n cout << endl;... is the same as... cout << \n I will use both when coding

Madlibs (see: madlibs.cpp)

bool bool - either true or false You have the common math comparisons: > (greater than), e.g. 7 > 2.5 is true == (equals), e.g. 5 == 4 is false <= (less than or eq), e.g. 1 <= 1 is true If you cout this, false will be 0 and true will be 1 (anything non-zero is T)

Double trouble! (See: doublecompare.cpp)

Double trouble! When comparing doubles, you should use check to see if relative error is small: fabs((x-y)/x) < 10E-10 (double has about 16 digits of accuracy so you could go to 10E-15 if you want) For comparing Strings, use: (0 if same) string1.compare(string2)