ECE Application Programming

Download Report

Transcript ECE Application Programming

16.216
ECE Application Programming
Instructor: Dr. Michael Geiger
Spring 2015
Lecture 2:
Basic C program structure (continued)
Data in C: Data types, constants, and variables
Lecture outline

Announcements/reminders


Sign up for the course discussion group
Program 1 due Monday, 1/26


40 points: complete simple C program
10 points: introduce yourself (preferably at my office)



If we’ve met previously, you still have to meet with me this
semester to earn these points.
Review: Basic C program structure
Today’s lecture




7/18/2015
Comments
Data types
Constants
Visual Studio demo
ECE Application Programming: Lecture 2
2
Review: Basic C program structure

Preprocessor directives


#include: typically used to specify library files
#define: generally used to define macros


Main program



Starts with: int main() or void main()
Enclosed in block: specified by { }
Ends with return 0;



We’ll use to define constants
Indicates successful completion
Not used if main() is void
Basic output


Call printf(<string>);
<string> can be replaced by characters enclosed in
double quotes

7/18/2015
May include escape sequence, e.g. \n (new line)
ECE Application Programming: Lecture 2
3
Our first C program
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
7/18/2015
ECE Application Programming: Lecture 1
4
Our first C program
# indicates pre-processor directive
include is the directive
stdio.h is the name of the file to "insert" into
our program. The <> means it is part of the C
development system
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
7/18/2015
ECE Application Programming: Lecture 1
5
Our first C program
main is the name of the primary (or main) procedure. All
ANSI C programs must have a main routine named main
The () indicates that main is the name of a procedure.
All procedure references must be followed with ()
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
7/18/2015
ECE Application Programming: Lecture 1
6
Our first C program
{ } enclose a "block". A block is zero or more C statements.
Note that code inside a block is typically indented for
readability—knowing what code is inside the current block is
quite useful.
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
7/18/2015
ECE Application Programming: Lecture 1
7
Our first C program
printf() is a "built-in" function (which is actually defined in
stdio.h).
"Hello World!" is the string to
print.
More formally, this is called the
control string or control specifier.
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
Every statement must end with a ";". Preprocessing
directives do not end with a ";" (but must end with a return).
7/18/2015
ECE Application Programming: Lecture 1
8
Our first C program
The \n is an escape character used by the printf
function; inserting this character in the control string causes
a “newline” to be printed—it’s as if you hit the “Enter” key
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
7/18/2015
ECE Application Programming: Lecture 1
9
Our first C program
The int tells the compiler our main() program will return
an integer to the operating system; the return tells what
integer value to return. This keyword could be void,
indicating that the program returns nothing to the OS.
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
7/18/2015
ECE Application Programming: Lecture 1
10
Variations #1 of first program
#include <stdio.h>
int main()
{
printf("Hello");
printf("there");
printf("World!");
return 0;
}
7/18/2015
ECE Application Programming: Lecture 1
11
Variations #2 of first program
#include <stdio.h>
int main()
{
printf("Hello\n");
printf("there\n");
printf("World!\n");
return 0;
}
7/18/2015
ECE Application Programming: Lecture 1
12
Variations #3 of first program
#include <stdio.h>
int main()
{
printf("Hello\nthere\nWorld!\n");
return 0;
}
7/18/2015
ECE Application Programming: Lecture 1
13
Variations #4 of first program
#include <stdio.h>
int main(){printf ("Hello\nthere\nWorld!\n");return 0;}
Note while this is syntactically correct, it leaves much to be desired in terms of
readability.
7/18/2015
ECE Application Programming: Lecture 1
14
Code readability

Readability wouldn’t matter if:





Entire code project written by one person
All code was in same file
Same person is the only one to use the code
Code was used only for a short period of time
More typically:


Projects are split—multiple programmers and files
Code usually reused




Multiple users
Used/adapted (hopefully) over long period of time
You may reuse code ... but forget what you originally wrote!
Bottom line: code needs to be readable
7/18/2015
ECE Application Programming: Lecture 2
15
Comments

C allows you to add comments to your code



Single line comments: start with //
Multi-line comments: start with /*
end with */
Typical uses

Multi-line comment at start of program with





For individual code sections


7/18/2015
Author’s name (& other info if appropriate)
Date started/modified
File name
Description of overall file functionality
Single/multi-line comment for major section of code performing
single function
Single line comment for single line of code if that line alone is
important
ECE Application Programming: Lecture 2
16
Comment example
/*
16.216 ECE Application Programming
Instructor: M. Geiger
7/18/2015
hello.c: Intro program to demonstrate
basic C program structure and output
*/
#include <stdio.h>
// Main program: prints basic string and exits
int main()
{
printf("Hello World!\n");
// Comment
return 0;
}
7/18/2015
ECE Application Programming: Lecture 2
17
Representing data in C

Two major questions (for now)

What kind of data are we trying to represent?


Can the program change the data?

7/18/2015
Data types
Constants vs. variables
ECE Application Programming: Lecture 2
18
Four Types of Basic Data




Integer
Floating point (single precision)
Double Precision
Character
7/18/2015
ECE Application Programming: Lecture 2
int
float
double
char
19
Integer Constants



Any positive or negative number without a
decimal point (or other illegal symbol).
Legal values:
5
-10
+25
1000 253
-26351 +98
Illegal values:
2,523 (comma)
$59 (dollar sign)
7/18/2015
6.5 (decimal point)
5. (decimal point)
ECE Application Programming: Lecture 2
20
Range of Integers
(Machine Dependent)



char
(8 bits)
short int
short
(16 bits)
int
long
long int
(32 bits)
7/18/2015
unsigned
0  255
signed
-128  +127
0  65535
-32768  + 32767
0 to 4294967295 -2147483648  2147483647
ECE Application Programming: Lecture 2
21
float/double Constants


Any signed or unsigned number with a decimal
point
Legal values:
5.
.6
+2.7
0.0
-6.5
+8.
43.4

Legal (exponential notation):
1.624e3 7.32e-2 6.02e23
1.0e2
-4.23e2 +4.0e2
1.23e-4 +11.2e+7

Illegal:
$54.23
7/18/2015
6,349.70
1.0E5
ECE Application Programming: Lecture 2
22
float/double Constants


Range of float (32 bits)
± 1.175494351 E – 38
± 3.402823466 E + 38
Range of double (64 bits)
 2.2250738585072014 E – 308
 1.7976931348623158 E + 308
7/18/2015
ECE Application Programming: Lecture 2
23
Character Constants




Stored in ASCII or UNICODE
Signified by single quotes (’ ’)
Valid character constants
’A’ ’B’ ’d’ ’z’ ’1’ ’2’
’!’ ’+’ ’>’ ’?’ ’ ’ ’#’
Invalid character constants
’GEIGER’ ’\’
’CR’
’’’
’’’’
’”’
7/18/2015
ECE Application Programming: Lecture 2
’LF’
”Q”
24
Character Escape Sequences
Char
Meaning
Char
Meaning
’\b’
Backspace
’\’’
Single quote
’\n’
Newline
’\”’
Double quote
’\t’
Tab
’\nnn’
Char with octal
value nnn
’\\’
Backslash
’\xnn’
Char with hex
value nn
7/18/2015
ECE Application Programming: Lecture 2
25
Assignment #1


Basic assignment to ensure you can write,
run, and submit programs
Write a short program that prints (each item
on its own line):





Your name
Your major
Your class (i.e. freshman, sophomore, etc.)
The name and semester of this course
Submit only your source (prog1_simple.c)
file via e-mail to [email protected]

7/18/2015
File name matters!
ECE Application Programming: Lecture 2
26
Visual Studio demo

Basics of setting up project


Steps covered in detail in Program 1 spec.
Xcode users: steps are very similar


Choose “Start New Project” when Xcode opens
Project type:




Name your project (project name doesn’t matter) and
choose a directory. Also, ensure that the type of
project is set to “C” using appropriate drop-down menu
Project includes simple C file named “main.c”


7/18/2015
Under list of “OS X” choices on the left, choose “Application”
Choose “Command Line Tool” from the options that appear
You can edit this file to include your own code
Rename this file so the name matches the program spec
ECE Application Programming: Lecture 2
27
Final notes

Next time




Variables
Operators
Basic input/output with scanf()/printf()
Reminders:


Sign up for the course discussion group
Program 1 due Monday, 1/26


40 points: complete simple C program
10 points: introduce yourself (preferably at my office)

7/18/2015
If we’ve met previously, you still have to meet with me this
semester to earn these points.
ECE Application Programming: Lecture 2
28