Old Materialescape sequencesoperator
precedenceprintf()scanf()if()switch case&&,||while, do-while, +
+, --functions
New Material1-D arraysstring
functionsfopen()fclose()fscanf()fprintf()
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
#include <stdio.h> Using a directive to include a header file
Stdio.h = standard input output header file
A computer’s long-term memory is called nonvolatile memory and is generally associated with mass storage devices, such as hard drives.
A computer’s short term memory is called volatile memory. It loses is data when power is removed from the computer, such as RAM
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?
int main(){ printf (“%c %c \n", 'a', 65); printf ("%d %ld\n", 1977, 650000L); printf (" %10d \n", 1977); printf ("%010d \n", 1977); printf ("floats: %4.2f \n", 3.1416); printf ("%s \n", "A string"); printf(“%f \n”, 55.55);return 0; }
}
printf (“%c %c \n", 'a', 65); aAprintf ("%d %ld\n", 1977, 650000L);
1977650000printf (" %10d \n", 1977);
1977printf ("%010d \n", 1977);
0000001977printf ("floats: %4.2f \n", 3.1416); 3.14
printf ("%s \n", "A string"); A stringprintf(“%f \n”, 55.55); 55.550000
Syntaxscanf(“conversion specifier”, variable);
#include <stdio.h>
main(){
int iOperand1 = 0;int iOperand2 = 0;
printf(“\n Enter first operand: “);scanf(“%d”, &iOperand1);printf(“\n Enter second operand: “);scanf(“%d”, &iOperand2);
printf(“The result is %d \n”, 24/(iOperand1 * iOperand2)+6/3);
}
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)
Can you write code that will ask a user to enter a number 1 , 2 , or 3 and print out the following:
int a;
int main(){ printf (“Enter one of the following: %d, %d, or %d\n”, 1, 2, 3); scanf(“%d”, &a);
if(a==1|| a==2|| a ==3){
if(a==1){printf(“\n %d is the loneliest number \n“, 1); }
if(a==2){printf(“\n%d is better than %d \n”,2,1); }
if(a==3){printf(“\n%d \’ s a crowd \n”,3); }
elseprintf(“Sorry, you entered an invalid value\n”);
return 0; }}
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!
How do you generate a new line?
What will happen if a user tries to enter a decimal into scanf(“%d”, &number);
What does each of the following do? *, - , + , / , = , == , > , <
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 loopsWhat 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);
}
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);}
*Note: it’s not absolutely necessary to write VOID, but it’s a good practice.
#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. Can reuse in other functions (ex. p.123)
Global Scope: defined outside of functions and can be accessed by multiple functions
Can you write code that asks a user to input 4 integers, adds the numbers together in one function, multiplies them in another, and finally prints out the difference between the sum and product? The user should have to do this 5 times.
#include <stdio.h>
int addNumbers(int, int, int, int);int multNumbers(int, int, int, int);
main() { int a, b, c, d, counter=0; while(counter<6){
printf(“\n Please enter 4 integers separated by spaces\n”);scanf(“%d %d %d %d”, &a, &b, &c, &d);printf(“\n %d \n”, addNumbers(a,b,c,d)-multNumbers(a,b,c,d));count++;}
}
int addNumbers(int f, int g, int h, int y){
return f+g+h+y;}int multNumbers(int f, int g, int h, int y){
return f*g*h*y;}
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
Why do we initialize? Because memory spaces may not be cleared from previous values when arrays are created
Can initialize an array directly Example int iArray[5]={0,1,2,3,4};
Can initialize an array with a loop such as FOR()
#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]);}
}
How do you search through an array?
#include <stdio.h> main(){
int x;int iValue;int iFound = -1;int iArray[5];
for( x=0; x < 5 ; x++) iArray[x] = (x+x);printf(“\n Enter value to search for:”);scanf(“%d”, &iValue);
for(x=0 ; x<5; x++){ if( iArray[x] ==iValue){ iFound =x;
break; )}if(iFound >-1) printf(“\n I found your search value in element %d \n”,
iFound);else printf(“\n Sorry, your search value was not found \n”);
}
Entity Description
Bit Binary digit, 0 or 1 Smallest value in a data file
Byte Eight bits Stores a single character
Field Grouping of bytes i.e a word, social security number
Record Grouping of fields a single row of information, student name, age, ID, GPA
File Grouping of records separate fields in a record using spaces, tabs, or commas
Please enter how long your name is: 21Please enter your name:NawafHello Nawaf
Please enter how long your name is: -7Failed 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
#include <cstdio>
Main(){
FILE *pRead;pRead = fopen(“file1.dat”, “r”);
if(pRead == NULL) printf(“\nFile cannot be opened\n”);else printf(“\nFile opened for reading\n”);fclose(pRead);
}
Pretty basic, yet important.
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);
#include <stdio.h>
Main(){ FILE *pRead;
char name[10]; pRead = fopen(“names.dat”, “r”);
if( pRead == NULL ) printf( “\nFile cannot be opened\n”); else printf(“\nContents of names.dat\n”); fscanf( pRead, “%s”, name );
while( !feof(pRead) ) { printf( “%s\n”, name ); fscanf( pRead, “%s”, name ); }
fclose(pRead);}
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?
#include <stdio.h>
main(){ FILE *pRead;
char name[10]; char birthdate[9]; float number; char hometown[20];
pRead = fopen(“information.dat”, “r”);
if( pRead == NULL ) printf( “\nFile cannot be opened\n”); else fscanf( pRead, “%s%s%f%s”, &name[0], birthdate, &number,
hometown );
while( !feof(pRead) ) { printf( “%s \t %s \t %f \t %s\n”, name, birthdate, &number,
hometown ); fscanf( pRead, “%s%s%f”, name, birthdate, &number, hometown
); }
fclose(pRead);}
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”);
else{
printf(“\nEnter first name, last name, and GPA separated”printf(“Enter data 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 balanceAnd 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”?