Download presentation
Presentation is loading. Please wait.
Published byDiana Osborne Modified over 9 years ago
1
CECS 130 Final EXAM
2
#include Using a directive to include a header file Stdio.h = standard input output header file
3
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
4
To declare a constant (read only) value: const int x = 20 const float PI = 3.14
5
TYPESIZEVALUES bool1 bytetrue (1) or false (0) char1 byte‘a’ to‘z’, ‘A’ to ‘Z’, ‘0’ to ‘9’, space, tab, and so on int4 bytes-2,147,483,648 to 2,147,483,647 short2 bytes-32,768 to 32,767 long4 bytes-2,147,483,648 to 2,147,483,647 float4 bytes+ - (1.2 x 10^-38 to 3.4 x 10^38) double8 bytes+- (2.3 x 10^-308 to -1.7 x 10^308)
7
Variables and Constants To declare a constant (read only) value: const int x = 20 const float PI = 3.14 What is wrong with this code?
8
Variables and Constants Are the following valid names for a variables in C: 1) _name 1) $student_number 1) #salary 1) 9pins+1 and 1) First-name 1) TheIncrediblyEdiblySpiderManWithTheVeryLongNameOfMoreTha n50Characters
9
Can you explain what the code is doing?
12
Syntax: scanf(“conversion specifier”, variable);
14
Do you know the answers to these? A. !( 1 || 0 ) B. !( 1 || 1 && 0 ) C. !( ( 1 || 0 ) && 0 )
15
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)
16
Logical operators: Syntax:
17
Else if:
18
Can you write code that will ask a user to enter a number 1, 2, or 3 and print out the following:
22
while ( condition ) { Code to execute while the condition is true } Quiz: Can you write a program that prints x while x increments from 0 to 10?
24
do { } while ( condition ); What is the main difference between “Do while” and “while”?
25
while ( condition ) { Code to execute while the condition is true } do { } while ( condition ); Do{} while() executes code at least once!
26
Use when the number of iterations is already known Syntax:
27
#include int main() { int x; for ( x = 0; x < 10; x++ ){ printf( "%d\n", x ); } getchar(); }
28
Write a program using a FOR Loop to display all of the multiples of 5 from 0 to 100.
29
#include int main() { int x; for ( x = 0; x < =20; x++ ) { printf( "%d\n", x*5 ); } getchar(); }
30
x++; x--; Postfix ++x; --x; Prefix main() {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: 0 1
31
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?
32
#include main() { int x; for ( x = 10; x >5; x-- ) { if (x==7) break; } printf( “\n %d \n ”, x ); } #include main() { int x; for ( x = 10; x >5; x-- ) { if (x==7) continue; printf( “\n %d \n ”, x ); }
33
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?
34
Where are function prototypes located in the program? Answer: before the main(){} Function! Function Definitions are self contained outside of the main(){} function
35
#include 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; }
36
#include printNumber(); main() { int x; printNumber(x); } void printNumber() { printf(“\n The number is %d \n”, x) }
37
#include void printNumber( int x); main() { int x; printNumber(x); } void printNumber(int y) { printf(“\n The number is %d \n”, y); }
38
Functions - Example
39
#include 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); }
40
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
42
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.
44
Syntax (One-dimensional Array): array_type array_name [number-of-elements]; Two Dimensional Array array_type array_name [#ROWS] [#COLUMNS];
45
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
46
Array index
47
#include main() { int x; int iArray[5]; for( x=0; x < 5 ; x++) { iArray[x] = 0; }
48
Can you add code to print out the values of the program below? #include main() { int x; int iArray[5]; for( x=0; x < 5 ; x++) { iArray[x] = 0; }
49
#include 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]); }
50
Arrays - Example
51
Multidimensional Arrays
53
Multidimensional Arrays - Example
54
How do you search through an array?
55
Array Search - Answer
56
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.
57
Array Sort - Answer
58
Strings 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];
59
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] -> R example[1] -> E example[2] -> A example[3] -> C example[4] -> H example[5] -> \0
63
Data 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 ;
64
Data 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;
65
Data Structures Example:
66
Data Structures If you wish to have a pointer to structure to access its information, use -> operator:
67
Structures as Functions Arguments OUTPUT:
69
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!
70
Examples of pointer declarations: FILE *fptr; // fptr is a pointer to a file int *a; // a is a pointer to an integer float *b; //b is a pointer to a float char *c; //c is a pointer to a character 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.
71
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
72
Reference operator (&) Dereference operator (*)
73
Example:
76
8
77
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()
79
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.
80
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.
81
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.
82
sizeof (char) = 1 sizeof (double) = 8 sizeof (float) = 4 sizeof (int) = 4 sizeof (long) = 4 sizeof (long long) = 8 sizeof (short) = 2 sizeof (void *) = 4 sizeof (char) = 1 sizeof (double) = 8 sizeof (float) = 4 sizeof (int) = 4 sizeof (long) = 4 sizeof (long long) = 8 sizeof (short) = 2 sizeof (void *) = 4 Data Types Length
83
Please enter how long your name is: 21 Please enter your name: David OUTPUT: Hello David Please enter how long your name is: -7 OTPUT: Failed allocation memory
86
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 5 if (n1!=NULL) { n=n1; } else printf("Out of memory!"); realloc() returns null if unable to complete or a pointer to the newly reallocated memory.
87
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()
88
fopen() returns a FILE pointer back to the pRead variable
91
Pretty basic. Always close files when you use fopen.
92
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);
93
Using fscanf()
94
Kelly11/12/866Louisville Allen04/05/7749Atlanta Chelsea03/30/9012Charleston Can you write a program that prints out the contents of this information.dat file?
95
Answer
96
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. printf()
97
#include 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 ”); printf(“separated by spaces:”); scanf(“%s%s%f”, fName, lName, &gpa); fprintf(pWrite, “%s \t %s \t %.2f \n”, fName, lName, gpa); fclose(pWrite); }
98
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 ?
99
Answer
100
CPP – Basic Input/Output
102
Basic Input/Output – New line
107
Function Overloading
108
void swap (int *a, int *b) ; void swap (float *c, float *d) ; void swap (char *p, char *q) ; The other way is to have different number of input parameters for the function
109
#include int area(int x); // square area int area(int x,int y); //triangle area float area(int x,int y, int radius); //circle area int main(){ int x=4, y=5, rad=3; cout<<"The Square area is :"<<area(x); cout<<"\nThe Triangle area is :"<<area(x,y); cout<<"\nThe Circle area is :"<<area(x,y,rad); getchar(); return 0; } int area(int x) // square area { return x*x; } int area(int x,int y ) //triangle area { return x*y; } float area(int x,int y, int radius) //circle area { return radius*radius*3.14; } Output: The Square area is: 16 The Triangle area is :20 The Circle area is: 28.26
110
int boxVolume(int length = 1, int width = 1,int height = 1) { return (length * width * height); } If the function was called with no parameters then the default values will be used.
111
Used to go out one level. If you have a global and local variables with same name, and need to call global from local scope then you need to use: ::VariableName
113
All your declared variables are automatic. Static variables keep there values as long as they exist.
114
Classes are general models from which you can create objects. Classes have data members either data types or methods. Classes should contain a constructor method and a destructor method. An object is an instantiation of a class. Objects have state and behavior. Classes and Objects
115
class ClassName { memberList }; memberList can be either data member declarations or method declarations.
116
Class Bow { //data member declarations string color; bool drawn; int numOfArrows; Bow(string aColor); //constructor ~Bow(); //destructor //methods void draw(); int fire(); };
117
Return_type ClassName::methodName(argumentList) { methodImplementation }
118
//draws the bow void Bow::draw() { drawn = true; cout<< “The “<<color<<“bow has been drawn.”<<endl; } Class name Method name
121
A class constructor is a special member function of a class that is executed whenever we create new objects of the class. The constructor will have exact same name as the class and it doesn't have return type even void. They can be useful for setting initial values for certain member variables A default constructor does not have any parameter, but if you need it can have parameters. Constructor & Destructor
123
A destructor is a special member function of a class that is executed whenever an object of its goes out of scope. The destructor will have exact same name as the class prefixed with a tilde (~) and it can neither return a value nor can it take any parameters. Constructor & Destructor
125
An inline function is one in which the function code replaces the function call directly. #include inline void test(void){ puts("Hello!");} int main () { test(); // This will be replaced with puts("Hello!") on run time return 0; }
126
Friend declarations introduce extra coupling between classes. A friend function is permitted full access to private an protected members of a class. Once an object is declared as a friend, it has access to all non-public members as if they were public. A friend function of a class is defined outside of that class's scope.
128
24
129
Can be a set of classes, objects, and functions that are included within the namespace.
131
Operator Overloading You can redefine or overload the function of most built-in operators in C++. An overloaded operator is called an operator function. You can declare an operator function with the keyword operator preceding the operator. The format is: type operator sign (parameters) { /* …. */ }
132
Operator Overloading Here is a list of all operators that can be overloaded:
133
Operator Overloading This example illustrates overloading the plus (+) operator. 4,3
134
Operator Overloading 4,3
135
class aClass // Base class { public: int anInt; } class aDerivedClass : public aClass //Derived class { protected: float aFloat; };
137
#include enum BREED { YORKIE, CAIRN, DANDIE, SHETLAND, DOBERMAN, LAB }; class Mammal{ public: Mammal(); // constructors ~Mammal(); //destructor //accessors int GetAge()const; void SetAge(int); int GetWeight() const; void SetWeight(); //Other methods void Speak(); void Sleep(); protected: int itsAge; int itsWeight; }; class Dog : public Mammal { public: Dog(); // Constructors ~Dog(); // Accessors BREED GetBreed() const; void SetBreed(BREED); // Other methods // WagTail(); // BegForFood(); protected: BREED itsBreed; }; Animals MammalsReptiles HorseDog HoundTerrier YorkieCairn
138
Private members are not available to derived classes. You could make itsAge and itsWeight public, but that is not desirable. You don't want other classes accessing these data members directly. What you want is a designation that says, "Make these visible to this class and to classes that derive from this class." That designation is protected. Protected data members and functions are fully visible to derived classes, but are otherwise private.
140
When do we need to override functions? If you are a programmer example in your slides. If we consider “Woof” of the dog as speak example. When a derived class creates a function with the same return type and signature as a member function in the base class, but with a new implementation, it is said to be overriding that method.
141
#include enum BREED { YORKIE, CAIRN, DANDIE, SHETLAND, DOBERMAN, LAB }; class Mammal { public: // constructors Mammal() { cout << "Mammal constructor...\n"; } ~Mammal() { cout << "Mammal destructor...\n"; } //Other methods void Speak()const { cout << "Mammal sound!\n"; } void Sleep()const { cout << "shhh. I'm sleeping.\n"; } protected: int itsAge; int itsWeight; }; class Dog : public Mammal { public: // Constructors Dog(){ cout << "Dog constructor...\n"; } ~Dog(){ cout << "Dog destructor...\n"; } // Other methods void WagTail() { cout << "Tail wagging...\n"; } void BegForFood() { cout << "Begging for food...\n"; } void Speak()const { cout << "Woof!\n"; } // This function is overriding the base class Speak() function private: BREED itsBreed; }; int main() { Mammal bigAnimal; Dog fido; bigAnimal.Speak(); fido.Speak(); getchar(); return 0; }
142
When you overload a method, you create more than one method with the same name, but with a different signature. When you override a method, you create a method in a derived class with the same name as a method in the base class and the same signature.
143
#include class Mammal { public: void Move() const { cout << "Mammal move one step\n"; } void Move(int distance) const { cout << "Mammal move "; cout << distance <<" _steps.\n"; } protected: int itsAge; int itsWeight; }; class Dog : public Mammal { public: // You may receive a warning that you are hiding a function! void Move() const { cout << "Dog move 5 steps.\n"; } }; int main() { Mammal bigAnimal; Dog fido; bigAnimal.Move(); bigAnimal.Move(2); fido.Move(8);// can I do this? fido.Move(); return 0; } Output: Mammal move one step Mammal move 2 steps. Dog move 5 steps
144
Templates Templates are the foundation of generic programming. Templates allow us to create function template whose functionality can be adapted to more than one type of class without repeating the entire code for each type. Single function fo a whole family of similar functions. The format is: Where Type is the type of the data and declaration is either a function declaration of a class declaration.
145
Templates
146
Function Template Generation
147
Templates – Example
148
Class Templates
149
Class Template – Example 100
150
Recursion Recursivity is the property that functions have to be called by themselves. Solving the problem by reducing it to smaller version of itself. Useful in tasks like sorting or calculating the factorial of numbers. Factorial and Power are common examples.
151
Recursion Notice here how the function calls itself.
152
Good Luck from REACH in your Final Test. Questions??
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.