0% found this document useful (0 votes)
112 views

Java hw1

This document contains the answers to homework questions about declaring variables, performing arithmetic operations and type conversions, comments, and compilation vs runtime errors. It also includes the source code for a Java application that converts temperatures from Fahrenheit to Celsius.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
112 views

Java hw1

This document contains the answers to homework questions about declaring variables, performing arithmetic operations and type conversions, comments, and compilation vs runtime errors. It also includes the source code for a Java application that converts temperatures from Fahrenheit to Celsius.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

Answers to Homework 2

Question 2: Declare the following: an int variable with an initial value of 0


int i = 0;

a long variable with an initial value of 10000


long l = 10000;

a float variable with an initial value of 3.4


float f = 3.4f; double d = 34.45; // or float f = (float)3.4;

a double variable with an initial value of 34.45 a char variable with an initial value of 4
char c = (char)4; boolean b = true; // I'll accept char c = '4'; or char c = '\0004';

a boolean variable with an initial value of true Question 3: Assume that a = 1 and d = 1.0 and that each expression is independent. What are the results of the following expressions? a = 46 / 9;
a = 5

a = 46 % 9 + 4 * 4 - 2;
a = 1 + 16 - 2 = 15

a = 45 + 43 % 5 * (23 * 3 % 2);
a = 45 + 3 * (1) = 48

a = 45 + 45 * 50 % a--;
a = 45 + 2250 % a-- = 45 + 0 = 45

a = 45 + 1 + 45 * 50 % (--a);
Undefined: (--a) will yield 0, and you can't divide by 0 to do the rest

d += 34.23 * 3 + d++;
d = d + (34.23 * 3 + d++) = 104.69

d -= 3.4 * (a + 5) * d++;
d = d - (3.4 * (a + 5) * d++) = 1.0 - 20.4 = -19.4

a %= 3 / a + 3;
a = a % (3 / a + 3) = 1 % 6 = 1

Question 5: Can different types of numeric values be used together in a computation? Yes. The types can be mixed through numeric conversions called type casts, which may be explicit (e.g., "(double)1 / 2") or implicit (e.g., "1 / 2.0" will automatically cast "1" to be of type double to match the "2.0"). Question 7: Can the following conversions involving casting be allowed? If so, find the converted result.
char c = 'A';

i = (int)c;

Legal. The value in "i" will be the character code for 'A'.
boolean b = true; i = (int)b;

Illegal. You can't convert from type boolean to type int.


float f = 1000.34f; int i = (int)f;

Legal. The value in "i" will be 1000.


double d = 1000.34; int i = (int)d;

Legal. The value in "i" will be 1000.


int i = 1000; char c = (char)i;

Legal. The value in "c" will be the character whose Unicode value is 1000.
int i = 1000; boolean b = (boolean)b;

This may be a typo in the text (i.e., using "b" to initialize itself). Either way, it's a typo: you can't cast an int to be a boolean ("(boolean)i"), and you can't use an object to initialize itself. Question 8: What is the result of 25 / 4? How would you rewrite the expression if you wanted the quotient to be a floating-point number? a. The result is 6. b. You could write it as "25.0 / 4", "25.0 / 4.0", "25 / 4.0", "25f / 4", "25d / 4", "25 / 4f", "(double)25 / 4", or a host of other ways. The important thing would be to make sure that at least one of the numbers was going to be interpreted as a floating-point value. Question 10: What does an explicit conversion from a double to an int do with the fractional part of the double value? The fractional part is dropped (also known as "truncation").

Question 13: Show the result of the following Boolean expressions if the result can be determined: Expression
(true) && (3 > 4) !(x > 0) && (x > 0) (x > 0) || (x < 0) (x != 0) || (x == 0) (x >= 0) || (x < 0) (x != 1) == !(x = 1)

Result false: the second part can not be true false: either part can be true, but not both false if x == 0, true otherwise true: one or the other must be true, regardless of the value of x true: one or the other must be true, regardless of the value of x Assuming that this is a typo, and the "x = 1" is supposed to be "x == 1", this must be true, since the two tests are the same. (If it's not a typo, then the code won't compile.)

Question 15: Write a Boolean expression that evaluates to true if the number is between 1 and 100 or the number is negative.
( (x > 1) && (x < 100) ) || (x < 0)

Question 17: How do you denote a comment line? How do you denote a comment paragraph? a. Comment lines are usually denoted with //. b. Comment paragraphs are denoted with /* and */. Question 18: Describe compilation errors and runtime errors. Compilation errors are detected by compilers. They are usually called "syntax errors", and involve a violation of the grammar of the language. Runtime errors occur during the execution of the program, and often involve a failure in the logic of the code (e.g., not handling bad input, running out of memory, etc.). Programming: page 51, #1
/* * F2C.java * * Version: * $Id$ * * Revisions: * $Log$ */

/** * This application computes the Celcius equivalent of * temperatures input in Fahrenheit. * * @author: Rob Duncan */ public class F2C { /** * This is the main method for the class * * @param args array of string arguments * * @return none */ public static void main (String[] args) { double fahrenheit; System.out.print( "Please enter the temperature, in degrees Fahrenheit: " ); fahrenheit = MyInput.readDouble(); double celsius = (5.0/9.0) * (fahrenheit - 32); System.out.println( "That's equal to " + celsius + " degrees Celsius." ); } // main() } // F2C

You might also like