Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
CS 121 Engineering Computation Lab Lab 3 Department of Computer Science Drexel University Summer 2009 ©By the author. All rights reserved. Permission is given to CS121 Fall 2008 staff and students to use and reproduce these notes for their own use. Your class instructor and TA • • • • Instructor for this section: Office: Email: Your TAs are: Week 2 retrospective • Lab 2 • Limited Precision Arithmetic • Data structure, functions • Quiz 2 • Getting stuck on problems during the quizzes? – Use the Cyber Learning Center (UC147) – Use the discussion board for short questions Lab 3 • Overview • Part 1 Scripts (ch. 4 readings) • Assignments (function) • Part 2 User defined functions Assignments • Assignments are of the form name := expression where a is a variable and n can be an expression • (discussed in lab 2) • Name can be a single letter (upper-/lower- case sensitive), or a combination of a letter followed by letters and numbers and underscores. A a a1 expr I eqn1 my_grade largestScore • Some names are reserved by Maple and cannot be used as something to assign to: Pi for I end quit Demo of Assignments • p := x^2 x^2 • p x^2 • p - 1=0 x ^ 2-1 = 0 • unassign(‘p’) • p p • p-1=0 p-1=0 • p does not stand for “x^2” any more. Scripts • What is a script? – A script is a sequence of operations. Usually, the later operations use the results of the earlier ones. – Labels or assignments are used to make the references convenient. • How are scripts useful? – Scripts are useful when you expect to solve a series of similar problems. – Reuse: cut, paste, edit, re-execute. Pointers on Script Use • Rather than use the clickable interface, it’s better to lay out the operations textually one line at a time. • You can create a script using only clickable operations if you don't need to change the operations that are specified by pop-up menu. • Use assignments and labels to refer to results of previous steps. • Place “editable quantities” as assignments at the beginning of the script, rather than scattering the editing task all over the script (“I forget, what do I need to change?”) Demo of Script Use • Demo the sheep problem. Compared to the script given in section 4.5, we’re replacing the clickable operations with the function version of the solve, eval, and plot operations. • This solves the problem for sheepEqn :=N = 220/(1+10*.83^t) popSize := 80 • Copy region • Edit sheepEqn := N = 330/(1+10*.79^t); popSize := 85; • Re-execute edited region User Defined Functions • Maple users can define new functions • That is one of the key features that makes Maple less like a calculator and more like a programming language How to define your own function •Through the clickable interface •The general form is from the f:=a->y in the Expression palette •User-defined function textually •function name:= input name-> expression involving inputs •The ( ....) - > .....defines the function. •The function name := gives the function a name Usage of User Defined Functions •Format: function name (values for inputs) •Example: f := (x) -> sqrt(x) + 1 f(9) evaluates to 4 as a result. •Example: g := (a, b) -> (a+b)/2 g(3.5, 6.5) evaluates to 5 as a result. Demo of User Defined Functions • Define three functions t, s and p • t := n -> 1/n*sin(n*Pi*x); • s(m) = the sum of t(i) • s := m -> sum(t(2^i), i=1..m); • p(m) = produces a plot of s(m) for x between 0 and 4 • p := m -> plot(s(m), x=0..4) • Here is one example of its use: • p(1); Demo of sequences, lists, sets • Maple demo of: – – – – – – – – – Assignment Use of indexing to get at pieces Concatenation of sequences Sequences as “inside” of function invocation: binomial(3,5); versus s := 1,2; binomial(s); Convert sequence to list: [s] Convert sequence to set: {s} Convert list to sequence: op(L) Convert set to sequence: op(S) nops(…) gives number of elements sort( list ) sorts in ascending order; sort(list, `>`) descending Script test data in Problem 1.2 • Problem 1.2 asks you to generate a list of random numbers to test your scripts on. Just follow the directions, entering the instructions as listed. You should see a list of random numbers which you can apply your script to. • Don't worry about the random number generator's operating principles yet. This lab, we just want you to use the generator. Finishing up – save your work • Save worksheets onto the Desktop. You can call them Lab3Part1, Lab3Part2, etc. Or you could put all the work into one worksheet and just call it Lab 3. • Submit a copy to Blackboard site as evidence that you did the lab. • Email a copy to yourself and/or your lab partners as an attachment so you can look at what you did for review purposes later. • We will use this week's work in the next Lab. Turn in your verification sheet • Make sure your name/user id/section number/ date,time/instructor name are on the verification sheet. • Get the verification sheet signed for all parts you completed and hand it in. Week 3 • Take Quiz 3 Tuesday-Friday Week 3 – Maple TA server down for maintenance 910am and briefly at 3pm each day during the week. Demo of RandomTools Instructors can use the following slides optionally. > > > >