Writing and Understanding C++

Slides:



Advertisements
Similar presentations
1 Lecture-4 Chapter 2 C++ Syntax and Semantics, and the Program Development Process Dale/Weems/Headington.
Advertisements

Chapter 6: User-Defined Functions I
C++ Programming: From Problem Analysis to Program Design, Second Edition Chapter 6: User-Defined Functions I.
A simple C++ program /* * This program prints the phrase "Hello world!" * on the screen */ #include using namespace std; int main () { cout
Chapter 6: User-Defined Functions I
Basic Elements of C++ Chapter 2.
CMSC 104, Version 8/061L18Functions1.ppt Functions, Part 1 of 4 Topics Using Predefined Functions Programmer-Defined Functions Using Input Parameters Function.
COMPUTER SCIENCE I C++ INTRODUCTION
Genome Revolution: COMPSCI 004G 3.1 What is a program? What is code? l Instructions in a language a computer executes  Languages have different characteristics,
Chapter 6: User-Defined Functions I Instructor: Mohammad Mojaddam
Chapter 06 (Part I) Functions and an Introduction to Recursion.
Course websites CS201 page link at my website: Lecture slides Assistant’s Information Recitations Office Hours Make-up.
1 C++ Syntax and Semantics, and the Program Development Process.
A Computer Science Tapestry 3.1 Programs that Respond to Input l Programs in chapters one and two generate the same output each time they are executed.
CPSC 230 Computers and Programming I Spring 2003 Dr. Lynn Lambert.
USER-DEFINED FUNCTIONS. STANDARD (PREDEFINED) FUNCTIONS  In college algebra a function is defined as a rule or correspondence between values called the.
Chapter 4: Subprograms Functions for Problem Solving Mr. Dave Clausen La Cañada High School.
C++ Programming: From Problem Analysis to Program Design, Fourth Edition Chapter 6: User-Defined Functions I.
Chapter 0 Getting Started. Objectives Understand the basic structure of a C++ program including: – Comments – Preprocessor instructions – Main function.
A Computer Science Tapestry 2.1 Writing and Understanding C++ l Writing programs in any language requires understanding the syntax and semantics of the.
Genome Revolution: COMPSCI 004G 2.1 Bioinformatics Vocabulary l Processing, analyzing, experimenting with data  Where does the data come from?  How do.
A Computer Science Tapestry 2.1 Writing and Understanding C++ l There are language independent skills in programming (C++, Java, …) l However, writing.
1 A simple C++ program // ======================================================= // File:helloworld.cpp // Author:Vana Doufexi // Date:1/4/2006 // Description:Displays.
1 Chapter 2 C++ Syntax and Semantics, and the Program Development Process.
Compsci 06/101, Fall Vocabulary l What's the Spanish word for 'boy'? 'eat'?  How do you know? l What about the Turkish equivalents?  How do.
Structure Programming Lecture 8 Chapter 5&6 - Function – part I 12 December 2015.
C++ Programming: Program Design Including Data Structures, Fourth Edition Chapter 6: User-Defined Functions I.
Chapter 3 Functions. 2 Overview u 3.2 Using C++ functions  Passing arguments  Header files & libraries u Writing C++ functions  Prototype  Definition.
Functions Math library functions Function definition Function invocation Argument passing Scope of an variable Programming 1 DCT 1033.
C++ Programming: Program Design Including Data Structures, Fourth Edition Chapter 6: User-Defined Functions I.
Chapter 3: User-Defined Functions I
A Computer Science Tapestry 3.1 Programs that Respond to Input l Programs in chapters one and two generate the same output each time they are executed.
C++ Programming: From Problem Analysis to Program Design, Fourth Edition Chapter 6: User-Defined Functions I.
CS201 Introduction to Sabancı University 1 Chapter 2 Writing and Understanding C++ l Writing programs in any language requires understanding.
CSE1222: Lecture 1The Ohio State University1. Computing Basics  Computers CPU, Memory & Input/Output (IO)  Program Sequence of instructions for the.
1 UMBC CMSC 104, Section Fall 2002 Functions, Part 1 of 3 Topics Top-down Design The Function Concept Using Predefined Functions Programmer-Defined.
CSIS 113A Lecture 5 Functions. Introduction to Functions  Building Blocks of Programs  Other terminology in other languages:  Procedures, subprograms,
Programming Fundamentals Enumerations and Functions.
1 Types of Programming Language (1) Three types of programming languages 1.Machine languages Strings of numbers giving machine specific instructions Example:
FUNCTIONS (C) KHAERONI, M.SI. OBJECTIVE After this topic, students will be able to understand basic concept of user defined function in C++ to declare.
STRUCTURED PROGRAMMING Complete C++ Program. Content 2  Main Function  Preprocessor directives  User comments  Escape characters  cout statement.
Bill Tucker Austin Community College COSC 1315
C++ First Steps.
Chapter Topics The Basics of a C++ Program Data Types
Chapter 6: User-Defined Functions I
Topic Pre-processor cout To output a message.
CMPT 201.
Engineering Problem Solving With C An Object Based Approach
Chapter 1: Introduction to computers and C++ Programming
Chapter 1.2 Introduction to C++ Programming
ANNOUNCEMENT The missed lecture will be made up this Monday evening in the Tech PC classroom (MG51). A tentative time interval is 6:30-8:00. The exact.
Function Topic 4.
Announcements Homework 1 is due on February 22nd, this Wednesday, at 19:00 Submit to SUCourse Strictly follow the submission guideline provided in the.
Basic Elements of C++.
Chapter 5 Function Basics
User-Defined Functions
Basic Elements of C++ Chapter 2.
Announcements Homework 1 is due on October 4th, this Wednesday, at 19:00 Submit to SUCourse Strictly follow the submission guideline provided in the homework.
Chapter 2 – Getting Started
Announcements General rules about homeworks
Chapter 5 Function Basics
Announcements General rules about homeworks
Course websites CS201 page link at my website: Lecture slides
Computing Fundamentals
Announcements Homework 1 will be assigned this week,
Chapter 6: User-Defined Functions I
Chapter 2: Introduction to C++.
Announcements General rules about homeworks
Programs that Respond to Input
Announcements Homework 1 will be assigned this week
Presentation transcript:

Writing and Understanding C++ Writing programs in any language requires understanding the syntax and semantics of the programming language as well as language-independent skills in programming. Syntax is similar to rules of spelling and grammar: i before e except after c The relationship between a command and a quote, “this is a fact,” or “this is a fact”, Semantics is what a program (or English sentence) means You ain’t nothing but a hound dog. La plume de ma tante est sur la porte. At first it seems like the syntax is hard to master, but the semantics are much harder Natural languages are more forgiving than programming languages.

Toward an Understanding of C++ Traditional first program, doesn’t convey power of computing but it illustrates basic components of a simple program #include <iostream> using namespace std; // traditional first program int main() { cout << "Hello world" << endl; return 0; } This program must be edited/typed, compiled, linked and executed. Other languages don’t use compile/link phase, examples?

Anatomy of a C++ Program #include statements make libraries of classes and functions accessible to the program Compiler needs access to interface, what the functions look like, but not to implementation Linker/Loader needs access to implementations Helps programmers develop code independently Comments make programs readable by humans The cost of program maintenance is often far greater than the cost of program development Use comments liberally, but make them meaningful

More C++ Anatomy Programmer-defined functions Functions are abstractions that help you to reuse ideas and code The square root key on a calculator invokes a function The chorus of a song is a similar abstraction One word, e.g., “chorus”, takes the place of many or represents a concept A program is a collection of functions and classes Programs may be implemented in more than one file, but there is only one main function Execution of the program begins with main The main function returns a value to the operating system or environment

Dennis Ritchie Developed C and Unix Shared 1983 Turing award and National Medal of Science in 1999 “We wanted to preserve not just a good environment in which to do programming, but a system around which a fellowship could form” Unix was Free to Universities Expensive originally Linux precursor?

Execution and Flow Control Execution of C++ programs is organized around statements A statement executes, it may cause another statement to execute Statements execute sequentially, or as governed by control that repeats a group of statements or selects one of several groups to execute Control statements covered later; for now sequential flow Syntax determines what’s in a statement, semantics determines construction of program from statements Output will be part of our programs cout is the output stream, objects are placed on the stream Objects are strings, numbers, many other types

Stream output cout is the standard output stream, use cerr for errors and other streams later. Accessible via #include<iostream> Objects inserted onto stream with insertion operator << Different objects separated by insertion operator << cout << "yadda yadda yadda" << endl; cout << " gross = " << 12*12 << endl; cout << 5 << " in. = " << 5*2.54 << " cm. " << endl; String literals in quotes, other expressions are evaluated before being output. endl is the “end of line” object (IO manipulator) Can also output "\n" or "\t" or "\"" (escape sequences)

More about streams and syntax C++ statements are terminated by a semi-colon cout << 3.14159*10*10 << " = area " << " of circle with radius = " << 10 << ", circ = " << 2*10*3.14159 << endl; Thinking ahead: Repetition of radius, problems? Repetition of p, problems? What’s better, several statements, or one long statement? Evaluating expressions: rules of arithmetic? Differences between 2*3 and 2*3.0 ?

Toward Using Functions #include <iostream> using namespace std; int main() { cout << " |||||||||||||||| " << endl; cout << " | | " << endl; cout << " | o o | " << endl; cout << " _| |_ " << endl; cout << "|_ _|" << endl; cout << " | |______| | " << endl; return 0; } Prints head, but not as modular as program using functions Harder to modify to draw differently

Programmer-defined Functions #include <iostream> using namespace std; // functions appear here int main() { Hair(); Sides(); Eyes(); Ears(); Smile(); return 0; } What are advantages of this main over one in which several output statements appear in main. New hair style? Stretched head? Are these advantages? How is width of head determined? Drawbacks? Solutions?

Advantages of Functions #include <iostream> using namespace std; // functions appear here int main() { Hair(); Sides(); Eyes(); Ears(); Smile(); return 0; } What about eyeglasses? Mustache? Big nose? Frown? Advantages in extending program rather than modifying program. Multiple heads (totem poles)

Totem Functions int main() { Head1(); Head2(); Head3(); return 0; } |||||||||||||||| |||||||||||||||| | | | | | o o | | o o | _| |_ _| |_ |_ _| |_ _| | |______| | | |______| | |||||||///////// |||||||///////// | --- --- | | --- --- | |---|o|--|o|---| |---|o|--|o|---| _| |_ _| 0 |_ | +------+ | | +------+ | | | | | | | | | |||||||||||||||| |||||||||||||||| | | | o | | o | |-+ ||||||| +-| | ||||||| | |-+ +-| _| |_ | |______| | |_ _| | | | |______| | | | int main() { Head1(); Head2(); Head3(); return 0; } What changed between the two runs of the program? Can you write Headxx() ? Is Head1 a good name? Does Headxx call other functions? Suppose we used graphics instead of cout << ?

Parameterized Functions A square root function that only returns square root of 2 isn’t very useful F = sqrt(2), so 2 is a parameter/argument to the function Useful parameter to head-drawing functions? What about happy birthday printing argument/parameter? Functions have parameters, arguments are passed to functions Birthday("Fred"); // sing to fred Birthday("Ethel"); // sing to ethel

Functions and Parameters (continued) #include <iostream> using namespace std; void WinBigMoney(string name) { cout << "Hello " << name << " you may have " << " won $1,000,000" << endl; cout << name << ", please call 1-900-IMN-IDIOT" << endl; } int main() Hello("owen"); Hello("susan"); Hello("bill gates"); return 0; Parameter list provides type and name of parameter Argument type must match parameter type Function’s prototype based on types only, not names

Parameterized Functions for Songs On his farm Old MacDonald had a X that that says Y pig, oink cow, moo void Verse( ); Five bottles of Z on a wall, five bottles of Z cola lemonade Mama’s going to buy you a X, and if that X Y Mocking bird, don’t sing Looking glass, get’s broke

Calling Functions: where, when, how? Some functions are imported from libraries Function prototypes specified in header files, implementations linked later Compiler “sees” prototype before client code calls function Some functions are in the same file in which they’re called Function declaration is the prototype only Function definition includes the implementation void Verse(string name); void Verse(string name) { cout << "hi " << name << endl; } Declaration or definition must appear before call Ok to put declaration before, definition after call Ok to put main last, all definitions first (problems?)

Ada Lovelace, 1816-1853 Daughter of Byron, advocate of work of Charles Babbage, designer of early “computer” (the Analytical Engine) Made Babbage’s work accessible “It would weave algebraic patterns the way the Jacquard loom weaved patterns in textiles” Tutored in mathematics by Augustus de Morgan Marched around the billiard table playing the violin Ada is a notable programming language

Program Style People who use your program don’t read your code You’ll write programs to match user needs People who maintain or modify your program do read code Must be readable, understandable without you next door Use a consistent programming style, adhere to conventions Identifiers are names of functions, parameters, (variables, classes, …) Sequence of letters, numbers, underscore __ characters Cannot begin with a number (we won’t begin with __) big_head vs. BigHead, we’ll use AlTeRnAtInG format Make identifiers meaningful, not droll and witty