Assignment II

Due date question 1,
Monday October 9. Programming assignment due October 16.
1. A bivariate polynomial is a sequence of terms, each of which is a monomial
of the form
Ax^n y^m
where A is a floating point number, and n and m are integers. Each term is
described by a record with three components. A polynomial is a list of such
records.

a) In Ada and in your second favorite language , write the
type declarations for a term and for a polynomial.

b) Write a function Evaluate, that takes a polynomial and two floating point
numbers that represent specific values of x and y, and returns the value of
the polynomial at that point.

c) Write a function Mult1, that takes a polynomial P1 and a term T1, and
computes the product P1*T1, i.e. returns the list that represents this
product. P1 and T1 are not affected by the computation.

2. We want to perform some simple editing on a piece of text. In particular,
we want to locate the lines of text that contain a certain word, and replace
this word with another. For this purpose, we will represent the text as a list
of pointers to strings.

a) Write a procedure that reads a text file and constructs the list of lines.

b) Write a function Find, with two parameters Line and Word, which are pointers
(access) to String. Find returns the first location within Line where Word is
found. Find returns 0 if the word does not appear.

c) Write a function Replace (Line, Old_Word, New_Word, Pos). The first three
are pointers to strings, the last is a positive number, indicating the position
at which Old_Word appears in Line, The function returns a pointer to a string
where Old_Word has been replaced with New_Word in the body of Line. Note that
Old_Word and New_Word need not have the same length.

d) Put it all together: read a file, the old word, and the new word, and print
the file after replacement.