LAB 4
Thái Phụng Tuấn - 2453365
Exercise 3:
#include <iostream>
using namespace std;
void solution(int);
int main(){
int length;
while (true){
cout << "Type in the length of the array:";
cin >> length;
if (length <= 0)
    cout << "The length must be a positive number. Try again."<< endl;
else break;
solution (length);
    return 0;
void solution (int a){
    float RangeOfNum[a];
    float test;
    for (int i=1; i<=a; i++){
        cout << "Type in the "<<i<<" element of the array:";
        cin >> RangeOfNum[i-1];
    test = RangeOfNum[0];
                                                                         1
    for (int i=0; i<a; i++){
        if (test < RangeOfNum[i]){
            test = RangeOfNum[i];
    cout << "The largest element in the array is: "<< test;
Exercise 4:
#include <iostream>
using namespace std;
void average(int);
int main()
int length;
while (true){
cout << "Type in the length of the array:";
cin >> length;
if (length <= 0)
    cout << "The length must be a positive number. Try again."<< endl;
else break;
average(length);
    return 0;
void average(int a){
    float RangeOfNum[a];
                                                                         2
    float result;
    float sum =0;
    for (int i=1; i<=a; i++){
        cout << "Type in the "<<i<<" element of the array:";
        cin >> RangeOfNum[i-1];
        sum += RangeOfNum[i-1];
    result = sum/a;
    cout << "The average value of the array is: "<< result;
Exercise 5:
#include <iostream>
#include <math.h>
using namespace std;
double solution(double, int);
int main()
{ double base;
    cout << "Enter the base (x):";
    cin >> base;
    int exponent;
    cout << "Enter the exponent (n):";
    cin >> exponent;
    // Xuất ra kết quả
    cout << base << " to the power of " <<exponent<<" is " << solution(base,exponent);
                                                                                         3
double solution(double a, int b){
    double result=1.0;
    int abs_b = abs(b);
    for (int i=0; i<abs_b; i++){
        result *= a;
    // Nếu số mũ là âm thì kết quả là nghịch đảo
    if (b<0)
    result = 1/result;
    return result;
Exercise 6:
#include <iostream>
using namespace std;
void solution(int);
int main(){
int length;
while (true){
cout << "Type in the length of the array:";
cin >> length;
if (length <= 0)
    cout << "The length must be a positive number. Try again."<< endl;
else break;
solution (length);
    return 0;
                                                                         4
void solution (int a){
    float RangeOfNum[a];
    float test;
    for (int i=1; i<=a; i++){
        cout << "Type in the "<<i<<" element of the array:";
        cin >> RangeOfNum[i-1];
    int PostCount = 0; int NeCount = 0;
    for (int i=0; i<a; i++){
        if (RangeOfNum[i]=0){
            continue;
        else if (RangeOfNum[i]>0){
            PostCount++;
        else NeCount++;
    cout << "The number of positive value: "<<PostCount << endl;
    cout << "The number of negative value: "<< NeCount;
Exercise 7:
#include <iostream>
using namespace std;
void solution(int);
int main(){
int length;
while (true){
                                                                   5
cout << "Type in the order of the array:";
cin >> length;
if (length <= 0)
    cout << "The order must be a positive number. Try again."<< endl;
else break;
solution (length);
    return 0;
void solution (int n){
    int matrix[100][100], transposed[100][100];
    cout << "Enter the elements of the matrix row by row:" << endl;
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            cin >> matrix[i][j];
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            transposed[j][i] = matrix[i][j];
    cout << "\nTransposed Matrix:" << endl;
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            cout << transposed[i][j] << " ";
        cout << endl;
                                                                        6
    }
Exercise 8:
#include <iostream>
#include <math.h>
using namespace std;
int main(){
    double ApproximateValue=0.0;
    double PreviousValue = 1.0;
    int n=0;
    const double tolerance = 1.0E-6;
    while (abs(ApproximateValue - PreviousValue) >= tolerance){
        PreviousValue = ApproximateValue;
        double term =(n%2==0? 1.0 : -1.0)/(2*n+1);
        ApproximateValue += term;
        n++;
    double pi= ApproximateValue *4;
    cout << "The approximate value of pi is: "<< pi;
        return 0;
Exercise 9:
#include <iostream>
#include <math.h>
#define PI 3.141592653589793
using namespace std;
                                                                  7
int main() {
    int x=5;
    //Start to calculate
    for (int i=0; i<17; i++){
         //Convert to radians
         double RadValue = x*PI/180;
         //Tabulate
        double Cos = cos(RadValue);
        double Sin = sin(RadValue);
        double Tan = tan(RadValue);
         cout << "The value of cos(" <<x<< ") is: "<<Cos<< endl
           << "The value of sin(" <<x<< ") is: "<< Sin<< endl
           << "The value of tan(" <<x<< ") is: "<< Tan<< endl<<endl;
         x+=5;
    return 0;
Exercise 10:
#include <iostream>
#include <msth.h>
using namespace std;
double factorial(int n) {
    if (n == 0 || n == 1) {
         return 1;
    return n * factorial(n - 1);
                                                                       8
int main() {
    double approximateE = 1.0;
    double previousApproximation = 0.0;
    double tolerance = 1.0E-6;
    int n = 1;
    while (abs(approximateE - previousApproximation) >= tolerance) {
        previousApproximation = approximateE;
        approximateE += 1.0 / factorial(n);
        n++; /
    cout << "The approximate value of e is: " << approximateE << endl;
    return 0;
Exercise 11:
#include <iostream>
using namespace std;
long long fibonacci(int n) {
    if (n == 0) return 0;
    if (n == 1) return 1;
    return fibonacci(n - 1) + fibonacci(n - 2);
int main() {
    int n;
    cout << "Enter the position (n) of the Fibonacci sequence: ";
    cin >> n;
                                                                         9
    if (n < 0) {
        cout << "Invalid input! n must be a non-negative integer." << endl;
        return 1;
    cout << "The Fibonacci number at position " << n << " is: " << fibonacci(n) << endl;
    return 0;
Exercise 12:
#include <iostream>
#include <math.h>
//#define PI 3.141592653589793
using namespace std;
void solution(int);
int main(){
    int length;
    while (true){
    cout << "Type in the length of the Fibonacci:";
    cin >> length;
    if (length <= 0)
        cout << "The length must be a positive number. Try again."<< endl;
    else break;
                                                                                           10
    solution (length);
    return 0;
void solution(int a){
    int Fibonacci[a];
    if (a>0) Fibonacci[0]=0;
    if (a>1) Fibonacci[1]=1;
    for (int i=2; i<a; i++){
        Fibonacci[i]=Fibonacci[i-2]+Fibonacci[i-1];
    cout << "The Fibonacci is: ";
    for (int i=0; i<a; i++){
        cout << Fibonacci[i]<<" ";
Exercise 13:
#include <iostream>
using namespace std;
int main(){
    double hourly_rates[5]={9.5, 6.4, 12.5, 5.5, 10.5};
    double working_hours[5];
    double wages[5];
    cout << "Enter the working_hours of 5 staff "<<endl;
    for (int i=0; i<5; i++){
        cout << "Staff number "<<i+1<<": ";
        cin >> working_hours[i];
                                                           11
        wages[i] = working_hours[i]*hourly_rates[i];
    cout << "\n\t" <<"Hourly Rates\t"<< "Working Hours\t"<< "Wages\n"
        <<"\t--------------------------------------"<<endl;
    for (int i=0; i<5; i++){
        cout <<'\t'<< hourly_rates[i]<<"\t\t"<<working_hours[i]<<"\t\t"<<wages[i]<<endl;
    return 0;
Exercise 14:
#include <iostream>
#include <cstring>
using namespace std;
int main() {
    char str1[100], str2[100], str3[100];
    cout << "Enter the first string: ";
    cin >> str1;
    cout << "Enter the second string: ";
    cin >> str2;
    cout << "Enter the third string: ";
    cin >> str3;
    if (strcmp(str1, str2) > 0) {
        swap(str1, str2);
                                                                                           12
     }
     if (strcmp(str2, str3) > 0) {
         swap(str2, str3);
     if (strcmp(str1, str2) > 0) {
         swap(str1, str2);
     cout << "\nStrings in alphabetical order:\n";
     cout << str1 << endl;
     cout << str2 << endl;
     cout << str3 << endl;
     return 0;
Exercise 15:
#include<iostream>
#include<string>
using namespace std;
const int MAX = 100;
struct student{
char name[20];
long int rollno;
char sex;
float height;
float weight;
};
     int main(){
                                                     13
  student cls[MAX];
  int i,n;
  cout << " How many names ? \n";
  cin >> n;
  for( i = 0; i <= n-1; ++i){
  cout << "record = "<< i+1 << endl;
  cout << "name : "; cin>> cls[i].name;
  cout << "rollno : "; cin>> cls[i].rollno;
  cout << "sex : "; cin>> cls[i].sex;
  cout << "height : "; cin>> cls[i].height;
  cout << "weight : "; cin>> cls[i].weight;
  cout << endl;
  // Task a
  cout << "Name\t"<< "Rollno\t"<<"Sex\t"<<"Height\t"<<"Weight\t\n";
  for( i = 0; i <= n-1; ++i){
  cout <<cls[i].name<<"\t"<< cls[i].rollno <<"\t"<< cls[i].sex <<"\t"<<cls[i].height<<"\
t"<<cls[i].weight<<endl;
  // Task b
  float Average_Height, Average_Weight;
  float Sum_Height=0.0, Sum_Weight=0.0;
  for (int i=0; i<n; i++){
      Sum_Height+=cls[i].height;
      Sum_Weight+=cls[i].weight;
  Average_Weight=Sum_Weight/n;
  Average_Height=Sum_Height/n;
 cout <<"The average weight is: "<< Average_Weight<<endl;
                                                                                           14
cout <<"The average height is: "<< Average_Height<<endl;
return 0;
                                                           15