1 / 52

CSCI 51 Introduction to Programming

CSCI 51 Introduction to Programming. Dr. Joshua Stough January 27, 2009. Announcements. Problem Set 1 due Monday. Building access request. PS 1. It may well serve you better to type the code yourself, even if it’s just copying code from another program.

Télécharger la présentation

CSCI 51 Introduction to Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSCI 51Introduction to Programming Dr. Joshua Stough January 27, 2009

  2. Announcements • Problem Set 1 due Monday. • Building access request

  3. PS 1 • It may well serve you better to type the code yourself, even if it’s just copying code from another program. • That way, you make mistakes that you know how to fix, and hopefully fewer mistakes later.

  4. Last Time in CSCI 51 • Parts of a Computer • Binary Numbers • Algorithms • PS 1 assigned • due Monday, Feb 2

  5. Review, Hardware vs. Software A computer is made up of hardware and software Software Hardware • CPU • ex: 1.8 GHz Core 2 Duo • input/output • keyboard • 15.4” wide screen LCD • network card • main memory • ex: 2 GB RAM • secondary memory • ex: 160 GB hard drive • operating systems • Windows XP • Mac OS X • applications • games • Microsoft Word • Mozilla Firefox

  6. ReviewHardware Organization CPU memory motherboard hard drive

  7. ReviewMain Memory (with 100 cells) Each memory cell has a numeric address, which uniquely identifies it

  8. QuestionsBinary Numbers • What’s the maximum value a 6-bit number can represent? • What’s the decimal representation of 111010? • What’s the binary representation of 35? 63 58 = 32+16+8+2 100011

  9. Storage Capacity • Every memory device has a storage capacity, indicating the number of bytes (8 bits) it can hold • Various units: Unit Symbol Number of Bytes KB 210 = 1024 kilobyte megabyte gigabyte terabyte MB 220 (over 1 million) GB 230 (over 1 billion) TB 240 (over 1 trillion)

  10. Questions • - computer components including the CPU, main memory, I/O devices, and secondary storage • - the brain of the computer, containing the PC, IR, ALU, and ACC • - computer instructions to solve a problem • The digits 0 and 1 are called or the shortened term

  11. From Java to Machine Language • Computers understand only 0 and 1 (machine language) • Compiler translates source code into machine code • Java compiler translates source code (file ending in .java) into bytecode (file ending in .class) • bytecode is portable (not machine-specific) • Java interpreter reads and executes bytecode • different Java interpreters for different types of CPUs and operating systems (OS) • Intel/Windows, Motorola/Mac OS X, Intel/Linux

  12. Problem Solving • The purpose of writing a program is to have the computer solve a problem • But: • “Computers do not solve problems; they implement solutions.” – Laurent Gasser • The general steps in problem solving are: • understand the problem • dissect the problem into manageable pieces • design a solution • consider alternatives to the solution and refine it • implement the solution • test the solution and fix any problems that exist

  13. Algorithm • Sequence of instructions used to carry out a task or solve a problem • May be written in either English or pseudocode • outline of a program that could be translated into actual code • May need refinement as you work Always write/think out your algorithm before you begin programming

  14. Problem-Analysis-Coding-Execution most important step without computer with computer

  15. Algorithm Design Example Problem: Convert change in cents to number of half-dollars, quarters, dimes, nickels, and pennies to be returned. Example: • given 646 cents • number of half-dollars: divide 646 by 50 • quotient is 12 (number of half-dollars) • remainder is 46 (change left over) • number of quarters: divide 46 by 25 • quotient is 1 (number of quarters) • remainder is 21 (change left over) • number of dimes, nickels, pennies • result: 12 half-dollars, 1 quarter, 2 dimes, 0 nickels, 1 penny

  16. Resulting Algorithm • Get the change in cents • Find the number of half-dollars • Calculate the remaining change • Find the number of quarters • Calculate the remaining change • Find the number of dimes • Calculate the remaining change • Find the number of nickels • Calculate the remaining change • The remaining change is the number of pennies.

  17. ReviewBinary Numbers • N bits to represent 2N values • N bits represent values 0 to 2N-1 • Example: 5 bits • 32 unique values (0-31) • 00000 = 0 • 11111 = 31 24 23 22 21 20 16 + 8 + 4 + 2 + 1

  18. ReviewProblem Solving • Steps: • understand the problem • how would you solve the problem (as a human, without a computer) • dissect the problem into manageable pieces • design a solution • consider alternatives to the solution and refine it • implement the solution • test the solution and fix any problems that exist

  19. Review Questions • What is the maximum decimal value that a 4-bit binary number can represent? • What is the binary number for 17? • Before the CPU can execute instructions, they must first be loaded from • What is the first and most important step in writing a program? 15 10001 main memory analysis, or understanding the problem

  20. Today in CSCI 51 • Basic elements of a Java program • special symbols • identifiers • data types • operators • expressions • Strings • Textbook Ref: Ch 2 and 3

  21. Reading Check-Up • The rules of a language determine which instructions are valid. • True or False? Hello! is an example of a legal Java identifier. • If an operator has an integer and a floating-point operand, the result of the operation is a number. • The expression (int) (9.2) evaluates to syntax False floating-point 9

  22. Introduction • Computer program: a sequence of statements to accomplish a task • Programming:process of planning and creating a program • Programming language: a set of rules, symbols, and special words

  23. Sample Java Program public class Hello { public static void main (String[] args) { System.out.println ("Hi There!"); } } Upon execution, this program displays Hi There!

  24. Programming Languages • Programming languages have rules of grammar just as English does • syntax rules - which statements are legal and which are not • semantic rules - determine the meaning of the instructions • token - smallest individual unit of a program • special symbols • word symbols • identifiers

  25. Special Symbols + - * / . ; ? , <= != == >=

  26. int float double char void public static throws return Word Symbolsaka reserved words, or keywords • reserved words are always all lowercase • each word symbol is considered to be a single symbol • cannot be used for anything other than their intended • purpose in a program

  27. Identifiers • Names of things (variables, constants, methods) in your programs • Can be composed of any combination of letters, digits, underscore (_), and dollar sign ($) • Cannot begin with a digit • May be any length • Java is case-sensitive • Total, total, and TOTAL are different identifiers

  28. Illegal Identifiers

  29. Questions Classify the following as legal or illegal identifiers: • My First Program • my1stProgram • 1stProgram • $money • an_identifier • Jane'sProgram illegal legal illegal legal legal illegal

  30. Primitive Data TypesWhat’s A Data Type? • A set of values and the operations that can be performed on those values • Primitive data are fundamental values such as numbers and characters • Operations are performed on primitive types using built-in operators

  31. Primitive Data Types • 8 primitive data types in Java • 4 represent integers • byte, short, int, long • 2 represent floating point numbers • float, double • 1 represents characters • char • 1 represents boolean values • boolean

  32. Primitive Data TypesNumeric Types • The difference between the various numeric primitive types is their size, and therefore the values they can store: Type byte short int long float double Storage 8 bits 16 bits 32 bits 64 bits 32 bits 64 bits Min Value -128 -32,768 -2,147,483,648 < -9 x 1018 +/- 3.4 x 1038 with 7 significant digits +/- 1.7 x 10308 with 15 significant digits Max Value 127 32,767 2,147,483,647 > 9 x 1018

  33. Integers • Examples: -6728, -67, 0, 78, 36782 • Positive integers do not have a '+' sign in front of them (but they can) • No commas are used in an integer • commas in Java are used to separate items in a list

  34. Primitive Data TypesCharacters • A char stores a single character from the Unicode character set • an ordered list of characters, and each character corresponds to a unique number • uses 16 bits per character, allowing for 65,536 unique characters • Character literals are delimited by single quotes: 'a' 'X' '7' ' ' '$' ',' '\n' newline character (we'll discuss later)

  35. Primitive Data TypesBooleans • Only two valid values • true or false • uses 1 bit for storage • Represent any situation that has 2 states • on - off • true - false • true and false are reserved words

  36. Arithmetic Expressions • Expression - a combination of one or more operands and their operators • Arithmetic expressions compute numeric results and make use of the arithmetic operators: • If either or both operands associated with an arithmetic operator are floating point, the result is a floating point Addition + Subtraction - Multiplication * Division / Remainder %

  37. Division and Remainder • If both operands to the division operator (/) are integers, the result is an integer (the fractional part is discarded) • The remainder, or modulus, operator (%) returns the remainder after dividing the second operand into the first (only works with integer types) 14 / 3equals? 4 8 / 12equals? 0 14 % 3equals? 2 8 % 12equals? 8

  38. Unary vs. Binary Operators • Unary operators • has only one operand • example: - (negative, not subtraction) -5 • Binary operators • has two operands • example: - (subtraction) 5 - 3

  39. Operator Precedence • Determines the order in which operators are evaluated: • multiplication, division, and remainder • addition, subtraction, and string concatenation • arithmetic operators with the same precedence are evaluated from left to right • Parentheses can be used to force the evaluation order (just like in math)

  40. Operator Precedence • What is the order of evaluation in the following expressions? a + b + c + d + e a + b * c - d / e 1 2 3 4 3 1 4 2 a / (b + c) - d % e 2 1 4 3 a / (b * (c + (d - e))) 4 3 2 1

  41. Integral Expressions • All operands are integers • Result is an integer • Examples: 2 + 3 * 5 3 + x – y / 7 x + 2 * (y – z) + 18

  42. Floating-point Expressions • All operands are floating-point numbers • Result is a floating-point • Examples: 12.8 * 17.5 – 34.50 x * 10.5 + y - 16.2 7.0 / 3.5

  43. Mixed Expressions • Operands of different types • Examples: 2 + 3.5 6 / 4 + 3.9 • Integer operands yield an integer result • Floating-point operands yield a floating-point result • If both types of operands are present, the result is a floating-point number • implicit type coercion • Precedence rules are followed 2.0 + 3.5 1 + 3.9 1.0 + 3.9

  44. Type Conversion (Casting) • Used to avoid implicit type coercion • Syntax (dataTypeName) expression • Expression evaluated first, then type converted to dataTypeName • Examples: (int) (7.9 + 6.7) = 14 (int) (7.9) + (int)(6.7) = 13

  45. QuestionsEvaluate These Expressions 9 % 6 3 • (5 + 4) % 6 • (5 + 6) % 3.5 • (double) (13) / 2 • (double) (13 / 2) 11 % 3.5 not possible 13.0 / 2 6.5 (double) (6) 6.0

  46. The class String • String • sequence of zero or more characters • enclosed in double quotation marks • null or empty strings have no characters • numeric strings consist of integers or decimal numbers • length is the number of characters in a string • The class String is used to manipulate strings • Examples: • "Hello World" • "1234" • "45.67" • ""

  47. Strings • Every character has a position in the string (starting with 0) "Hello World" • The length of the string is the number of characters in it • what's the length of "Hello World"? 0123456789... 11 (count the space)

  48. Parsing Numeric Strings • In Java, input from the user comes in the form of a string • we need to know how to get the number values out of the string • Numeric String • a string with only integers or decimal numbers • "6723", "-823", "345.76"

  49. Parsing Numeric Strings • We will use Scanner and nextInt, next, nextDouble, etc. • String to int Integer.parseInt(strExpression) Integer.parseInt("6723") 6723 • String to float Float.parseFloat(strExpression) Float.parseFloat("345.76") 345.76 • String to double Double.parseDouble(strExpression) Double.parseDouble("1234.56") 1234.56

  50. Summary • Identifiers • can be composed of any combination of letters, digits, underscore (_), and dollar sign ($) • cannot begin with a digit • Java is case-sensitive • Data Types • main integer type: int • main floating-point type: double • others: char, boolean

More Related