Upload
kenneth-hunt
View
219
Download
0
Embed Size (px)
DESCRIPTION
Goals Understand when to use arrays. Be able to read a program that uses one dimensional arrays. Be able to write the code to create arrays. Write a program that uses arrays.
Citation preview
Computer Science 1
How do you store a bunch of similar stuff?
What do you think this does?
Program arraynyday;Type
Numtype = array[1..5] of integer;Var
Re:numtype;bound, cord, mind:integer;
BeginFor bound:= 1 to 5 do
Re[bound]:= 3*bound;For cord:= 5 downto 2 do
Re[cord]:= re[cord]+ cord;For mind:= 1 to 5 do
Writeln(re[mind]);For bound:= 1 to 4 do
Re[bound]:=re[bound + 1];Re[5]:=re[2];For mind:= 1 to 5 do
Writeln(re[mind]);End.
Goals• Understand when to use arrays.• Be able to read a program that
uses one dimensional arrays.• Be able to write the code to create
arrays.• Write a program that uses arrays.
Storing stuff• Keep track of all of the actions on the
ATM• Save names for future reference.• Save a bunch of numbers to put in order• The position of game pieces in checkers• The colors for a chunk of the screen.
Arrays to the rescue• What is it? A type of
variable that can hold several values of the same type.
• The names of 8 friends.• Your 10 best swimming
times.• The total points for the
12 players on the basketball team.
• 3 x 3 tic-tac-toe board• 37 account balances.
PebblesSueFredWilmaBettyDinoBam BamBarney
When should you use an array?• When you have a large group of
similar information that you are going to use more than once.
• When you are sorting
Types of uses• General storage
• Save 20 names• Allows you to be able to look at the
information again.• Tallying
• Counting how often events occur.• Statistics
• Sorting• Putting stuff in order.
Steps for making an array
•Define it•In the TYPE section
•Declare it•In the var section
•Use it•In the code section
Define it• Program sample;• Uses• Const• Type
– ScoresType = array[1..15] of integer;– CapitalLettersType = array[‘A’..’Z’] of string;– TicTacToeType = array[1..3, 1..3] of char;– SeatingType = array[‘A’..’M’, 1..50] of string;
Declare it
• Var• scores: Scorestype;• capitalLetters : CapitalLettersType;• ticTacToe: TicTacToeType;• seating:SeatingType;• count:integer;
Use it
• Begin– Scores[1] := 0;– Writeln(‘Please enter a score’);– Readln(scores[2]);– How can you get all 10 scores with using 10
writeln/readlns?
Other stuff you can do
• Scores[2] := scores[3];• Scores[count]:=scores[scores[2]]; {?}• Scores[count-3] := scores[count-4];• If scores[count] > 10 then
– Writeln(scores[count]);
What do you recall about…
• Arrays• Type• [1..5]• [1..5,1..5]• Defining arrays• Declaring Arrays• Using Arrays
Good array errors• Writeln(scores); {You need a loop to show
all of the values}• scoresType[2] := 20;• Scores[27]:= 8; {Out of bounds}• Scores:=6; {No address given}
Conversions: Fill in the following
DecimalDecimal BinaryBinary OctalOctal HexadecimalHexadecimal
5757
111011111011
123123
A9A9
Dry run the following
Program arraysample;{Dry run the following}Type
Arraytype = array[1..5] of integer;Var
Numbers:Arraytype;Count:integer;
BeginFor count:= 5 downto 1 do
Numbers[count]:= count;Numbers[2]:= numbers[3] + 5;Numbers[3]:= numbers[2+2];Numbers[5]:=2;For count:= 1 to 5 do
Writeln(Numbers[count]);{This next one is weird}numbers[numbers[5]] := numbers[3]*5;for count:= 1 to 5 do
writlen(numbers[count]);readln;
end.
Dry Run for pos:= 1 to 5 do
info[pos]:= pos*2;for pos := 1 to 5 dobegin if (pos div 2) > 2 then
info[pos]:= info[pos] + pos else
info[pos]:= info[pos]*pos;end;for pos:= 1 to 5 do
writeln(info[pos]);
Your turn…• Write the type and var section to
create arrays to store the following• 10 names• 15 test scores
Try code• Write the code to …• Input 10 names into the array
created previously• Input 15 test scores• Output all of the names• Output all of the test scores• Find and show the highest test
score
Program options1. Enter 10 names and show the names in reverse order.2. Input: 10 scores
Output: The number of scores within 10 points of the average of the 10 scores. (You’ll need to calculate the average before going back and seeing which scores are within 10 points of the average.)
3. Create a random compliment generator using an array to store the compliments. Using a while loop (so the user can be complimented often) have the computer display one of at least 5 random compliments each time the user would like to be complimented.