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.

16.216 ECE Application Programming

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

• 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

• 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

• 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

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

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

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

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

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

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

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

• 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

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

• Need ability to

• Print variables (or results calculated using them)

• Output: printf()

• Input: scanf()

ECE Application Programming: Lecture 4

• 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

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?

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

• printf() and scanf()—more details

ECE Application Programming: Lecture 4