lecture 6: output 1.presenting results in a professional manner 2.semicolon, disp(), fprintf()...

25
Lecture 6: Output 1. Presenting results in a professional manner 2. semicolon, disp(), fprintf() 3. Placeholders 4. Special characters 5. Format-modifiers 1

Upload: ethel-sutton

Post on 21-Jan-2016

219 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Lecture 6: Output 1.Presenting results in a professional manner 2.semicolon, disp(), fprintf() 3.Placeholders 4.Special characters 5.Format-modifiers 1

1

Lecture 6: Output

1. Presenting results in a professional manner2. semicolon, disp(), fprintf() 3. Placeholders4. Special characters5. Format-modifiers

Page 2: Lecture 6: Output 1.Presenting results in a professional manner 2.semicolon, disp(), fprintf() 3.Placeholders 4.Special characters 5.Format-modifiers 1

2

Input()

input('Enter your age');input = ('Enter height of triangle: ');Units = input('Enter unit system chosen: ');base = input('Enter base of triangle: ', 's');

Page 3: Lecture 6: Output 1.Presenting results in a professional manner 2.semicolon, disp(), fprintf() 3.Placeholders 4.Special characters 5.Format-modifiers 1

3

Where we left off…

% Collect inputs from the userBase = input(‘Enter base of triangle: ’)Height = input(‘Enter height of triangle: ’)Units = input(‘Enter unit system chosen: ’, ‘s’)

% Compute the area of the triangleArea_tri = 0.5 * Base * Height

% Display the answer on the screen% ??? How is the output displayed?

Page 4: Lecture 6: Output 1.Presenting results in a professional manner 2.semicolon, disp(), fprintf() 3.Placeholders 4.Special characters 5.Format-modifiers 1

4

• Um… isn’t the result being displayed already?

Page 5: Lecture 6: Output 1.Presenting results in a professional manner 2.semicolon, disp(), fprintf() 3.Placeholders 4.Special characters 5.Format-modifiers 1

5

• Um… isn’t the result being displayed already?

Page 6: Lecture 6: Output 1.Presenting results in a professional manner 2.semicolon, disp(), fprintf() 3.Placeholders 4.Special characters 5.Format-modifiers 1

Several Approaches to Display Results

• There are multiple ways to display the value of a variable1. Use the semicolon appropriately2. use the disp() built-in function3. use the fprintf() built-in function

6

Page 7: Lecture 6: Output 1.Presenting results in a professional manner 2.semicolon, disp(), fprintf() 3.Placeholders 4.Special characters 5.Format-modifiers 1

For example: 1. Use the semicolon appropriately

2. use the disp() built-in function

3. use the fprintf() built-in function

Several Approaches to Display Results

7

Page 8: Lecture 6: Output 1.Presenting results in a professional manner 2.semicolon, disp(), fprintf() 3.Placeholders 4.Special characters 5.Format-modifiers 1

Several Approaches to Display Results

• There are multiple ways to display the value of a variable1. Use the semicolon appropriately2. use the disp() built-in function3. use the fprintf() built-in function

• Each is used for specific reasons1. Debugging – finding problems with the code2. Simple programs, simple results (the programmer’s use)3. Formatted (“professional”) output

8

Page 9: Lecture 6: Output 1.Presenting results in a professional manner 2.semicolon, disp(), fprintf() 3.Placeholders 4.Special characters 5.Format-modifiers 1

Approach #1 – the semi-colon

% Collect inputs from the userBase = input(‘Enter base of triangle: ’);Height = input(‘Enter height of triangle: ’);Units = input(‘Enter unit system chosen: ’, ‘s’);

% Compute the area of the triangleArea_tri = 0.5 * Base * Height

• Not very professional (nothing indicates where and what the output is).The number of decimal places cannot be controlled, and it generally defaults to 4 in MATLAB.

9

Page 10: Lecture 6: Output 1.Presenting results in a professional manner 2.semicolon, disp(), fprintf() 3.Placeholders 4.Special characters 5.Format-modifiers 1

Approach #2 – disp()

% Collect inputs from the userBase = input(‘Enter base of triangle: ’);Height = input(‘Enter height of triangle: ’);Units = input(‘Enter unit system chosen: ’, ‘s’);

% Compute the area of the triangleArea_tri = 0.5 * Base * Height;

% Display the answer on the screendisp(Area_tri);

WORSE!!! The number of decimal places cannot be controlled, and it generally defaults to 4 in

MATLAB.

10

Page 11: Lecture 6: Output 1.Presenting results in a professional manner 2.semicolon, disp(), fprintf() 3.Placeholders 4.Special characters 5.Format-modifiers 1

Approach #3 - Using fprintf()

1. fprintf(...) % is the built-in function

2. Basic form:

fprintf('format String with placeholders', list of variables)% The format string allows you to put words and specify a format (UPPER CASE vs. lower case, and punctuation only)

3. Examples:fprintf('pi has a value of %f. ', pi)fprintf(’%f is the value for pi. ', pi)

11

Page 12: Lecture 6: Output 1.Presenting results in a professional manner 2.semicolon, disp(), fprintf() 3.Placeholders 4.Special characters 5.Format-modifiers 1

Placeholders – why and how

• Placeholders are codes used in a format string which let the programmer use values stored in variables (without knowing the actual value)

• Why are placeholders needed?– Suppose a variable, result, holds a value. Let’s further

suppose it holds a float.– How does the program print the value? Remember – the

programmer may not know what value is in the variable. It may be computed during the running of the program.

13

Page 13: Lecture 6: Output 1.Presenting results in a professional manner 2.semicolon, disp(), fprintf() 3.Placeholders 4.Special characters 5.Format-modifiers 1

Using placeholders

The fprintf() function should print the value stored in the variable Area_tri.

14

Result:The area of the triangle is 10.590900.>>

fprintf('The area of the triangle is %f.', Area_tri);

“placeholder”(part of format string)

6 decimal places by default.

Page 14: Lecture 6: Output 1.Presenting results in a professional manner 2.semicolon, disp(), fprintf() 3.Placeholders 4.Special characters 5.Format-modifiers 1

• Most common placeholders– %f floating-point numbers, 6 decimals by default– %d integers– %s strings– %c a single character

Vocabulary

15

fprintf('The area of the triangle is %f.', Area_tri);

“function call” ‘format string’ placeholder(part of format string)

variable to be printed

Arguments

Page 15: Lecture 6: Output 1.Presenting results in a professional manner 2.semicolon, disp(), fprintf() 3.Placeholders 4.Special characters 5.Format-modifiers 1

Printing multiple variables

• When more than one variable must be printed to the screen, match each variable with its placeholder, and place the list of variables in order of the placeholders.

• Exampleage = input('Your age? '); %ask for agename = input('Your name? ', 's'); %ask for namefprintf('%s is %d years old. ', name , age); %display

• Sample run:Your age? 47Your name? FredFred is 47 years old.>>

16

Page 16: Lecture 6: Output 1.Presenting results in a professional manner 2.semicolon, disp(), fprintf() 3.Placeholders 4.Special characters 5.Format-modifiers 1

Special Characters

• Escape sequences can also be used within the format string:\n - this will create a new line when printing the string\t - tab (tabs the text to the right)'' - this will place one apostrophe in the final sentence

displayed%% - this will display a single % sign within the final

sentence

• Example of all three:>> fprintf('%s''s age:\t\t%d years old\n\n', name, age);Fred's age: 47 years old

>>

17

Page 17: Lecture 6: Output 1.Presenting results in a professional manner 2.semicolon, disp(), fprintf() 3.Placeholders 4.Special characters 5.Format-modifiers 1

Format Modifiers

• Once the base placeholder is ready, modifiers further change how the values are displayed.

• Complete Format Modifier form:

18

%-7.2f

Left-justify the value

TOTAL width to occupy

Number of decimal places

Page 18: Lecture 6: Output 1.Presenting results in a professional manner 2.semicolon, disp(), fprintf() 3.Placeholders 4.Special characters 5.Format-modifiers 1

Format Modifiers

• To display a floating point value to 3 decimal places:

fprintf('The value of pi: %-7.3f.', pi);

• Output:

The value of pi: 3 . 1 4 2 _ _

The value of pi: 3 . 1 4 2 .

19

Underscores indicate whitespace – they will not actually show in the output. There are 7 spaces occupied

Page 19: Lecture 6: Output 1.Presenting results in a professional manner 2.semicolon, disp(), fprintf() 3.Placeholders 4.Special characters 5.Format-modifiers 1

Format Modifiers

• When debugging, it can be helpful to “delimit” the output (using dashes and > < symbols) – this lets you see where the “white space” is:

fprintf('The value is:\t-->%9.3f<--\n\n', pi);

• Output:The value is: --> 3.142<--

>>

20

The delimiters make it easy to notice the white space: spaces, tabs, newlines

Page 20: Lecture 6: Output 1.Presenting results in a professional manner 2.semicolon, disp(), fprintf() 3.Placeholders 4.Special characters 5.Format-modifiers 1

Format Modifiers

• Normally we don’t use the decimal place portion of format modifiers for strings, and it doesn’t work at all for integers – but the other portions still work!

• Examplename = ‘Fred’;age = 47;fprintf(‘%-6s is %4d years old!\n’, name, age);

• Output:Fred is 47 years old!

21Note the spaces

Page 21: Lecture 6: Output 1.Presenting results in a professional manner 2.semicolon, disp(), fprintf() 3.Placeholders 4.Special characters 5.Format-modifiers 1

Common Mistakes: Do not print a value

Can this be the solution?fprintf('The value in result is 23.4\n');

Result:>> fprintf('The value in result is 23.4\n');The value in result is 23.4>>

22

Page 22: Lecture 6: Output 1.Presenting results in a professional manner 2.semicolon, disp(), fprintf() 3.Placeholders 4.Special characters 5.Format-modifiers 1

Common Mistakes: Do not print the variable name

Can we just say this?fprintf('The value in result is: result\n');

Result:>> fprintf('The value in result is: result\n');The value in result is: result>>

23

Page 23: Lecture 6: Output 1.Presenting results in a professional manner 2.semicolon, disp(), fprintf() 3.Placeholders 4.Special characters 5.Format-modifiers 1

Common Mistake: Forgetting the placeholder!

How about this?fprintf('The value in result is: ', result);

Result:>> fprintf('The value in result is: ', result);The value in result is: >>

24

Page 24: Lecture 6: Output 1.Presenting results in a professional manner 2.semicolon, disp(), fprintf() 3.Placeholders 4.Special characters 5.Format-modifiers 1

Conclusion: Approach #3 – fprintf()

% Collect inputs from the userBase = input(‘What is the base in inches? ’);Height = input(‘What is the height in inches? ’);Units = input(‘Enter unit system chosen: ’, ‘s’);

% Compute the area of the triangleArea_tri = 0.5 * Base * Height;

% Display the answer on the screenfprintf(‘\nWith this data, the area is %.2f %s^2.\n’, Area_tri,

Units);

• Best ever! The programmer controls every detail exactly!The PROGRAMMER decides the number of decimals.

25

Page 25: Lecture 6: Output 1.Presenting results in a professional manner 2.semicolon, disp(), fprintf() 3.Placeholders 4.Special characters 5.Format-modifiers 1

Key Ideas

• Display strings to the screen to:– Give an introduction/welcome screen to the software– Give error messages when invalid inputs– Terminate the program nicely

• And of course… To display results• Omit the semicolon (debugging purposes)• Use disp() – debugging purposes as well• Use fprintf() – specify a very specific format to display from 0 to an

unlimited amount of variables

• fprintf(…) requires placeholders, with or without any format modifiers: %d, %f, %s, %c, %-10.2f, %-5s, %2d

26