Lesson 3 Work
Conditionals
De Morgan's Law
- shows how we can remove an && statement or remove an || statement. It's the way of creating equivalent statements by switching the && or || and distributing the ! sign if you need.
Compound Boolean Expression
- Combinations of boolean operators
- Can be and (&&), or (||), not (!), as well as parenthesis for grouping purposes
// First demonstration
System.out.println("First Demonstration:");
boolean lights = true;
boolean fan = true;
// first way
if(!(lights && fan)){
System.out.println("Something is off!");
}
// second way
if(!lights || !fan){
System.out.println("Something is off!");
}
// if one of the variables is set to true
else{
System.out.println("Everything is on!");
}
// Second demonstration
System.out.println("Second Demonstration:");
boolean sink = false;
boolean shower = false;
// first way
if(!(sink || shower)){
System.out.println("Everything is off!");
}
// second way
if(!sink && !shower){
System.out.println("Everything is off!");
}
else{
System.out.println("Something is on!");
}
// third demonstration
System.out.println("Third Demonstration: ");
int num1 = 3;
int num2 = 10;
// first way
System.out.println(!(num1 == 5 && num2 != 5));
// second way
System.out.println(num1 != 5 || num2 == 5);
// Weird and confusing
System.out.println("Overly complicated for no reason:");
if((lights || !fan) || (sink && shower)){
System.out.println("Either lights are on or fan is off, or sink and shower are on.");
}
Truth Tables
- Used to see values of boolean expressions
- A truth table has one column for each variable, one row for each possible combination of variable values, and a column that specifies the value of the function for that combination. 0 | 0 | 0 | 1 | 0 | 1 | ### OR X | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 |
// FRQ PART A
public static int numberOfLeapYears(int year1, int year2){
int numLeapYears = 0;
for(int i = year1; i <= year2; i++){
if(isLeapYear(i)){
numLeapYears++;
}
}
return numLeapYears;
}
// FRQ PART B
public class APCalendar{
/** Returns true if year is a leap year and false otherwise. */
private static boolean isLeapYear(int year)
{ /* implementation not shown */ }
/** Returns the number of leap years between year1 and year2, inclusive.
* Precondition: 0 <= year1 <= year2
*/
public static int numberOfLeapYears(int year1, int year2){
int numLeapYears = 0;
for(int i = year1; i <= year2; i++){
if(isLeapYear(i)){
numLeapYears++;
}
}
return numLeapYears;
}
/** Returns the value representing the day of the week for the first day of year,
* where 0 denotes Sunday, 1 denotes Monday, ..., and 6 denotes Saturday.
*/
private static int firstDayOfYear(int year)
{ /* implementation not shown */ }
/** Returns n, where month, day, and year specify the nth day of the year.
* Returns 1 for January 1 (month = 1, day = 1) of any year.
* Precondition: The date represented by month, day, year is a valid date.
*/
private static int dayOfYear(int month, int day, int year)
{ /* implementation not shown */ }
/** Returns the value representing the day of the week for the given date
* (month, day, year), where 0 denotes Sunday, 1 denotes Monday, ...,
* and 6 denotes Saturday.
* Precondition: The date represented by month, day, year is a valid date.
*/
public static int daysOfWeek(int month, int day, int year){
int firstDay = firstDayOfYear(year);
int nth = dayOfYear(month, day, year);
int returnDay = ((firstDay + nth) -1) % 7;
return returnDay;
}
// There may be instance variables, constructors, and other methods not shown.
}
//2
import java.util.Scanner;
public class Exercise2 {
public static void main(String[] Strings) {
Scanner input = new Scanner(System.in);
System.out.print("Input a: ");
double a = input.nextDouble();
System.out.print("Input b: ");
double b = input.nextDouble();
System.out.print("Input c: ");
double c = input.nextDouble();
double result = b * b - 4.0 * a * c;
if (result > 0.0) {
double r1 = (-b + Math.pow(result, 0.5)) / (2.0 * a);
double r2 = (-b - Math.pow(result, 0.5)) / (2.0 * a);
System.out.println("The roots are " + r1 + " and " + r2);
} else if (result == 0.0) {
double r1 = -b / (2.0 * a);
System.out.println("The root is " + r1);
} else {
System.out.println("The equation has no real roots.");
}
}
}
Exercise2.main(null);
//4
import java.util.Scanner;
public class Exercise4 {
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.print("Input value: ");
double input = in.nextDouble();
if (input > 0)
{
if (input < 1)
{
System.out.println("Positive small number");
}
else if (input > 1000000)
{
System.out.println("Positive large number");
}
else
{
System.out.println("Positive number");
}
}
else if (input < 0)
{
if (Math.abs(input) < 1)
{
System.out.println("Negative small number");
}
else if (Math.abs(input) > 1000000)
{
System.out.println("Negative large number");
}
else
{
System.out.println("Negative number");
}
}
else
{
System.out.println("Zero");
}
}
}
Exercise4.main(null);
//6
import java.util.Scanner;
public class Exercise6 {
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.print("Input floating-point number: ");
double x = in.nextDouble();
System.out.print("Input floating-point another number: ");
double y = in.nextDouble();
x = Math.round(x * 1000);
x = x / 1000;
y = Math.round(y * 1000);
y = y / 1000;
if (x == y)
{
System.out.println("They are the same up to three decimal places");
}
else
{
System.out.println("They are different");
}
}
}
Exercise6.main(null);
//8
import java.util.Scanner;
public class Exercise8 {
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.print("Input an alphabet: ");
String input = in.next().toLowerCase();
boolean uppercase = input.charAt(0) >= 65 && input.charAt(0) <= 90;
boolean lowercase = input.charAt(0) >= 97 && input.charAt(0) <= 122;
boolean vowels = input.equals("a") || input.equals("e") || input.equals("i")
|| input.equals("o") || input.equals("u");
if (input.length() > 1)
{
System.out.println("Error. Not a single character.");
}
else if (!(uppercase || lowercase))
{
System.out.println("Error. Not a letter. Enter uppercase or lowercase letter.");
}
else if (vowels)
{
System.out.println("Input letter is Vowel");
}
else
{
System.out.println("Input letter is Consonant");
}
}
}
Exercise8.main(null);
//10
public class Exercise10 {
public static void main(String[] args)
{
int i;
System.out.println ("The first 10 natural numbers are:\n");
for (i=1;i<=10;i++)
{
System.out.println (i);
}
System.out.println ("\n");
}
}
Exercise10.main(null);
//12
import java.util.Scanner;
public class Exercise12 {
public static void main(String[] args)
{
int i,n=0,s=0;
double avg;
{
System.out.println("Input the 5 numbers : ");
}
for (i=0;i<5;i++)
{
Scanner in = new Scanner(System.in);
n = in.nextInt();
s +=n;
}
avg=s/5;
System.out.println("The sum of 5 no is : " +s+"\nThe Average is : " +avg);
}
}
Exercise12.main(null);
//14
import java.util.Scanner;
public class Exercise14 {
public static void main(String[] args)
{
int j,n;
System.out.print("Input the number(Table to be calculated): ");
{
System.out.print("Input number of terms : ");
Scanner in = new Scanner(System.in);
n = in.nextInt();
System.out.println ("\n");
for(j=0;j<=n;j++)
System.out.println(n+" X "+j+" = " +n*j);
}
}
}
Exercise14.main(null);
//16
import java.util.Scanner;
public class Exercise16 {
public static void main(String[] args)
{
int i,j,n;
System.out.print("Input number of rows : ");
Scanner in = new Scanner(System.in);
n = in.nextInt();
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
System.out.print(j);
System.out.println("");
}
}
}
Exercise16.main(null);
//18
import java.util.Scanner;
public class Exercise18 {
public static void main(String[] args)
{
int i,j,n,k=1;
System.out.print("Input number of rows : ");
Scanner in = new Scanner(System.in);
n = in.nextInt();
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
System.out.print(k++);
System.out.println("");
}
}
}
Exercise18.main(null);
//20
import java.util.Scanner;
public class Exercise20 {
public static void main(String[] args)
{
int numberOfRows;
System.out.print("Input number of rows : ");
Scanner in = new Scanner(System.in);
numberOfRows = in.nextInt();
int number = 1;
for (int row = 1; row <= numberOfRows; row++)
{
for (int column = 1; column <= row; column++)
{
System.out.print(number + " ");
number++;
}
System.out.println();
}
}
}
Exercise20.main(null);