update,
This commit is contained in:
249
_resources/it114105/itp3914/Lab07/README.md.original
Normal file
249
_resources/it114105/itp3914/Lab07/README.md.original
Normal file
@@ -0,0 +1,249 @@
|
||||
# Lab 7 Repetition Part 1
|
||||
## Topic 3: Basic Program Structures
|
||||
|
||||
### Intended Learning Outcomes
|
||||
Upon completion of this tutorial/lab, you should be able to:
|
||||
- Use loops to perform searching on a text string.
|
||||
- Use different types of loops to calculate sum of series.
|
||||
|
||||
## Exercise 1
|
||||
Determine the output of the following Java programs.
|
||||
|
||||
(a)
|
||||
```java
|
||||
public static void main( String[] args ) {
|
||||
double balance = 1000; // initialize to $1000
|
||||
double interestRate = 0.1;
|
||||
int years = 0; // number of years
|
||||
do {
|
||||
balance = ( 1 + interestRate ) * balance;
|
||||
years += 1;
|
||||
} while ( balance <= 1200 );
|
||||
System.out.println( years );
|
||||
}
|
||||
|
||||
// Output:
|
||||
2
|
||||
```
|
||||
|
||||
(b)
|
||||
```java
|
||||
public static void main( String[] args ) {
|
||||
int j = 2;
|
||||
String s = "";
|
||||
while ( j <= 8 ) {
|
||||
s += "*";
|
||||
j += 2;
|
||||
}
|
||||
System.out.println( j + " " + s );
|
||||
}
|
||||
|
||||
// Output:
|
||||
10 ****
|
||||
```
|
||||
(c)
|
||||
```java
|
||||
public static void main( String[] args ) {
|
||||
int i;
|
||||
for ( i=-9; i<=-1; i+=3 )
|
||||
System.out.print( i + " " );
|
||||
}
|
||||
|
||||
// Output:
|
||||
-9 -6 -3
|
||||
```
|
||||
|
||||
## Exercise 2
|
||||
|
||||
Identify and correct the error(s) in the program fragment below.
|
||||
|
||||
(a)
|
||||
```java
|
||||
int c=0, product=1;
|
||||
while (c <= 5) {
|
||||
product *= c;
|
||||
++c;
|
||||
|
||||
```
|
||||
Logic error:
|
||||
The variable product is always 0 after each loop, thus the loop is having no use.
|
||||
Having a syntactically correct program doesn't mean that your program is producing the
|
||||
correct result.
|
||||
|
||||
(b)
|
||||
```java
|
||||
int x=1, total;
|
||||
While (x <= 10) {
|
||||
total += x;
|
||||
x++;
|
||||
}
|
||||
```
|
||||
Syntax error: While should be while.
|
||||
Better: Although Java initializes numerical variables to 0 automatically if an initial value is
|
||||
not specified during variable declaration, it is better to write explicitly total=0 for better
|
||||
program readability.
|
||||
|
||||
(c)
|
||||
```java
|
||||
For (int x=100, x >= 1, x++);
|
||||
System.out.println(x);
|
||||
```
|
||||
Syntax error: for (int x=100; x >= 1; x++)
|
||||
Logic error: x will always be greater than 1 and the loop will never terminate.
|
||||
Having a syntactically correct program doesn't mean that your program is producing the
|
||||
correct result.
|
||||
|
||||
## Exercise 3
|
||||
What will be the value of variable $x$ after executing the following program fragment?
|
||||
|
||||
```java
|
||||
int x=1, y=9;
|
||||
for (int i=0; i<y; i+=3)
|
||||
x++;
|
||||
|
||||
# x is 4
|
||||
```
|
||||
|
||||
## Exercise 4
|
||||
What will be printed by the program fragments below?
|
||||
|
||||
(a)
|
||||
```java
|
||||
int x=12;
|
||||
do {
|
||||
System.out.print(x + " ");
|
||||
x--;
|
||||
} while (x > 7);
|
||||
|
||||
// Output:
|
||||
12 11 10 9 8
|
||||
```
|
||||
|
||||
(b)
|
||||
```java
|
||||
for (int i=10; i<=25; i+=5)
|
||||
System.out.print( (i/5) + " ")
|
||||
|
||||
// Output:
|
||||
2 3 4 5
|
||||
```
|
||||
|
||||
## Exercise 5
|
||||
What will be printed by the program below?
|
||||
|
||||
```java
|
||||
public class Question {
|
||||
public static void main(String [] args) {
|
||||
int y, x=1, total=0;
|
||||
while (x <= 5) {
|
||||
y = x * x;
|
||||
System.out.println(y);
|
||||
total += y;
|
||||
x++;
|
||||
}
|
||||
System.out.println("Total is " + total);
|
||||
}
|
||||
}
|
||||
|
||||
// Output:
|
||||
1
|
||||
4
|
||||
9
|
||||
16
|
||||
25
|
||||
Total is 55
|
||||
```
|
||||
|
||||
## Exercise 6
|
||||
Rewrite the following programs with while loops.
|
||||
|
||||
(a)
|
||||
```java
|
||||
public static void main( String[] args ) {
|
||||
int i;
|
||||
for ( i=-9; i<=-1; i+=3 )
|
||||
System.out.println( i );
|
||||
System.out.println( "After loop, i=" + i );
|
||||
}
|
||||
```
|
||||
|
||||
(b)
|
||||
```java
|
||||
public static void main( String[] args ) {
|
||||
int i = 5;
|
||||
do {
|
||||
System.out.println(i--);
|
||||
} while ( i >= 0 );
|
||||
System.out.println( "After loop, i=" + i ); }
|
||||
```
|
||||
|
||||
## Exercise 7
|
||||
Write a program to ask the user to input an int value. The program then prints the corresponding number of ‘*’ on screen.
|
||||
|
||||
Shown below are two sample executions of the program. Those in underline are user inputs.
|
||||
|
||||
```
|
||||
e:\> java Ex7
|
||||
Number of stars? _5_
|
||||
****
|
||||
```
|
||||
|
||||
```
|
||||
e:\> java Ex7
|
||||
Number of stars? _9_
|
||||
*********
|
||||
```
|
||||
|
||||
## Exercise 8
|
||||
Write a program to calculate n! where n is an integer value entered by the user.
|
||||
|
||||
NOTE: $n! = n (n-1) \times (n-2) \times (n-3) \times …\times 1$
|
||||
|
||||
For example, $5!=5\times 5\times 4\times 3\times 2\times 1$
|
||||
|
||||
Shown below are two sample executions of the program. Those in __ are user inputs.
|
||||
|
||||
```
|
||||
e:\> java Ex8
|
||||
n? _3_
|
||||
3! = 6
|
||||
```
|
||||
|
||||
```
|
||||
e:\> java Ex8
|
||||
n? _6_
|
||||
6! = 720
|
||||
```
|
||||
|
||||
## Exercise 9
|
||||
Rewrite your program in Exercise 8 so that the output becomes:
|
||||
|
||||
```
|
||||
e:\> java Ex9
|
||||
n? _3_
|
||||
3 x 2 x 1 = 6
|
||||
```
|
||||
|
||||
```
|
||||
e:\> java Ex9
|
||||
n? _6_
|
||||
6 x 5 x 4 x 3 x 2 x 1 = 720
|
||||
```
|
||||
|
||||
## Exercise 10
|
||||
Write a program to perform the followings:
|
||||
- Ask the user the number of values to enter
|
||||
- Read the values from the user
|
||||
- Calculate and print the average of the values.
|
||||
|
||||
Shown below is a sample execution of the program. Those in __ are user inputs.
|
||||
|
||||
```
|
||||
e:\> java Ex10
|
||||
How many values to enter? _4_
|
||||
Value? _10_
|
||||
Value? _24_
|
||||
Value? _20_
|
||||
Value? _9_
|
||||
Average = 15.75
|
||||
```
|
Reference in New Issue
Block a user