/CPA

CPA: Programming Essentials in C++

Primary LanguageC++

Run code

To run c++ or c code using g++ type:

./run.sh <filename>

To run c code using gcc type:

./runc.sh <filename>

CLA Labworks list

Chapter1:

Lab 1.2.1 Your first program
Lab 1.3.1 Comments:are they always useful?
Lab 1.4.1 Parentheses
Lab 1.4.2(1.4.1) Floats: operators and expressions
Lab 1.4.3(1.4.2) Ints: operators and expressions
Lab 1.6.1 Logical data: operators and expressions
Lab 1.7.1 Printing data
Lab 1.7.2 Near zero float numbers
Lab 1.7.3 Getting input from user

Chapter2:

Lab 2.11.1 Structure of time or time of structure
Lab 2.11.2 Times and durations
Lab 2.1.1 Essentials of if-else statement
Lab 2.1.2 Some actualevaluations - taxes
Lab 2.1.3 Some actualevaluations - converting measurement system
Lab 2.1.4 Some actualevaluations - finding day of week
Lab 2.1.5 Some actualevaluations - finding date of Easter
Lab 2.3.1 Collatz's hypothesis
Lab 2.3.2 Some actualevaluations – finding the value of π
Lab 2.3.3 Finding positive powers of 2
Lab 2.3.4 Finding negative powers of 2
Lab 2.3.5 Drawing squares (actually: rectangles)
Lab 2.3.6 Postcard from Gizah
Lab 2.3.7 Do it yourself: Fibonacci sequence
Lab 2.3.8 Do it yourself: factorials
Lab 2.3.9 The riddle (a bit of a tricky one)
Lab 2.4.1 Counting bits (the ones)
Lab 2.4.2 Bitwise palindromes
Lab 2.5.1 A realand usable calculator
Lab 2.9.1 Simple vector manipulations
Lab 2.9.2 Collecting banknotes
Lab 2.9.3 Palindromes once again
Lab 2.9.4 Evaluating different kinds of means
Lab 2.9.5 Two-dimensional square array – symmetric or not?

Chapter3:

Lab 3.10.1 Using pseudorandom values - a little lottery
Lab 3.10.2 Dynamic data – how to obtain it and how to get rid of it
Lab 3.2.1 Vectors and pointers: first try
Lab 3.2.2 Matrices and pointers – a step inside
Lab 3.4.1 Old problems, new methods: functions
Lab 3.4.2 One step further: finding the lengths of months
Lab 3.4.3 Second step further: finding day of year
Lab 3.4.4 Third step further – counting the days
Lab 3.4.5 A foretaste of system programming – obtaining the current date
Lab 3.4.6 Prime numbers – how do we find them?
Lab 3.6.1 Modifying a function argument's value – how do we do it?
Lab 3.8.1 Overloading functions

Chapter4:

Lab 4.1.1 Multi-dimensionalarrays of variable length
Lab 4.2.1 Range of integer type
Lab 4.2.2(4.2.1) Comparing floating-point numbers
Lab 4.4.1 String manipulation: pangrams
Lab 4.5.10(4.5.8) Text manipulation: templates
Lab 4.5.1 String in functions: IP numbers
Lab 4.5.2(4.5.1) Text manipulation: duplicate white space
Lab 4.5.3(4.5.1) Text manipulation:eliminate duplicates
Lab 4.5.4(4.5.2) Text manipulation: find and replace
Lab 4.5.5(4.5.3) Text manipulation: stop word elimination
Lab 4.5.6(4.5.4) Text manipulation:anagrams
Lab 4.5.7(4.5.5) Text manipulation: pattern matching
Lab 4.5.8(4.5.6) Text manipulation: plain-text formatting
Lab 4.5.9(4.5.7) Text manipulation: password validation

Chapter5:

Lab 5.1.1 Classes and Objects in C++
Lab 5.1.2 Restricting access to object data
Lab 5.1.3 Obtaining derived data from an object
Lab 5.1.4 Classes and objects: ShopItemOrder
Lab 5.3.10 Points in 2D: part 3
Lab 5.3.11 Inheritance basics: part 1
Lab 5.3.12 Inheritance basics: part 2
Lab 5.3.13(5.3.1) Singly linked list: part 1
Lab 5.3.14(5.3.2) Singly linked list: part 3
Lab 5.3.15(5.3.3) Singly linked list: part 3
Lab 5.3.16(5.3.4) Singly linked list: part 4
Lab 5.3.17(5.3.5) Singly linked list: part 5
Lab 5.3.18(5.3.6) Singly linked list: part 6
Lab 5.3.19(5.3.7) Singly linked list: part 7
Lab 5.3.1 Flight booking system: part 1
Lab 5.3.20(5.3.8) Doubly linked list
Lab 5.3.2 Flight booking system: part 2
Lab 5.3.3 Flight booking system: part 3
Lab 5.3.4 Gym membership management system
Lab 5.3.5 Modelling fractions: part 1
Lab 5.3.6 Modelling fractions: part 2
Lab 5.3.7 Modelling fractions: part 3
Lab 5.3.8 Points in 2D: part 1
Lab 5.3.9 Points in 2D: part 2

Chapter6:

Lab 6.3.1 Polymorphism: part 1
Lab 6.3.2(6.3.1) Polymorphism: part 2
Lab 6.3.3(6.3.1) Polymorphism: part 3
Lab 6.4.1 Interfaces and virtual functions: part 1
Lab 6.4.2 Interfaces and virtual functions: part 2
Lab 6.4.3 Interfaces and virtual functions: part 3
Lab 6.4.4 Your own game
Lab 6.5.1 Composition: part 1
Lab 6.5.1 Composition: part 2

Chapter7:

Lab 7.1.1 Exceptions: input validation
Lab 7.1.2(7.1.1) Exceptions: divide by zero
Lab 7.2.1 Exceptions: input validation
Lab 7.2.2(7.2.1) Exceptions:catch block
Lab 7.2.3(7.2.1) Exceptions: simple checks
Lab 7.3.1 Exceptions: file checks
Lab 7.3.2(7.3.1) Exceptions:checking strings
Lab 7.5.1 Exceptions: including information in exceptions

Chapter8:

Lab 8.1.1 Operators: iostream and operators
Lab 8.1.2(8.1.1) Operators: non-natural way of using
Lab 8.2.1 Enums: representing values
Lab 8.4.1 Operators: representing values and values order
Lab 8.4.2(8.4.1) Operators:complex classes
Lab 8.4.3(8.4.1) Operators:arithmetic operators