+ All Categories
Home > Documents > CSC 1051 – Algorithms and Data Structures I

CSC 1051 – Algorithms and Data Structures I

Date post: 29-Jan-2016
Category:
Upload: doane
View: 118 times
Download: 0 times
Share this document with a friend
Description:
CSC 1051 – Algorithms and Data Structures I. Algorithms. Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website: www.csc.villanova.edu/~map/1051 /f13/ - PowerPoint PPT Presentation
Popular Tags:
24
CSC 1051 M.A. Papalaskari, Villanova University Algorithms Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website: www.csc.villanova.edu/~map/1051 /f13/ Some slides in this presentation are adapted from the slides accompanying Java Software Solutions by Lewis & Loftus or from Dr. Daniel Joyce’s slides for this course. CSC 1051 – Algorithms and Data Structures I
Transcript
Page 1: CSC 1051 – Algorithms and Data Structures I

CSC 1051 M.A. Papalaskari, Villanova University

Algorithms

Dr. Mary-Angela Papalaskari

Department of Computing Sciences

Villanova University

Course website:

www.csc.villanova.edu/~map/1051/f13/

Some slides in this presentation are adapted from the slides accompanying Java Software Solutions by Lewis & Loftus or from Dr. Daniel Joyce’s slides for this course.

CSC 1051 – Algorithms and Data Structures I

Page 2: CSC 1051 – Algorithms and Data Structures I

Source: http://xkcd.com/627/

CSC 1051 M.A. Papalaskari, Villanova University

Algorithms in everyday life

Page 3: CSC 1051 – Algorithms and Data Structures I

Algorithm Example

Statement of GPA problem:

Write a program that inputs the credits and quality points earned and outputs the gpa.

CSC 1051 M.A. Papalaskari, Villanova University

variables: qp, credits, gpa

Algorithm:

1. Input qp2. Input credits3. gpa = qp / credits4. Print gpa

Page 4: CSC 1051 – Algorithms and Data Structures I

Algorithms

An algorithm is a specific set of instructions for carrying out a procedure or solving a problem, usually with the requirement that the procedure terminate at some point. Specific algorithms sometimes also go by the name method, procedure, or technique. The word "algorithm" is a distortion of al-Khwārizmī, a Persian mathematician who wrote an influential treatise about algebraic methods.

Sources: http://mathworld.wolfram.com/Algorithm.html and Wikipedia (http://en.wikipedia.org/wiki/Mu%E1%B8%A5ammad_ibn_M%C5%ABs%C4%81_al-Khw%C4%81rizm%C4%AB )

CSC 1051 M.A. Papalaskari, Villanova University

Page 5: CSC 1051 – Algorithms and Data Structures I

Java Program

//*************************************************************

// GPA.java Author: Joyce/Papalaskari// Demonstrates the use of Scanner input and simple computation.//*************************************************************import java.util.Scanner;

public class GPA{ public static void main (String[] args) //------------------------------------------------------------ // Inputs the quality points and credits and calculates GPA. //------------------------------------------------------------ { double qp, credits, gpa;

Scanner scan = new Scanner(System.in);

// get input System.out.print ("Enter Quality Points > "); qp = scan.nextInt(); System.out.print ("Enter Credits > "); credits = scan.nextInt();

// output information entered System.out.println ("\nQuality Points: " + qp); System.out.println ("Credits: " + credits); // calculate and output GPA gpa = qp / credits; System.out.println ("\n\tGPA: " + gpa); }}

variables: qp, credits, gpa

Algorithm:

1. Input qp2. Input credits3. gpa = qp / credits4. Print gpa

CSC 1051 M.A. Papalaskari, Villanova University

Page 6: CSC 1051 – Algorithms and Data Structures I

Pseudocode: a way to describe what an algorithm does without writing a program.

CSC 1051 M.A. Papalaskari, Villanova University

variables: qp, credits, gpa

Algorithm:

1. Input qp2. Input credits3. gpa = qp / credits4. Print gpa

Page 7: CSC 1051 – Algorithms and Data Structures I

Writing an algorithm in pseudocode• List the variables used. • List the steps for

solving the problem, in order.

• Try to be brief and unambiguous; use Java expressions only when it is simpler to specify a step in java than in English.

CSC 1051 M.A. Papalaskari, Villanova University

variables: qp, credits, gpa

Algorithm:1. Input qp

2. Input credits

3. gpa = qp / credits

4. Print gpa

Page 8: CSC 1051 – Algorithms and Data Structures I

Writing an algorithm in pseudocode• List the variables used. • List the steps for

solving the problem, in order.

• Try to be brief and unambiguous; use Java expressions only when it is simpler to specify a step in java than in English.

CSC 1051 M.A. Papalaskari, Villanova University

variables: qp, credits, gpa (use floating point)

Algorithm:1. Input qp

2. Input credits

3. gpa = qp / credits (Note: use floating point division)

4. Print gpa

When the type is not obvious you can add a note.

Page 9: CSC 1051 – Algorithms and Data Structures I

Another example:

CSC 1051 M.A. Papalaskari, Villanova University

Write an application that reads values representing a time duration in hours, minutes, and seconds and then prints the equivalent total number of seconds. (For example, 1 hour, 28 minutes, and 42 seconds is equivalent to 5322 seconds.)

PP 2.8 (textbook, Chapter 2 Programming projects)

Page 10: CSC 1051 – Algorithms and Data Structures I

Can we reverse this calculation?

CSC 1051 M.A. Papalaskari, Villanova University

Create a version of the previous project that reverses the computation. That is, read a value representing a number of seconds, then print the equivalent amount of time as a combination of hours, minutes, and seconds. (For example, 9999 seconds is equivalent to 2 hours, 46 minutes, and 39 seconds.)

The next 3 slides will help us visualize this problem.

PP 2.9 (textbook, Chapter 2 Programming projects)

Page 11: CSC 1051 – Algorithms and Data Structures I

Algorithm for PP 2.9

CSC 1051 M.A. Papalaskari, Villanova University

Page 12: CSC 1051 – Algorithms and Data Structures I

How many of each can you pack in the black box?

Page 13: CSC 1051 – Algorithms and Data Structures I

How many of each can you pack in the black box?

Page 14: CSC 1051 – Algorithms and Data Structures I

How many of each can you pack in the black box?

Page 15: CSC 1051 – Algorithms and Data Structures I

Topic Thread• 2.1 Character Strings• 2.2 Variables, Assignment• 2.3 Data Types, in particular int, double• 2.4 Expressions (simple)• 2.6 Interactive Programs• 5.1 Boolean Expressions• 5.2 The if Statement• 5.5 The while Statement

CSC 1051 M.A. Papalaskari, Villanova University

Page 16: CSC 1051 – Algorithms and Data Structures I

Java Program

//*************************************************************

// GPA.java Author: Joyce/Papalaskari// Demonstrates the use of Scanner input and simple computation.//*************************************************************import java.util.Scanner;

public class GPA{ public static void main (String[] args) //------------------------------------------------------------ // Inputs the quality points and credits and calculates GPA. //------------------------------------------------------------ { double qp, credits, gpa;

Scanner scan = new Scanner(System.in);

// get input System.out.print ("Enter Quality Points > "); qp = scan.nextInt(); System.out.print ("Enter Credits > "); credits = scan.nextInt();

// output information entered System.out.println ("\nQuality Points: " + qp); System.out.println ("Credits: " + credits); // calculate and output GPA gpa = qp / credits; System.out.println ("\n\tGPA: " + gpa); }}

variables: qp, credits, gpa

Algorithm:

1. Input qp2. Input credits3. gpa = qp / credits4. Print gpa

CSC 1051 M.A. Papalaskari, Villanova University

What if credits = 0 ????

Previous Example

Page 17: CSC 1051 – Algorithms and Data Structures I

Updated Algorithm

CSC 1051 M.A. Papalaskari, Villanova University

variables: qp, credits, gpa

Algorithm:

1. Input qp2. Input credits3. if credits = 0

• Print “No gpa yet”else

• gpa = qp / credits• Print gpa

4. Print gpa goodbye message

Page 18: CSC 1051 – Algorithms and Data Structures I

variables: qp, credits, gpa

Algorithm:

1. Input qp2. Input credits3. if credits = 0

• Print “No gpa yet”else

• gpa = qp / credits• Print gpa

4. Print gpa goodbye message

Java code

if (credits == 0)

System.out.println (“\n\tGPA: None");

else

{

gpa = qp / credits;

System.out.println (“\n\tGPA: " + gpa);

}

CSC 1051 M.A. Papalaskari, Villanova University

Page 19: CSC 1051 – Algorithms and Data Structures I

//*************************************************************// GPA_updated.java Author: Joyce/Papalaskari//// Demonstrates the use of conditional statements.//*************************************************************

import java.util.Scanner;

public class GPA_Updated{ public static void main (String[] args) //---------------------------------------------------------- // Reads the quality points and credits and calculates GPA. //---------------------------------------------------------- { double qp, credits, gpa; Scanner scan = new Scanner(System.in);

// get input System.out.print ("Enter Quality Points > "); qp = scan.nextInt(); System.out.print ("Enter Credits > "); credits = scan.nextInt();

// output information entered System.out.println ("\nQuality Points: " + qp); System.out.println ("Credits: " + credits); // calculate and output GPA, if possible if (credits == 0) System.out.println ("\n\tGPA: None"); else { gpa = qp / credits; System.out.println ("\n\tGPA: " + gpa); } // Print goodbye message System.out.println ("Goodbye and thank you for using my GPA calculator."); }}

CSC 1051 M.A. Papalaskari, Villanova University

Updated program

variables: qp, credits, gpa

Algorithm:

1. Input qp2. Input credits3. if credits = 0

• Print “No gpa yet”else

• gpa = qp / credits• Print gpa

4. Print goodbye message

Page 20: CSC 1051 – Algorithms and Data Structures I

• Conditional statements alter the linear flow of control. They use boolean expressions to determine what to do next.Example:

if (credits == 0)

System.out.println ("GPA: None");

else { gpa = qp / credits; System.out.println ("\n\tGPA: " + gpa); }

CSC 1051 M.A. Papalaskari, Villanova University

A boolean expression

Page 21: CSC 1051 – Algorithms and Data Structures I

Control flow• Sequence of statements that are actually executed in a program

• Conditional and Repetition statements: enable us to alter control flow

CSC 1051 M.A. Papalaskari, Villanova University

statement 1

statement 2

statement 3

statement 4

boolean 1

boolean 2

statement 1

statement 2true

true

false

false

statement 3

This slide dapted from Doug Clark’s course http://www.cs.princeton.edu/courses/archive/spring13/cos126/lectures.php

Page 22: CSC 1051 – Algorithms and Data Structures I

Java relational operators

• relational operators can be used with numeric types and produce boolean results:

== equal to

!= not equal to

< less than

> greater than

<= less than or equal to

>= greater than or equal to

• Note the difference between the equality operator (==) and the assignment operator (=)

CSC 1051 M.A. Papalaskari, Villanova University

Page 23: CSC 1051 – Algorithms and Data Structures I

Boolean Expressions• The reserved words true and false are the only valid

values for a boolean type

• Example boolean declarations:

A boolean expression using a relational operator

CSC 1051 M.A. Papalaskari, Villanova University

boolean aboveAgeLimit = false;

boolean usePlural = hours > 1;

Page 24: CSC 1051 – Algorithms and Data Structures I

Example• An if statement with its boolean condition:

if (hours != 1) System.out.print("s");

• Another way, using a boolean variable:

boolean usePlural = hours != 1;

if (usePlural)

System.out.print("s");

• See also Age.java

CSC 1051 M.A. Papalaskari, Villanova University


Recommended