Mae5
Project #2
(Due 12/7/07 by midnight)
- Requires at least 20 different commands (15 commands
for project #1)
- Program must run without errors (if your program uses
other files, such as images, be sure to include these)
- Program must be original work (no sharing of code
between students)
- Program must include at least 1 loop (for-next and/or
do-loop) and at least 1 decision structure (if-else-end if and/or case
select)
- Program must involve the user (with input statements,
etc.)
- Program must include at least 1 of either a function
or subroutine written by the student (see chapter 7, project #2 only)
- Program must include some sort of graphics (see
chapter 12, displaying a jpeg. image is also acceptable, project #2 only).
- Must have a list of all commands at the start of the
program (as comments)
- Must add comments throughout the program (describe
what your program is doing; try to have at least 1 comment for every 10-20
lines of your program, having more comments than this is encouraged).
Project suggestions:
- Quizzes, surveys, etc. are a good way to have lots of
user input
- Although not required, you can try to write a project
that relates to your major
- Keep in mind that the TAs will have to grade lots of
these projects. With that in mind, please try to be reasonable when using
sound and pause commands (we donât want to hear constant beeping, and if
you have any pauses longer than a few seconds, we will think your program
is frozen and not working).
- When using colors, try not to use dark text on a dark
background, as this makes it very difficult to read (such as blue text on
black).
- When asking for user input, write your program so the
case of the input does not matter (or make your input instructions very
clear what case you are interested in). For example, if you asked a yes/no
question, and used a line like (if ans$=äYä),
this would not accept and answer of ãYesä, ãyä, ãyesä, etc. You can use
the following code to address this (this looks at only the first character
of the answer (ans$[1:1]) and makes it uppercase
(Ucase$()), to compare to ãYä ö this will accept
ãYESä, ãYesä, ãyesä, ãYâ, ãyä, etc as answers).
Input prompt
ãanswer yes or noä: ans$
If Ucase$(ans[1:1]) = ãYä then·
- You can use the sample projects posted for ideas, and
can use the code as an example of how to do certain things (use the mouse,
display a color changing title, etc.), but donât directly copy the sample
code.
Grading:
60% - 20 commands (3% each)
25% - Program runs with no
errors, programs meets additional requirements (loops, branching, at least one
function or subroutine, graphics, comments and command list)
15% -
Originality and level of effort shown in the program.
When counting up the commands you
used, please keep in mind the following guidelines:
- When listing commands, list specific commands, not
what the commands are being used for (such as ãinputä, not ãasked user for
their nameä). Explain what the commands are being used for when adding
comments to your program.
- Commands that exist only in combinations do not count
as separate commands. This means if-else-end if, for-next, read-data,
do-loop, select case-end select, etc. count as only 1 command each. Note
that elseif does count as an additional command
if used.
- Commands that do essentially the same thing do not
count as separate commands. Examples of this include input-input
prompt-line input, let-option nolet, box
circle-box ellipse, etc. The use of these would only count as 1 command
used. Note that if the different input statements are used for a specific
reason, such as using line input to have the user enter a whole sentence,
then they can be counted as different commands (mention this with a
comment).
- Repeated use of the same command does not constitute
"separate" commands.
- The use of mathematical symbols "+,-, =,*,/,^" does not constitute commands.
- Printing with ã,ä or ã;ä separators does not count as
a different command than a basic print statement
- ãEndä does not count as a command ö this will always
be in every program.
- Most commands, functions, etc. listed in the book
count; some commands count but may not be obvious, some of these are
listed below (these do count):
- End data/more data
- Open #1
- Restore
- Exit do
- Randomize/rnd
- String concatenation
- Use of substrings (string$[x:y])
- Get key
- Call (a subroutine)
- Declare (a function)
- Dim (an array)
- Print using (ã###.##ä)
- The functions listed in chapter 5 (round(),
repeat$(), tab(), val(), pos(), Ucase$(), etc.), and the graphics statements in
chapter 12 (set window, plot lines, plot text, set color, flood, box area,
box clear, box circle, etc.) all count as commands, using some of these
functions or graphics is an easy way to add commands.
- If you have any questions about your project, what
counts as a command, etc., just ask your TA.