190 likes | 199 Vues
Learn how to use arrays to store and manipulate large groups of similar information in computer science. Explore different use cases and master the steps for creating and using arrays in your programs.
E N D
Computer Science 1 How do you store a bunch of similar stuff?
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.
What do you think this does? Program arraynyday; Type Numtype = array[1..5] of integer; Var Re:numtype; bound, cord, mind:integer; Begin For 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.
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.
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}
Dry run the following Program arraysample;{Dry run the following} Type Arraytype = array[1..5] of integer; Var Numbers:Arraytype; Count:integer; Begin For 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.
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 options • Enter 10 names and show the names in reverse order. • 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.) • 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.