Lec3[1]

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Lec3[1] as PDF for free.

More details

  • Words: 1,250
  • Pages: 36
Computer Programming Lecture 3 Hung-Yu Wei Department of Electrical Engineering National Taiwan University

10/03/2006

HW#1  

Deadline 10/17 12:00 (noon) Assignment:  Pick any topic you like  Use whatever you have learned   



Submission:  Email to: [email protected]



 

Subject: [HW#1] b95xxxxxx_Name

Attach C++ source codes 



Input/output Arithmetic If statement

b95xxxxxx_name.cpp (only 1 file)

1-2 pages of descriptions/results (Word or txt file) Write your 姓名學號 in description file and source codes

Make sure your source codes can be complied in PC room 305 

10/18 Lab: you will show your program to TAs

2

Review: compiling environment 

Visual C++ 6.0 (we used in the lab) 

New  Project 

Win32 console program 





Add cpp file to the project

Visual C++ .Net 2003  



(an empty project)

專案 Win32 主控台專案 在”應用程式設定”中,勾選”空專案”

Dev C++ 

New project  Console applications 3

Review Question I X=3; Y=7; Z=X==Y  What are the values of X, Y, Z?  You also need to know what are the memory operations when you do these calculations. 4

Review Question II X=3; Y=7; Z1=Y/X Z2=Y%X  What are the values of X, Y, Z1,Z2?

5

What will we learn today 

Chapter 4 



How do you control the “flow” of your program?  

   

Control statement

Selection Repetition

If If … else while More about UML 6

Introduction: solving problem and writing program 

Before writing a program 





Have a thorough understanding of problem Carefully plan your approach for solving it

While writing a program  

Know what “building blocks” are available Use good programming principles

7

Algorithms 

Computing problems 



Algorithm is a procedure determining   



Solved by executing a series of actions in a specific order Actions to be executed Order to be executed Example: cooking/recipe

Program control 

Specifies the order in which statements are executed 8

Pseudocode (fake code) 

Pseudocode 





Artificial, informal language used to develop algorithms Similar to plain English

Not executed on computers 

Used to think out program before coding 



Only executable statements 



Easy to convert into C++ program No need to declare variables (optional)

Help you to analyze/design/program 9

Goto statement 

It is BAD! 



Jumping between the lines is unstructured

Structured programming   

Avoid using goto statement Also known as “goto elimination” C is a structured language

10

Control Structures 

Sequential execution 



Transfer of control 



Statements executed in order Next statement executed not next one in sequence

3 control structures (Bohm and Jacopini) 





Sequence structure  Programs executed sequentially by default Selection structures  if, if/else, switch Repetition structures  while, do/while, for

11

Flowchart 

Graphical representation of an algorithm BEGIN ACTION1

ACTION2

END

12

Types of statement  

Sequence statement Selection statement   



Single selection statement: If Double selection statement: If … else Multiple selection statement: switch

Repetition statement    

Also known as loops or looping statement While Do … while For 13

If statement (revisited) 

Pseudocode If student’s grade is greater than or equal to 60 Print “Passed”



C++ if (grade >= 60) cout << “Passed”;

14

UML  



Unified Modeling Language (UML) An industry standard for modeling software systems Useful for object-oriented programming

15

Sequence-structure activity diagram   

Initial state Action state Final state

16

If single-selection statement activity diagram  

Decision symbol Guard condition

17

if...else double-selection 



Pseudocodes If student’s grade is greater than or equal to 60 Print “passed” else Print “Failed” C++ codes if (grade >= 60) cout << “Passed”; else cout << “Failed”; 18

if...else double-selection statement activity diagram.

19

?:  

Conditional Operator Example 





Cout << (grade >=60 ? “Passed” : “Failed” ); Grade >=60 ? cout << “Passed” : cout << “Failed”;

Usage is similar to if … else

20

?: Syntax (condition) ? (if it’s true) : (if it’s false) 



Can be used within 1 line

21

Nested if … else statement 

Pseudocodes

If student’s grade is greater than or equal to 90 Print “A” Else If student’s grade is greater than or equal to 80 Print “B” Else If student’s grade is greater than or equal to 70 Print “C” Else If student’s grade is greater than or equal to 60 Print “D” Else Print “F”

22

C++ if (studentGrade >=90) cout <<"A"; else if (studentGrade >=80) cout <<"B"; else if (studentGrade >=70) cout <<"C"; else if (studentGrade >=60) cout <<"D"; else cout <<"F"; 23

Continued 

C++ if (studentGrade >=90) cout << “A”; else if (studentGrade >=80) cout << “B”; else if (studentGrade >=70) cout << “C”; else if (studentGrade >=60) cout << “D”; else cout << “F”;

  

if else if else

24

Some tips 



A nested if...else statement can perform much faster than a series of single-selection if statements In a nested if... else statement, test the conditions that are more likely to be true at the beginning of the nested if...else statement.

25

Dangling-else problem An example If (x>5) if (y>5) cout << “x,y are greater than 5”; else cout << “x is <= 5”; 

26

Continued The reality (it is confusing)  Use {} to make your program clear If (x>5) if (y>5) cout << “x,y are greater than 5”; else cout << “x is <= 5”; 

27

{} Use {} for clarity and multiple lines of statement in if…else If (x>5) { if (y>5) cout << “x,y are greater than 5”; } else cout << “x is <= 5”; 

28

Tips 



Always putting the braces in an if...else statement (or any control statement) helps prevent their accidental omission, especially when adding statements to an if or else clause at a later time. You could put {} before writing any statements within {} 29

Review: if..else and {} One statement If (condition) one statement; else another statement;  Multiple statements if (condition) { multiple statements; } Else { more statements; 

} 30

While  

A repetition statement Pseudocodes While there are more items on my shopping list Buy the next item and update the list



Syntax while (condition) statement to do;

31

An example with while 

Example: compute a value which is and is greater than 100

3

N

int product =3; While (product <= 100) product=3*product;

32

while repetition statement UML activity diagram 

UML uses the same icon for merge symbol and decision symbol

33

Be careful with while 

infinite loop 





Repetition statement never terminates

This can make a program appear to “hang” or “freeze” if the loop body does not contain statements that interact with the user. Use while loop carefully

34

What have we learned so far?   

  

Basic C++ program Main program Include C++ standard library (e.g. iostream) I/O (cin/cout) Arithmetic Control statement  

Create your program from pseudocodes to C++ If, If…else, While 35

Conclusion 

Read your textbook   

 

Install/use your C++ compiler HW #1 



2.1~2.7 4.1~4.7 1.7~1.10, 1.13

10/17 12:00 (noon)

We will come back to Chapter 3 next week and continue from 4.8 after finishing Chapter 3. 36