Computer Science 1 How do you store a bunch of similar stuff?

Preview:

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.

Recommended