Download presentation
Presentation is loading. Please wait.
1
EECE.2160 ECE Application Programming
Instructors: Dr. Michael Geiger & Dr. Lin Li Spring 2019 Lecture 5: Basic variable output with printf() Basic variable input with scanf() Flowcharts and debugging
2
ECE Application Programming: Lecture 5
Lecture outline Announcements/reminders Text exercises: Ch. 2 due 9/18 No late textbook exercises accepted! Program 2 due Friday, 9/20 These slides (2-3 lectures) Program 2 overview Review: operators, printf() basics printf() examples scanf() Flowcharts and debugging 1/30/2020 ECE Application Programming: Lecture 5
3
ECE Application Programming: Lecture 5
Program 2 overview Learn basic I/O Basic circuit analysis All formulas on last page of figures document zyBooks-specific note Inputs aren’t shown when test output is printed Visual Studio-specific note To avoid scanf() warnings, include following line before #include <stdio.h>: #define _CRT_SECURE_NO_WARNINGS 1/30/2020 ECE Application Programming: Lecture 5
4
Review: Arithmetic Operations
Operator Addition + Subtraction - Multiplication * Division / Modulus Division (Remainder) % 1/30/2020 ECE Application Programming: Lecture 5
5
Review: printf() basics
To print variables (or constants), insert %<type> in your printf() format string %c: single character %d or %i: signed decimal integer %f: float; %lf: double Prints 6 digits after decimal point by default To control # digits, use precision "%.4lf" prints with 4 digits (4th digit rounds) "%.0lf" prints with 0 digits (round to nearest integer) Each %<type> must correspond to a variable or constant that follows printf("a=%.3f, b=%.2f", a, b); 1/30/2020 ECE Application Programming: Lecture 6
6
ECE Application Programming: Lecture 5
printf() example float a=67.49,b= ; printf("hello %f there %f\n",a,b); printf("%f%f%f%f\n",a,a,b,b); printf("a=%.2f, b=%.1f",a,b); printf("Cool huh?\n"); Printed: hello there a=67.49, b=10.0Cool huh? 1/30/2020 ECE Application Programming: Lecture 5
7
ECE Application Programming: Lecture 5
Example: printf() Show the output from each programs(assume #include <stdio.h> for all) void main() { int i=2, j=3, k, m; k = j * i; m = i + j; printf("%d %d %d %d\n", i, j, k, m); } double f, g; f = 1.0 / 4.0; g = f * 20; printf("f = %lf,\ng = %.2lf\n", f, g); int a = 5, b = 2; printf("Output%doesn't%dmake%dsense", a, b, a + b); 1/30/2020 ECE Application Programming: Lecture 5
8
ECE Application Programming: Lecture 5
Example solution void main() { int i=2, j=3, k, m; k = j * i; k = 2 * 3 = 6 m = i + j; m = = 5 printf("%d %d %d %d\n", i, j, k, m); } Output: 1/30/2020 ECE Application Programming: Lecture 5
9
Example solution (cont.)
void main() { double f, g; f = 1.0 / 4.0; f = 0.25 g = f * 20; g = 0.25 * 20 = 5 printf("f = %lf,\ng = %.2lf\n", f, g); } Output: f = , g = 5.00 (remember, 6 places after decimal point printed by default with floating-point data) 1/30/2020 ECE Application Programming: Lecture 5
10
Example solution (cont.)
void main() { int a = 5, b = 2; printf("Output%doesn't%dmake%dsense", a, b, a + b); } Output: Output5oesn't2make7sense (Every %d gets replaced with a number, which is underlined above to show what happens—in practice, the console isn’t going to underline your output!) 1/30/2020 ECE Application Programming: Lecture 5
11
ECE 160 - Introduction to Computer Engineering I
02/09/2005 scanf() function Used to get input from user Returns number of items successfully assigned First argument is format specifiers Essentially same as printf() format string Every format specifier (%d, %lf, etc.) corresponds to an input value to be read Format string can contain other characters, which will be ignored if they are present If they’re not, you have a problem … Remaining arguments are variable addresses Use “address of” operator: & For example, given: int a; The address of a is: &a 1/30/2020 ECE Application Programming: Lecture 6 (c) 2005, P. H. Viall
12
ECE Application Programming: Lecture 6
scanf() and scanf_s() Visual Studio users will see an error message when using scanf() Function is technically not secure (not that it matters for our purposes) Suggests use of scanf_s() Windows-specific “secure” scan function Preferred method of removing warnings: #define _CRT_SECURE_NO_WARNINGS That line must come before #include <stdio.h> 1/30/2020 ECE Application Programming: Lecture 6
13
ECE 160 - Introduction to Computer Engineering I
02/09/2005 scanf() function Documentation info: int scanf(const char *format [,argument] ...) format - is format specifiers similar to printf() specifiers arguments - are ADDRESSES of where to store what the user enters 1/30/2020 ECE Application Programming: Lecture 6 (c) 2005, P. H. Viall
14
ECE 160 - Introduction to Computer Engineering I
02/09/2005 scanf() function int hours; float rate; scanf("%d %f",&hours,&rate); If user types: 34 5.7 hours ? 1284 rate ? 1288 hours 34 1284 rate 5.7 1288 1/30/2020 ECE Application Programming: Lecture 6 (c) 2005, P. H. Viall
15
scanf() format strings
scanf() will skip space characters for all types but %c Read input until it finds something that’s not a space, then see if it matches the desired type If type matches, value will be stored in specified variable If type doesn’t match, nothing stored; function stops Space in string only matters if using %c %c will read any character Includes spaces, newlines, etc. Example: given scanf("%d%c", &i, &c); Input: 3a i = 3, c = 'a' Input: 3 a i = 3, c = ' ' Input: 3 a i = 3, c = '\n' (assuming newline directly after 3) 1/30/2020 ECE Application Programming: Lecture 6
16
ECE Application Programming: Lecture 6
scanf() return value scanf() returns # of successfully read items Ex.: given scanf("%d%d", &x, &y); Input: 3 7 x = 3, y = 7, return value = 2 Input: x = 3, y = 7, return value = 2 Input: x = 3, y = ?, return value = 1 y is unchanged Input: x1 7 x = ?, y = ?, return value = 0 x, y both unchanged Can assign return value to variable Example: int numRead; // # input values read numRead = scanf("%d%d", &x, &y); 1/30/2020 ECE Application Programming: Lecture 6
17
ECE Application Programming: Lecture 6
Example Variables: int i; double d; char c; What values are read for each of the following inputs and scanf() calls? Assume the input is as follows: scanf("%d%lf", &i, &d) scanf("%d %lf", &i, &d) scanf("%lf%d", &d, &i) scanf("%d%c", &i, &c) scanf("%d %c", &i, &c) 1/30/2020 ECE Application Programming: Lecture 6
18
ECE Application Programming: Lecture 6
Example solution What values are read for each of the following inputs and scanf() calls? scanf("%d%lf", &i, &d) i = 34, d = 5.7 scanf("%d %lf", &i, &d) scanf("%lf%d", &d, &i) d = 34, i = 5 scanf("%d%c", &i, &c) i = 34, c = ' ' (space) scanf("%d %c", &i, &c) i = 34, c = '5' 1/30/2020 ECE Application Programming: Lecture 6
19
Using scanf() and printf() together
ECE Introduction to Computer Engineering I 02/09/2005 Using scanf() and printf() together #include <stdio.h> int main() { int hours; float rate; float grosspay; printf("Enter hours: "); scanf("%d",&hours); printf("Enter pay rate: "); scanf("%f",&rate); grosspay = hours * rate; printf("You earned $%f\n",grosspay); } 1/30/2020 ECE Application Programming: Lecture 6 (c) 2005, P. H. Viall
20
scanf() function - Payroll Ver 2
ECE Introduction to Computer Engineering I 02/09/2005 scanf() function - Payroll Ver 2 #include <stdio.h> int main() { double hours; double rate; double grosspay; printf("Enter hours: "); scanf("%lf",&hours); printf("Enter pay rate: "); scanf("%lf",&rate); grosspay = hours * rate; printf("You earned $%lf\n",grosspay); } 1/30/2020 ECE Application Programming: Lecture 6 (c) 2005, P. H. Viall
21
ECE Application Programming: Lecture 6
Flowcharts Graphical representation of process Shows all steps and their order In programming, use to organize program before writing code Basic elements Process Terminator (start/end) Input/Output Connector Decision Connector (off page) 1/30/2020 ECE Application Programming: Lecture 6
22
Example: Quadratic Equation Solver
Start Output “Quadratic Equation Solver” Output “Enter A, B, C: ” Input A, B, C 1/30/2020 ECE Application Programming: Lecture 6
23
Quadratic Equation Solver (cont.)
TRUE Output X FALSE DISC=B*B-4*A*C DISC = 0? TRUE Output X FALSE DISC>0? TRUE Output X1,X2 FALSE Output XREAL + XIMAG i XREAL – XIMAG i Done 1/30/2020 ECE Application Programming: Lecture 6
24
ECE Application Programming: Lecture 6
Flowchart: solution 1/30/2020 ECE Application Programming: Lecture 6
25
Converting flowchart to program
What data are used in the process? Can those data be represented as constants? If not, what variables are needed? How many? What type(s)? How should variables be named? What C statement corresponds to each process step? Input statements: scanf() Output statements: printf() Terminators: start/end of main() function Will generalize later to any function General process steps: basic expressions May need multiple lines of code 1/30/2020 ECE Application Programming: Lecture 6
26
ECE Application Programming: Lecture 6
Debugging Most IDEs allow ability to view state of program while running through debugger View variable values Execute program: One line at a time (single step) By running until reaching a pre-defined stopping point (breakpoint) Can isolate bugs without altering program Alternate solution: inserting print statements to show program state at various points Disadvantages Inefficient--repeated compilation, must keep adding statements May actually alter operation of other statements 1/30/2020 ECE Application Programming: Lecture 6
27
ECE Application Programming: Lecture 6
Sample program Prompts user to enter four numbers on a single line, which represent the contents of a 2x2 array After reading values, program prints matrix represented by these values For example, if the user enters “ ”, print: 1 2 3 4 Assume all values have the same number of digits Also, calculate the matrix determinant and print it on a separate line In example above, determinant = (1x4) - (2x3) = 4-6 = -2 1/30/2020 ECE Application Programming: Lecture 6
28
ECE Application Programming: Lecture 6
Debug demonstration Will use sample program to demonstrate use of following key features Breakpoints Single stepping through program Viewing program state (variable values) 1/30/2020 ECE Application Programming: Lecture 6
29
ECE Application Programming: Lecture 5
Final notes Next time Conditional statements Reminders: Text exercises: Ch. 2 due 9/18 No late textbook exercises accepted! Program 2 due Friday, 9/20 1/30/2020 ECE Application Programming: Lecture 5
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.