PROGRAMMING for EOR (346022) 7Jul2011

 Alberta Charles
 10 months ago
 Views:
Transcription
1 PROGRAMMING for EOR (346022) 7Jul2011 Lecturer: Bert Bettonvil, Manfred Jeusfeld This is NO open book exam. The use of electronic devices such as calculators, smartphones or computers is not allowed. The exam consists of 5 questions with 2 parts each, and all are of equal weight. The exam will be marked before August 1. By then, a standard elaboration is presented on Blackboard, and you may make an appointment by to view your exam. The programs asked must: be clear, short and be written in Delphi/Pascal, except for question 2a and 2b: these must be answered in C++. must have a clear algorithm and clear identifiers. Further remarks: This exam is not about reproducing details or userinterface. The latter has been tested exhaustively while making the assignments. The emphasis of the exam is on algorithms, use of data structures and parameters. Most input and output is done by use of parameters. However, sometimes knowledge of the userinterface is needed. In the listings we mostly use OUTPUT(...), which can be read as Edit1.Text:=..., depending on the graphical environment. The emphasis in this exam is on how the value(s) of the variable(s) are computed, and not on how these are reported. In case you know what must happen in a program, but you do not know how it must be done, then indicate this in a clear way. Example: ### Here A must be inverted ###. 1
2 Question 1 (Delphi) [1.a] A recursive function can always be transformed into an iterative function. Do so for the function F where N is a positive integer number. function F (N: Integer): Integer; if N =0 then F := 0 else F := 2 * F(N div 2) + 1; [1.b] Give the output for the variable P,R,T of the following program module (no elaboration): procedure Proc1b; var A,R: Integer; procedure computef(var P,Q: Integer; R,S: Integer); P := R*S; R := R+S; S := P+Q; Q := SR; A:=3; R:=5; computef(r,a,a,r); OUTPUT(A,R) 2
3 Question 2 (C++) Let A[N][N] be a twodimensional array of integer numbers (i.e. indexes run from 0... N1. Consider the following game. A player 1 chooses a number i between 0 and N1. Then, player 2 chooses a number j between 0 and N1. As a result of the game, player 1 pays A[i][j] to player 2. Note that A[i][j] can be negative meaning that the payment goes into the opposite direction. [2.a] Player 2 assumes that player 1 has no knowledge of the matrix A. Hence he assumes that player 1 chooses an arbitrary number i. Player 2 has two alternative strategies in mind. Strategy 1 is to always select the same number as player 1, i.e. j=i. Strategy 2 would is to select an arbitrary number j. Write a function Better with parameter A that return 1 if strategy 1 is better and 2 is strategy 2 is better. Note that you need to compute the expected payment for both strategies and also note that the solution depends on the values in matrix A. [2.b] Player 2 gets information about the matrix A. He wants to precompute an array B that returns j=b[i] for which A[i][j] is maximal, i.e. returns the best result for him. Write a procedure makeb that creates the array B out of the matrix A. 3
4 Question 3 (Delphi) Consider a the following type definitions const N=...; {* number of points *} type Point = record xpos: Real; ypos: Real Curve = Array[1..N] of Point; The type curve represents points of a curve. We assume that the x positions are strictly increasing, i.e. for any curve c and for any two indexes 1 i, j N the following holds: i < j then c[i].xpos < c[j].xpos. [3.a] (Integral) Implement a function function integral(c: Curve) : Real; that computes the integral of the curve c. The integral shall be approximated by the average between the area of the upper y values (gray reactangles) and the lower yvalues (hatched rectangles) of two consecutive points. Note that the distance between two x values is not a constant. 4
5 [3.b] (First zero point) Implement a function function firstzeropoint(c: Curve): Real; that computes the first zero point of the curve c, where each two consecutive points are connected by a straight line. Return 0.0 if there is no such zero point. In the above drawing, the first zero point is indicated by the arrow. You should return the xvalue, where the line crosses the zerolevel. 5
6 Question 4 (Delphi) Consider the following type definitions for a linked list. type ElemP = ^Elem Elem = record value: Integer; next: ElemP end [4.a]: Write a function function Count(x: Integer; Head: ElemP): Integer; that counts the number of occurrences of value x in the linked list with first element Head. [4.b]: Write a procedure procedure Reverse(Head: ElemP; var NewHead: ElemP); that reverses the elements in the list original list Head, i.e. the new list starts with the last element of the original list and ends with the first element of the original list. 6
7 Question 5 (Delphi) A logistics company plans truck tours to customers. const N=...; {* number of trucks *} M=...; {* number of customers *} maxhops =...; {* max number of stops in a tour *} type Coordinates = record xpos: Real; ypos: Real Truck = record trucknr: Integer; currentpos: Coordinates; booked: Boolean Customer = record custnr: Integer; homebase: Coordinates Trucks = array[1..n] of Truck; Customers = array[1..m] of Customer; Tour = array[1..maxhops] of Integer; { the entries in a tour are customer numbers } The coordinates are in an Euklidian space (x and yvalues) where the distance between two coordinates are computed by the Euklidian distance. [5.a] Implement a function function nearesttruck(cust: Customer; tr:trucks): Integer; that returns the number of the truck in tr that is closest to the home base of customer cust. Use Euklidian distance. Note: it is useful to define a function edistance that calculates the Euklidian distance between two coordinates. This function can be used for both 5a and 5b. 7
8 [5.b] Implement the procedure procedure optimizetour(start: Coordinates; custs: Customers; var t: Tour); that optimizes the stops in the tour t as follows: the first stop in tour t is the customer that is closed to the given start point. The second is the customer in the set of remaining customers in the tour that is closest to the first stop (computed in the preceding step), and so on. The procedure is called with an nonoptimized tour t. After calling the procedure, the tour t shall be optimized. 8
9 Master solutions Q1a function F_it(N: Integer): Integer; var I,Res: Integer; I:=N; Res:=0; while (I>0) do Res:=2*Res + 1; I:= I div 2; F_it := Res Important here is that you may not increase the result for each i (1<=i<==N). Q1b A=10 R=15 9
10 Q2 const int N=2; typedef int TMatr[N][N]; typedef int TMatr1[N]; Q2a int Better(TMatr& A) { } double count1=0; double count2=0; for (int i=0; i < N; i++) { count1 += A[i][i]; for (int j=0; j < N; j++) { count2 += A[i][j]; } } count2 /= N; return (count1>count2)? 1 : 2; count1 is the expected value for strategy 1 (always choose the same number); count2 is the expected value for the strategy 2 (randomized strategy). Q2b void MakeB(TMatr& A, TMatr1& B) { int win; for (int i=0; i<n; i++){ win=a[i][0]; B[i]=0; for (int j=0; j<n; j++){ if (A[i][j]>win) {B[i]=j; win=a[i][j];} } } } Note that B is a matrix containing indexes to A (B[i]=j means: choose j if opponent chooses i). The variable win is for determining the best position j in A[i][j]. 10
11 Q3 const N= 5; {* points *} type Point = record xpos: Real; ypos: Real Curve = Array[1..N] of Point; var mycurve: Curve; Q3a function integral(c: Curve) : Real; var i: Integer; sum1,sum2: Real; function min(r1,r2: Real): Real; if (r1 < r2) then min := r1 else min := r2 function max(r1,r2: Real): Real; if (r1 < r2) then max := r2 else max := r1 sum1 := 0.0; sum2 := 0.0; for i := 2 to N do sum1 := sum1 + max(c[i1].ypos,c[i].ypos) * (c[i].xpos  c[i1].xpos); sum2 := sum2 + min(c[i1].ypos,c[i].ypos) * (c[i].xpos  c[i1].xpos) integral := (sum1 + sum2)/2 Simpler solutions were possible! 11
12 Q3b function firstzeropoint(c:curve): Real; var found: Boolean; i: Integer; zp: Real; found := false; i := 1; zp := 0.0; while not found and (i < N) do i := i + 1; if (c[i1].ypos <= 0.0) and (c[i].ypos >= 0.0) or (c[i1].ypos >= 0.0) and (c[i].ypos <= 0.0) then found := true; if (c[i].ypos = c[i1].ypos) and (c[i].ypos = 0.0) then zp := c[i].xpos else zp := c[i1].xpos  ( c[i1].ypos*(c[i].xposc[i1].xpos) ) / ( c[i].ypos  c[i1].ypos ) end firstzeropoint := zp; Note that the curve C only contains the carrying points and that the zero point is typically between two consecutive points, or could be just hit by some point of C. Actuallu firstzeropoint is only welldefined when found=true. But the initial value was acceptable in such cases. 12
13 Q4 Q4a function Count(x: Integer; Head: ElemP): Integer; var Help: ElemP; Count:=0; Help:=Head; while (Help<>nil) do if (Help^.value=x) then inc(count); Help:=Help^.Next; Loop with Help<>nil, not Help^.next<M>nil! Q4b procedure Reverse(Head: ElemP; var NewHead: ElemP); var Help1,Help2: ElemP; if (Head=nil) then NewHead:=nil else new(newhead); NewHead^.value:=Head^.value; NewHead^.Next:=nil; Help1:=Head; while (Help1^.Next<>nil) do Help1:=Help1^.Next; new(help2); Help2^.value:=Help1^.value; Help2^.Next:=NewHead; NewHead:=Help2; You needed to take care of Head=nil and that NewHead is actually set correctly. So Help1 scans the old list, and Help2 is for setting the NewHead iteratively. No dispose! 13
14 14
15 Q5 const N= 2; {* number of trucks *} M= 3; {* number of customers *} maxhops = 2; {* maximum number of stops in a tour *} type Coordinates = record xpos: Real; ypos: Real Truck = record trucknr: Integer; model: String; currentpos: Coordinates; booked: Boolean Customer = record custnr: Integer; homebase: Coordinates Trucks = array[1..n] of Truck; Customers = array[1..m] of Customer; Tour = array[1..maxhops] of Integer; var mytrucks: Trucks; mycustomers: Customers; 15
16 {* 5.a *} function edistance(p1,p2: Coordinates) : Real; edistance := sqrt( sqr(p1.xpos  p2.xpos) + sqr(p1.ypos  p2.ypos) ); This is the Euklidian distance. function nearesttruck(cust: Customer; tr:trucks): Integer; var i,nt: Integer; bestdist: Real; nt := 0; for i := 1 to N do if ( (nt=0) and not (tr[i].booked=true) ) then nt := i; bestdist := edistance(cust.homebase,tr[nt].currentpos) end else if edistance(cust.homebase,tr[i].currentpos) < bestdist then nt := i; bestdist := edistance(cust.homebase,tr[i].currentpos) end nearesttruck := tr[nt].trucknr 16
17 {* 5.b *} procedure optimizetour(start: Coordinates; custs: Customers; var tour: Tour); var currentpos: Coordinates; i,j,help: Integer; currentpos := start; for i := 1 to maxhops do for j := i+1 to MaxHops do if edistance(currentpos,custs[tour[i]].homebase) > edistance(currentpos,custs[tour[j]].homebase) then help := tour[i]; tour[i] := tour[j]; tour[j] := help; currentpos := custs[tour[i]].homebase end end This task is to be solved by a double loop (sorting tour). 17
SECOND 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 informationData Structures Lecture 3 Order Notation and Recursion
Data Structures Lecture 3 Order Notation and Recursion 1 Overview The median grade.cpp program from Lecture 2 and background on constructing and using vectors. Algorithm analysis; order notation Recursion
More informationCSCI1200 Data Structures Spring 2018 Lecture 7 Order Notation & Basic Recursion
CSCI1200 Data Structures Spring 2018 Lecture 7 Order Notation & Basic Recursion Review from Lectures 5 & 6 Arrays and pointers, Pointer arithmetic and dereferencing, Types of memory ( automatic, static,
More informationThe University Of Michigan. EECS402 Lecture 07. Andrew M. Morgan. Sorting Arrays. Element Order Of Arrays
The University Of Michigan Lecture 07 Andrew M. Morgan Sorting Arrays Element Order Of Arrays Arrays are called "randomaccess" data structures This is because any element can be accessed at any time Other
More informationLecture 9. Assignment. Logical Operations. Logical Operations  Motivation 2/8/18
Assignment Lecture 9 Logical Operations Formatted Print Printf Increment and decrement Read through 3.9, 3.10 Read 4.1. 4.2, 4.3 Go through checkpoint exercise 4.1 Logical Operations  Motivation Logical
More informationIn this article we will see how the OmniThreadLibrary can be used to split a simple image processing kernel across multiple threads.
In a previous article named " Easy multithread programming Delphi ", the AsyncCalls library was used to process multiple images at the same time. However, the processing of every single image was still
More informationVARIABLE, OPERATOR AND EXPRESSION [SET 1]
VARIABLE, OPERATOR AND EXPRESSION Question 1 Write a program to print HELLO WORLD on screen. Write a program to display the following output using a single cout statement. Subject Marks Mathematics 90
More informationESC101 : Fundamental of Computing
ESC101 : Fundamental of Computing End Semester Exam 19 November 2008 Name : Roll No. : Section : Note : Read the instructions carefully 1. You will lose 3 marks if you forget to write your name, roll number,
More informationWYSE Academic Challenge 2002 Computer Science Test (Sectional) SOLUTION
Computer Science  1 WYSE Academic Challenge 2002 Computer Science Test (Sectional) SOLUTION 1. Access to moving head disks requires three periods of delay before information is brought into memory. The
More informationTribhuvan University Institute of Science and Technology 2065
1CSc.1022065 2065 Candidates are required to give their answers in their own words as for as practicable. 1. Draw the flow chart for finding largest of three numbers and write an algorithm and explain
More informationAPCS Semester #1 Final Exam Practice Problems
Name: Date: Per: AP Computer Science, Mr. Ferraro APCS Semester #1 Final Exam Practice Problems The problems here are to get you thinking about topics we ve visited thus far in preparation for the semester
More informationn Specifying what each method does q Specify it in a comment before method's header n Precondition q Caller obligation n Postcondition
Programming as a contract Assertions, pre/postconditions and invariants Assertions: Section 4.2 in Savitch (p. 239) Loop invariants: Section 4.5 in Rosen Specifying what each method does q Specify it in
More informationSorting. Weiss chapter , 8.6
Sorting Weiss chapter 8.1 8.3, 8.6 Sorting 5 3 9 2 8 7 3 2 1 4 1 2 2 3 3 4 5 7 8 9 Very many different sorting algorithms (bubblesort, insertion sort, selection sort, quicksort, heapsort, mergesort, shell
More informationCS 110 Practice Final Exam originally from Winter, Instructions: closed books, closed notes, open minds, 3 hour time limit.
Name CS 110 Practice Final Exam originally from Winter, 2003 Instructions: closed books, closed notes, open minds, 3 hour time limit. There are 4 sections for a total of 49 points. Part I: Basic Concepts,
More informationBITG 1113: Array (Part 1) LECTURE 8
BITG 1113: Array (Part 1) LECTURE 8 1 1 LEARNING OUTCOMES At the end of this lecture, you should be able to: 1. Describe the fundamentals of arrays 2. Describe the types of array: One Dimensional (1 D)
More informationThe exam is closed book, closed calculator, and closed notes except your onepage crib sheet.
CS Summer Introduction to Artificial Intelligence Midterm You have approximately minutes. The exam is closed book, closed calculator, and closed notes except your onepage crib sheet. Mark your answers
More informationLecturers: Sanjam Garg and Prasad Raghavendra March 20, Midterm 2 Solutions
U.C. Berkeley CS70 : Algorithms Midterm 2 Solutions Lecturers: Sanjam Garg and Prasad aghavra March 20, 207 Midterm 2 Solutions. (0 points) True/False Clearly put your answers in the answer box in front
More informationDynamic Programming II
Lecture 11 Dynamic Programming II 11.1 Overview In this lecture we continue our discussion of dynamic programming, focusing on using it for a variety of pathfinding problems in graphs. Topics in this
More informationLecture Notes on Binary Search Trees
Lecture Notes on Binary Search Trees 15122: Principles of Imperative Computation Frank Pfenning Lecture 17 1 Introduction In the previous two lectures we have seen how to exploit the structure of binary
More informationScan and its Uses. 1 Scan. 1.1 Contraction CSE341T/CSE549T 09/17/2014. Lecture 8
CSE341T/CSE549T 09/17/2014 Lecture 8 Scan and its Uses 1 Scan Today, we start by learning a very useful primitive. First, lets start by thinking about what other primitives we have learned so far? The
More informationObjectOriented Design Lecture 16 CS 3500 Fall 2010 (Pucella) Friday, Nov 12, 2010
ObjectOriented Design Lecture 16 CS 3500 Fall 2010 (Pucella) Friday, Nov 12, 2010 16 Mutation We have been avoiding mutations until now. But they exist in most languages, including Java and Scala. Some
More informationLecture #39. Initial grading run Wednesday. GUI files up soon. Today: Dynamic programming and memoization.
Lecture #39 Initial grading run Wednesday. GUI files up soon. Today: Dynamic programming and memoization. Last modified: Fri Dec 10 12:19:27 2004 CS61B: Lecture #39 1 A puzzle (D. Garcia): Dynamic Programming
More informationCSCE 110 PROGRAMMING FUNDAMENTALS. Prof. Amr Goneid AUC Part 7. 1D & 2D Arrays
CSCE 110 PROGRAMMING FUNDAMENTALS WITH C++ Prof. Amr Goneid AUC Part 7. 1D & 2D Arrays Prof. Amr Goneid, AUC 1 Arrays Prof. Amr Goneid, AUC 2 1D Arrays Data Structures The Array Data Type How to Declare
More informationCIS 110 Introduction To Computer Programming. February 29, 2012 Midterm
CIS 110 Introduction To Computer Programming February 29, 2012 Midterm Name: Recitation # (e.g. 201): Pennkey (e.g. bjbrown): My signature below certifies that I have complied with the University of Pennsylvania
More informationProcedural programming with C
Procedural programming with C Dr. C. Constantinides Department of Computer Science and Software Engineering Concordia University Montreal, Canada August 11, 2016 1 / 77 Functions Similarly to its mathematical
More information1 Dynamic Programming
CS161 Lecture 13 Dynamic Programming and Greedy Algorithms Scribe by: Eric Huang Date: May 13, 2015 1 Dynamic Programming The idea of dynamic programming is to have a table of solutions of subproblems
More informationDepartment of Computer Science COMP The Programming Competency Test
The Australian National University Faculty of Engineering & Information Technology Department of Computer Science COMP1120200301 The Programming Competency Test 1 Introduction The purpose of COMP1120
More informationPESIT Bangalore South Campus Hosur road, 1km before Electronic City, Bengaluru 100 Department of Electronics and Communication
USN 1 P E PESIT Bangalore South Campus Hosur road, 1km before Electronic City, Bengaluru 0 Department of Electronics and Communication INTERNAL ASSESSMENT TEST 1 Date : 30/8/2017 Marks: 0 Subject & Code
More informationLecture Notes on Tries
Lecture Notes on Tries 15122: Principles of Imperative Computation Thomas Cortina, Frank Pfenning, Rob Simmons, Penny Anderson Lecture 22 June 20, 2014 1 Introduction In the data structures implementing
More information1.3 Conditionals and Loops
1.3 Conditionals and Loops Introduction to Programming in Java: An Interdisciplinary Approach Robert Sedgewick and Kevin Wayne Copyright 2002 2010 15/1/2013 22:16:24 A Foundation for Programming any program
More informationSample Examination. Family Name:... Other Names:... Signature:... Student Number:...
Family Name:... Other Names:... Signature:... Student Number:... THE UNIVERSITY OF NEW SOUTH WALES SCHOOL OF COMPUTER SCIENCE AND ENGINEERING Sample Examination COMP1917 Computing 1 EXAM DURATION: 2 HOURS
More informationMichele Van Dyne Museum 204B CSCI 136: Fundamentals of Computer Science II, Spring
Michele Van Dyne Museum 204B mvandyne@mtech.edu http://katie.mtech.edu/classes/csci136 CSCI 136: Fundamentals of Computer Science II, Spring 2016 1 Review of Java Basics Data Types Arrays NEW: multidimensional
More informationIV/IV B.Tech (Regular) DEGREE EXAMINATION. Design and Analysis of Algorithms (CS/IT 414) Scheme of Evaluation
IV/IV B.Tech (Regular) DEGREE EXAMINATION Design and Analysis of Algorithms (CS/IT 414) Scheme of Evaluation Maximum: 60 Marks 1. Write briefly about the following 1*12= 12 Marks a) Give the characteristics
More information1 Recursion. 2 Recursive Algorithms. 2.1 Example: The Dictionary Search Problem. CSci 235 Software Design and Analysis II Introduction to Recursion
1 Recursion Recursion is a powerful tool for solving certain kinds of problems. Recursion breaks a problem into smaller problems that are identical to the original, in such a way that solving the smaller
More informationarxiv: v3 [math.co] 9 Jan 2015
Subsetlex: did we miss an order? arxiv:1405.6503v3 [math.co] 9 Jan 2015 Jörg Arndt, Technische Hochschule Nürnberg January 12, 2015 Abstract We generalize a wellknown algorithm for the
More informationWe cover recursion in 150. Why do it again in 151?
Recursion We cover recursion in 150. Why do it again in 151? First, good solutions to problems are often recursive. Here is a quick way to sort a list of objects: split the list in half, recursively sort
More informationAlgorithm Complexity Analysis: BigO Notation (Chapter 10.4) Dr. Yingwu Zhu
Algorithm Complexity Analysis: BigO Notation (Chapter 10.4) Dr. Yingwu Zhu Measure Algorithm Efficiency Space utilization: amount of memory required Time efficiency: amount of time required to accomplish
More information2 Homework: Bond class, fair value, duration & yield
Queens College, CUNY, Department of Computer Science Computational Finance CSCI 365 / 765 Spring 2018 Instructor: Dr. Sateesh Mane c Sateesh R. Mane 2018 due Monday, Feb 12, 2018, 11.59 pm This will not
More informationProblem 1. Multiple Choice (choose only one answer)
Practice problems for the Final (Tuesday, May 14 4:306:30pm MHP 101). The Final Exam will cover all course material. You will be expected to know the material from the assigned readings in the book, the
More informationSubject: Computer Science
Subject: Computer Science Topic: Data Types, Variables & Operators 1 Write a program to print HELLO WORLD on screen. 2 Write a program to display output using a single cout statement. 3 Write a program
More informationACSL AllStar Practice, Woburn CI, (T AR) + S R = ART S + ST + AR
ACSL AllStar Practice, Woburn CI, 2008 1 Question 1. Which is bigger: 0.11 10 or 0.000111 2? Question 2. How many boolean strings RAT S satisfy the following equation? (T AR) + S R = ART S + ST + AR Question
More information1. What does the following code fragment write to the monitor?
1. What does the following code fragment write to the monitor? int sum = 14; if ( sum < 20 ) System.out.print("Under "); else System.out.print("Over "); System.out.println("the limit."); a. Under b. Over
More informationMARKING KEY The University of British Columbia MARKING KEY Computer Science 260 Midterm #2 Examination 12:30 noon, Thursday, March 15, 2012
MARKING KEY The University of British Columbia MARKING KEY Computer Science 260 Midterm #2 Examination 12:30 noon, Thursday, March 15, 2012 Instructor: K. S. Booth Time: 70 minutes (one hour ten minutes)
More informationCS 307 Midterm 2 Fall 2010
Points off 1 2 3 4 Total off Net Score Exam Number: CS 307 Midterm 2 Fall 2010 Name UTEID login name TA's Name: Harsh YiChao (Circle One) Instructions: 1. Please turn off your cell phones and other electronic
More informationPoints off Total off Net Score. CS 314 Final Exam Spring 2016
Points off 1 2 3 4 5 6 Total off Net Score CS 314 Final Exam Spring 2016 Your Name Your UTEID Instructions: 1. There are 6 questions on this test. 100 points available. Scores will be scaled to 300 points.
More informationThe Importance of Runtime Cost! Measuring Runtime Cost! How to Measure Runtime Cost?!
The Importance of Runtime Cost Amazon claims that just an extra one tenth of a second on their response times will cost them 1% in sales" [http://highscalability.com/latencyeverywhereanditcostsyousaleshowcrushit]
More informationCOS 126 General Computer Science Fall Exam 1
COS 126 General Computer Science Fall 2005 Exam 1 This test has 9 questions worth a total of 50 points. You have 120 minutes. The exam is closed book, except that you are allowed to use a one page cheatsheet,
More informationCSCI1200 Data Structures Fall 2017 Lecture 13 Problem Solving Techniques
CSCI1200 Data Structures Fall 2017 Lecture 13 Problem Solving Techniques Review from Lecture 12 Rules for writing recursive functions: 1. Handle the base case(s). 2. Define the problem solution in terms
More informationNew York University Introduction to Computer Science Midterm2B Sample Problems Solution Key. Instructions:
Name: New York University Introduction to Computer Science Midterm2B Sample Problems Solution Key Instructions: KEEP TEST BOOKLET CLOSED UNTIL YOU ARE INSTRUCTED TO BEGIN. This exam is double sided (front
More informationMore on Polynomial Time and Space
CpSc 8390 Goddard Fall15 More on Polynomial Time and Space 20.1 The Original NPCompleteness Proof A configuration/snapshot of a machine is a representation of its current state (what info would be needed
More informationC Language Part 2 Digital Computer Concept and Practice Copyright 2012 by Jaejin Lee
C Language Part 2 (Minor modifications by the instructor) 1 Scope Rules A variable declared inside a function is a local variable Each local variable in a function comes into existence when the function
More informationC 101. Davide Vernizzi. April 29, 2011
C 101 Davide Vernizzi April 9, 011 1 Input/Output Basic I/O. The basic I/O shown here can be used to get input from the user and to send output to the user. Note that usually input must be verified before
More informationNext week will be great!
Next week will be great! Three major things are happening next week: Zynga guest lecture Your game pitches (more details later) Christina Paxson Feedback for M 1 Some of you had stacking shapes The stack
More information6. Dicretization methods 6.1 The purpose of discretization
6. Dicretization methods 6.1 The purpose of discretization Often data are given in the form of continuous values. If their number is huge, model building for such data can be difficult. Moreover, many
More informationcs1114 REVIEW of details test closed laptop period
python details DOES NOT COVER FUNCTIONS!!! This is a sample of some of the things that you are responsible for do not believe that if you know only the things on this test that they will get an A on any
More informationECE264 Fall 2013 Exam 1, September 24, 2013
ECE264 Fall 2013 Exam 1, September 24, 2013 In signing this statement, I hereby certify that the work on this exam is my own and that I have not copied the work of any other student while completing it.
More informationC++ Programming Lecture 1 Software Engineering Group
C++ Programming Lecture 1 Software Engineering Group Philipp D. Schubert Contents 1. More on data types 2. Expressions 3. Const & Constexpr 4. Statements 5. Control flow 6. Recap More on datatypes: buildin
More informationVariable initialization and assignment
Variable initialization and assignment int variable_name; float variable_name; double variable_name; String variable_name; boolean variable_name; Initialize integer variable Initialize floating point variable
More informationScheme Quick Reference
Scheme Quick Reference COSC 18 Fall 2003 This document is a quick reference guide to common features of the Scheme language. It is not intended to be a complete language reference, but it gives terse summaries
More informationChapter 12 Supplement: Recursion with Java 1.5. Mr. Dave Clausen La Cañada High School
Chapter 12 Supplement: Recursion with Java 1.5 La Cañada High School Recursion: Definitions Recursion The process of a subprogram (method) calling itself. A clearly defined stopping state must exist. The
More informationWorking with recursion
Working with recursion Readings: HtDP, sections 11, 12, 13 (Intermezzo 2). We can extend the idea of a selfreferential definition to defining the natural numbers, which leads to the use of recursion in
More informationControl Statements. Objectives. ELEC 206 Prof. Siripong Potisuk
Control Statements ELEC 206 Prof. Siripong Potisuk 1 Objectives Learn how to change the flow of execution of a MATLAB program through some kind of a decisionmaking process within that program The program
More informationDynamic Programming Algorithms
CSC 364S Notes University of Toronto, Fall 2003 Dynamic Programming Algorithms The setting is as follows. We wish to find a solution to a given problem which optimizes some quantity Q of interest; for
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 informationPROBLEM SOLVING WITH LOOPS. Chapter 7
PROBLEM SOLVING WITH LOOPS Chapter 7 Concept of Repetition Structure Logic It is a computer task, that is used for Repeating a series of instructions many times. Ex. The Process of calculating the Total
More informationProgramming Exercise
Programming Exercise Nibbles Objective: To gain experience working with 2 dimensional arrays. The Problem Nibbles is a snake. Nibbles moves around a field, looking for food. Unfortunately, Nibbles is not
More informationSelec%on and Decision Structures in Java: If Statements and Switch Statements CSC 121 Spring 2016 Howard Rosenthal
Selec%on and Decision Structures in Java: If Statements and Switch Statements CSC 121 Spring 2016 Howard Rosenthal Lesson Goals Understand Control Structures Understand how to control the flow of a program
More informationBasic Computer Programming (Processing)
Contents 1. Basic Concepts (Page 2) 2. Processing (Page 2) 3. Statements and Comments (Page 6) 4. Variables (Page 7) 5. Setup and Draw (Page 8) 6. Data Types (Page 9) 7. Mouse Function (Page 10) 8. Keyboard
More information(Refer Slide Time 5:19)
Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology, Madras Lecture  7 Logic Minimization using Karnaugh Maps In the last lecture we introduced
More informationGoals of this Lecture
C Pointers Goals of this Lecture Help you learn about: Pointers and application Pointer variables Operators & relation to arrays 2 Pointer Variables The first step in understanding pointers is visualizing
More informationFall Semester (081) Dr. ElSayed ElAlfy Computer Science Department King Fahd University of Petroleum and Minerals
INTERNET PROTOCOLS AND CLIENTSERVER PROGRAMMING Client SWE344 request Internet response Fall Semester 20082009 (081) Server Module 2.1: C# Programming Essentials (Part 1) Dr. ElSayed ElAlfy Computer
More informationName CMPS 5J Final March 17, 2009 This is a closed notes, closed book exam.
Name CMPS 5J Final March 17, 2009 This is a closed notes, closed book exam. There are 21 problems and 50 points total. The last 5 problems ask you to write short programs or code fragments. There are multiple
More informationCSC 1351: Quiz 6: Sort and Search
CSC 1351: Quiz 6: Sort and Search Name: 0.1 You want to implement combat within a role playing game on a computer. Specifically, the game rules for damage inflicted by a hit are: In order to figure out
More informationLecture Notes on Binary Search Trees
Lecture Notes on Binary Search Trees 15122: Principles of Imperative Computation Tom Cortina Lecture 15 October 14, 2010 1 Introduction In the previous two lectures we have seen how to exploit the structure
More informationIntroduction to C++ 2. A Simple C++ Program. A C++ program consists of: a set of data & function definitions, and the main function (or driver)
Introduction to C++ 1. General C++ is an Object oriented extension of C which was derived from B (BCPL) Developed by Bjarne Stroustrup (AT&T Bell Labs) in early 1980 s 2. A Simple C++ Program A C++ program
More informationModule 2: Choice and Iteration
Module 2: Choice and Iteration Ron K. Cytron * Department of Computer Science and Engineering * Washington University in Saint Louis Thanks to Alan Waldman for comments that improved these slides Prepared
More information1. (a) O(log n) algorithm for finding the logical AND of n bits with n processors
1. (a) O(log n) algorithm for finding the logical AND of n bits with n processors on an EREW PRAM: See solution for the next problem. Omit the step where each processor sequentially computes the AND of
More informationn 1 x i = xn 1 x 1. i= (2n 1) = n 2.
Questions 1. Use mathematical induction to prove that, for any n 1 n 1 x i = xn 1 x 1. (Recall that I proved it in a different way back in lecture 2.) 2. Use mathematical induction to prove that, for all
More informationFinal Exam Winter 2013
Final Exam Winter 2013 1. Which modification to the following program makes it so that the display shows just a single circle at the location of the mouse. The circle should move to follow the mouse but
More informationCS 223: Data Structures and Programming Techniques. Exam 2
CS 223: Data Structures and Programming Techniques. Exam 2 Instructor: Jim Aspnes Work alone. Do not use any notes or books. You have approximately 75 minutes to complete this exam. Please write your answers
More informationLecture 15 Binary Search Trees
Lecture 15 Binary Search Trees 15122: Principles of Imperative Computation (Fall 2017) Frank Pfenning, André Platzer, Rob Simmons, Iliano Cervesato In this lecture, we will continue considering ways to
More informationCS1102: Macros and Recursion
CS1102: Macros and Recursion Kathi Fisler, WPI October 5, 2009 This lecture looks at several more macro examples. It aims to show you when you can use recursion safely with macros and when you can t. 1
More informationMultithreaded Parallelism and Performance Measures
Multithreaded Parallelism and Performance Measures Marc Moreno Maza University of Western Ontario, London, Ontario (Canada) CS 3101 (Moreno Maza) Multithreaded Parallelism and Performance Measures CS 3101
More informationFlow Chart. The diagrammatic representation shows a solution to a given problem.
low Charts low Chart A flowchart is a type of diagram that represents an algorithm or process, showing the steps as various symbols, and their order by connecting them with arrows. he diagrammatic representation
More informationAC64/AT64 DESIGN & ANALYSIS OF ALGORITHMS DEC 2014
AC64/AT64 DESIGN & ANALYSIS OF ALGORITHMS DEC 214 Q.2 a. Design an algorithm for computing gcd (m,n) using Euclid s algorithm. Apply the algorithm to find gcd (31415, 14142). ALGORITHM Euclid(m, n) //Computes
More informationDATA STRUCTURES AND ALGORITHMS. Asymptotic analysis of the algorithms
DATA STRUCTURES AND ALGORITHMS Asymptotic analysis of the algorithms Summary of the previous lecture Algorithm definition Representation of the algorithms: Flowchart, Pseudocode Description Types of the
More informationFinal Exam Principles of Imperative Computation Frank Pfenning, Tom Cortina, William Lovas. December 10, Name: Andrew ID: Section:
Final Exam 15122 Principles of Imperative Computation Frank Pfenning, Tom Cortina, William Lovas December 10, 2010 Name: Andrew ID: Section: Instructions This exam is closedbook with one sheet of notes
More informationChapter Fourteen Bonus Lessons: Algorithms and Efficiency
: Algorithms and Efficiency The following lessons take a deeper look at Chapter 14 topics regarding algorithms, efficiency, and Big O measurements. They can be completed by AP students after Chapter 14.
More informationComputer Science E119 Fall Problem Set 1. Due before lecture on Wednesday, September 26
Due before lecture on Wednesday, September 26 Getting Started Before starting this assignment, make sure that you have completed Problem Set 0, which can be found on the assignments page of the course
More informationProcedures, Parameters, Values and Variables. Steven R. Bagley
Procedures, Parameters, Values and Variables Steven R. Bagley Recap A Program is a sequence of statements (instructions) Statements executed onebyone in order Unless it is changed by the programmer e.g.
More informationComputer Science Foundation Exam
Computer Science Foundation Exam December 18, 015 Section I B COMPUTER SCIENCE NO books, notes, or calculators may be used, and you must work entirely on your own. SOLUTION Question # Max Pts Category
More informationQ1 Q2 Q3 Q4 Q5 Total 1 * 7 1 * 5 20 * * Final marks Marks First Question
Page 1 of 6 Template no.: A Course Name: Computer Programming1 Course ID: Exam Duration: 2 Hours Exam Time: Exam Date: Final Exam 1'st Semester Student no. in the list: Exam pages: Student's Name: Student
More informationINTERFACES IN JAVA. Prof. Chris Jermaine
INTERFACES IN JAVA Prof. Chris Jermaine cmj4@cs.rice.edu 1 Before We Begin... Couple more slides on checkers, then a challenge There is also an AIntelligence This encapsulates the idea of a checkerplaying
More informationProgramming Languages
CSE 130 : Spring 2011 Programming Languages Lecture 3: Crash Course Ctd, Expressions and Types Ranjit Jhala UC San Diego A shorthand for function binding # let neg = fun f > fun x > not (f x); # let
More informationCMPSCI 187: Programming With Data Structures. Lecture #16: Thinking About Recursion David Mix Barrington 12 October 2012
CMPSCI 187: Programming With Data Structures Lecture #16: Thinking About Recursion David Mix Barrington 12 October 2012 Thinking About Recursion Review of the Grid Class Recursion on Linked Structures
More informationParallel Programming. OpenMP Parallel programming for multiprocessors for loops
Parallel Programming OpenMP Parallel programming for multiprocessors for loops OpenMP OpenMP An application programming interface (API) for parallel programming on multiprocessors Assumes shared memory
More information1.3 Conditionals and Loops
.3 Conditionals and Loops Introduction to Programming in Java: An Interdisciplinary Approach Robert Sedgewick and Kevin Wayne Copyright 2008 February 04, 2008 0:00 AM A Foundation for Programming A Foundation
More informationSorting. There exist sorting algorithms which have shown to be more efficient in practice.
Sorting Next to storing and retrieving data, sorting of data is one of the more common algorithmic tasks, with many different ways to perform it. Whenever we perform a web search and/or view statistics
More informationFall 2005 CS 11 Final exam Answers
Fall 2005 CS 11 Final exam Answers 1. Question: (5 points) In the following snippet of code, identify all places where type casting would occur automatically or would need to occur through a forced cast.
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 information