Problem Solving and Program Design. Problem Solving Process Define and analyze the problem. Develop a solution. Write down the solution steps in detail.

Slides:



Advertisements
Similar presentations
The Software Lifecycle. Example Problem: Update a Checkbook Write a program that allows the user to enter a starting balance, a transaction type, D or.
Advertisements

LECTURE 1 CMSC 201. Overview Goal: Problem solving and algorithm development. Learn to program in Python. Algorithm - a set of unambiguous and ordered.
CS 6301 Lecture 2: First Program1. CS Topics of this lecture Introduce first program  Explore inputs and outputs of a program Arithmetic using.
 C++ programming facilitates a disciplined approach to program design. ◦ If you learn the correct way, you will be spared a lot of work and frustration.
COSC 120 Computer Programming
Problem Solving and Program Design Programming. COMP102 Prog Fundamentals I : Problem Solving and Program Design/Slide 2 Problem Solving Process l Define.
Problem Solving and Program Design Programming. COMP104 Lecture 3 / Slide 2 Problem Solving Process l Define and analyze the problem. l Develop a solution.
Problem Solving and Program Design. COMP104 Problem Solving / Slide 2 Our First Program // a simple program #include using namespace std; int main() {
Writing and Testing Programs Drivers and Stubs Supplement to text.
C++ Basics. COMP104 C++ Basics / Slide 2 Introduction to C++ * C++ is a programming language for manipulating numbers and user-defined objects. * C++
Three types of computer languages
1 September 6, 2005CS150 Introduction to Computer Science I What Actions Do We Have Part 1 CS150 Introduction to Computer Science I.
Computer Science 1620 Programming & Problem Solving.
 2003 Prentice Hall, Inc. All rights reserved. 1 Machine Languages, Assembly Languages, and High-level Languages Three types of computer languages 1.Machine.
1 8/30/06CS150 Introduction to Computer Science 1 Your First C++ Program.
Basic Elements of C++ Chapter 2.
Introduction to C++ Programming
Software Engineering 1 (Chap. 1) Object-Centered Design.
Copyright 2003 Scott/Jones Publishing Brief Version of Starting Out with C++, 4th Edition Chapter 1 Introduction to Computers and Programming.
Computer Programming and Basic Software Engineering 4. Basic Software Engineering 1 Writing a Good Program 4. Basic Software Engineering.
COMPUTER SCIENCE I C++ INTRODUCTION
 2003 Prentice Hall, Inc. All rights reserved. 1 Introduction to C++ Programming Outline Introduction to C++ Programming A Simple Program: Printing a.
Modular Programming Chapter Value and Reference Parameters t Function declaration: void computesumave(float num1, float num2, float& sum, float&
Chapter 2 Overview of C++ Lecture Notes Prepared By: Blaise W. Liffick, PhD Department of Computer Science Millersville University Millersville, PA
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2: Overview of C++ Problem Solving, Abstraction, and Design using.
Modular Programming Chapter Value and Reference Parameters computeSumAve (x, y, sum, mean) ACTUALFORMAL xnum1(input) ynum2(input) sumsum(output)
Chapter 3: Completing the Problem- Solving Process and Getting Started with C++ Introduction to Programming with C++ Fourth Edition.
Chapter 1 Introduction to Computers and C++ Programming Goals: To introduce the fundamental hardware and software components of a computer system To introduce.
Overview of Programming and Problem Solving Textbook Chapter 1 1.
1 C++ Programming Basics Chapter 2 Lecture CSIS 10A.
Week 1 Algorithmization and Programming Languages.
COMPUTER PROGRAMMING. A Typical C++ Environment Phases of C++ Programs: 1- Edit 2- Preprocess 3- Compile 4- Link 5- Load 6- Execute Loader Primary Memory.
1 INTRODUCTION TO PROBLEM SOLVING AND PROGRAMMING.
Introduction to Algorithmic Processes CMPSC 201C Fall 2000.
1 8/31/05CS150 Introduction to Computer Science 1 Hello World!
Chapter 1 Computers, Compilers, & Unix. Overview u Computer hardware u Unix u Computer Languages u Compilers.
Chapter 3 – Variables and Arithmetic Operations. First Program – volume of a box /************************************************************/ /* Program.
Think First, Code Second Understand the problem Work out step by step procedure for solving the problem (algorithm) top down design and stepwise refinement.
C++ Basics Programming. COMP104 Lecture 5 / Slide 2 Introduction to C++ l C is a programming language developed in the 1970s with the UNIX operating system.
Principles of Programming CSEB134 : BS/ CHAPTER Fundamentals of the C Programming Language.
Arithmetic, Functions and Input 9/16/13. Arithmetic Operators C++ has the same arithmetic operators as a calculator: * for multiplication: a * b – Not.
 2003 Prentice Hall, Inc. All rights reserved Basics of a Typical C++ Environment C++ systems –Program-development environment –Language –C++
CS Class 04 Topics  Selection statement – IF  Expressions  More practice writing simple C++ programs Announcements  Read pages for next.
1 8/30/06CS150 Introduction to Computer Science 1 Your First C++ Program.
Introduction to Algorithmic Processes CMPSC 201C Fall 2000.
Software Engineering Algorithms, Compilers, & Lifecycle.
1 09/10/04CS150 Introduction to Computer Science 1 What Actions Do We Have Part 2.
C++ Programming: From Problem Analysis to Program Design, Fourth Edition Chapter 3: Input/Output Samples.
Bill Tucker Austin Community College COSC 1315
Chapter Topics The Basics of a C++ Program Data Types
What Actions Do We Have Part 1
Chapter 2 Introduction to C++ Programming
Completing the Problem-Solving Process
Basic Elements of C++.
C++ Programming: From Problem Analysis to Program Design
Basic Elements of C++ Chapter 2.
Chapter 2 Elementary Programming
Programming Funamental slides
1.13 The Key Software Trend: Object Technology
Programming Funamental slides
CS150 Introduction to Computer Science 1
CS150 Introduction to Computer Science 1
Basic Debugging (compilation)
Programs written in C and C++ can run on many different computers
Engineering Problem Solving with C++ An Object Based Approach
Engineering Problem Solving with C++ An Object Based Approach
Life is Full of Alternatives
Arithmetic Operations
Capitolo 1 – Introduction C++ Programming
Chapter 2: Overview of C++
Presentation transcript:

Problem Solving and Program Design

Problem Solving Process Define and analyze the problem. Develop a solution. Write down the solution steps in detail. Test the solution and revise if necessary. Document and maintain the solution.

Programming as a Problem Solving Process Define and analyze the problem  What is the input & output?  What constraints must be satisfied?  What information is essential? Design an algorithm  What steps must be done?  Write down the solution steps in detail Implement a program - programming or coding. Compile, test, and debug the program - testing. Document and maintain the program. Problem solving phase Implementation phase

Example 1 Problem Statement: Convert US dollars into Hong Kong dollars. Problem Analysis:  Input: Amount in US$  Output: Amount in HK$  Apply official currency exchange rates.

Example 1 Algorithm design  Read in amount in US$  Calculate the HK$ amount = 7.8*US$  Display the results

// converts US$ to HK$ #include using namespace std; int main(){ double usdollars; double hkdollars; // read in amount in US$ cout <<"Enter US$ amount and press return: “ << endl; cin >> usdollars; // calculate the HK$ amount hkdollars = 7.8 * usdollars; // display the results cout << "US$" << usdollars << " = HK$" << hkdollars << endl; return 0; }

Program Implementation:  Program comments: //  Library reference: #include  Function type: int  Function name and (lack of) parameters: main( )  Statement braces: { }  Variable declaration: double  Input/output functions: cin, cout

Using Visual C++ Enter source code Compile source code  If there are error or warning messages, double-clicking on the error message will cause an arrow to point to the line where the suspected error is. Edit the source code and recompile. Build execution module Execute  If there are errors, edit the source code and recompile Save source files on floppy disk (A:) Remove source file from hard disk (C:)

Just do it!

What Makes a Good Program? Correctness  Meets the problem requirements  Produces correct results Easy to read and understand Easy to modify Easy to debug Efficient  Fast  Requires less memory

Example 2 Problem Statement  Given a collection of nickels (US 5-cent piece) and pennies (US 1- cent piece), find the equivalent number of Hong Kong dollars and 10-cent pieces. Problem Analysis  Input:  nickels (integer) - number of US nickels  pennies (integer) - number of US pennies  Output:  dollars (integer) - number HK dollar coins to return  houji (integer) - number HK 10-cent coins to return Constraints: None

Example 2: Initial Algorithm 1. Read in the numbers of nickels and pennies 2. Compute the total value in US dollars 3. Compute the total value in HK dollars to exchange 4. Find the number of HK dollar coins and houji coins 5. Display the numbers well-labeled

Example 2: Program Skeleton // File: excoin.cpp // Determines the number of HK coins to exchange for US coins #include using namespace std; int main(){ int nickel; // number of nickels int penny; // number of pennies int dollar; // number of HK dollar coins int houji; // number of HK 10-cent coins double total_USD; // total value in US$ double total_HKD; // total value in HK$ // Read in the number of nickels and pennies // Compute the total value in US$ // Compute the total value in HK$ to exchange // Find the numbers of HK dollar and 10-cent coins // Display the numbers of HK dollar and 10-cent coins return 0; }

Example 2: Refined Algorithm 1. Read in the number of nickels and pennies 2. Compute the total value in US dollars total_USD = (5 * nickel + penny)/ Compute the total in HK dollars to exchange total_HKD = total_USD * US2HK 4. Find the number of HK dollar coins and 10-cent coins total_HK_cent = total_HKD * 100 dollar = total_HK_cent / 100 houji = (total_HK_cent % 100) / Display the number of HK dollar and 10-cent coins

C++ Arithmetic Operators The four operators +, -, *, and / work as we expect with the “normal” precedence rules (e.g., 5+2*3 = 11) Parenthesis can be inserted to change the order of operations (e.g., (5+2)*3 = 21) Be careful of integer division -- any remainder is discarded The % (modulo) operator gives the remainder of integer division

// File: excoin.cpp // Determines the number of HK coins to exchange for US coins #include using namespace std; int main(){ const double US2HK = 7.8;// assume exchange rate is US$1 = HK$7.8 int nickel;// number of nickels int penny;// number of pennies int dollar;// number of HK dollar coins int houji;// number of HK 10-cent coins double total_USD;// total value in US$ int total_HK_cent;// total value in HK cents double total_HKD;// total value in HK$ // Read in the number of nickels and pennies cout << "Enter the number of nickels and press return: "; cin >> nickel; cout << "Enter the number of pennies and press return: "; cin >> penny;

// Compute the total value in US$ total_USD = (5 * nickel + penny) / 100.0; // Compute the total value in HK$ using the assumed exchange rate total_HKD = total_USD * US2HK; // Find the value in HK dollars and change total_HK_cent = total_HKD * 100; dollar = total_HK_cent / 100; houji = (total_HK_cent % 100)/10; // Display the number of HK dollar and 10-cent coins cout << "The change is HK " << dollar << " dollars and " << houji << " 10-cent coins." << endl; return 0; }