Describing and Implementing Algorithms
|
|
- Bridget King
- 5 years ago
- Views:
Transcription
1 Describing and Implementing Algorithms ECE2036 Lecture 1 ECE2036 Describing and Implementing Algorithms Spring / 19
2 What is an Algorithm? According to Wikipedia: An algorithm is a sequence of instructions, often used for calculation and data processing. It is formally a type of effective method in which a list of well-defined instructions for completing a task that will, when given an initial state, proceed through a well-defined series of successive states, eventually terminating in an end-state. ECE2036 Describing and Implementing Algorithms Spring / 19
3 Graphical Representation of a Simple Algorithm Stop, Lamp Works Yes Does Lamp Work? No No Lamp Plugged In? Yes Bulb Burned Out? Yes No Plug in Lamp Replace Bulb Buy New Lamp Question: Is this algorithm guaranteed to terminate? Start ECE2036 Describing and Implementing Algorithms Spring / 19
4 Revised Simple Algorithm Yes Stop, Lamp Works Does Lamp Work? No No Lamp Plugged In? Plug in Lamp Yes Yes Bulb Burned Out? Replace Bulb No No Stop, Can t Fix Enough Money? Yes Buy New Lamp Guaranteed to terminate assuming less than infinite money. Start ECE2036 Describing and Implementing Algorithms Spring / 19
5 Euclid s Algorithm Algorithm E Euclid s algorithm. Given two positive integers m and n, find their greatest common divisor (GCD), which is the largest positive integer which evenly divides both m and n. E1 Divide m by n and let r be the remainder. (We will have 0 r < n.) E2 If r = 0 the algorithm terminates and n is the answer. E3 Set m n, n r and return to step E1. Algorithm description by Donald E. Knuth, Art of Computer Programming. Question: Is Euclid s algorithm guaranteed to terminate? ECE2036 Describing and Implementing Algorithms Spring / 19
6 Algorithm Primitives SET variable1 newvalue1, variable2 newvalue2 Set one or more variables to a new value Example: E1 SET m 0, n k 3, x ((k + 2) j)/(y + 2) WHILE Condition Perform all substeps as long as Condition is true. Example: E2 WHILE k > 0 AND J = 3 E2.1 SET k k 1 E2.2 SET x = 0 IF Condition Perform all substeps only if the Condition is true Example: E3 IF k = 10 E3.1 SET j j 1 E3.2 SET k k 1 ELSE Perform all substeps only if the Condtion on the previous IF statement is false. Example: E4 IF k = 10 E4.1 SET j j 1 E4.2 SET k k 1 E5 ELSE E5.1 SET x 10 E5.2 SET y k + 50 RETURN Terminate the algorithm and return the result. Example: E6 RETURN Ans ECE2036 Describing and Implementing Algorithms Spring / 19
7 Euclid s Algorithm (revised) Algorithm E Euclid s algorithm. Given two positive integers m and n, find their greatest common divisor (GCD), which is the largest positive integer which evenly divides both m and n. E1 SET Ans 0. E2 WHILE Ans = 0 E2.1 SET r m MODULO n E2.2 IF r = 0 E2.2.1 SET Ans n E2.3 ELSE E2.3.1 SET m n, n r. E3 RETURN Ans ECE2036 Describing and Implementing Algorithms Spring / 19
8 Euclid s Algorithm, C Code / / Implementation of Euclids a l g o r i t h m / / George F. Riley, Georgia Tech, Summer 2008 #include <iostream > using namespace std ; #include " cs1372. h " i n t Euclid ( i n t m, i n t n ) { i n t Ans = 0; cout << " I n i t i a l m " << m << " n " << n << endl ; while ( Ans == 0) { / / Loop u n t i l a l g o r i t h m terminates i n t r = m % n ; / / Remainder when m d i v i d e d by n i f ( r == 0) / / See i f algorithm has terminated { / / Algorithm has terminated, n is the answer Ans = n ; else { / / Interchange m = n ; n = r ; cout << "New m " << m << " n " << n << endl ; PrintLn ( "GCD is ", Ans ) ; return Ans ; i n t main ( ) { Euclid (119, 544); ECE2036 Describing and Implementing Algorithms Spring / 19
9 Euclid s Algorithm, Java Code class e u c l i d { public s t a t i c i n t Euclid ( i n t m, i n t n ) { i n t Ans = 0; while ( Ans == 0) { i n t r = m % n ; i f ( r == 0) { Ans = n ; else { m = n ; n = r ; System. out. p r i n t l n ( "GCD i s " + Ans ) ; return Ans ; public s t a t i c void main ( String [ ] args ) { Euclid (544, 119); ECE2036 Describing and Implementing Algorithms Spring / 19
10 Euclid s Algorithm, TCL Code #! / usr / bin / t c l s h proc Euclid { m n { set Ans 0 while { $Ans == 0 { set r [ expr $m % $n ] i f { $r == 0 { set Ans $n else { set m $n set n $r puts "GCD i s $Ans " return $Ans E u clid ECE2036 Describing and Implementing Algorithms Spring / 19
11 Euclid s Algorithm, Assembly Code # Program to execute euclid s a l g o r i t h m # George F. Riley, F a l l 2008 LDI R0, 0 # Set R0 t o zero LDM R1,m # Get value f o r m LDM R2, n # Get value f o r n Loop : MOD R3, R1, R2 # Remainder of m / n BEQ R3, R0, Done # Done, s t o r e r e s u l t LD R1, R2 # Set m to n LD R2, R3 # Set n to r BEQ R0, R0, Loop # Return to step E1 Done : STM R2, gcd # Store r e s u l t HLT ECE2036 Describing and Implementing Algorithms Spring / 19
12 Defining and Accessing Arrays A variable name followed by brackets [] indicates an Array. Example: Given an array d[], compute... The number of elements in the array is not specified. Usually a separate variable would indicate the length. Example: Given an array d[] containing Length elements... Individual variables in an array are identified by an index, which is specified in one of two ways: SET d[i] 1 SET d i 1 IMPORTANT! The index of the first array element is always ZERO. SET d[0] 10 Set the first element of d to 10 If variable Length indicates the number of elements, then the last element is d[length 1] Arrays can be multi dimensional. Example: Given an array d2[][], compute... Multi dimensional arrays have more than one index. SET d[i, j] 1 SET d ij 1 ECE2036 Describing and Implementing Algorithms Spring / 19
13 Averaging Algorithm Algorithm A Compute the average of an array of numbers. Given an array d[] of length N, compute the average value of all elements of d[]. A1 SET SUM 0, i 0 A2 WHILE i < N A2.1 SET Sum Sum + d[i] A2.2 SET i i + 1 A3 RETURN Sum / N ECE2036 Describing and Implementing Algorithms Spring / 19
14 Algorithmic Complexity For algorithm A, can we predict how long we could expect the algorithm to take to execute? This does not mean in terms of seconds or time, but rather in terms of steps or operations We can think of each step in the algorithm as an operation In our simple algorithm, it is easy to see that the number of operations is C 0 + C 1 N, where C 0 and C 1 are constants we will compute next, and N is the number of elements in array d[] C 0 is the number of operations needed to initialize and exit the algorithm, three in this case (two initializations and one return). C 1 is harder to determine. We could claim it is as small as three or as large as eight. Regardless of the values of C 0 and C 1, we can say definitively that the computational complexity of the averaging algorithm is proportional to N. If the running time of A for N = 1000 is t seconds The running time of A for N = will be approximately 10t ECE2036 Describing and Implementing Algorithms Spring / 19
15 Averaging Algorithm, C Code / / Compute a r i t h m e t i c average of an array of values / / George F. Riley, Georgia Tech, Summer 2008 double Average ( i n t d [ ], i n t n ) { / / d [ ] i s array of values, n i s l e n gth of the array i n t Sum = 0; i n t i = 0; while ( i < n ) { Sum = Sum + d [ i ] ; i ++; return ( double )Sum / n ; ECE2036 Describing and Implementing Algorithms Spring / 19
16 Averaging Algorithm, Assembly Code # Program t o compute average o f an a r r a y o f numbers LDI, R0,0 # Index i n t o d LDM, R1, Length # Get value of l ength LDI, R2,0 # I n i t a l i z e Sum to zero Loop : LDM, R4, R0, d # Read next element ADD, R2, R2, R4 # Add to sum STM, R2,Sum # Store r e s u l t i n Sum ADDI, R0, R0,1 # Increment index BLT, R0, R1, Loop # Repeat while index < length DIV, R0, R2, R1 # Sum / n STM, R0, Avg # Store r e s u l t i n Avg HLT # Done ECE2036 Describing and Implementing Algorithms Spring / 19
17 Bubble Sort Algorithm Algorithm B Sort an array of numbers in ascending order. Given an array d[] of length N, re-order the elements in ascending order, such that d[i 1] <= d[i] for all 1 <= i < n. B1 SET i 1 B2 WHILE i < N B2.1 SET k = i B2.2 WHILE k > 0 AND d[k] < d[k 1] Need to swap B2.2.1 SET tmp d[k], d[k] d[k 1], d[k 1] tmp B2.2.2 SET k k 1 B2.3 SET i i + 1 B3 RETURN ECE2036 Describing and Implementing Algorithms Spring / 19
18 Bubble Sort Computational Complexity What is the computational complexity of the bubble sort algorithm? Clearly, the loop at step B2 executes exactly N 1 times, so the complexity of that loop is proportional to N. However, we have a nested loop at B2.2, and it is harder to say exactly how many times this loop executes. We can say that, on average, d[k] < d[k 1] will be true one half of the time. We can also say that k > 0 is true i times, since k was initialized to i at step B2.1. We can say the average value of i is N/2. Therefore, the complexity of the bubble sort algorithm is proportional to N 2. ECE2036 Describing and Implementing Algorithms Spring / 19
19 Bubble Sort Algorithm Animation You can see an animation of the bubble sort algorithm. ECE2036 Describing and Implementing Algorithms Spring / 19
Computer Internals ECE2036. Lecture 2. ECE2036 Computer Internals Spring / 12
Computer Internals ECE2036 Lecture 2 ECE2036 Computer Internals Spring 2016 1 / 12 Components of a Computer 1 Central Processing Unit (CPU) 2 Memory 3 Input/Output Devices The computer actually has a number
More informationTotal 100. The American University in Cairo Computer Science & Engineering Department CSCE 106. Instructor: Final Exam Fall Section No.
The American University in Cairo Computer Science & Engineering Department CSCE 106 Instructor: Final Exam Fall 2010 Last Name :... ID:... First Name:... Section No.: EXAMINATION INSTRUCTIONS * Do not
More informationMemory Usage in Programs
Memory Usage in Programs ECE2036 Lecture 4 ECE2036 Memory Usage in Programs Spring 2016 1 / 11 Memory Usage in Programs The way that memory is assigned to your program is fundamental to understanding how
More informationUEE1302(1066) F12: Introduction to Computers and Programming Function (II) - Parameter
UEE1302(1066) F12: Introduction to Computers and Programming Function (II) - Parameter What you will learn from Lab 7 In this laboratory, you will understand how to use typical function prototype with
More informationThreads CS1372. Lecture 13. CS1372 Threads Fall / 10
Threads CS1372 Lecture 13 CS1372 Threads Fall 2008 1 / 10 Threads 1 In order to implement concurrent algorithms, such as the parallel bubble sort discussed previously, we need some way to say that we want
More informationStandard Version of Starting Out with C++, 4th Edition. Chapter 19 Recursion. Copyright 2003 Scott/Jones Publishing
Standard Version of Starting Out with C++, 4th Edition Chapter 19 Recursion Copyright 2003 Scott/Jones Publishing Topics 19.1 Introduction to Recursion 19.2 The Recursive Factorial Function 19.3 The Recursive
More informationWhy Is Repetition Needed?
Why Is Repetition Needed? Repetition allows efficient use of variables. It lets you process many values using a small number of variables. For example, to add five numbers: Inefficient way: Declare a variable
More informationLecture 7: General Loops (Chapter 7)
CS 101: Computer Programming and Utilization Jul-Nov 2017 Umesh Bellur (cs101@cse.iitb.ac.in) Lecture 7: General Loops (Chapter 7) The Need for a More General Loop Read marks of students from the keyboard
More informationThe American University in Cairo Computer Science & Engineering Department CSCE 106 Fundamentals of Computer Science
The American University in Cairo Computer Science & Engineering Department CSCE 106 Fundamentals of Computer Science Instructor: Dr. Khalil Final Exam Fall 2013 Last Name :... ID:... First Name:... Form
More informationChapter 10 - Notes Applications of Arrays
Chapter - Notes Applications of Arrays I. List Processing A. Definition: List - A set of values of the same data type. B. Lists and Arrays 1. A convenient way to store a list is in an array, probably a
More informationScientific Computing
Scientific Computing Martin Lotz School of Mathematics The University of Manchester Lecture 1, September 22, 2014 Outline Course Overview Programming Basics The C++ Programming Language Outline Course
More information16.216: ECE Application Programming Spring 2015 Exam 2 Solution
16.216: ECE Application Programming Spring 2015 Exam 2 Solution 1. (20 points, 5 points per part) Multiple choice For each of the multiple choice questions below, clearly indicate your response by circling
More informationIntroduction to Programming in C Department of Computer Science and Engineering\ Lecture No. #02 Introduction: GCD
Introduction to Programming in C Department of Computer Science and Engineering\ Lecture No. #02 Introduction: GCD In this session, we will write another algorithm to solve a mathematical problem. If you
More informationWeek - 01 Lecture - 03 Euclid's Algorithm for gcd. Let us continue with our running example of gcd to explore more issues involved with program.
Programming, Data Structures and Algorithms in Python Prof. Madhavan Mukund Department of Computer Science and Engineering Indian Institute of Technology, Madras Week - 01 Lecture - 03 Euclid's Algorithm
More informationChapter 17 - Notes Recursion
Chapter 17 - Notes Recursion I. Recursive Definitions A. Recursion: The process of solving a problem by reducing it to smaller versions of itself. B. Recursive Function: A function that calls itself. C.
More informationWhat is recursion? Recursion. How can a function call itself? Recursive message() modified. contains a reference to itself. Week 7. Gaddis:
Recursion What is recursion? Week 7! Generally, when something contains a reference to itself Gaddis:19.1-19.4! Math: defining a function in terms of itself CS 5301 Fall 2013 Jill Seaman 1! Computer science:
More informationWhat is recursion? Recursion. How can a function call itself? Recursive message() modified. Week 10. contains a reference to itself. Gaddis:
Recursion What is recursion? Week 10! Generally, when something contains a reference to itself Gaddis:19.1-19.5! Math: defining a function in terms of itself CS 5301 Spring 2015 Jill Seaman 1! Computer
More informationSubprograms. Introduction to Programming (in C++) Subprograms: procedures and functions. Subprograms. Subprograms. Functions are defined as follows:
Introduction to Programming (in C++) : procedures and functions Programming languages, in particular C++, not only provide a set of basic operations and statements, but also a means to define our own operations
More informationAgenda. The main body and cout. Fundamental data types. Declarations and definitions. Control structures
The main body and cout Agenda 1 Fundamental data types Declarations and definitions Control structures References, pass-by-value vs pass-by-references The main body and cout 2 C++ IS AN OO EXTENSION OF
More informationo Counter and sentinel controlled loops o Formatting output o Type casting o Top-down, stepwise refinement
Last Time Let s all Repeat Together 10/3/05 CS150 Introduction to Computer Science 1 1 We covered o Counter and sentinel controlled loops o Formatting output Today we will o Type casting o Top-down, stepwise
More informationWhat is recursion? Recursion. How can a function call itself? Recursive message() modified. Week 10. contains a reference to itself.
Recursion What is recursion? Week 10 Generally, when something contains a reference to itself Gaddis:19.1-19.5 CS 5301 Spring 2014 Jill Seaman 1 Math: defining a function in terms of itself Computer science:
More informationObjectivities. Experiment 1. Lab6 Array I. Description of the Problem. Problem-Solving Tips
Lab6 Array I Objectivities 1. Using rand to generate random numbers and using srand to seed the random-number generator. 2. Declaring, initializing and referencing arrays. 3. The follow-up questions and
More informationCSC 307 DATA STRUCTURES AND ALGORITHM ANALYSIS IN C++ SPRING 2011
CSC 307 DATA STRUCTURES AND ALGORITHM ANALYSIS IN C++ SPRING 2011 Date: 01/18/2011 (Due date: 01/20/2011) Name and ID (print): CHAPTER 6 USER-DEFINED FUNCTIONS I 1. The C++ function pow has parameters.
More informationConcurrency ECE2893. Lecture 12. ECE2893 Concurrency Spring / 16
Concurrency ECE2893 Lecture 12 ECE2893 Concurrency Spring 2011 1 / 16 Single Core Architectures 1 Recall that in the very beginning of the class we discussed the basic architecture of a modern computer,
More informationCS 61A Interpreters, Tail Calls, Macros, Streams, Iterators. Spring 2019 Guerrilla Section 5: April 20, Interpreters.
CS 61A Spring 2019 Guerrilla Section 5: April 20, 2019 1 Interpreters 1.1 Determine the number of calls to scheme eval and the number of calls to scheme apply for the following expressions. > (+ 1 2) 3
More informationBasic program The following is a basic program in C++; Basic C++ Source Code Compiler Object Code Linker (with libraries) Executable
Basic C++ Overview C++ is a version of the older C programming language. This is a language that is used for a wide variety of applications and which has a mature base of compilers and libraries. C++ is
More informationCSCE 110: Programming I
CSCE 110: Programming I Sample Questions for Exam #1 February 17, 2013 Below are sample questions to help you prepare for Exam #1. Make sure you can solve all of these problems by hand. For most of the
More informationRecursion. CSCI 112: Programming in C
Recursion CSCI 112: Programming in C 1 What is recursion? Recursion looks at a large problem as a bunch of smaller versions of the same problem. 2 2 What is recursion? Recursion looks at a large problem
More informationTenka1 Programmer Contest/Tenka1 Programmer Beginner Contest 2018
Tenka1 Programmer Contest/Tenka1 Programmer Beginner Contest 2018 DEGwer 2018/10/27 For International Readers: English editorial starts on page 5. A: Measure #include #include
More informationControl Statements. if for while
Control Structures Control Statements if for while Control Statements if for while This This is is called called the the initialization initialization statement statement and and is is performed performed
More informationTechnical Section. Lab 4 while loops and for loops. A. while Loops or for loops
Lab 4 while loops and for loops The purpose of this lab is to introduce you to the concept of a for loop, gain experience distinguishing between a while loop (which is a more general type of loop than
More informationCOE428 Lecture Notes Week 1 (Week of January 9, 2017)
COE428 Lecture Notes: Week 1 1 of 10 COE428 Lecture Notes Week 1 (Week of January 9, 2017) Table of Contents COE428 Lecture Notes Week 1 (Week of January 9, 2017)...1 Announcements...1 Topics...1 Informal
More informationCS302 Midterm Exam Answers & Grading James S. Plank September 30, 2010
CS302 Midterm Exam Answers & Grading James S. Plank September 30, 2010 Question 1 Part 1, Program A: This program reads integers on standard input and stops when it encounters EOF or a non-integer. It
More informationIncrement and the While. Class 15
Increment and the While Class 15 Increment and Decrement Operators Increment and Decrement Increase or decrease a value by one, respectively. the most common operation in all of programming is to increment
More informationChapter 13. Recursion. Copyright 2016 Pearson, Inc. All rights reserved.
Chapter 13 Recursion Copyright 2016 Pearson, Inc. All rights reserved. Learning Objectives Recursive void Functions Tracing recursive calls Infinite recursion, overflows Recursive Functions that Return
More informationAlgorithm Analysis. (Algorithm Analysis ) Data Structures and Programming Spring / 48
Algorithm Analysis (Algorithm Analysis ) Data Structures and Programming Spring 2018 1 / 48 What is an Algorithm? An algorithm is a clearly specified set of instructions to be followed to solve a problem
More informationcausing a set of statements (the body) to be executed repeatedly. C++ provides three control structures to support iteration (or looping).
Iteration Iteration causing a set of statements (the body) to be executed repeatedly. 1 C++ provides three control structures to support iteration (or looping). Before considering specifics we define some
More informationChapter 8 Algorithms 1
Chapter 8 Algorithms 1 Objectives After studying this chapter, the student should be able to: Define an algorithm and relate it to problem solving. Define three construct and describe their use in algorithms.
More information(3) Some memory that holds a value of a given type. (8) The basic unit of addressing in most computers.
CS 7A Final Exam - Fall 206 - Final Exam Solutions 2/3/6. Write the number of the definition on the right next to the term it defines. () Defining two functions or operators with the same name but different
More information1- Write a single C++ statement that: A. Calculates the sum of the two integrates 11 and 12 and outputs the sum to the consol.
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. B. Outputs to the console a floating point number f1 in scientific format
More informationBasic memory model Using functions Writing functions. Basics Prototypes Parameters Return types Functions and memory Names and namespaces
Basic memory model Using functions Writing functions Basics Prototypes Parameters Return types Functions and memory Names and namespaces When a program runs it requires main memory (RAM) space for Program
More informationELEMENTARY NUMBER THEORY AND METHODS OF PROOF
CHAPTER 4 ELEMENTARY NUMBER THEORY AND METHODS OF PROOF Copyright Cengage Learning. All rights reserved. SECTION 4.8 Application: Algorithms Copyright Cengage Learning. All rights reserved. Application:
More informationRecursion Chapter 8. What is recursion? How can a function call itself? How can a function call itself?
Recursion Chapter 8 CS 3358 Summer I 2012 Jill Seaman What is recursion? Generally, when something contains a reference to itself Math: defining a function in terms of itself Computer science: when a function
More informationREPETITION CONTROL STRUCTURE LOGO
CSC 128: FUNDAMENTALS OF COMPUTER PROBLEM SOLVING REPETITION CONTROL STRUCTURE 1 Contents 1 Introduction 2 for loop 3 while loop 4 do while loop 2 Introduction It is used when a statement or a block of
More informationComputer Programming. Basic Control Flow - Loops. Adapted from C++ for Everyone and Big C++ by Cay Horstmann, John Wiley & Sons
Computer Programming Basic Control Flow - Loops Adapted from C++ for Everyone and Big C++ by Cay Horstmann, John Wiley & Sons Objectives To learn about the three types of loops: while for do To avoid infinite
More informationREVIEW. The C++ Programming Language. CS 151 Review #2
REVIEW The C++ Programming Language Computer programming courses generally concentrate on program design that can be applied to any number of programming languages on the market. It is imperative, however,
More informationWelcome to MCS 360. content expectations. using g++ input and output streams the namespace std. Euclid s algorithm the while and do-while statements
Welcome to MCS 360 1 About the Course content expectations 2 our first C++ program using g++ input and output streams the namespace std 3 Greatest Common Divisor Euclid s algorithm the while and do-while
More informationQuiz Determine the output of the following program:
Quiz Determine the output of the following program: 1 Structured Programming Using C++ Lecture 4 : Loops & Iterations Dr. Amal Khalifa Dr. Amal Khalifa - Spring 2012 1 Lecture Contents: Loops While do-while
More informationIntroduction to Programming
Introduction to Programming Summer Term 2015 Dr. Adrian Kacso, Univ. Siegen adriana.dkacsoa@duni-siegena.de Tel.: 0271/740-3966, Office: H-B 8406 State: May 6, 2015 Betriebssysteme / verteilte Systeme
More informationCS 101 Computer Programming and utilization. Dr Deepak B Phatak Subrao Nilekani Chair Professor Department of CSE, Kanwal Rekhi Building IIT Bombay
CS 101 Computer Programming and utilization Dr Deepak B Phatak Subrao Nilekani Chair Professor Department of CSE, Kanwal Rekhi Building Bombay Lecture 4, Conditional execution of instructions Friday, August
More informationCS 221 Lecture. Tuesday, 11 October 2011
CS 221 Lecture Tuesday, 11 October 2011 "Computers in the future may weigh no more than 1.5 tons." - Popular Mechanics, forecasting the relentless march of science, 1949. Today s Topics 1. Announcements
More informationErrata for C++ and Algorithmic Thinking for the Complete Beginner
Errata for C++ and Algorithmic Thinking for the Complete Beginner 12 What it Hardware? The Central Processing Unit (CPU) This is the part of a computer that actually performs all the tasks defined in a
More informationChapter 5: Control Structures II (Repetition) Objectives (cont d.) Objectives. while Looping (Repetition) Structure. Why Is Repetition Needed?
Chapter 5: Control Structures II (Repetition) Objectives In this chapter, you will: Learn about repetition (looping) control structures Explore how to construct and use countercontrolled, sentinel-controlled,
More informationLab 2: Pointers. //declare a pointer variable ptr1 pointing to x. //change the value of x to 10 through ptr1
Lab 2: Pointers 1. Goals Further understanding of pointer variables Passing parameters to functions by address (pointers) and by references Creating and using dynamic arrays Combing pointers, structures
More informationWeek 3. Function Definitions. Example: Function. Function Call, Return Statement. Functions & Arrays. Gaddis: Chapters 6 and 7. CS 5301 Spring 2018
Week 3 Functions & Arrays Gaddis: Chapters 6 and 7 CS 5301 Spring 2018 Jill Seaman 1 Function Definitions l Function definition pattern: datatype identifier (parameter1, parameter2,...) { statements...
More informationSample Final Exam. 1) (24 points) Show what is printed by the following segments of code (assume all appropriate header files, etc.
Name: Sample Final Exam 1) (24 points) Show what is printed by the following segments of code (assume all appropriate header files, etc. are included): a) int start = 10, end = 21; while (start < end &&
More informationTo become familiar with array manipulation, searching, and sorting.
ELECTRICAL AND COMPUTER ENGINEERING 06-88-211: COMPUTER AIDED ANALYSIS LABORATORY EXPERIMENT #2: INTRODUCTION TO ARRAYS SID: OBJECTIVE: SECTIONS: Total Mark (out of 20): To become familiar with array manipulation,
More informationC++ Programming: From Problem Analysis to Program Design, Third Edition
C++ Programming: From Problem Analysis to Program Design, Third Edition Chapter 5: Control Structures II (Repetition) Why Is Repetition Needed? Repetition allows you to efficiently use variables Can input,
More informationExam 2, Version 2. For the following code, mark True or False for statements 1.8 to 1.10.
1. True or False (clearly write True or False on each line). 1.1. It s possible for the body of a do-while loop to execute zero times F For the following code, mark True or False for statements 1.8 to
More informationLoops / Repetition Statements
Loops / Repetition Statements Repetition statements allow us to execute a statement multiple times Often they are referred to as loops C has three kinds of repetition statements: the while loop the for
More informationLocal and Global Variables
Lecture 10 Local and Global Variables Nearly every programming language has a concept of local variable. As long as two functions mind their own data, as it were, they won t interfere with each other.
More informationPractice Midterm Sample Solutions
CS 410 Introduction to Software Engineering Fall 2016 Instructor: Marc Pomplun Practice Midterm Sample Solutions Question 1: A Mysterious Program When the Visual Attention Lab at UMB moved to its new place,
More informationCHAPTER 2.2 CONTROL STRUCTURES (ITERATION) Dr. Shady Yehia Elmashad
CHAPTER 2.2 CONTROL STRUCTURES (ITERATION) Dr. Shady Yehia Elmashad Outline 1. C++ Iterative Constructs 2. The for Repetition Structure 3. Examples Using the for Structure 4. The while Repetition Structure
More informationWhat is recursion? Recursion. Recursive message() modified. How can a function call itself? contains a reference to itself. Week 10. Gaddis:
Recursion What is recursion? Week 10 Gaddis:19.1-19.5 CS 5301 Spring 2017 Jill Seaman 1 l Generally, when something contains a reference to itself l Math: defining a function in terms of itself l Computer
More informationTypes of recursion. Structural vs. general recursion. Pure structural recursion. Readings: none. In this module: learn to use accumulative recursion
Types of recursion Readings: none. In this module: learn to use accumulative recursion learn to recognize generative recursion CS 135 Fall 2018 07: Types of recursion 1 Structural vs. general recursion
More informationLecture Notes CPSC 224 (Spring 2012) Today... Java basics. S. Bowers 1 of 8
Today... Java basics S. Bowers 1 of 8 Java main method (cont.) In Java, main looks like this: public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World!"); Q: How
More informationFor loops, nested loops and scopes. Jordi Cortadella Department of Computer Science
For loops, nested loops and scopes Jordi Cortadella Department of Computer Science Outline For loops Scopes Nested loops Introduction to Programming Dept. CS, UPC 2 Calculate x y Algorithm: repeated multiplication
More informationOutline. Introduction to Programming (in C++) Introduction. First program in C++ Programming examples
Outline Introduction to Programming (in C++) Introduction Programming examples Algorithms, programming languages and computer programs Jordi Cortadella, Ricard Gavaldà, Fernando Orejas Dept. of Computer
More informationEP241 Computing Programming
EP241 Computing Programming Topic 4 Loops Department of Engineering Physics University of Gaziantep Course web page www.gantep.edu.tr/~bingul/ep241 Sep 2013 Sayfa 1 Introduction Loops are control structures
More informationRecursion Chapter 8. What is recursion? How can a function call itself? How can a function call itself? contains a reference to itself.
Recursion Chapter 8 CS 3358 Summer II 2013 Jill Seaman What is recursion?! Generally, when something contains a reference to itself! Math: defining a function in terms of itself! Computer science: when
More information(Refer Slide Time: 00:26)
Programming, Data Structures and Algorithms Prof. Shankar Balachandran Department of Computer Science and Engineering Indian Institute Technology, Madras Module 07 Lecture 07 Contents Repetitive statements
More informationLECTURE 17. Array Searching and Sorting
LECTURE 17 Array Searching and Sorting ARRAY SEARCHING AND SORTING Today we ll be covering some of the more common ways for searching through an array to find an item, as well as some common ways to sort
More informationSECOND JUNIOR BALKAN OLYMPIAD IN INFORMATICS
SECOND JUNIOR BALKAN OLYMPIAD IN INFORMATICS July 8 13, 2008 Shumen, Bulgaria TASKS AND SOLUTIONS Day 1 Task 1. TOWERS OF COINS Statement Asen and Boyan are playing the following game. They choose two
More informationLab Instructor : Jean Lai
Lab Instructor : Jean Lai Group related statements to perform a specific task. Structure the program (No duplicate codes!) Must be declared before used. Can be invoked (called) as any number of times.
More informationWeek 3: Pointers (Part 2)
Advanced Programming (BETC 1353) Week 3: Pointers (Part 2) Dr. Abdul Kadir abdulkadir@utem.edu.my Learning Outcomes: Able to describe the concept of pointer expression and pointer arithmetic Able to explain
More informationComputer Programming
Computer Programming Dr. Deepak B Phatak Dr. Supratik Chakraborty Department of Computer Science and Engineering Session: Recap of Function Calls and Parameter Passing Dr. Deepak B. Phatak & Dr. Supratik
More informationCS 6402 DESIGN AND ANALYSIS OF ALGORITHMS QUESTION BANK
CS 6402 DESIGN AND ANALYSIS OF ALGORITHMS QUESTION BANK Page 1 UNIT I INTRODUCTION 2 marks 1. Why is the need of studying algorithms? From a practical standpoint, a standard set of algorithms from different
More informationSORTING AND SEARCHING
SORTING AND SEARCHING Today Last time we considered a simple approach to sorting a list of objects. This lecture will look at another approach to sorting. We will also consider how one searches through
More informationSOLUTIONS TO EXERCISES PART ONE: Problem-Solving Techniques
SOLUTIONS TO EXERCISES PART ONE: Problem-Solving Techniques 1 Principles of Programming and Software Engineering 1 const CENTS_PER_DOLLAR = 100; void computechange(int dollarcost, int centscost, int& d,
More informationAdd Binary Numbers What is the largest decimal number you can represent using 3 bits?
1 2 Quiz1 Question Add Binary Numbers 1 0 1 1 a) 1 0 1 0 1 0 +1 0 0 0 b) 0 1 0 0 1 1 1 0 0 1 1 c) 0 1 0 0 0 1 d) 0 1 0 1 1 1 e) none 001011 001000 010011 Quiz1 question What is the largest decimal number
More informationOutline. For loops, nested loops and scopes. Calculate x y. For loops. Scopes. Nested loops. Algorithm: repeated multiplication x x x x
Outline For loops, nested loops and scopes For loops Scopes Jordi Cortadella Department of Computer Science Nested loops Calculate x y Algorithm: repeated multiplication x x x x y times y x i p=x i 4 3
More informationCS2141 Software Development using C/C++ C++ Basics
CS2141 Software Development using C/C++ C++ Basics Integers Basic Types Can be short, long, or just plain int C++ does not define the size of them other than short
More informationAlgorithm Design: GCD
Algorithm Design: GCD Problem solution through refinement GCD Example of use of loops Arguing the complexity of an algorithm Greek mathematics achievement: Euclid s Algorithm 1 How to find the GCD of 2
More informationTypes of recursion. Readings: none. In this module: a glimpse of non-structural recursion. CS 135 Winter : Types of recursion 1
Types of recursion Readings: none. In this module: a glimpse of non-structural recursion CS 135 Winter 2018 07: Types of recursion 1 Structural vs. general recursion All of the recursion we have done to
More informationLecture 6 Sorting and Searching
Lecture 6 Sorting and Searching Sorting takes an unordered collection and makes it an ordered one. 1 2 3 4 5 6 77 42 35 12 101 5 1 2 3 4 5 6 5 12 35 42 77 101 There are many algorithms for sorting a list
More information1 Elementary number theory
Math 215 - Introduction to Advanced Mathematics Spring 2019 1 Elementary number theory We assume the existence of the natural numbers and the integers N = {1, 2, 3,...} Z = {..., 3, 2, 1, 0, 1, 2, 3,...},
More information1. a) What #include statement do you put at the top of a program that does uses cin, cout or endl?
Exercises with solutions. 1. a) What #include statement do you put at the top of a program that does uses cin, cout or endl? #include b) What using statement do you always put at the top of
More informationCS111: PROGRAMMING LANGUAGE II
CS111: PROGRAMMING LANGUAGE II Computer Science Department Lecture 1(c): Java Basics (II) Lecture Contents Java basics (part II) Conditions Loops Methods Conditions & Branching Conditional Statements A
More informationMidterm Practice Exam
Name: CS 410 Introduction to Software Engineering Fall 2016 Instructor: Marc Pomplun Midterm Practice Exam Duration: 75 minutes No books, no notes, and no calculators are allowed. Question 1: out of points
More informationENGI 1020 Introduction to Computer Programming J U L Y 5, R E Z A S H A H I D I
ENGI 1020 Introduction to Computer Programming J U L Y 5, 2 0 1 0 R E Z A S H A H I D I Passing by value Recall that it is possible to call functions with variable names different than the parameters in
More information8 Algorithms 8.1. Foundations of Computer Science Cengage Learning
8 Algorithms 8.1 Foundations of Computer Science Cengage Learning 8.2 Objectives After studying this chapter, the student should be able to: Define an algorithm and relate it to problem solving. Define
More informationFriday Four Square! Today at 4:15PM, Outside Gates
Control Structures Announcements Programming Assignment #1 due right now. Due on next Wednesday if using a late day. Email due on Sunday night. Programming Assignment #2 out today, due Wednesday, January
More informationComputer Programming
Computer Programming Dr. Deepak B Phatak Dr. Supratik Chakraborty Department of Computer Science and Engineering Session: Parameter Passing in Function Calls Dr. Deepak B. Phatak & Dr. Supratik Chakraborty,
More informationReview Questions II KEY
CS 102 / ECE 206 Spring 2011 Review Questions II KEY The following review questions are similar to the kinds of questions you will be expected to answer on Exam II (April 7), which will focus on LCR, chs.
More informationCP122 CS I. Iteration
CP122 CS I Iteration Tech News! Pix2Pix: machine learning translation of images https://affinelayer.com/pixsrv/ Tech News! Pix2Pix: machine learning translation of images https://affinelayer.com/pixsrv/
More informationDue Date: See Blackboard
Source File: ~/2305/lab33.C Input: under control of main function Output: under control of main function Value: 3 The Shell sort, named after its inventor Donald Shell, provides a simple and efficient
More informationCS 106 Introduction to Computer Science I
CS 106 Introduction to Computer Science I 06 / 11 / 2015 Instructor: Michael Eckmann Today s Topics Comments and/or Questions? Sorting Searching Michael Eckmann - Skidmore College - CS 106 - Summer 2015
More informationIn this chapter you will learn:
1 In this chapter you will learn: Essentials of counter-controlled repetition. Use for, while and do while to execute statements in program repeatedly. Use nested control statements in your program. 2
More informationSCHOOL OF ENGINEERING & BUILT ENVIRONMENT. Mathematics. Numbers & Number Systems
SCHOOL OF ENGINEERING & BUILT ENVIRONMENT Mathematics Numbers & Number Systems Introduction Numbers and Their Properties Multiples and Factors The Division Algorithm Prime and Composite Numbers Prime Factors
More informationLecture Notes, CSE 232, Fall 2014 Semester
Lecture Notes, CSE 232, Fall 2014 Semester Dr. Brett Olsen Week 11 - Number Theory Number theory is the study of the integers. The most basic concept in number theory is divisibility. We say that b divides
More information