#include using a directive to include a header file stdio.h = standard input output header file
TRANSCRIPT
#include <stdio.h> 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
To declare a constant (read only) value:
const int x = 20const float PI = 3.14
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)
Can you explain what the code is doing?
Syntax:
scanf(“conversion specifier”, variable);
Do you know the answers to these?
A. !( 1 || 0 )
B. !( 1 || 1 && 0 )
C. !( ( 1 || 0 ) && 0 )
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)
Logical operators:
Syntax:
Else if:
Can you write code that will ask a user to enter a number 1 , 2 , or 3 and print out the following:
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?
do { } while ( condition );
What is the main difference between “Do while” and “while”?
while ( condition ) { Code to execute while the condition is true }
do { } while ( condition );
Do{} while() executes code at least once!
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 }
#include <stdio.h>
int main() { int x;
for ( x = 0; x < 10; x++ ) { printf( "%d\n", x );
} getchar(); }
Write a program using a FOR Loop to display all of the multiples of 5 from 0 to 100.
#include <stdio.h>
int main() { int x; for ( x = 0; x < =20; x++ ){
printf( "%d\n", x*5 ); }
getchar(); }
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
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?
#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 );
}}
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?
Where are function prototypes located in the program? Answer: before the main(){} Function!
Function Definitions are self contained outside of the main(){} function
#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;}
#include <stdio.h> printNumber();
main(){
int x;printNumber(x);
}
void printNumber(){
printf(“\n The number is %d \n”, x)}
#include <stdio.h> void printNumber( int x);
main(){
int x;printNumber(x);
}
void printNumber(int y){
printf(“\n The number is %d \n”, y);}
Functions - ExampleFunctions - Example
#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);}
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
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.
Syntax (One-dimensional Array):
array_type array_name [number-of-elements];
Two Dimensional Array array_type array_name [#ROWS] [#COLUMNS];
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
Array index
#include <stdio.h>
main(){
int x;int iArray[5];
for( x=0; x < 5 ; x++) { iArray[x] = 0;}
}
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;}
}
#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]); }}
Arrays - ExampleArrays - Example
Multidimensional Arrays Multidimensional Arrays
Multidimensional Arrays - Example Multidimensional Arrays - Example
How do you search through an array?
Array Search - Answer Array Search - Answer
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.
Array Sort - Answer Array Sort - Answer
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];
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
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;
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;
Data StructuresData Structures
Example:
Data StructuresData Structures
If you wish to have a pointer to structure to access its information, use -> operator:
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!
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.
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
Reference operator (&)
Dereference operator (*)
Example:
• 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()
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.
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.
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.
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
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.
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()
fopen() returns a FILE pointer back to the pRead variable
Pretty basic.
Always close files when you use fopen.
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);
Using fscanf()Using fscanf()
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?
AnswerAnswer
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.
#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);
}
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 ?
Good Luck in your final Exam from
REACH
TEXTBOOK RESOURCE: C Programming for the Absolute Beginner 2nd Edition by Michael Vine
www.cprogramming.com
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”?