SlideShare a Scribd company logo
1 of 35
Download to read offline
Chapter 3
Developing a Program
THE  SUCCESS  TRICK
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
3.1  The  Program  Development  Cycle
	
  	
  Problem	
  solving	
  principles	
  
◦ Completely	
  understand	
  the	
  
problem	
  
◦ Devise	
  a	
  plan	
  to	
  solve	
  it	
  	
  
◦ Carry	
  out	
  the	
  plan	
  
◦ Review	
  the	
  results	
  
	
  WriMng	
  a	
  program	
  
1)	
  Analyze	
  the	
  problem	
  
2)	
  Design	
  the	
  program	
  
3)	
  Code	
  the	
  program	
  
4)	
  Test	
  the	
  program	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
1.  Analyze  the  problem
	
  IdenMfy	
  desired	
  results	
  (output)	
  
	
  Determine	
  input	
  needed	
  to	
  produce	
  those	
  results	
  
	
  Example:	
  Create	
  a	
  program	
  to	
  generate	
  6	
  numbers	
  to	
  play	
  the	
  
loXery	
  
◦ Is	
  7,	
  7,	
  7,	
  7,	
  7,	
  7	
  ok?	
  	
  
◦ Is	
  -­‐3,	
  0,	
  8,	
  9,	
  689,	
  689	
  ok?	
  
◦ Is	
  1,	
  2,	
  6,	
  47.98765,	
  88,	
  93.45	
  ok?	
  	
  
◦ These	
  are	
  all	
  6	
  numbers	
  but	
  we	
  see	
  we	
  must	
  be	
  more	
  specific	
  
◦ Desired	
  results:	
  6	
  different	
  posiMve	
  integers	
  within	
  the	
  range	
  of	
  1	
  to	
  40	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
2.  Design  the  program
	
  Create	
  a	
  detailed	
  descripMon	
  of	
  program	
  
◦ Use	
  charts,	
  models,	
  or	
  ordinary	
  language	
  (pseudocode)	
  
	
  IdenMfy	
  algorithms	
  needed	
  
◦ Algorithm:	
  a	
  step-­‐by-­‐step	
  method	
  to	
  solve	
  a	
  problem	
  or	
  complete	
  a	
  task	
  
	
  Algorithms	
  must	
  be:	
  
◦ Well	
  defined	
  
◦ Well	
  ordered	
  
◦ Must	
  produce	
  some	
  result	
  
◦ Must	
  terminate	
  in	
  a	
  finite	
  Mme	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
3.  Code  the  program
	
  Translate	
  charts,	
  models,	
  pseudocode,	
  or	
  ordinary	
  language	
  into	
  
program	
  code	
  
	
  Add	
  statements	
  to	
  document	
  what	
  the	
  code	
  does	
  
◦ Internal	
  documentaMon	
  
◦ External	
  documentaMon	
  
	
  Each	
  programming	
  language	
  uses	
  its	
  specific	
  syntax	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
Syntax
	
  Correct	
  syntax	
  for	
  telling	
  your	
  friend	
  where	
  you	
  put	
  a	
  cheese	
  sandwich	
  is:	
  
	
  “I	
  have	
  put	
  it	
  on	
  the	
  table.”	
  	
  
	
  Incorrect	
  use	
  of	
  English	
  syntax	
  to	
  say:	
  
	
  “I	
  have	
  it	
  on	
  the	
  table	
  put.”	
  	
  
	
  All	
  the	
  right	
  words	
  are	
  there,	
  but	
  without	
  proper	
  syntax,	
  the	
  sentence	
  is	
  
gibberish	
  in	
  English.	
  	
  
	
  But	
  translated	
  word	
  for	
  word,	
  the	
  second	
  sentence	
  is	
  correct	
  syntax	
  in	
  
German.	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
4.  Test  the  program
	
  In	
  analysis	
  phase:	
  conMnually	
  ask	
  ques6ons	
  
◦ Did	
  I	
  interpret	
  data	
  correctly?	
  
◦ Does	
  program	
  fulfill	
  requirements?	
  
◦ Are	
  my	
  formulas	
  or	
  procedures	
  correct?	
  Etc…	
  
	
  In	
  design	
  phase:	
  use	
  desk-­‐checking	
  to	
  walk	
  through	
  the	
  program	
  
	
  In	
  coding	
  phase:	
  sofware	
  will	
  alert	
  you	
  to	
  errors	
  in	
  syntax	
  but	
  not	
  in	
  the	
  logic	
  of	
  
the	
  program	
  
	
  Finally,	
  test	
  your	
  program	
  with	
  as	
  many	
  sets	
  of	
  test	
  data	
  as	
  possible	
  
◦ Use	
  good	
  data,	
  bad	
  data,	
  data	
  you	
  know	
  the	
  answers	
  for,	
  etc.	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
AddiHonal  Steps  in  the  Cycle
o	
  Create	
  an	
  outline	
  of	
  the	
  program	
  so	
  that	
  it	
  is	
  apparent	
  what	
  major	
  tasks	
  and	
  subtasks	
  have	
  to	
  
be	
  accomplished	
  and	
  the	
  relaMonships	
  among	
  these	
  tasks	
  
o	
  Describe	
  in	
  detail	
  how	
  each	
  of	
  these	
  tasks	
  is	
  to	
  be	
  carried	
  out	
  
	
  To	
  put	
  a	
  commercial	
  program	
  (produced	
  by	
  a	
  sofware	
  publishing	
  company)	
  you	
  may	
  need	
  to:	
  
◦ Create	
  a	
  user’s	
  guide	
  	
  
◦ to	
  help	
  users	
  can	
  understand	
  the	
  intricacies	
  of	
  the	
  program	
  
◦ Create	
  help	
  files	
  	
  
◦ installed	
  with	
  the	
  sofware	
  for	
  users	
  to	
  get	
  on-­‐screen	
  help	
  	
  
◦ Train	
  employees	
  to	
  provide	
  telephone	
  or	
  web-­‐based	
  customer	
  support	
  
◦ Duplicate	
  disks	
  and	
  accompanying	
  materials	
  for	
  distribuMon	
  
◦ AdverMse	
  the	
  program	
  to	
  aXract	
  buyers	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
Program  development  is  a  process
Ø	
  Program	
  development	
  is	
  a	
  cyclical	
  process	
  that	
  ofen	
  requires	
  
returning	
  to	
  earlier	
  steps	
  and,	
  with	
  complex	
  programs,	
  may	
  take	
  
many	
  months	
  
ØThe	
  design	
  process	
  may	
  uncover	
  flaws	
  in	
  the	
  analysis	
  
ØCoding	
  may	
  find	
  problems	
  leading	
  to	
  modificaMons	
  or	
  addiMons	
  to	
  
the	
  design	
  
ØTesMng	
  inevitably	
  uncovers	
  problems	
  that	
  require	
  returning	
  to	
  
previous	
  phases	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
The  Sale  Price  Example
A	
  local	
  department	
  store	
  wants	
  to	
  develop	
  a	
  program	
  which,	
  when	
  given	
  an	
  item’s	
  original	
  price	
  and	
  the	
  percentage	
  it	
  is	
  
discounted,	
  will	
  compute	
  the	
  sale	
  price,	
  with	
  sales	
  tax.	
  
Output	
  required:	
  	
  name	
  of	
  item,	
  discounted	
  price,	
  amount	
  of	
  sales	
  tax,	
  total	
  price	
  
	
  	
  	
  	
  	
  Variables	
  needed:	
  ItemName,	
  SalePrice,	
  Tax,	
  TotalPrice
Input	
  required:	
  	
  name	
  of	
  item,	
  original	
  price,	
  percent	
  discounted	
  
	
  	
  	
  	
  	
  	
  More	
  variables:	
  OriginalPrice,	
  DiscountRate
Formulas	
  required:	
  
	
  	
  	
  	
  	
  	
  	
  New	
  variable	
  needed:	
  AmountSaved
	
  SalePrice = OriginalPrice – AmountSaved
AmountSaved = OriginalPrice * (DiscountRate/100)
Tax = SalePrice * .065
TotalPrice = SalePrice + Tax
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
Design:  Input  à  Processing  à  Output
Input 	
   	
  	
  	
  	
  Perform	
  CalculaMons	
  (Process)	
  	
   	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
   	
  	
  	
  	
  Output	
  
Input	
  variables: 	
  	
  	
  	
  	
  	
  	
   	
  ComputaMons: 	
   	
   	
   	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Display:	
  
ItemName AmountSaved = OriginalPrice * DiscountRate/100 TotalPrice
DiscountRate SalePrice = OriginalPrice – AmountSaved ItemName
OriginalPrice Tax = SalePrice * .065 Tax
TotalPrice = SalePrice + Tax SalePrice
3.2  Program  Design
	
  Modular	
  Programming	
  
	
  To	
  begin	
  designing	
  a	
  program:	
  idenMfy	
  the	
  major	
  tasks	
  the	
  program	
  must	
  
accomplish.	
  	
  
	
  Each	
  of	
  these	
  tasks	
  becomes	
  a	
  program	
  module.	
  	
  
◦ if	
  needed,	
  break	
  each	
  of	
  these	
  fundamental	
  “high-­‐level”	
  tasks	
  into	
  
submodules	
  	
  
◦ Some	
  submodules	
  might	
  be	
  divided	
  into	
  submodules	
  of	
  their	
  own	
  
◦ this	
  process	
  can	
  be	
  conMnued	
  as	
  long	
  as	
  necessary	
  	
  
◦ IdenMfying	
  the	
  tasks	
  and	
  subtasks	
  is	
  called	
  modular	
  programming	
  	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
Using  Modules  and  Submodules
Ø	
  A	
  module	
  performs	
  a	
  single	
  task.	
  	
  
Ø	
  A	
  module	
  is	
  self-­‐contained	
  and	
  independent	
  of	
  other	
  modules.	
  
Ø	
  A	
  module	
  is	
  relaMvely	
  short.	
  Ideally,	
  statements	
  should	
  not	
  exceed	
  one	
  page.	
  	
  
	
  Benefits	
  of	
  Modular	
  Programming	
  
o	
  program	
  is	
  easier	
  to	
  read	
  
o	
  easier	
  to	
  design,	
  code,	
  and	
  test	
  the	
  program	
  one	
  module	
  at	
  a	
  Mme	
  
o	
  different	
  program	
  modules	
  can	
  be	
  designed	
  and/or	
  coded	
  by	
  different	
  programmers	
  
o	
  a	
  single	
  module	
  may	
  be	
  used	
  in	
  more	
  than	
  one	
  place	
  in	
  the	
  program	
  
o	
  modules	
  that	
  perform	
  common	
  programming	
  tasks	
  can	
  be	
  used	
  in	
  more	
  than	
  one	
  
program	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
Pseudocode:  uses  short,  English-­‐like  phrases  to  describe  the  outline  of  a  program
Example:	
  pseudocode	
  for	
  the	
  Sale	
  Price	
  Program	
  with	
  modules:	
  
Input Data module
Prompt for ItemName, OriginalPrice, DiscountRate
Input ItemName, OriginalPrice, DiscountRate
Perform Calculations module
Set AmountSaved = OriginalPrice * (DiscountRate/100)
Set SalePrice = OriginalPrice – AmountSaved
Set Tax = SalePrice * .065
Set TotalPrice = SalePrice + Tax
Output Results module
Write ItemName
Write OriginalPrice
Write DiscountRate
Write SalePrice
Write Tax
Write TotalPrice
	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
Refined  Pseudocode  for  the  Sale  Price  Program  
Input Data module
Write “What is the item’s name?”
Input ItemName
Write “What is its price and the percentage discounted?”
Input OriginalPrice
Input DiscountRate
Perform Calculations module
Set AmountSaved = OriginalPrice * (DiscountRate/100)
Set SalePrice = OriginalPrice – AmountSaved
Set Tax = SalePrice * .065
Set TotalPrice = SalePrice + Tax
Output Results module
Write “The item is: “ + ItemName
Write “Pre-sale price was: “ + OriginalPrice
Write “Percentage discounted was: “ + DiscountRate + “%”
Write “Sale price: “ + SalePrice
Write “Sales tax: “ + Tax
Write “Total: $” + TotalPrice
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
Calling  Modules
	
  A	
  call	
  statement	
  causes	
  a	
  submodule	
  to	
  be	
  executed.	
  
	
  Afer	
  a	
  call	
  statement,	
  program	
  control	
  is	
  transferred	
  to	
  the	
  first	
  line	
  of	
  the	
  
called	
  module.	
  
	
  Afer	
  all	
  statements	
  in	
  the	
  submodule	
  have	
  been	
  executed,	
  control	
  returns	
  to	
  
the	
  line	
  of	
  code	
  immediately	
  below	
  the	
  call	
  statement.	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
The  Main  Module
Ø	
  The	
  main	
  module	
  is	
  where	
  program	
  execuMon	
  begins	
  and	
  normally	
  ends.	
  	
  
Ø	
  The	
  main	
  module	
  is	
  not	
  a	
  submodule	
  of	
  another.	
  
Ø	
  It	
  is	
  the	
  parent	
  module	
  of	
  the	
  program’s	
  highest-­‐level	
  modules.	
  
Ø	
  The	
  highest-­‐level	
  modules	
  are	
  called	
  into	
  acMon	
  by	
  the	
  main	
  module.	
  	
  
In	
  the	
  Sale	
  Price	
  Program,	
  we	
  add	
  a	
  Main	
  module	
  to	
  call	
  others:	
  
Main module
Call Input Data module
Call Perform Calculations module
Call Output Results module
	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
Format  Output  
o	
  Include	
  informaMon	
  about	
  what	
  the	
  output	
  means	
  
If	
  a	
  program	
  calculates	
  the	
  temperature	
  converted	
  from	
  Fahrenheit	
  to	
  Celsius,	
  the	
  
following	
  output	
  is	
  confusing:	
  
	
  
	
  
	
  
But	
  the	
  following	
  output	
  makes	
  more	
  sense:	
  
	
  
Hierarchy  Charts
o	
  Like	
  an	
  organizaMon	
  chart	
  
o	
  Shows	
  posiMon	
  of	
  modules	
  in	
  
the	
  program	
  
o	
  Depicts	
  what	
  modules	
  exist	
  and	
  
how	
  they	
  are	
  related	
  
o	
  Large	
  programs	
  need	
  a	
  “map”	
  
for	
  documentaMon	
  
	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
3.3  Coding,  DocumenHng,  TesHng
	
  	
  	
  Coding	
  	
  
◦ Coding	
  is	
  done	
  in	
  a	
  specific	
  programming	
  language.	
  	
  We	
  will	
  use	
  pseudocode.	
  	
  	
  
◦ This	
  phase	
  should	
  only	
  begin	
  afer	
  a	
  solid	
  design	
  exists.	
  
	
  Documen6ng	
  
◦ Code	
  needs	
  to	
  contain	
  documentaMon	
  that	
  describes	
  to	
  the	
  reader	
  what	
  the	
  
code	
  is	
  doing	
  
◦ Two	
  types	
  of	
  comments	
  are	
  used	
  within	
  the	
  code	
  
◦ Internal	
  documenta6on	
  is	
  for	
  the	
  programmers	
  to	
  read	
  
◦ External	
  documenta6on	
  is	
  for	
  the	
  user	
  	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
Comments:  not  processed  by  the  computer,  valued  by  
other  programmers
	
  Header	
  comments	
  
◦ Appear	
  at	
  beginning	
  of	
  a	
  program	
  or	
  a	
  module	
  
◦ Provide	
  general	
  informaMon	
  
	
  Step	
  comments	
  or	
  in-­‐line	
  comments	
  
◦ Appear	
  throughout	
  program	
  
◦ Explain	
  purpose	
  of	
  specific	
  porMons	
  of	
  code	
  
	
  Ofen	
  comments	
  delineated	
  by:	
  
◦ //
◦ /* comment goes here */
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
Using  comments  for  a  program  to  find  size  of  a  room
// Program to calculate the area in square footage of a room
// Programmer: E. Drake, Santa Fe College
// Version 6.0 – January 1, 2015
// This program computes the area of a room, given its width and length
// Variables used: Width, Length, SquareFeet
// Declare the variables
Declare Width As Float
Declare Length As Float
Declare SquareFeet As Float
// Get the values of the dimensions
Write “What are the length and width of the room in inches?”
Input Length
Input Width
// Calculate square footage
Set SquareFeet = Width * Length
// Output the result
Write “Your room is “ + SquareFeet + “ square feet.”
The  TesHng  Phase
	
  Tes6ng	
  
◦	
  Create	
  test	
  data	
  that	
  will	
  be	
  used	
  to	
  check	
  the	
  program’s	
  
correctness.	
  
◦	
  Use	
  desk	
  checking	
  (or	
  walking	
  through	
  a	
  program	
  by	
  hand	
  with	
  
a	
  set	
  of	
  data	
  that	
  you	
  know	
  the	
  answer	
  to).	
  
◦	
  Check	
  that	
  the	
  program	
  will	
  catch	
  errors	
  by	
  using	
  test	
  data	
  
designed	
  to	
  create	
  errors.	
  
◦	
  The	
  more	
  tesMng	
  of	
  various	
  types	
  of	
  data	
  you	
  can	
  use,	
  the	
  more	
  
likely	
  you	
  are	
  to	
  have	
  a	
  program	
  that	
  is	
  free	
  of	
  errors.	
  	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
Types  of  Errors:  Syntax  Errors
	
  Syntax	
  errors:	
  a	
  violaMon	
  of	
  the	
  programming	
  language’s	
  
rules	
  for	
  creaMng	
  valid	
  statements	
  	
  
◦	
  May	
  be	
  caused	
  by	
  incorrect	
  grammar	
  or	
  punctuaMon,	
  or	
  
misspelling	
  a	
  keyword	
  
◦	
  The	
  program	
  will	
  not	
  run	
  at	
  all	
  with	
  syntax	
  errors	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
Types  of  Errors:  Logic  Errors
	
  Logic	
  errors:	
  the	
  program	
  runs,	
  but	
  does	
  not	
  produce	
  
the	
  expected	
  results	
  
◦May	
  be	
  caused	
  by	
  using	
  an	
  incorrect	
  formula,	
  or	
  incorrect	
  
sequence	
  of	
  statements,	
  etc.	
  
◦SomeMmes	
  called	
  run6me	
  errors	
  
◦Can	
  be	
  detected	
  during	
  the	
  desk	
  checking	
  phase	
  of	
  the	
  
programming	
  cycle	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
3.4  Commercial  Programs:  TesHng  and  DocumenHng
External	
  documenta6on	
  
Purposes:	
  
1. DocumentaMon	
  in	
  a	
  user’s	
  guide	
  or	
  on-­‐screen	
  help	
  system	
  
provides	
  informaMon	
  about	
  the	
  program	
  for	
  the	
  end	
  users	
  
2. DocumentaMon	
  in	
  a	
  maintenance	
  manual	
  provides	
  informaMon	
  
about	
  how	
  the	
  program	
  code	
  accomplishes	
  its	
  purposes	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
	
  User’s	
  Guides:	
  
o 	
  usually	
  wriXen	
  during	
  alpha	
  or	
  beta	
  test	
  phases	
  by	
  a	
  technical	
  writer	
  
	
  Documenta6on	
  for	
  other	
  programmers:	
  
o	
  	
  Program	
  maintenance	
  manual	
  
◦	
  	
  For	
  programming	
  experts	
  	
  
◦	
  	
  Used	
  to	
  help	
  them	
  fix	
  or	
  enhance	
  code	
  wriXen	
  by	
  other	
  programmers	
  
o Design	
  documentaMon	
  
◦	
  	
  WriXen	
  by	
  programmer	
  to	
  explain	
  raMonale	
  behind	
  methods	
  and	
  code	
  used	
  
o	
  Trade	
  Study	
  documentaMon	
  
◦	
  	
  A	
  research	
  tool	
  	
  
◦	
  	
  An	
  aXempt	
  to	
  find	
  the	
  best	
  soluMon	
  	
  
3.5  Structured  Programming
Ø	
  A	
  method	
  for	
  designing	
  and	
  coding	
  programs	
  in	
  a	
  systemaMc,	
  
organized	
  manner	
  	
  
Ø	
  It	
  combines	
  the	
  principles	
  of	
  top-­‐down	
  design,	
  modularity	
  and	
  the	
  
use	
  of	
  the	
  three	
  accepted	
  control	
  structures:	
  sequence,	
  repe66on	
  
and	
  selec6on	
  
Ø	
  Sequence,	
  repeMMon	
  and	
  selecMon	
  can	
  be	
  expressed	
  in	
  
pseudocode,	
  or	
  with	
  flowcharts	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
Flowcharts
	
  A	
  tool	
  for	
  programmers	
  to	
  design	
  programs	
  
◦ Describes	
  the	
  flow	
  of	
  a	
  program	
  module’s	
  execuMon	
  with	
  diagrams	
  
◦ Completely	
  different	
  from	
  hierarchy	
  charts	
  
◦ Connected	
  symbols	
  are	
  used	
  to	
  describe	
  sequence,	
  repeMMon,	
  and	
  selecMon	
  
structures	
  
◦ Some	
  prefer	
  to	
  use	
  flowcharMng	
  to	
  learn	
  how	
  to	
  express	
  algorithms,	
  and	
  
others	
  prefer	
  to	
  use	
  pseudocode	
  
◦ Many	
  programs	
  are	
  designed	
  with	
  a	
  combinaMon	
  of	
  pseudocode	
  and	
  
flowcharts	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
Basic  FlowcharHng  Symbols
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
1 Main module
2 Declare ItemName As String
3 Declare iscountRate, SalePrice, TotalPrice As Float
4 Write “Sale Price Program”
5 Write “This program computes the total price, including tax, of an item that has
been discounted a certain percentage.”
6 Call Input Data module
7 Call Perform Calculations module
8 Call Output Results module
9 End Program
10 Input Data module
11 Write “What is the item’s name?”
12 Input ItemName
13 Write “What is its price and the percentage discounted?”
14 Input OriginalPrice
15 Input DiscountRate
16 End Input Data Module
17 Perform Calculations module
18 Declare AmountSaved As Float
19 Set AmountSaved = OriginalPrice * (DiscountRate/100)
20 Set SalePrice = OriginalPrice – AmountSaved
21 Set Tax = SalePrice * .065
22 Set TotalPrice = SalePrice + Tax
23 End Perform Calculations Module
24 Output Results module
25 Write “The item is: “ + ItemName
26 Write “Pre-sale price was: “ + OriginalPrice
27 Write “Percentage discounted was: “ + DiscountRate + “%”
28 Write “Sale price: “ + SalePrice + “Sales tax: “ + Tax
30 Write “Total: $” + TotalPrice
31 End Output Results Module	
  
Control  Structures
In	
  the	
  1960s	
  computer	
  scienMsts	
  proved	
  there	
  are	
  only	
  3	
  basic	
  control	
  structures	
  (also	
  called	
  
constructs)	
  needed	
  to	
  create	
  any	
  program	
  or	
  algorithm!	
  
	
  Sequence	
  –	
  execute	
  statements	
  in	
  sequenMal	
  order	
  	
  	
  
◦	
  The	
  simplest	
  of	
  control	
  structures	
  –	
  start	
  at	
  the	
  beginning	
  and	
  conMnue	
  in	
  sequenMal	
  order	
  
	
  Selec6on	
  –	
  selecMvely	
  execute	
  statements	
  
◦	
  Also	
  called	
  a	
  branch	
  or	
  decision	
  	
  
◦	
  requires	
  a	
  condi6on	
  to	
  determine	
  when	
  to	
  execute	
  statements	
  
	
  Repe66on	
  –	
  repeat	
  statements	
  more	
  than	
  once	
  
◦	
  Also	
  called	
  a	
  loop	
  
◦	
  needs	
  a	
  stop	
  condi6on,	
  i.e,	
  the	
  program	
  will	
  conMnue	
  to	
  loop	
  unMl	
  some	
  condiMon	
  is	
  met	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
Flowchart  for  typical  decision  (selecHon)  structures
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  
Flowchart  for  typical  repeHHon  (loop)  structures
Style  Pointers
q	
  	
  Write	
  modular	
  programs	
  
q	
  	
  Use	
  descripMve	
  variable	
  names	
  
q	
  	
  Provide	
  a	
  welcome	
  message	
  for	
  the	
  user	
  
q	
  	
  Use	
  a	
  prompt	
  before	
  an	
  input	
  
q	
  	
  IdenMfy	
  program	
  output	
  
q	
  	
  Document	
  your	
  programs	
  
PRELUDE	
  TO	
  PROGRAMMING,	
  6TH	
  EDITION	
  BY	
  ELIZABETH	
  DRAKE	
  

More Related Content

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

PreludeProgramming6ed_pp03.pptx.pdf for level 100

  • 1. Chapter 3 Developing a Program THE  SUCCESS  TRICK PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE  
  • 2. 3.1  The  Program  Development  Cycle    Problem  solving  principles   ◦ Completely  understand  the   problem   ◦ Devise  a  plan  to  solve  it     ◦ Carry  out  the  plan   ◦ Review  the  results    WriMng  a  program   1)  Analyze  the  problem   2)  Design  the  program   3)  Code  the  program   4)  Test  the  program   PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE  
  • 3. 1.  Analyze  the  problem  IdenMfy  desired  results  (output)    Determine  input  needed  to  produce  those  results    Example:  Create  a  program  to  generate  6  numbers  to  play  the   loXery   ◦ Is  7,  7,  7,  7,  7,  7  ok?     ◦ Is  -­‐3,  0,  8,  9,  689,  689  ok?   ◦ Is  1,  2,  6,  47.98765,  88,  93.45  ok?     ◦ These  are  all  6  numbers  but  we  see  we  must  be  more  specific   ◦ Desired  results:  6  different  posiMve  integers  within  the  range  of  1  to  40   PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE  
  • 4. 2.  Design  the  program  Create  a  detailed  descripMon  of  program   ◦ Use  charts,  models,  or  ordinary  language  (pseudocode)    IdenMfy  algorithms  needed   ◦ Algorithm:  a  step-­‐by-­‐step  method  to  solve  a  problem  or  complete  a  task    Algorithms  must  be:   ◦ Well  defined   ◦ Well  ordered   ◦ Must  produce  some  result   ◦ Must  terminate  in  a  finite  Mme   PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE  
  • 5. 3.  Code  the  program  Translate  charts,  models,  pseudocode,  or  ordinary  language  into   program  code    Add  statements  to  document  what  the  code  does   ◦ Internal  documentaMon   ◦ External  documentaMon    Each  programming  language  uses  its  specific  syntax   PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE  
  • 6. Syntax  Correct  syntax  for  telling  your  friend  where  you  put  a  cheese  sandwich  is:    “I  have  put  it  on  the  table.”      Incorrect  use  of  English  syntax  to  say:    “I  have  it  on  the  table  put.”      All  the  right  words  are  there,  but  without  proper  syntax,  the  sentence  is   gibberish  in  English.      But  translated  word  for  word,  the  second  sentence  is  correct  syntax  in   German.   PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE  
  • 7. 4.  Test  the  program  In  analysis  phase:  conMnually  ask  ques6ons   ◦ Did  I  interpret  data  correctly?   ◦ Does  program  fulfill  requirements?   ◦ Are  my  formulas  or  procedures  correct?  Etc…    In  design  phase:  use  desk-­‐checking  to  walk  through  the  program    In  coding  phase:  sofware  will  alert  you  to  errors  in  syntax  but  not  in  the  logic  of   the  program    Finally,  test  your  program  with  as  many  sets  of  test  data  as  possible   ◦ Use  good  data,  bad  data,  data  you  know  the  answers  for,  etc.   PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE  
  • 8. AddiHonal  Steps  in  the  Cycle o  Create  an  outline  of  the  program  so  that  it  is  apparent  what  major  tasks  and  subtasks  have  to   be  accomplished  and  the  relaMonships  among  these  tasks   o  Describe  in  detail  how  each  of  these  tasks  is  to  be  carried  out    To  put  a  commercial  program  (produced  by  a  sofware  publishing  company)  you  may  need  to:   ◦ Create  a  user’s  guide     ◦ to  help  users  can  understand  the  intricacies  of  the  program   ◦ Create  help  files     ◦ installed  with  the  sofware  for  users  to  get  on-­‐screen  help     ◦ Train  employees  to  provide  telephone  or  web-­‐based  customer  support   ◦ Duplicate  disks  and  accompanying  materials  for  distribuMon   ◦ AdverMse  the  program  to  aXract  buyers   PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE  
  • 9. Program  development  is  a  process Ø  Program  development  is  a  cyclical  process  that  ofen  requires   returning  to  earlier  steps  and,  with  complex  programs,  may  take   many  months   ØThe  design  process  may  uncover  flaws  in  the  analysis   ØCoding  may  find  problems  leading  to  modificaMons  or  addiMons  to   the  design   ØTesMng  inevitably  uncovers  problems  that  require  returning  to   previous  phases   PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE  
  • 10. PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE   The  Sale  Price  Example A  local  department  store  wants  to  develop  a  program  which,  when  given  an  item’s  original  price  and  the  percentage  it  is   discounted,  will  compute  the  sale  price,  with  sales  tax.   Output  required:    name  of  item,  discounted  price,  amount  of  sales  tax,  total  price            Variables  needed:  ItemName,  SalePrice,  Tax,  TotalPrice Input  required:    name  of  item,  original  price,  percent  discounted              More  variables:  OriginalPrice,  DiscountRate Formulas  required:                New  variable  needed:  AmountSaved  SalePrice = OriginalPrice – AmountSaved AmountSaved = OriginalPrice * (DiscountRate/100) Tax = SalePrice * .065 TotalPrice = SalePrice + Tax
  • 11. PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE   Design:  Input  à  Processing  à  Output Input          Perform  CalculaMons  (Process)                                                                                  Output   Input  variables:                ComputaMons:                                                        Display:   ItemName AmountSaved = OriginalPrice * DiscountRate/100 TotalPrice DiscountRate SalePrice = OriginalPrice – AmountSaved ItemName OriginalPrice Tax = SalePrice * .065 Tax TotalPrice = SalePrice + Tax SalePrice
  • 12. 3.2  Program  Design  Modular  Programming    To  begin  designing  a  program:  idenMfy  the  major  tasks  the  program  must   accomplish.      Each  of  these  tasks  becomes  a  program  module.     ◦ if  needed,  break  each  of  these  fundamental  “high-­‐level”  tasks  into   submodules     ◦ Some  submodules  might  be  divided  into  submodules  of  their  own   ◦ this  process  can  be  conMnued  as  long  as  necessary     ◦ IdenMfying  the  tasks  and  subtasks  is  called  modular  programming     PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE  
  • 13. PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE   Using  Modules  and  Submodules Ø  A  module  performs  a  single  task.     Ø  A  module  is  self-­‐contained  and  independent  of  other  modules.   Ø  A  module  is  relaMvely  short.  Ideally,  statements  should  not  exceed  one  page.      Benefits  of  Modular  Programming   o  program  is  easier  to  read   o  easier  to  design,  code,  and  test  the  program  one  module  at  a  Mme   o  different  program  modules  can  be  designed  and/or  coded  by  different  programmers   o  a  single  module  may  be  used  in  more  than  one  place  in  the  program   o  modules  that  perform  common  programming  tasks  can  be  used  in  more  than  one   program  
  • 14. PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE   Pseudocode:  uses  short,  English-­‐like  phrases  to  describe  the  outline  of  a  program Example:  pseudocode  for  the  Sale  Price  Program  with  modules:   Input Data module Prompt for ItemName, OriginalPrice, DiscountRate Input ItemName, OriginalPrice, DiscountRate Perform Calculations module Set AmountSaved = OriginalPrice * (DiscountRate/100) Set SalePrice = OriginalPrice – AmountSaved Set Tax = SalePrice * .065 Set TotalPrice = SalePrice + Tax Output Results module Write ItemName Write OriginalPrice Write DiscountRate Write SalePrice Write Tax Write TotalPrice  
  • 15. PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE   Refined  Pseudocode  for  the  Sale  Price  Program   Input Data module Write “What is the item’s name?” Input ItemName Write “What is its price and the percentage discounted?” Input OriginalPrice Input DiscountRate Perform Calculations module Set AmountSaved = OriginalPrice * (DiscountRate/100) Set SalePrice = OriginalPrice – AmountSaved Set Tax = SalePrice * .065 Set TotalPrice = SalePrice + Tax Output Results module Write “The item is: “ + ItemName Write “Pre-sale price was: “ + OriginalPrice Write “Percentage discounted was: “ + DiscountRate + “%” Write “Sale price: “ + SalePrice Write “Sales tax: “ + Tax Write “Total: $” + TotalPrice
  • 16. PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE   Calling  Modules  A  call  statement  causes  a  submodule  to  be  executed.    Afer  a  call  statement,  program  control  is  transferred  to  the  first  line  of  the   called  module.    Afer  all  statements  in  the  submodule  have  been  executed,  control  returns  to   the  line  of  code  immediately  below  the  call  statement.  
  • 17. PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE   The  Main  Module Ø  The  main  module  is  where  program  execuMon  begins  and  normally  ends.     Ø  The  main  module  is  not  a  submodule  of  another.   Ø  It  is  the  parent  module  of  the  program’s  highest-­‐level  modules.   Ø  The  highest-­‐level  modules  are  called  into  acMon  by  the  main  module.     In  the  Sale  Price  Program,  we  add  a  Main  module  to  call  others:   Main module Call Input Data module Call Perform Calculations module Call Output Results module  
  • 18. PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE   Format  Output   o  Include  informaMon  about  what  the  output  means   If  a  program  calculates  the  temperature  converted  from  Fahrenheit  to  Celsius,  the   following  output  is  confusing:         But  the  following  output  makes  more  sense:    
  • 19. Hierarchy  Charts o  Like  an  organizaMon  chart   o  Shows  posiMon  of  modules  in   the  program   o  Depicts  what  modules  exist  and   how  they  are  related   o  Large  programs  need  a  “map”   for  documentaMon     PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE  
  • 20. 3.3  Coding,  DocumenHng,  TesHng      Coding     ◦ Coding  is  done  in  a  specific  programming  language.    We  will  use  pseudocode.       ◦ This  phase  should  only  begin  afer  a  solid  design  exists.    Documen6ng   ◦ Code  needs  to  contain  documentaMon  that  describes  to  the  reader  what  the   code  is  doing   ◦ Two  types  of  comments  are  used  within  the  code   ◦ Internal  documenta6on  is  for  the  programmers  to  read   ◦ External  documenta6on  is  for  the  user     PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE  
  • 21. Comments:  not  processed  by  the  computer,  valued  by   other  programmers  Header  comments   ◦ Appear  at  beginning  of  a  program  or  a  module   ◦ Provide  general  informaMon    Step  comments  or  in-­‐line  comments   ◦ Appear  throughout  program   ◦ Explain  purpose  of  specific  porMons  of  code    Ofen  comments  delineated  by:   ◦ // ◦ /* comment goes here */ PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE  
  • 22. PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE   Using  comments  for  a  program  to  find  size  of  a  room // Program to calculate the area in square footage of a room // Programmer: E. Drake, Santa Fe College // Version 6.0 – January 1, 2015 // This program computes the area of a room, given its width and length // Variables used: Width, Length, SquareFeet // Declare the variables Declare Width As Float Declare Length As Float Declare SquareFeet As Float // Get the values of the dimensions Write “What are the length and width of the room in inches?” Input Length Input Width // Calculate square footage Set SquareFeet = Width * Length // Output the result Write “Your room is “ + SquareFeet + “ square feet.”
  • 23. The  TesHng  Phase  Tes6ng   ◦  Create  test  data  that  will  be  used  to  check  the  program’s   correctness.   ◦  Use  desk  checking  (or  walking  through  a  program  by  hand  with   a  set  of  data  that  you  know  the  answer  to).   ◦  Check  that  the  program  will  catch  errors  by  using  test  data   designed  to  create  errors.   ◦  The  more  tesMng  of  various  types  of  data  you  can  use,  the  more   likely  you  are  to  have  a  program  that  is  free  of  errors.     PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE  
  • 24. Types  of  Errors:  Syntax  Errors  Syntax  errors:  a  violaMon  of  the  programming  language’s   rules  for  creaMng  valid  statements     ◦  May  be  caused  by  incorrect  grammar  or  punctuaMon,  or   misspelling  a  keyword   ◦  The  program  will  not  run  at  all  with  syntax  errors   PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE  
  • 25. Types  of  Errors:  Logic  Errors  Logic  errors:  the  program  runs,  but  does  not  produce   the  expected  results   ◦May  be  caused  by  using  an  incorrect  formula,  or  incorrect   sequence  of  statements,  etc.   ◦SomeMmes  called  run6me  errors   ◦Can  be  detected  during  the  desk  checking  phase  of  the   programming  cycle   PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE  
  • 26. 3.4  Commercial  Programs:  TesHng  and  DocumenHng External  documenta6on   Purposes:   1. DocumentaMon  in  a  user’s  guide  or  on-­‐screen  help  system   provides  informaMon  about  the  program  for  the  end  users   2. DocumentaMon  in  a  maintenance  manual  provides  informaMon   about  how  the  program  code  accomplishes  its  purposes   PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE  
  • 27. PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE    User’s  Guides:   o  usually  wriXen  during  alpha  or  beta  test  phases  by  a  technical  writer    Documenta6on  for  other  programmers:   o    Program  maintenance  manual   ◦    For  programming  experts     ◦    Used  to  help  them  fix  or  enhance  code  wriXen  by  other  programmers   o Design  documentaMon   ◦    WriXen  by  programmer  to  explain  raMonale  behind  methods  and  code  used   o  Trade  Study  documentaMon   ◦    A  research  tool     ◦    An  aXempt  to  find  the  best  soluMon    
  • 28. 3.5  Structured  Programming Ø  A  method  for  designing  and  coding  programs  in  a  systemaMc,   organized  manner     Ø  It  combines  the  principles  of  top-­‐down  design,  modularity  and  the   use  of  the  three  accepted  control  structures:  sequence,  repe66on   and  selec6on   Ø  Sequence,  repeMMon  and  selecMon  can  be  expressed  in   pseudocode,  or  with  flowcharts   PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE  
  • 29. Flowcharts  A  tool  for  programmers  to  design  programs   ◦ Describes  the  flow  of  a  program  module’s  execuMon  with  diagrams   ◦ Completely  different  from  hierarchy  charts   ◦ Connected  symbols  are  used  to  describe  sequence,  repeMMon,  and  selecMon   structures   ◦ Some  prefer  to  use  flowcharMng  to  learn  how  to  express  algorithms,  and   others  prefer  to  use  pseudocode   ◦ Many  programs  are  designed  with  a  combinaMon  of  pseudocode  and   flowcharts   PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE  
  • 30. PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE   Basic  FlowcharHng  Symbols
  • 31. PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE   1 Main module 2 Declare ItemName As String 3 Declare iscountRate, SalePrice, TotalPrice As Float 4 Write “Sale Price Program” 5 Write “This program computes the total price, including tax, of an item that has been discounted a certain percentage.” 6 Call Input Data module 7 Call Perform Calculations module 8 Call Output Results module 9 End Program 10 Input Data module 11 Write “What is the item’s name?” 12 Input ItemName 13 Write “What is its price and the percentage discounted?” 14 Input OriginalPrice 15 Input DiscountRate 16 End Input Data Module 17 Perform Calculations module 18 Declare AmountSaved As Float 19 Set AmountSaved = OriginalPrice * (DiscountRate/100) 20 Set SalePrice = OriginalPrice – AmountSaved 21 Set Tax = SalePrice * .065 22 Set TotalPrice = SalePrice + Tax 23 End Perform Calculations Module 24 Output Results module 25 Write “The item is: “ + ItemName 26 Write “Pre-sale price was: “ + OriginalPrice 27 Write “Percentage discounted was: “ + DiscountRate + “%” 28 Write “Sale price: “ + SalePrice + “Sales tax: “ + Tax 30 Write “Total: $” + TotalPrice 31 End Output Results Module  
  • 32. Control  Structures In  the  1960s  computer  scienMsts  proved  there  are  only  3  basic  control  structures  (also  called   constructs)  needed  to  create  any  program  or  algorithm!    Sequence  –  execute  statements  in  sequenMal  order       ◦  The  simplest  of  control  structures  –  start  at  the  beginning  and  conMnue  in  sequenMal  order    Selec6on  –  selecMvely  execute  statements   ◦  Also  called  a  branch  or  decision     ◦  requires  a  condi6on  to  determine  when  to  execute  statements    Repe66on  –  repeat  statements  more  than  once   ◦  Also  called  a  loop   ◦  needs  a  stop  condi6on,  i.e,  the  program  will  conMnue  to  loop  unMl  some  condiMon  is  met   PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE  
  • 33. PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE   Flowchart  for  typical  decision  (selecHon)  structures
  • 34. PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE   Flowchart  for  typical  repeHHon  (loop)  structures
  • 35. Style  Pointers q    Write  modular  programs   q    Use  descripMve  variable  names   q    Provide  a  welcome  message  for  the  user   q    Use  a  prompt  before  an  input   q    IdenMfy  program  output   q    Document  your  programs   PRELUDE  TO  PROGRAMMING,  6TH  EDITION  BY  ELIZABETH  DRAKE