16.216 ECE Application Programming

1 / 18

# 16.216 ECE Application Programming - PowerPoint PPT Presentation

16.216 ECE Application Programming. Instructor: Dr. Michael Geiger Fall 2011 Lecture 4: Variables printf() introduction. Lecture outline. Announcements/reminders Course home page: http://mgeiger.eng.uml.edu/16216/sp12/ Discussion group on piazza.com

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about '16.216 ECE Application Programming' - ivor-cross

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### 16.216ECE Application Programming

Instructor: Dr. Michael Geiger

Fall 2011

Lecture 4: Variables

printf() introduction

Lecture outline
• Announcements/reminders
• Discussion group on piazza.com
• Search for “16.216”; remember, use Spring (not Winter) 2012
• Assignment 1 due 11:59 PM today
• Source file name matters (prog1_simple.c)!
• No .cpp files
• No zipped archives of entire project
• Submit only .c file
• Assignment 2 posted, due 2/6
• Review: data representation
• Number system basics
• Constants
• Types
• Variables
• Today
• More on variables
• Basic I/O

ECE Application Programming: Lecture 4

Review: Number system basics
• Base conversions
• Use power rule to go from binary/hex to decimal
• Use repeated division (or practice) to go from decimal to binary/hex
• Representing data in C
• Four basic data types
• int, float, double, char
• Constants
• Discussed viable ranges for all types
• #define to give symbolic name to constant

ECE Application Programming: Lecture 4

Review: variables
• Four basic data types
• int, float, double, char
• Variables
• Have name, type, value, memory location
• Variable declarations: examples
• int x;
• float a, b;
• double m = 2.35;

ECE Application Programming: Lecture 5

Variables - declaring

main(){ float hours, payrate; float grosspay; int j;

var name

memory loc

hours

?

4278

payrate

?

427C

4280

grosspay

?

j

?

4284

ECE Application Programming: Lecture 4

Variables - assigning

varname = expression;

Declared variable

single variable on left side of =

expression

any legal expression

• Expression can be constant, variable, function call, arithmetic operation, etc.
• Variable type (int, float, etc) and expression result type should match
• If not, funny things can happen ...

ECE Application Programming: Lecture 4

Variables (cont.)

main(){ float hours, payrate; float grosspay; int j;

hours = 40.0;

var name

memory loc

hours

40.0

4278

payrate

?

427C

4280

grosspay

?

j

?

4284

ECE Application Programming: Lecture 4

Variables (cont.)

main(){ float hours, payrate; float grosspay; int j;

hours = 40.0;

payrate = 20.00;

var name

memory loc

hours

40.0

4278

payrate

20.0

427C

4280

grosspay

?

j

?

4284

ECE Application Programming: Lecture 4

Variables (cont.)

main(){ float hours, payrate; float grosspay; int j;

hours = 40.0;

payrate = 20.00;

grosspay = hours * payrate

var name

memory loc

hours

40.0

4278

payrate

20.0

427C

4280

grosspay

800.00

j

?

4284

note: referencing a variable only "reads" it (non-destructive). Assigning to a variable overwrites whatever was there (destructive).

ECE Application Programming: Lecture 4

Variables (cont.)

main(){ float hours, payrate; float grosspay; int j;

hours = 40.0;

payrate = 20.00;

grosspay = hours * payrate

j = 5;

var name

memory loc

hours

40.0

4278

payrate

20.0

427C

4280

grosspay

800.00

j

5

4284

note: referencing a variable only "reads" it (non-destructive). Assigning to a variable overwrites whatever was there (destructive).

ECE Application Programming: Lecture 4

Variables (cont.)

main(){ float hours, payrate; float grosspay; int j;

hours = 40.0;

payrate = 20.00;

grosspay = hours * payrate

j = 5;

j = j + 1;

var name

memory loc

hours

40.0

4278

payrate

20.0

427C

4280

grosspay

800.00

j

5 6

4284

note: referencing a variable only "reads" it (non-destructive). Assigning to a variable overwrites whatever was there (destructive).

ECE Application Programming: Lecture 4

Example 1: Variables
• What values do w, x, y, and z have at the end of this program?

int main() {

int w = 5;

float x;

double y;

char z = ‘a’;

x = 8.579;

y = -0.2;

w = x;

y = y + 3;

z = w – 5;

return 0;

}

ECE Application Programming: Lecture 4

Example 1 solution

int main() {

int w = 5;

float x;

double y;

char z = ‘a’;

x = 8.579;

y = -0.2;

w = x;

y = y + 3;

z = w – 5;

return 0;

}

w = 5

z = ‘a’ (ASCII value 97)

x = 8.579

y = -0.2

w = 8 (value is truncated)

y = (-0.2) + 3 = 2.8

z = 8 – 5 = 3

ECE Application Programming: Lecture 4

I/O basics
• Need ability to
• Print variables (or results calculated using them)
• Output: printf()
• Input: scanf()

ECE Application Programming: Lecture 4

printf() formatting
• To print variables (or constants), insert %<type> in your format string
• %c: single character
• %d or %i: signed decimal integer
• %u: unsigned decimal integer
• %x or %X: unsigned hexadecimal integer
• %f: float; %lf: double
• Prints 6 digits after decimal point by default
• %s: string

ECE Application Programming: Lecture 2

examples - printf()

float a=67.49,b=9.999925;printf("hello %f there %f\n",a,b);printf("%f%f%f%f\n",a,a,b,b);printf("a=%f, b=%f",a,b);printf("Cool huh?\n");

Printed:

hello 67.490000 there 9.99992567.49900067.4990009.9999259.999925a=67.490000, b=9.999925Cool huh?

printf() example

float a=67.49,b=9.999925;printf("hello %f there %f\n",a,b);printf("%f%f%f%f\n",a,a,b,b);printf("a=%f, b=%f",a,b);printf("Cool huh?\n");

Printed:

hello 67.490000 there 9.99992567.49000067.4900009.9999259.999925a=67.490000, b=9.999925Cool huh?

ECE Application Programming: Lecture 5

Next time
• printf() and scanf()—more details

ECE Application Programming: Lecture 4