#include using a directive to include a header file stdio.h = standard input output header file

96

Upload: cassandra-flowers

Post on 16-Dec-2015

241 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: #include  Using a directive to include a header file  Stdio.h = standard input output header file
Page 2: #include  Using a directive to include a header file  Stdio.h = standard input output header file

#include <stdio.h> Using a directive to include a header file

Stdio.h = standard input output header file

Page 3: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Definition: Escape sequences are specially sequenced characters used to format output

\” Ex: printf(“ \ “This is quoted text \ “ “)

\’Ex: printf(“ \n A single quote looks like \’ \

n”);

\* *\ Comment Block

Page 4: #include  Using a directive to include a header file  Stdio.h = standard input output header file

To declare a constant (read only) value:

const int x = 20const float PI = 3.14

Page 5: #include  Using a directive to include a header file  Stdio.h = standard input output header file

TYPE SIZE VALUES

bool 1 byte true (1) or false (0)

char 1 byte ‘a’ to‘z’ , ‘A’ to ‘Z’, ‘0’ to ‘9’, space, tab, and so on

int 4 bytes -2,147,483,648 to 2,147,483,647

short 2 bytes -32,768 to 32,767

long 4 bytes -2,147,483,648 to 2,147,483,647

float 4 bytes + - (1.2 x 10^-38 to 3.4 x 10^38)

double 8 bytes +- (2.3 x 10^-308 to -1.7 x 10^308)

Page 6: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Can you explain what the code is doing?

Page 7: #include  Using a directive to include a header file  Stdio.h = standard input output header file
Page 8: #include  Using a directive to include a header file  Stdio.h = standard input output header file
Page 9: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Syntax:

scanf(“conversion specifier”, variable);

Page 10: #include  Using a directive to include a header file  Stdio.h = standard input output header file
Page 11: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Do you know the answers to these?

A. !( 1 || 0 )

B. !( 1 || 1 && 0 )

C. !( ( 1 || 0 ) && 0 )

Page 12: #include  Using a directive to include a header file  Stdio.h = standard input output header file

A. !( 1 || 0 ) ANSWER: 0

B. !( 1 || 1 && 0 ) ANSWER: 0 (AND is evaluated before OR)

C. !( ( 1 || 0 ) && 0 ) ANSWER: 1 (Parenthesis are useful)

Page 13: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Logical operators:

Syntax:

Page 14: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Else if:

Page 15: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Can you write code that will ask a user to enter a number 1 , 2 , or 3 and print out the following:

Page 16: #include  Using a directive to include a header file  Stdio.h = standard input output header file
Page 17: #include  Using a directive to include a header file  Stdio.h = standard input output header file
Page 18: #include  Using a directive to include a header file  Stdio.h = standard input output header file
Page 19: #include  Using a directive to include a header file  Stdio.h = standard input output header file

while ( condition ) { Code to execute while the condition is true }

Quiz: Can you write a program that prints xwhile x increments from 0 to 10?

Page 20: #include  Using a directive to include a header file  Stdio.h = standard input output header file
Page 21: #include  Using a directive to include a header file  Stdio.h = standard input output header file

do { } while ( condition );

What is the main difference between “Do while” and “while”?

Page 22: #include  Using a directive to include a header file  Stdio.h = standard input output header file

while ( condition ) { Code to execute while the condition is true }

do { } while ( condition );

Do{} while() executes code at least once!

Page 23: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Use when the number of iterations is already known

Syntax:

for ( variable initialization; condition; variable increment/decrement) {

Code to execute while the condition is true }

Page 24: #include  Using a directive to include a header file  Stdio.h = standard input output header file

#include <stdio.h>

int main() { int x;

for ( x = 0; x < 10; x++ ) { printf( "%d\n", x );

} getchar(); }

Page 25: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Write a program using a FOR Loop to display all of the multiples of 5 from 0 to 100.

Page 26: #include  Using a directive to include a header file  Stdio.h = standard input output header file

#include <stdio.h>

int main() { int x; for ( x = 0; x < =20; x++ ){

printf( "%d\n", x*5 ); }

getchar(); }

Page 27: #include  Using a directive to include a header file  Stdio.h = standard input output header file

x++; x--; Postfix++x; --x; Prefixmain(){ int x = 0;

int y = 0;printf(“\n The value of y is %d \n”, y++);printf(“\n The value of x is %d \n”, ++x);

}

Answer:01

Page 28: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Use to manipulate flow in loops

What does a Break statement do when executed within a loop?

What does a Continue statement do when executed within a loop?

Page 29: #include  Using a directive to include a header file  Stdio.h = standard input output header file

#include <stdio.h>

main() { int x; for ( x = 10; x >5; x-- )

{ if (x==7) break;

} printf( “\n %d \n ”, x );}

#include <stdio.h>

main() { int x; for ( x = 10; x >5; x-- ) { if (x==7)

continue; printf( “\n %d \n ”, x );

}}

kmnich01
"In this program, the condition (x==7) becomes true after the third iteration. Next, the break statement is executed and program control is sent out from the for loop and continues with the printf statement"(Vine)
kmnich01
7 is not included in the output because once x==7 is true, the rest of the statements are skipped and the next iteration is executed.
Page 30: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Function Prototype Syntax

return-type function_name ( arg_type arg1, ..., arg_type argN )

Function Prototypes tell you the data type returned by the function, the data type of parameters, how many parameters, and the order of parameters

Function definitions implement the function prototype

Where are function prototypes located in the program?

Where do you find function definitions?

Page 31: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Where are function prototypes located in the program? Answer: before the main(){} Function!

Function Definitions are self contained outside of the main(){} function

Page 32: #include  Using a directive to include a header file  Stdio.h = standard input output header file

#include <stdio.h>int mult ( int, int);

int main() { int x; int y; printf( "Please input two numbers to be multiplied: " ); scanf( "%d", &x ); scanf( "%d", &y ); printf( "The product of your two numbers is %d\n", mult( x,y ) ); getchar(); }

int mult (int a, int b) { return a * b;}

Page 33: #include  Using a directive to include a header file  Stdio.h = standard input output header file

#include <stdio.h> printNumber();

main(){

int x;printNumber(x);

}

void printNumber(){

printf(“\n The number is %d \n”, x)}

Page 34: #include  Using a directive to include a header file  Stdio.h = standard input output header file

#include <stdio.h> void printNumber( int x);

main(){

int x;printNumber(x);

}

void printNumber(int y){

printf(“\n The number is %d \n”, y);}

Page 35: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Functions - ExampleFunctions - Example

Page 36: #include  Using a directive to include a header file  Stdio.h = standard input output header file

#include <stdio.h>

void printNumbers();int iNumber;

main() { int x;

for(x=0, x<10,x++){printf(“\n Enter a number:”);scanf(“%d”, &iNumber);printNumbers();

}}

void printNumbers(){

printf(“\n Your number is: %d \n”, iNumber);}

Page 37: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Variable scope defines the life time of a variable

Local Scope: defined within functions and loses scope after function is finished.

Global Scope: defined outside of functions and can be accessed by multiple functions

Page 38: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Can you write code that asks a user to:

1. Input 4 integers. 1. Adds the numbers together in one function.

1. Multiplies them in another.

1. Prints out the absolute difference between the sum and product?

1. The user should have to do this 5 times.

Page 39: #include  Using a directive to include a header file  Stdio.h = standard input output header file
Page 40: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Syntax (One-dimensional Array):

array_type array_name [number-of-elements];

Two Dimensional Array array_type array_name [#ROWS] [#COLUMNS];

Page 41: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Can you declare a one-dimensional array made up of 10 integers? Answer: int iArray[10]

How to declare an Array int iArray[10]; float fAverages[30]; double dResults[3]; short sSalaries [9]; char cName[19]; //18 characters and 1

null character

Page 42: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Array index

Page 43: #include  Using a directive to include a header file  Stdio.h = standard input output header file

#include <stdio.h>

main(){

int x;int iArray[5];

for( x=0; x < 5 ; x++) { iArray[x] = 0;}

}

Page 44: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Can you add code to print out the values of the program below?

#include <stdio.h> main(){

int x;int iArray[5];

for( x=0; x < 5 ; x++) { iArray[x] = 0;}

}

Page 45: #include  Using a directive to include a header file  Stdio.h = standard input output header file

#include <stdio.h> main(){ int x; int iArray[5];

for( x=0; x < 5 ; x++) { iArray[x] = 0; }

for(x=0 ; x<5; x++) { printf(“\n The value of iArray index %d is %d \n”, x, iArray[x]); }}

Page 46: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Arrays - ExampleArrays - Example

Page 47: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Multidimensional Arrays Multidimensional Arrays

Page 48: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Multidimensional Arrays - Example Multidimensional Arrays - Example

Page 49: #include  Using a directive to include a header file  Stdio.h = standard input output header file

How do you search through an array?

Page 50: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Array Search - Answer Array Search - Answer

Page 51: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Can you make a program to sort an array of 10 integers either ascending or descending order?Consider you have the array[10]={7,8,5,3,0,3,2,1,4,10}Write a code to do the sorting.

Page 52: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Array Sort - Answer Array Sort - Answer

Page 53: #include  Using a directive to include a header file  Stdio.h = standard input output header file

StringsStrings

Since no strings inc C, strings are represented as arrays of chars.

Strings are always terminated with a null character, literally a '\0' character.

Syntax:

char my_name[my_name_length+1];

Page 54: #include  Using a directive to include a header file  Stdio.h = standard input output header file

When determining the maximum length your string variable needs to be it is important to consider a NULL Character: “\0”

char example[10]=“REACH”;

example[0] -> Rexample[1] -> Eexample[2] -> Aexample[3] -> Cexample[4] -> Hexample[5] -> \0

Page 55: #include  Using a directive to include a header file  Stdio.h = standard input output header file
Page 56: #include  Using a directive to include a header file  Stdio.h = standard input output header file
Page 57: #include  Using a directive to include a header file  Stdio.h = standard input output header file
Page 58: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Data StructuresData Structures

A group of data elements goruped together under one name.

Syntax:

To create a single structure use this syntax:

To Access a struct member use the dot (.) operator.

struct type_name {member_type1 member_name1;member_type2 member_name2;member_type3 member_name3;

};

struct_name name_of_single_strcuture;

name_of_single_structure.name_of_variable;

Page 59: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Data StructuresData Structures

typedef can also be used to define struct as follows:

Example:

Typedef struct {member_type1 member_name1;member_type2 member_name2;member_type3 member_name3;

} struct_name;

typedef struct { char name[64]; char course[128]; int age; int year; } student;

Page 60: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Data StructuresData Structures

Example:

Page 61: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Data StructuresData Structures

If you wish to have a pointer to structure to access its information, use -> operator:

Page 62: #include  Using a directive to include a header file  Stdio.h = standard input output header file
Page 63: #include  Using a directive to include a header file  Stdio.h = standard input output header file
Page 64: #include  Using a directive to include a header file  Stdio.h = standard input output header file
Page 65: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Pointers are variables that contain memory addresses as their values. A variable name directly references a value. A pointer indirectly references a value. Referencing a value through a pointer is called indirection. A pointer variable must be declared before it can be used. ALL Arrays are Pointers!

Page 66: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Examples of pointer declarations:FILE *fptr; //fptr is a pointer to a fileint *a; //a is a pointer to a intfloat *b; //b is a pointer to a floatchar *c; //c is a pointer to a char

The asterisk (*), when used as above in the declaration, tells the compiler that the variable is to be a pointer, and the type of data that the pointer points to, but NOT the name of the variable pointed to.

Page 67: #include  Using a directive to include a header file  Stdio.h = standard input output header file

When is & used?

When is * used?

& -- "address operator" which gives or produces the memory address of a data variable

* -- "dereferencing operator" which provides the contents in the memory location specified by a pointer

Page 68: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Reference operator (&)

Dereference operator (*)

Page 69: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Example:

Page 70: #include  Using a directive to include a header file  Stdio.h = standard input output header file
Page 71: #include  Using a directive to include a header file  Stdio.h = standard input output header file
Page 72: #include  Using a directive to include a header file  Stdio.h = standard input output header file

• Dynamic memory allocation in C:

The process of allocating memory during program execution is called dynamic memory allocation.

• Dynamic memory allocation functions in C:

C language offers 4 dynamic memory allocation functions. They are,

1. malloc()

1. calloc()

1. realloc()

1. free()

Page 73: #include  Using a directive to include a header file  Stdio.h = standard input output header file
Page 74: #include  Using a directive to include a header file  Stdio.h = standard input output header file

malloc():

• Used to allocate space in memory during the execution of the program.

• Does not initialize the memory allocated during execution.  It carries garbage value.

• Returns null pointer if it couldn’t able to allocate requested amount of memory.

Page 75: #include  Using a directive to include a header file  Stdio.h = standard input output header file

realloc():

• Modifies the allocated memory size by malloc() and calloc() functions to new size.

• If enough space doesn’t exist in memory of current block to extend, new block is allocated for the full size of reallocation, then copies the existing data to new block and then frees the old block.

calloc():

• Similar to malloc () except that calloc() initializes the allocated memory to zero but malloc() doesn’t.

Page 76: #include  Using a directive to include a header file  Stdio.h = standard input output header file

free():

• Frees the allocated memory by malloc(), calloc(), realloc () functions and returns the memory to the system.

sizeof():

• Gives the amount of storage, in bytes, required to store an object of the type of the operand.

Page 77: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Please enter how long your name is: 21Please enter your name: David

OUTPUT:Hello David

Please enter how long your name is: -7

OTPUT:Failed allocation memory

Page 78: #include  Using a directive to include a header file  Stdio.h = standard input output header file
Page 79: #include  Using a directive to include a header file  Stdio.h = standard input output header file
Page 80: #include  Using a directive to include a header file  Stdio.h = standard input output header file

int *n;int * n1;n=( int * ) calloc(5, sizeof(int)); // Reserves a block of memory for 5 integers

//Decide you need to reallocate more memory later in the program

n1= (int *) realloc(n, 10 * sizeof(int)); //allocate 10 integers instead of 5if (n1!=NULL){

n=n1; }else printf("Out of memory!");

realloc() returns null if unable to complete or a pointer to the newly reallocated memory.

Page 81: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Do you know the syntax for each of these, used to read and write to data files?

Pointers: think of it as the memory address of the file

fopen()

fclose()

fscanf()

fprintf()

Page 82: #include  Using a directive to include a header file  Stdio.h = standard input output header file

fopen() returns a FILE pointer back to the pRead variable

Page 83: #include  Using a directive to include a header file  Stdio.h = standard input output header file
Page 84: #include  Using a directive to include a header file  Stdio.h = standard input output header file
Page 85: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Pretty basic.

Always close files when you use fopen.

Page 86: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Reads a single field from a data file

“%s” will read a series of characters until a white space is

found

can do

fscanf(pRead, “%s%s”, name, hobby);

Page 87: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Using fscanf()Using fscanf()

Page 88: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Kelly 11/12/86 6 LouisvilleAllen 04/05/77 49 AtlantaChelsea 03/30/90 12Charleston

Can you write a program that prints out the contents of this information.dat file?

Page 89: #include  Using a directive to include a header file  Stdio.h = standard input output header file

AnswerAnswer

Page 90: #include  Using a directive to include a header file  Stdio.h = standard input output header file

The fprintf() function sends information (the arguments) according to the specified format to the file indicated by stream. fprintf() works just like printf() as far as the format goes.

Page 91: #include  Using a directive to include a header file  Stdio.h = standard input output header file

#include <stdio.h>

main(){

FILE *pWrite;

char fName[20];char lName [20];float gpa;

pWrite = fopen(“students.dat”,”w”);

if( pWrite == NULL )printf(“\nFile not opened\n”);

elseprintf(“\nEnter first name, last name, and GPA ”);printf(“separated by spaces:”);

scanf(“%s%s%f”, fName, lName, &gpa);fprintf(pWrite, “%s \t %s \t % .2f \n”, fName, lName, gpa);fclose(pWrite);

}

Page 92: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Can you write a program that asks the user for their Name Phone Number Bank account balance

and then prints this information to a data file called accounts.dat ?

Page 93: #include  Using a directive to include a header file  Stdio.h = standard input output header file
Page 94: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Good Luck in your final Exam from

REACH

Page 95: #include  Using a directive to include a header file  Stdio.h = standard input output header file

TEXTBOOK RESOURCE: C Programming for the Absolute Beginner 2nd Edition by Michael Vine

www.cprogramming.com

Page 96: #include  Using a directive to include a header file  Stdio.h = standard input output header file

Kelly 11/12/86 6 LouisvilleAllen 04/05/77 49 AtlantaChelsea 03/30/90 12Charleston

How many fields are there?How many records are there?How many bytes are there in the first record?How many bits are there in “Kelly”?

How many fields are there?How many records are there?How many bytes are there in the first record?How many bits are there in “Kelly”?