CS 430—Tuesday September 26, 2006
Notes
Programming Assignment 2 Questions:
When it comes to the format
of the array, it is up to your discretion if you want to have 5 rows or 5
columns. As long as it is right, Dr. Adams will be happy.
Process of program:
Repeat 65 times
Repeat 5 times
·
Print row
Repeat 5 times
Repeat 13 times
·
Print column
Repeat 13 times
·
Print average
Make sure you fill the whole array first
before printing the row.
Please
utilize the Blackboard discussion board for any out of class questions and information.
Zip
your source code and your output together (Please use .ZIP not .rar) and put it into the digital drop box on Blackboard. Each
of you should name your files should have your name and the number‘2’. Example: Adams2.zip
With
this assignment it is very clear that you will need multiple subprograms to limit code duplication. The write up only
says one subroutine and one function, but DO implement more then one. Note that this means user defined functions
and subroutines.
From
the Process of the program above there are some problems…
1. You can’t just have a loop run 65 times to be
able to put all the random values in since it is a multidimensional array. The
columns change more rapidly then the rows. Therefore, you need two loops nested to be able to go
through the array. (General Programming Skills)
ADVICE: Discussion of what to pass into subprogram
REMEMBER—Fortran
passes by reference.
1. Send the whole array
2. Send each array element one at a time (WHACKY *DO
NOT DO*)
3. Send a row a time
4. Send a column at a time
PLEASE
DO NUMBER 1 above!! You’ll screw
yourself over royally if you do it any other way. By passing it all in it’ll allow
you to work with the parts that you desire.
LIST OF A BUILT IN FORTRAN FUNCTIONS (and
people who identified them.:
|
1 |
AVERAGE- Claire
** |
|
2 |
MIN- Ken W. * |
|
3 |
MAX- Josh * |
|
4 |
SQRT- Sharon *
* |
|
5 |
|
|
6 |
SUM – Chip |
|
7 |
IFIX – Bobby * |
|
8 |
INT – Matt |
|
9 |
MOD – Andrew |
|
10 |
ABS – Aaron |
|
11 |
LOG – Katie * |
|
12 |
FLOAT – Kat |
|
13 |
DOUBLE Frank * |
|
14 |
EXP- Ken C. |
|
15 |
LEN – Brad ** |
|
16 |
TAN – Willis (TAND does the degrees) * |
|
17 |
DSQRT- Chase * * |
|
18 |
FLOOR- Aaron |
|
19 |
CHAR- Ikjae * |
|
20 |
COSD – Ryan * |
|
|
MORGAN * Attaway * Jonathan * |
HOMEWORK:
Using the first letter of your first name and of your last name, the first letter of
your last name test two functions
corresponding to the numbers of the alphabet. that)
that are listed above. You should test
them fully (using various parameter types (i.e. integers and reals) and return values and write up what you find. Bring code with comments to class on Thursday. Note that although there were only 15 or 16 built-in functions in FORTRANIV
these should still work with our compiler.
Pascal
The
compiler is compatible with Turbo Pascal which means it has things that
standard Pascal didn’t have such as : units and some
Compiler Directives. Don’t use these.
Expect
5 kinds of Statements in every programming language:
INPUT
statement
READ
(X); (* is equivalent to saying *) READ (input, X);
READIN(x)
(* is equivalent to saying *) READLN (input, X);
READ(file, X) (* means read from the file known as file *)
·
The difference
between read and readln is that readln
goes to the next line after it executes where as read stops where it is.
·
X is a value of
a variable to be read in
OUTPUT
statement
WRITE
(X); (* is equivalent to saying *) WRITE (output, X);
WRITELN
(X); (* is equivalent to saying *) WRITELN(output, X);
·
Write and writeln can also be used with files.
·
The difference
between write and writeln is that writeln
moves the print head to the next line after it executes and write stops where
it is.
NOTE: You will need to distinguish between the internal
and the external file names. The one used in the READ, READLN, WRITE, and
WRITELN statements is the internal name not the diskfile
name.( Haven’t spoken about how to do it yet)
ITERATION
statement
FOR
loop is a counted loop. It executes a fixed number of times.
FOR loopControlVariable := intialValue TO endingvalue DO
BEGIN Multiplestatements;
END;
·
Never Put a
Semicolon after a DO!!*
WHILE
loop is executed until a condition is met. It will not be executed at all if
the condition is not true on entry to the loop. (Pre-test loop)
WHILE(true) DO WHILE(true) DO
BEGIN Do this
one time;
END;
(* the begin
end pair of reserved words makes a group of statements equivalent syntactically
to a single statement *)
REPEAT…
UNTIL loop executes until a condition is met. It always executes at least once
because it’s a post test loop.
ASSIGNMENT
statement
:=
SELECTION
statement
IF
CASE
It’s
useful to know how to comment in a language.
(* *) shows the
delimiters for Pascal comments
( )
Pascal
is NOT case sensitive.
Pascal
guarantees that first 8 characters of a variable name are unique if they are
different from all other identifiers in the first 8 characters.
EXAMPLE: Nameandaddress1 &
Nameandaddress2
Doesn’t mean that they
will be different.
Pascal
has both reserved words and predefined terms. *You need to know the
reserved words* There are about 35 or 36 reserved words originally.
Input is not a reserved word.
TO and DO are a reserved words
There
are additional notes shown on Web page.