CS1101: Programming Methodology

Download Report

Transcript CS1101: Programming Methodology

CS1101X:
Programming Methodology
Recitation 6
Arrays I
Task 1: Learning-by-mistake (1/3)
A program NonNegativeArray.java to test
whether a list of integers contains a negative
number is given. The method isNonNegative()
returns true if the array contains all non-negative
values; it returns false otherwise.
3 5 0 5 10 8
true
9 7 4 12 –3 2 6
false
CS1101X Recitation #6
2
Task 1: Learning-by-mistake (2/3)
Which of the following is/are correct?
// version 1
public static boolean isNonNegative (int[] arr) {
boolean flag = true;
for (int i = 0; i < arr.length; ++i) {
flag = arr[i] >= 0;
}
return flag;
}
// version 2
public static boolean isNonNegative (int[] arr) {
boolean flag = true;
for (int i = 0; i < arr.length; ++i) {
if (arr[i] < 0) flag = false;
}
return flag;
CS1101X
} Recitation #6
3
Task 1: Learning-by-mistake (3/3)
Which of the following is/are correct?
// version 3
public static boolean isNonNegative (int[] arr) {
for (int i = 0; i < arr.length; ++i) {
if (arr[i] >= 0)
return true;
}
return false;
}
// version 4
public static boolean isNonNegative (int[] arr) {
for (int i = 0; i < arr.length; ++i) {
if (arr[i] < 0)
return false;
}
return true;
CS1101X
} Recitation #6
4
Task 2: isSorted
A program IsSortedArray.java to test whether a
list of integers in sorted in non-decreasing order.
The method isSorted() returns true if the array is
sorted; it returns false otherwise.
3 5 5 7 18 21
true
1 3 4 7 6 9 11
false
CS1101X Recitation #6
5
Task 3: Second largest
Given a list of integers, determine the second largest
value in the list. (Assuming that the list contains at
least 2 values.)
10 3 7 15 11 21
15
5 8 7 9 2 8 1 3
8
12 7 9 12 10 3
12
CS1101X Recitation #6
6
Task 4: Pascal’s Triangle (1/3)
Blaise Pascal was a scientist, mathematician par
excellence who lived in the 17th century. Some of
his mathematical work was fundamental to the
theory of probability. There is also a programming
language named after him (though in no real sense
related to him). More of him in this website (for
those who are interested):
http://www-gap.dcs.st-and.ac.uk/~history/Mathematicians/Pascal.html
CS1101X Recitation #6
7
Task 4: Pascal’s Triangle (2/3)
In this problem, you are asked to generate Pascal's
Triangle. Pascal's Triangle is useful in many areas
from probability to polynomials to setting
programming questions. It is a triangle of integers
with 1 on top and down the sides. Any number in
the interior equals the sum of the two numbers
above it. For example, here are the first 5 rows of
the triangle.
1
1
1
1
CS1101X Recitation #6
1
1
2
3
4
1
3
6
1
4
1
8
Task 4: Pascal’s Triangle (3/3)
Write a program to generate a Pascal’s Triangle as
shown. It should be observed that the next row of
the Pascal’s triangle can be generated from the
previous row. Thus, using an array to store the
values of the previous rows seems appropriate.
1
1
1
1
1
1
CS1101X Recitation #6
1
2
3
4
5
Output for n (number of rows) = 6.
1
3 1
6 4 1
10 10 5 1
9
To be continued…
More problems on arrays (including
array of objects) at the next recitation.
CS1101X Recitation #6
10
End of Recitation #6
CS1101X Recitation #6
11