csc 121 spring 2017 howard rosenthalcsc121csudhspring2017.weebly.com/uploads/2/2/7/6/... ·  ·...

40
CSC 121 Spring 2017 Howard Rosenthal

Upload: phamnhan

Post on 17-Apr-2018

214 views

Category:

Documents


2 download

TRANSCRIPT

CSC121Spring2017

HowardRosenthal

Agenda�  Tobeabletodefinecomputerprogram,algorithm,andhigh-levelprogramminglanguage.

�  Tobeabletolistthebasicstagesinvolvedinwritingacomputerprogram.

�  Tobeabletoapplyanappropriateproblem-solvingmethodfordevelopinganalgorithmicsolutiontoaproblem.

�  Tounderstandtheuseofflowchartsandpseudocode

2

Thesenotescomefrom:http://computerscience.jbpub.com/vbnet/pdfs/mcmillan01.pdfhttp://simpleprogrammer.com/2011/01/08/solving-problems-breaking-it-down/http://faraday.ee.emu.edu.tr/Eeng111/algorithmsandflowcharts1.ppthttp://www2.sunysuffolk.edu/.../Flowchart

WhatIsProgramming–SomeDefini@ons�  Programming-Planningorschedulingtheperformanceofataskor

anevent�  Electroniccomputer-Aprogrammabledevicethatcanstore,

retrieve,andprocessdata�  Data-Informationinaformacomputercanuse�  Information-Anyknowledgethatcanbecommunicated�  Datatype-Thespecificationofhowinformationisrepresentedinthe

computerasdataandthesetofoperationsthatcanbeappliedtoit�  WealreadyhaveseentheprimitivedatatypesthatJavasupports

�  Computerprogramming-Theprocessofspecifyingthedatatypesandtheoperationsforacomputertoapplytodatainordertosolveaproblem

�  Computerprogram-Datatypespecificationsandinstructionsforcarryingoutoperationsthatareusedbyacomputertosolveaproblem

3

WhatCanWeDoWithProgrammingLanguages�  Acomputercantransferdatafromoneplacetoanother.�  Acomputercangetdatafromaninputdevice(akeyboardormouse,

forexample)andwritedatatoanoutputdevice(ascreen,forexample).

�  Acomputercanstoredataintoandretrievedatafromitsmemoryandsecondarystorage

�  Acomputercancomparedatavaluesforequalityorinequalityandmakedecisionsbasedontheresult.

�  Acomputercanperformarithmeticoperations(additionandsubtraction,forexample)veryquickly.

�  Acomputercanbranchtoadifferentsectionoftheinstructions.�  Basedonaconditionaltest(withan‘if’likeconstruct)youcanexecute

orskipaninstructionorsetofinstructions�  Basedonaconditionaltestyouhavetheabilitytolooparoundand

iteratethroughthesameinstructionsmanytimes,untiltheconditionbecomesfalse

�  Youalsocanjumptoandfromotherprograms(orsubprograms,whichareknownasmethodsinJava)

4

TheProgrammingProcess(1)

5

4 | Chapter 1: Overview of Programming and Problem Solving

PROBLEM-SOLVING PHASE IMPLEMENTATION PHASE

Analysisand

specification

General solution(algorithm)

Concrete solution(program)

Test

Maintenance phase

Verify

Figure 1.1 Programming process

Problem-Solving Phase

1. Analysis and Specification. Understand (define) the problem and what the solutionmust do.

2. General Solution (Algorithm). Specify the required data types and the logicalsequences of steps that solve the problem.

3. Verify. Follow the steps exactly to see if the solution really does solve the problem.

Implementation Phase

1. Concrete Solution (Program). Translate the algorithm (the general solution) into aprogramming language.

2. Test. Have the computer follow the instructions. Then manually check the results. Ifyou find errors, analyze the program and the algorithm to determine the source ofthe errors, and then make corrections.

Once a program has been written, it enters a third phase: maintenance.

Maintenance Phase

1. Use. Use the program.2. Maintain. Modify the program to meet changing requirements or to correct any

errors that show up while using it.

The programmer begins the programming process by analyzing the problem, breaking itinto manageable pieces, and developing a general solution for each piece called an

TheProgrammingProcess(2)�  Problem-SolvingPhase

�  AnalysisandSpecification.Understand(define)theproblemandwhatthesolutionmustdo.�  GeneralSolution(Algorithm).Specifytherequireddatatypesandthelogicalsequencesofstepsthat

solvetheproblem.�  Thisistypicallydonewithflowchartsorpseudocode

�  Verify.Followthestepsexactlytoseeifthesolutionreallydoessolvetheproblem.�  Thismeanstakingsometestcasesandverifyingthatyouaregettingtheexpectedanswers

�  ImplementationPhase�  ConcreteSolution(Program).Translatethealgorithm(thegeneralsolution)intoaprogramming

language.�  Test.Havethecomputerfollowtheinstructions.Thenmanuallychecktheresults.Ifyoufinderrors,

analyzetheprogramandthealgorithmtodeterminethesourceoftheerrors,andthenmakecorrections.

�  Onceaprogramhasbeenwritten,itentersathirdphase:maintenance.�  MaintenancePhase

�  Use.Usetheprogram.�  Maintain.Modifytheprogramtomeetchangingrequirementsortocorrectany�  errorsthatshowupwhileusingit.

6

TheMostImportantPartIsFindingASolutionToTheProblem,ThenTheImplementationIsEasy

Algorithms�  Analgorithmisawrittenorverbaldescriptionofalogicalsequenceof

actionsappliedtoobjects.Itisaprocedureforsolvingaprobleminaspecificorderthat�  Describestheactionstobeperformed�  Describestheorderinwhichtheseactionsareperformed

�  Weusealgorithmseveryday.Recipes,instructions,anddirectionsareallexamplesofalgorithmsthatarenotprograms.

�  Analgorithmcanbeimplementedinaprogramminglanguage(s)asneededtorapidlyandrepetitivelysolveaproblem

7

1.1 Overview of Programming | 5

1. Insert the key.2. Make sure the transmission is in Park (or Neutral).3. Turn the key to the start position.4. If the engine starts within six seconds, release the key to the ignition position.5. If the engine doesn’t start in six seconds, release the key and gas pedal, wait ten seconds, and repeat Steps 3 through

5, but not more than five times.6. If the car doesn’t start, call the garage.

algorithm. The solutions to the pieces are col-lected together to form a program that solvesthe original problem. Understanding and ana-lyzing a problem take up much more timethan Figure 1.1 implies. They are the heart ofthe programming process.

If our definitions of a computer program and an algorithm look similar, it isbecause a program is simply an algorithm that has been written for a computer.

An algorithm is a written or verbal description of a logical sequence of actionsapplied to objects. We use algorithms every day. Recipes, instructions, and directions areall examples of algorithms that are not programs.

When you start your car, you follow a step-by-step procedure. The algorithm mightlook something like this:

Without the phrase “but not more than five times” in Step 5, you could be trying tostart the car forever. Why? Because if something is wrong with the car, repeating Steps3 through 5 over and over will not start it. This kind of never-ending situation is calledan infinite loop. If we leave the phrase “but not more than five times” out of Step 5, theprocedure doesn’t fit our definition of an algorithm. An algorithm must terminate in afinite amount of time for all possible conditions.

Suppose a programmer needs an algorithm to determine an employee’s weeklywages. The algorithm reflects what would be done by hand:

1. Look up the employee’s pay rate.2. Determine the hours worked during the week.3. If the number of hours worked is less than or equal to 40, multiply the hours by the pay rate to calculate regular

wages.4. If the number of hours worked is greater than 40, multiply 40 by the pay rate to calculate regular wages, and then

multiply the difference between the hours worked and 40 by 1!12

! times the pay rate to calculate overtime wages.5. Add the regular wages to the overtime wages (if any) to determine total wages for the week.

Algorithm Instructions for solving a problem or sub-problem in a finite amount of time using a finite amountof data

Asimpleexampleofanalgorithmthatdeterminesanemployee’swages

FromAlgorithmtoExecu@on(1)

8

1.1 Overview of Programming | 7

Algorithm Nell's C++ Code

Nell's Java Code

Nell's Visual Basic Code

a. Algorithm translated into different languages

Algorithm Chip's Visual Basic Code

Nell's Visual Basic Code

Mike's Visual Basic Code

b. Algorithm translated by different people

Figure 1.2 Differences in implementation

Problem

Shortcut?

PROBLEM-SOLVING PHASE

Algorithm

IMPLEMENTATION PHASE

Code

Figure 1.3 Programming shortcut?

� Don’tcodeuntilyourstrategyandalgorithmsareworkedout�  Ifyoustartbytryingtocodewithoutastrategyforsolvingaproblemyouwillrunintotrouble

�  CodingistranslatingyoursolutionfromEnglishtoacomputerlanguage

FromAlgorithmtoExecu@on(2)

9

14 | Chapter 1: Overview of Programming and Problem Solving

We can use the CLR as an example of the process shown in Figure 1.7. The CLR iswritten in a high-level programming language such as C++ and then compiled intomachine language. The machine language is loaded into the computer’s memory, andthe CLR is executed. Its input is a Visual Basic program that has been compiled intoBytecode. Its results are the series of actions that would take place if the computer coulddirectly execute Bytecode. Figure 1.8 illustrates this process.

As you look at Figure 1.8, it is important to understand that the output from thecompiler can be saved for future use. Once the CLR and the Visual Basic program havebeen compiled, they can be used over and over without being compiled again. You neverneed to compile the CLR because that has already been done for you. We have shown itscompilation in Figure 1.8 simply to illustrate the difference between the traditional com-pile-execute steps and the compile-interpret steps that are used with Visual Basic.

Viewed from a different perspective, the CLR makes the computer look like a differentcomputer that has Bytecode as its machine language. The computer itself hasn’t changed—

it is still the same collection of electronic circuits—butthe CLR makes it appear that it has become a differentmachine. When a program is used to make one com-puter act like another computer, we call it a virtualmachine. For convenience we may refer to the com-puter as “executing a Visual Basic program, “ but keep

in mind this is just shorthand for saying that “the computer is executing the CLR runninga Visual Basic program.”

Virtual machine A program that makes one computeract like another

COMPILATION !EXECUTION !

Sourcecode

ResultsInputdata

Computerexecutescompiler

code

Computer executesmachine language

version ofsource code

Code listing,possibly with

error messages.

Machine languageversion of

source code(object code)

Loading

Figure 1.7 Compilation/Execution

�  Youthencodeyourprogramusingthecorrectsyntax�  Ifthereareerrorsthecompilerwillshowthemtoyou

�  Oncetheprogramissyntacticallycorrectitwillexecute�  Youneedtotesttheprogramtomakesurethatitisgivingyoutheexpectedresults�  Multipletestcasesareusedtoensureprogramcorrectness

ASimpleSetofStepsForAlgorithmicProgramming(1)1.  Readtheproblemcompletelytwice

�  Ifyoudon’tunderstandtheproblem,youcannotsolveit.–Thebetteryouunderstandittheeasieritwithbetosolve

2.  Solvetheproblemmanually�  Nothingcanbeautomatedthatcannotbedonemanually(withenougheffort)

�  Youneedtobeabletopredicttheoutcomeinsometestcasesinordertoensurethattheprogramisworkingcorrectly

�  Understandwhatyouaredoingwhensolvingtheproblem.Thiswillhelpyoubetterunderstandthealgorithmsyouareusing

10

ASimpleSetofStepsForAlgorithmicProgramming(2)3.  Optimizethemanualsolution

�  ItismucheasiertorearrangeandreconstructanideaoralgorithminplainEnglishthanitisincode

�  Sometimesoptimizationtakesplacethroughconsolidationofloops,ifstatements,andothertechniquesyoubecamefamiliarwithin115.

4.  Createpseudocodeorflowdiagrams�  Pseud0-codeusesEnglishlikephrasestodescribethelogicalstepstocarryout

ataskPseudocodeJavaaddgradetototaltotal=total+grade;PrintgradeSystem.out.println(“Thegradeis”+grade);�  Aflowchartsgraphicallydepictsthelogicalstepstocarryoutataskandshows

howthestepsrelatetooneanother�  Youcanlayouttheprogramstepsbeforeworryingaboutthesyntax�  Sometimesthepseudocodemaybeveryclosetothesyntacticallycorrectcode�  Whenwritingpseudocodewriteenoughcommentssothatyoucan

understandwhatyouaredoing

11

ASimpleSetofStepsForAlgorithmicProgramming(3)5.  Replacepseudocodewithreal,syntacticallycorrectcode

�  Compileanddebug6.  Executethecodeandtestit

�  Usemultipletestcasestoensureitworksproperly�  Examples

�  Ifsearchingalistmakesureitcanfindanumberatthebeginning,somewhereinthemiddle,andattheend

�  Makesuretotestforcaseswhereavalueis0andfornegativeaswellaspositivenumberswheneverappropriate

7.  Reviewthecodeandoptimizeit,thenrepeatsteps5and6

12

Haveconfidenceintheprocessandpracticeofcreatingyourprogramsthisways

ApplyingTheProcess(1)�  Readandanalyzetheproblem

�  Reverseastringofcharacters(let’susethestring“Zebra”)�  WhenwearedonewehavecreatedthenewString“arbeZ”

�  Solvetheproblemmanually-  Write“Zebra”down.-  Startanewword,andput“a”asthefirstletter.(Why–>becauseitisthelastletter,wewanttostarthere)

-  Put“r”downasthe2ndletter.(Why–>becauseitisthenextletterbackwardsfromthelastletterwecopied)

-  Put“b”downasthe3rdletter.(Why–>sameasabove)-  Continuewithsubsequentlettersuntildone

13

ApplyingTheProcess(2)� Optimizethemanualsolution

①  Write“Zebra”down.②  Startatthelastletterinthewordandcreateanew

emptyword.③  Appendthecurrentlettertothenewword④  Ifthereisapreviousletter,makethepreviousletter

thecurrentletterandreturntostep3.

14

ApplyingTheProcess(3)� Writethepseudocodeorcomments

-  //ReadinStringtoreverse-  //NewWord=“”-  //Loopbackwardsthroughwordtoreverse-  //NewWord+=CurrentLetter

�  ReplacecommentswithrealcodeSystem.out.println(“EnteraStringtoreverse”);StringoldWord=keyboard.next();StringnewWord=“”for(intindex=oldWord.length()–1;index>=0;index--)newWord=newWord+oldWord.charAt(index);

15

ProblemSolvingTechniques(1)�  AskQuestions!!!

�  WhatdoIhavetoworkwith—thatis,whataremydata/inputs?

�  Whatdothedataitemslooklike�  Whatismyoutputandwhatshoulditlooklike?

�  Youcanworkbackwardsfromtheoutputonceyouunderstandwhatitlookslike

�  Whataretheoperationstobeperformedonthedatatoconverttheinputstooutputs.

�  Howmuchdataisthere?�  HowwillIknowwhenIhaveprocessedallthedata�  Whatspecialerrorconditionsmightcomeup?

16

TheImportantThingIsToAnalyzetheProblemandDevelopaStrategyBeforeYouBeginProgramming

ProblemSolvingTechniques(2)�  LookForFamiliarPatterns

�  Manyproblemsaresimilar(evenbetweenthelabsandthehomework�  Intheexamplesbelowwearesimplylookingforthehighestand

lowestvalues�  Wecanusethesamealgorithminbothcases

�  Findanalogieswithothertypesofproblems�  Ifyouorganizefilesinacabinetthatmightgiveyousomeideason

howtoorganizecomputerfiles

17

1.8 Problem-Solving Techniques | 27

LIST OF TEMPERATURES

HIGHEST = 95LOWEST = 18

LIST OF TEST SCORES

HIGHEST = 98LOWEST = 12

Use the samemethod tofind thesevalues in

both cases.

421827955572337886615891

2714559872664512397068

Figure 1.13 Look for things that are familiar.

question marks in the margin, underline a word or a sentence, or in some other wayindicate that the task is not clear. Your questions may be answered by a later paragraph,or you might have to discuss them with the person who gave you the task.

These are some of the questions you might ask in the context of programming:

• What do I have to work with—that is, what are my data?• What do the data items look like?• What are the operations to be performed on the data?• How much data is there?• How will I know when I have processed all the data?• What should my output look like?• What special error conditions might come up?

Look for Things That Are Familiar

Never reinvent the wheel. If a solution exists, use it. If you’ve solved the same or a simi-lar problem before, just repeat your solution. People are good at recognizing similar sit-uations. We don’t have to learn how to go to the store to buy milk, then to buy eggs,and then to buy candy. We know that going to the store is always the same; only whatwe buy is different.

In programming, certain problems occur again and again in different guises. Agood programmer immediately recognizes a subtask he or she has solved before andplugs in the solution. For example, finding the daily high and low temperatures is reallythe same problem as finding the highest and lowest grades on a test. You want thelargest and smallest values in a set of numbers (see Figure 1.13).

ProblemSolvingTechniques(3)� Means-EndsAnalysis

�  Figureoutwhattheend-stateisandthendeterminehowtogettherefromtheinitialstate�  Thereareoftenalternativewaystogettoyourendstate

�  Asyougoalongtheremaybeintermediateendstatesthatareeasiertoreach

18

1.8 Problem-Solving Techniques | 29

Start: BostonGoal: Austin

Start: BostonGoal: Austin

Solution: Take commuter flight to Newark and then catch cheap flight to Austin

Start: BostonIntermediate Goal: NewarkGoal: Austin

Means: Fly, walk, hitchhike, bike, drive, sail, bus

Revised Means: Fly to Chicago and then Austin; fly to Newark and then Austin: fly to Atlanta and then Austin

Means to Intermediate Goal: Commuter flight, walk, hitchhike, bike, drive, sail, bus

Figure 1.15 Means-ends analysis

The overall strategy of means-ends analysis is to define the ends and then to ana-lyze your means of getting between them. The process translates easily to computer pro-gramming. You begin by writing down what the input is and what the output should be.Then you consider the actions a computer can perform and choose a sequence ofactions that can transform the input into the results.

Divide and Conquer

We often break up large problems into smaller units that are easier to handle. Cleaningthe whole house may seem overwhelming; cleaning the rooms one at a time seemsmuch more manageable. The same principle applies to programming. We break up alarge problem into smaller pieces that we can solve individually (see Figure 1.16). In

Hard problem

Easysubproblem

Easysubproblem

Easysubsubproblem

Easysubsubproblem

Hardsubproblem

Figure 1.16 Divide and conquer

ProblemSolvingTechniques(4)� DivideandConquer–Themostpopulartechnique

�  Breakupyourhardproblemintosmaller,moreeasilysolvableproblems

� Developastrategyforsolvingtheeasierproblems(whichcanthemselvesbedividedintosmallerproblems)

19

1.8 Problem-Solving Techniques | 29

Start: BostonGoal: Austin

Start: BostonGoal: Austin

Solution: Take commuter flight to Newark and then catch cheap flight to Austin

Start: BostonIntermediate Goal: NewarkGoal: Austin

Means: Fly, walk, hitchhike, bike, drive, sail, bus

Revised Means: Fly to Chicago and then Austin; fly to Newark and then Austin: fly to Atlanta and then Austin

Means to Intermediate Goal: Commuter flight, walk, hitchhike, bike, drive, sail, bus

Figure 1.15 Means-ends analysis

The overall strategy of means-ends analysis is to define the ends and then to ana-lyze your means of getting between them. The process translates easily to computer pro-gramming. You begin by writing down what the input is and what the output should be.Then you consider the actions a computer can perform and choose a sequence ofactions that can transform the input into the results.

Divide and Conquer

We often break up large problems into smaller units that are easier to handle. Cleaningthe whole house may seem overwhelming; cleaning the rooms one at a time seemsmuch more manageable. The same principle applies to programming. We break up alarge problem into smaller pieces that we can solve individually (see Figure 1.16). In

Hard problem

Easysubproblem

Easysubproblem

Easysubsubproblem

Easysubsubproblem

Hardsubproblem

Figure 1.16 Divide and conquer

ProblemSolvingTechniques(5)

� BuildingBlocksandMergingSolutions�  Takepiecesfromexistingprogramsandusetheminalargersolution�  WedothisalmostfromthebeginninginJava,usingIOsolutionsthatareprovidedaspartofJavainordertoreadindataandwriteoutresults.

�  Javahasahugenumberoflibrarieswithprogramsthatcanbeusedtosimplifyourprogramming

�  Inthebeginningweoftenrecreatesomeofthesetoolstobetterunderstandcomputingprinciples

20

TheFlowchartAFlowchart

�  Showslogicofanalgorithm�  Emphasizesindividualstepsandtheirinterconnections�  Showscontrolflowfromoneactiontothenext

21

FlowchartSymbols

Oval

Parallelogram

Rectangle

Diamond

Hybrid

Name Symbol Use in Flowchart

Denotes the beginning or end of the program

Denotes an input operation

Denotes an output operation

Denotes a decision (or branch) to be made. The program should continue along one of two routes. (e.g. IF/THEN/ELSE)

Denotes a process to be carried oute.g. addition, subtraction, division etc.

Flow line Denotes the direction of logic flow in the program

22

Example1� Writeanalgorithmanddrawaflowcharttoconvertthelengthinfeettocentimeters.

Pseudocode: �  Inputthelengthinfeet(lengthInFeet)� Calculatethelengthincm(lengthInCentimeters)bymultiplyinglengthInFeetwith30.0

�  Printlengthincm(lengthInCentimeters)

23

Example1Algorithm�  Step1:InputlengthInFeet�  Step2:lengthInCentimeters←lengthInFeet*30�  Step3:PrintlengthInCentimeters

START

InputlengthInFeet

lengthInCentimeters←lengthInFeet*30.0

PrintlengthInCentimeters

STOP

Flowchart

24

Example2� Writeanalgorithmanddrawaflowchartthatwillcalculatetherootsofaquadraticequation

�  Hint:d=sqrt(),andtherootsare:x1=(–b+d)/2*aandx2=(–b–d)/2*a

2 0ax bx c+ + =b2 − 4*a*c

25

Example2Pseudocode:�  Inputthecoefficients(a,b,c)ofthequadraticequation� Calculated� Calculatex1� Calculatex2�  Printx1andx2

26

Example2AlgorithmandFlowchart

� Algorithm:�  Step1: Inputa,b,c�  Step2: d←sqrt()�  Step3: x1←(–b+d)/(2*a)�  Step4: x2←(–b–d)/(2*a)�  Step5: Printx1,x2

START

Inputa,b,c

d←sqrt(b*b–4*a*c)

Printx1,x2

STOP

x1←(–b+d)/(2*a)

X2←(–b–d)/(2*a)

b*b− 4*a*c

27

IF–THEN–ELSESTRUCTURE� ThestructureisasfollowsIfconditionthen truealternativeelse falsealternative

endif

28

IF–THEN–ELSESTRUCTURE� Thealgorithmfortheflowchartisasfollows:IfA>BthenprintA

elseprintB

endif

isA>B

PrintB

PrintA

Y N

29

30

Looping Flowchart

Example3� Writeanalgorithmtodetermineastudent’sfinalgradeandindicatewhetheritispassingorfailing.Thefinalgradeiscalculatedastheaverageoffourmarks.

31

Example3Pseudocode&Algorithm(1)

Pseudocode:�  Inputasetof4marks� Calculatetheiraveragebysummingthegradesandthendividingby4.0

�  ifaverageisbelow50 Print“FAIL”else Print“PASS”

32

Example3Pseudocode&Algorithm(2)

� DetailedAlgorithm�  Step1: InputM1,M2,M3,M4 Step2: GRADE←(M1+M2+M3+M4)/4.0 Step3: if(GRADE<50)then Print“FAIL”

else Print“PASS” endif

33

Example3Flowchart

PRINT“PASS”

Step1: InputM1,M2,M3,M4Step2: GRADE←(M1+M2+M3+M4)/4Step3: if(GRADE<50)then

Print“FAIL” else

Print“PASS” endif

START

InputM1,M2,M3,M4

GRADE←(M1+M2+M3+M4)/4.0

ISGRADE<50

PRINT“FAIL”

STOP

YN

34

35

In Class Problem 1 – Direction of Numbered NYC Streets Algorithm

� Problem: Given a street number of a one-way street in New York City, decide the direction of the street, either eastbound or westbound

� Discussion: in New York City even numbered streets are Eastbound, odd numbered streets are Westbound

Write the Pseudocode and Flowchart for this Problem Do you know how you can determine if an integer is even or odd?

36

Class Problem 1 – Pseudocode Program: Determine the direction of a numbered

NYC street Get street If street number is even Then Display Eastbound Else Display Westbound End If

37

Class Problem 1 – Flowchart

38

Class Problem 2 – Class Average Algorithm � Problem: Calculate and report the grade-point

average for a class � Discussion: The average grade equals the sum

of all grades divided by the number of students Output: Average grade Input: Student grades Processing: Find the sum of the grades; count the

number of students; calculate average Write the Pseudocode and Flowchart for this

Problem

39

Class Problem 2 – Pseudocode

Program: Determine the average grade of a class Initialize Counter and Sum to 0 Do While there are more data Get the next Grade Add the Grade to the Sum Increment the Counter Loop Average = Sum / (double)Counter Display Average

40

Class Problem 2 – Flowchart