Final Exam Study Guide For detals about any of these topics consult the CIS 103 Study Guide Basic functions of a computer move/copy data between memory and accumulators performing arithmetic operations performing relational operations performing logical operations performing input/output operations Control Structures Sequence Selection single-alternative – if / then OR dual-alternative – if / then / else Loop ( aka repetition and iteration ) o stacking / nesting when using selection or loop control structures o pre-test, mid-test, post-test loop o counter-controlled aka definite o sentinel-control aka indefinite single entry / single exit Data Hierarchy file a collection of records record a collection of fields field a collection of characters or digits that make up a data item ( name, number, description, etc ) characters A-Z, a-z, 0-9, special characters Program translation compiler compiles source statements in one language to equivalent statements in another language such as: Java source code to bytecode C++ source code to an executable file (.exe) interpreter translates a source statement, then executes the statement. The Java Virtual Machine is an interpreter. It translates bytecode into a machine language statement. Program Documentation (Java comments) // this is a single-line comment /* this is a multi-line comment */ Program Errors syntax invalid statement (also known as a compile-time error) logic incorrect output form a program ( such as an error in a calculation statement ) run-time division by zero, file unavailable or corrupted, memory protection violation, array out of bounds Charts / Forms / Pseudocode Hierarchy Chart shows high-level processing and the relationship of modules in a program Flowchart used to develop the logic of an algorithm Pseudocode used to develop the logic of an algorithm Program Structure one module (often called "main") - very simple procedural program multiple modules ( methods in Java ) abstraction task task is expressed using an algorithm functional cohesion
1
Flowchart Symbols: terminal, process, predefined process, input/output, decision, annotation, flowlines, connector RAPTOR flowchart symbols:
assignment, call, input(get), output(put), selection, loop
Modules File Processing - 4 main modules ( module names may be different... ) 1. main( ) //”mainline program logic” 2. initalize( ) //initialization activities 3. processRecord( ) //process all the records in the file using a sentinel controlled loop 4. terminate( ) //final activities Operators unary / binary ( one operand or two operands ) mathematical, relational comparison, logical operators assignment precedence associativity left-to-right or right-to-left Precedence of Operators ( from highest to lowest ) mathematical relational comparison logical assignment Java data types Numeric integral byte short int long floating-point float double Alphanumeric char String Logical boolean
negative and positive whole numbers and 0
Examples
-5, 1000, 0
32-bit integer real numbers ( numbers with decimal digits ) 64-bit floating-point letters, digits, special characters
Examples
Examples
12.5, 6.0, -7.222
"1234 Oak Street”, ‘c’ , “12.5%”
( A String is NOT a primitive type in Java, it is a reference type ) yes, no, true, false, 1, 0 binary choices The Java boolean type only accepts the predefined literals true and
Java Arithmetic Operators +, -, *, /, % ( add, subtract, multiply, divide, modulus [integer remainder] ) Java Relational Comparison Operators =, == (equal to), != (not equal to) To compare Strings in Java, use the equals( ) method or the compareTo( ) method Examples:
name.equals(“Jack”) if ( ! scoutName.equals(holdName) ) name1.compareTo(name2) The result of calling the compareTo method is 0 equal comparison negative name1 < name2 positive name1 > name2
Strings may be concatenated in Java using the "+" operator: name + " " + id + " " + boxesSold … System.out.println(name + " " + id + " " + boxesSold + " " + sales);
2
false
Java Logical Operators Perform logical operations which return a boolean value (true or false) Java logical operators in order from highest to lowest precedence ! Logical NOT && Logical AND || Logical OR short-circuit boolean evaluation o OR first conditions evaluates to true o AND first condition evaluates to false Java Assignment Operators = simple assignment +=, -=, *=, /=, %= arithmetic operation and assignment (compound assignment) Java Identifiers An identifier is a user-defined name for a program entity variable name int boxesSold, totalBoxesSold; named constant final int MAX_SIZE = 100; class name class ScoutReport / class AceDiscountSalesReport method name startUp( ), processRecord( ), readRecord( ), scoutBreak( ), etc. Java Variables used to store data while a program or module is running counter count = count + 1; accumulator totalSales = totalSales + sales; calculated field maturity = principle * Math.pow( 1 + intRate, payments); index or subscript scoutName[scoutID], scoutTotal[scoutID] flag/switch boolean variable: eof = true, eof = false, sentinelValue Java Variable Scope Levels global defined OUTSIDE of any method in Java (usually at the beginning of the class) local defined INSIDE of a method in Java – only available inside of the method Java Literals integer floating-point string boolean
type int in Java 5 -3 0 type double in Java 12.5 -3.89 123.4567 type String in Java “Hello World” “A” “123” predefined in Java --> true / false
“” (empty String)
Java Statements a statement may be a simple statement or a compound statement (block) simple Examples: x = x + 1; / processRecord( ); / scoutID = input.nextInt( );
compound ( block ) a compound statement is one or more simple statements treated as a unit The statement(s) must be enclosed in curly braces { } Example: { x = x + 1; System.out.println(x); } Compound statements ( blocks ) are often used with selection & loop statements many statements also use an expression (something which may be evaluated to get a value)
Control Structures in Java sequence
a single action that does not ask a question or repeat statements
Examples of sequence structures in Java input operation output operation declaration of variables performing a calculation incrementing a counter
boxesSold = input.nextInt( ); outFile.println(“Total Sales: “ + totalSales); int x, y, z; / String scoutName; / double sales; totalSales = boxesSold * 6.75; scoutCounter = scoutCounter + 1; ++scoutCounter;
3
accumulating into an accumulator calling a module
selection
totalSales = totalSales + sales; finishUp( ); / processRecord( ); / printDetailLine( );
* performing a test to determine which of possibly 2 paths of execution should be followed. Selection statements are a type of conditional statement * A special version of a selection structure where branching occurs on the ELSE branches is called a CASE structure.
Examples of selection structures in Java if-then [single alternative selection] if ( condition ) if ( boxesSold != -1 ) statement; totalBoxesSold += boxesSold;
if-then-else [dual alternative selection] if ( condition ) if ( x > 0 ) statement_1; System.out.println(“X is a positive number”); else else statement_2; System.out.println(“X is 0 or a negative number”);
To perform more than one statement, create a compound statement ( aka block ) ---> { }
loop
a group of statements are executed repeatedly while a condition is true or until a condition becomes true. AKA repetition and iteration
Type of loop structure based on where the test expression is located pre-test the test occurs before the body of the loop while, for post-test the test occurs after the body of the loop do…while Loop Expressions initialize test update
declare and/or initialize the loop control variable perform the test expression to see if the body of the loop should be entered (repeated) increment/decrement the loop control variable using a step value
Examples of loop structures in Java while initialize-expression while ( test-expression ) { statement; update-expression; }
do..while initialize-expression do { statement; update-expression; } while (test-expression);
int count = 10; while ( count >= 1 ) { System.out.println(count); count = count – 1; }
int count = 10; do { System.out.println(count); count = count – 1; } while ( count >= 1 );
for for (initialize-expression ; test-expression ; update-expression ) { } for ( scoutID = 1; scoutID = array size o length field returns the size of an array int array[] = new int[20]; array.length is 20.
In Java, valid subscripts are in the range 0 to array size – 1
An array element can be used for anything that a variable of the same type can.
Using loops with arrays o loop control variable is used as a subscript for(x = 1; x < array.length; ++x) System.out.println( array[x] ); o input variable is used as a subscript scoutID = inFile.nextInt(); --> [scoutID] += boxesSold;
Java method template ( {
)
[ return; ]
//optional return statement
}
6