Internet Programming
Chapter 1
Introduction to
Programming Logic
Objectives





Understand the nature of computers and
programming
Explore the programming process
Use pseudocode
Use and name variables
Describe data types
Objectives (cont.)



Understand decision-making and loop
execution
Understand modularization and abstraction
in procedural programs
Describe object-oriented programming
Understanding the Nature of
Computers and Programming

Together, hardware and software
accomplish:
–
–
–
–
Input
Processing
Output
Storage
Syntax Errors

Syntax errors are mistakes in a software code’s
grammar. Just as misspelling a word is a mistake
when writing, misspelling a command word or
forgetting to close a module will cause a syntax
error. If you’re supposed to use a semi-colon (;) and
you use a colon (:) instead, you’ve made a syntax
error.
–
–
Where is the train station?
Station is the train where?
Faulty Logic

Harder to find than syntax errors
–
1.
2.
3.
4.
5.
6.
7.
Why?
Stop at Pump
Open Gas Cap
Turn off engine
Close Gas Cap
Pump Gas
Leave Pump
Turn on Engine
Run-Time Errors


Run-time errors are mistakes that occur
when you run the software code.
Software not displaying a window correctly is
a run-time error.
Compiling and Interpreting


Language-translation software (a compiler or
interpreter) changes your programming
statements into machine language.
What's the difference between the two?
IPO
Get inputNumber
Compute calculatedAnswer as
inputNumber times 2
Print calculatedAnswer
Exploring the Programming
Process








Understand the problem
Plan the logic
Code the program
Translate the program into machine language
Test the program
Put the program into production
Maintain the program
Prepare to start the process again (iterative)
Using Pseudocode


English statements
Uses terminal statements and indentation
Start
Get inputNumber
Compute calculatedAnswer
as inputNumber times 2
Print calculatedAnswer
End
Pseudocode Guides



Use simple English.
Put one command on a line.
Place any important words in bold.
–



Reserved words, for example
Start from the top and work toward the bottom.
Separate processes with spaces to form modules.
Use indentation
Using and Naming Variables


Naming rules vary between languages
We will follow camel casing
–

Classes start with Caps
Variable names must be one word
Good examples:
myRate
interestRate
Bad example:
interest Rate
Using and Naming Variables

Variable names must have some appropriate
meaning
Good examples:
finalBalance
initialInvestment
Bad example:
f
Assigning Values to Variables



The equal sign (=) often is used as the assignment
symbol (or operator)
Whatever operation is performed to the right of the
assignment operator results in a value that is
assigned to the memory location named to the left of
the assignment operator
Example:
answer = inputValue * 2
Describing Data Types


A specific numeric value is a numeric constant, for
example: 43
A specific character value is a character constant, or
string, and often enclosed in double quotes, for
example: “Chris”
–

Exceptions: Java uses ' ' for character and
" " for strings
Similarly, programming languages allow at least two
types of variables – numeric, and character, text, or
string.
Understanding Decision Making

A dual-alternative, binary, or if-then-else
decision structure:
if the answer to the question is yes then
do something
else
do something else
Understanding Decision Making

A single-alternative, unary, or if-then
selection:
if the answer to the question is yes then
do something
Understanding Decision Making


A Boolean expression is one that represents
only one of two states: true or false
For any two values, you can decide whether:
–
–
–
they are equal (=)
the first is greater than the second (>)
the first is less than the second (<)
Understanding Decision Making

In addition to the three basic comparisons,
most programming languages support three
more. For any two values you can decide
whether:
–
–
–
The first is greater than or equal to the second
(>=)
The first is less than or equal to the second (<=)
The two are not equal (!= or <>0)
Understanding Loop Execution (aka
repetition control structure)



A loop is a structure than repeats actions
while some condition continues.
Almost every program contains a main loop –
a basic set of instructions that is repeated for
every record.
Additionally, loops are used any time you
need to perform a similar task several times.
Understanding Loop Execution

Three steps must occur in every loop:
1. You must initialize a variable, called the
loop control variable, that controls the loop.
2. You must compare the loop control
variable to some value that stops the loop –
a sentinel value.
3. Within the loop, you must alter the loop
control variable.
Understanding Loop Execution

A typical loop:
count = 1
while count < 5
print “Danger, Will Robinson!”
count = count + 1
Understanding Modularization and
Abstraction in Procedural
Programs




No longer need to write an entire program from start
to finish in a series of steps – this is procedural
Use units or modules of code
Modularization allows multiple programmers to work
on a problem, each contributing one or more
modules that later can be combined into a whole
program.
Modularization allows you to reuse your work; you
can call the same module from multiple locations
within a program.
Scope in Modules



Global variables are known to an entire
program.
Local variables are known only to their own
module.
Declaring local variables employs the
principle known as encapsulation,
information hiding, or data hiding.
Why Use Encapsulation?

Using encapsulation provides advantages:
–
–
Programmers can create modules without
knowing variable names used in other modules.
Programmers can use the same names for
variables as those in other modules, and no
conflicts arise.
Passing Values to a Module



Passing a variable means that you send a
copy of data in one module to another
module for use.
You declare a name for a passed value in a
module header, or introductory title
statement.
The passed value is called a parameter or
argument.
Let's make a pass…
getDrill()
num usersChoice
print “Enter 1 for addition drill, 2
subtraction”
read usersChoice
displayDrill(usersChoice)
return
for
Send it on back…
displayDrill(num option)
num usersAnswer
if option = 1
print “What is 3 + 4?”
else
print “What is 8 – 1?”
read usersAnswer
if usersAnswer = 7 then
print “Very good”
return
Returning a Value from a Module

Just as you can pass a value into a module, you can
pass back, or return, a value from a module.
getDrill()
num usersChoice
num answer
print “Enter 1 for addition drill, 2 for subtraction”
read usersChoice
answer = displayDrill(usersChoice)
if answer = 7 then
print “Very good”
return
Returning a Value from a Module
displayDrill(num option)
num usersAnswer
if option = 1
print “What is 3 + 4?”
else
print “What is 8 – 1?”
read usersAnswer
return usersAnswer
Understanding the Advantages of
Encapsulation




When you use others’ modules you deal with
only the interface.
Self-contained modules are reusable.
Pre-written and tested modules are reliable.
Code reuse is the basis for most
contemporary software development
environments and techniques
What is OOP?

Object-oriented programming is a style of
programming that focuses on an application’s
data and the methods you need to
manipulate that data.
OOP Tenets



You analyze the objects you are working with
and the tasks that need to be performed with
and on those objects.
You pass messages to objects, requesting
the objects to take action.
The same message works differently (and
appropriately) when applied to different
objects.
OOP Tenets (cont.)



A module or procedure can work appropriately with
different types of data it receives, without the need to
write separate modules.
Objects can share or inherit traits of objects that
have already been created, reducing the time it
takes to create new objects.
Encapsulation and information hiding are more
complete than with the modules used in procedural
programs.
OOP Overview

In order to understand object-oriented
programming, you must understand four
concepts that are integral components of all
object-oriented programming languages:
–
–
–
–
Classes
Objects
Inheritance
Polymorphism
Classes



A class is a category of things.
An object is a specific instance of a class.
A class contains three parts:
–
Every class must have a name.

–
Although not required, most classes contain data.

–
Employee, Dog, Car
employeeID, dogSpecies, carModel
Although not required, most classes contain methods

calculatePay(), teachTrick(), lockDoors()
Defining Classes


Programmers often use
a class diagram to
illustrate class features.
The class diagram
contains the class
name, and the
attributes and the
methods of the class.
Defining Classes


The Employee class
diagram to the right is a
typical class diagram.
Usually programmers
use public class
methods to set and
return private class
data.
Instantiating and Using Objects



When you declare an object, you instantiate
it.
Each object automatically contains all the
data fields, or attributes, that are part of the
class.
Each object automatically has all the
capabilities, or methods, that are part of the
class.
Understanding Inheritance



You can create new classes that are
descendants of existing classes.
Descendant, or child, classes have all the
attributes and methods of their parent class.
Within a child class you can override any
attributes or methods of the parent that are
not appropriate.
–
Square versus Cube
Understanding Polymorphism



Polymorphism allows the same operation to
be carried out differently depending on the
context.
Method overloading occurs when you create
multiple methods with the same name but
different argument lists.
Much time spent at the front end, but creates
a multi-use module
Understanding Polymorphism

Three polymorphic methods:
changeData(char desc)
itemDescription = desc
return
changeData(num pr)
price = pr
return
changeData(char desc, num pr)
itemDescription = desc
price = pr
return
The Advantages of ObjectOriented Programming



When you use pre-existing objects, you save
development time. The objects are already tested
and reliable.
When you use inheritance, you develop new classes
more quickly.
When you overload methods, you can concentrate
on the purpose of your programs.
Descargar

A Guide to Web Programming