Ex1: Write a C++ program, using function, to counts uppercase letter in a 20 letters entered by the user in the main program.
Sol//
برنامج C++ لحساب الأحرف الكبيرة في سلسلة مكونة من 20 حرفًا يدخلها المستخدم:
#include <iostream>
#include <string>
using namespace std;
int countUppercase(string str) {
int count = 0;
for (char c : str) {
if (isupper(c)) {
count++;
}
}
return count;
}
int main() {
char input[21]; // Array to store 20 letters + null terminator
cout << "Enter 20 letters: ";
cin.getline(input, 21); // Read entire line with maximum 20 characters
int uppercaseCount = countUppercase(input);
cout << "Number of uppercase letters: " << uppercaseCount << endl;
return 0;
}
Ex2: Write a C++ program, using function, that reads two integers (feet and inches) representing distance, then converts this distance to meter.
Note: 1 foot = 12 inch
1 inch = 2.54 Cm
Input: feet: 8 or inches: 9
Sol//
برنامج C++ لتحويل القدم والبوصة إلى متر باستخدام الوظائف:
#include <iostream>
using namespace std;
float convertDistance(int feet, int inches) {
const float INCHES_PER_FOOT = 12.0f;
const float CM_PER_INCH = 2.54f;
// Convert feet to inches and add inches
float totalInches = feet * INCHES_PER_FOOT + inches;
// Convert total inches to meters
return totalInches * CM_PER_INCH / 100.0f;
}
int main() {
int feet, inches;
cout << "Enter feet: ";
cin >> feet;
cout << "Enter inches: ";
cin >> inches;
float meters = convertDistance(feet, inches);
cout << feet << " feet and " << inches << " inches is equal to " << meters << " meters." << endl;
return 0;
}
Ex3: Write a C++ program, using function, which reads an integer value (T)representing time in seconds, and converts it to equivalent hours (hr),
minutes (mn), and seconds (sec), in the following form: hr : mn : sec
i.e .:
Input: 4000
Output: 1:6:40
Sol//
برنامج C++ لتحويل الثواني إلى ساعات ودقائق وثواني باستخدام دالة:
#include <iostream>
using namespace std;
void convertSeconds(int seconds, int& hours, int& minutes, int& remainingSeconds) {
// Calculate hours
hours = seconds / 3600;
// Calculate remaining seconds after removing hours
remainingSeconds = seconds % 3600;
// Calculate minutes from remaining seconds
minutes = remainingSeconds / 60;
// Calculate remaining seconds after removing minutes
remainingSeconds = remainingSeconds % 60;
}
int main() {
int totalSeconds;
cout << "Enter time in seconds: ";
cin >> totalSeconds;
int hours, minutes, seconds;
convertSeconds(totalSeconds, hours, minutes, seconds);
cout << hours << " : " << minutes << " : " << seconds << endl;
return 0;
}
Ex4: Write a C++ program, using function, to see if a number is an integer (odd or even) or not an integer.
Sol//
برنامج C++ للتحقق مما إذا كان الرقم عددًا صحيحًا (فرديًا أو زوجيًا) أو ليس عددًا صحيحًا باستخدام الوظائف:
#include <iostream>
using namespace std;
bool isInteger(float number) {
// Check if the decimal part is zero (within a small tolerance)
return (abs(number - floor(number)) < 1e-6);
}
bool isOdd(int number) {
return (number % 2 != 0);
}
int main() {
float number;
cout << "Enter a number: ";
cin >> number;
if (isInteger(number)) {
cout << number << " is an integer." << endl;
if (isOdd(static_cast<int>(number))) {
cout << number << " is odd." << endl;
} else {
cout << number << " is even." << endl;
}
} else {
cout << number << " is not an integer." << endl;
}
return 0;
}
Ex5: Write a C++ program, using function, to represent the permutation of n.
Sol//
برنامج C++ يستخدم وظائف لتمثيل التباديل لـ n:
#include <iostream>
#include <vector>
using namespace std;
void permute(vector<int>& data, int start, int end, vector<vector<int>>& permutations) {
if (start == end) {
permutations.push_back(data); // Base case: add the current arrangement
return;
}
for (int i = start; i <= end; i++) {
swap(data[start], data[i]); // Swap elements to generate permutations
permute(data, start + 1, end, permutations); // Recursively permute remaining elements
swap(data[start], data[i]); // Backtrack: swap back to original order
}
}
vector<vector<int>> generatePermutations(vector<int>& data) {
vector<vector<int>> permutations;
permute(data, 0, data.size() - 1, permutations);
return permutations;
}
int main() {
vector<int> numbers = {1, 2, 3}; // Example data
vector<vector<int>> permutations = generatePermutations(numbers);
cout << "Permutations of {1, 2, 3}: " << endl;
for (const vector<int>& permutation : permutations) {
for (int num : permutation) {
cout << num << " ";
}
cout << endl;
}
return 0;
}
Ex6: Write a C++ program, using function, to inputs a student's average and returns 4 if student's average is 90-100, 3 if the average is 80-89, 2 if the
average is 70-79, 1 if the average is 60-69, and 0 if the average is lower than 60.
Sol//
برنامج C++ يستخدم دالة لتحديد درجة الطالب على أساس المتوسط:
#include <iostream>
using namespace std;
int getGrade(float average) {
if (average >= 90.0f) {
return 4; // A
} else if (average >= 80.0f) {
return 3; // B
} else if (average >= 70.0f) {
return 2; // C
} else if (average >= 60.0f) {
return 1; // D
} else {
return 0; // F
}
}
int main() {
float studentAverage;
cout << "Enter student's average: ";
cin >> studentAverage;
int grade = getGrade(studentAverage);
cout << "Student's grade: " << grade << endl;
switch (grade) {
case 4:
cout << " (Excellent)";
break;
case 3:
cout << " (Good)";
break;
case 2:
cout << " (Average)";
break;
case 1:
cout << " (Pass)";
break;
case 0:
cout << " (Fail)";
break;
}
return 0;
}
Ex7: The Fibonacci Series is: 0, 1, 1, 2, 3, 5, 8, 13, 21, ... It begins with the terms 0 and land has the property that each succeeding term is the
sum of the two preceding terms. Write a C++ program, using function, to calculate the nth Fibonacci number.
Sol//
برنامج C++ يستخدم دالة لحساب رقم فيبوناتشي n:
#include <iostream>
using namespace std;
int fibonacci(int n) {
if (n <= 1) {
return n;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
int main() {
int n;
cout << "Enter the nth term for Fibonacci sequence: ";
cin >> n;
int nthFibonacci = fibonacci(n);
cout << "The " << n << "th Fibonacci number is: " << nthFibonacci << endl;
return 0;
}
Ex8: Write a C++ program, using function, to calculate the factorial of an integer entered by the user at the main program.
Sol//
برنامج C++ يستخدم دالة لحساب مضروب العدد الصحيح الذي أدخله المستخدم:
#include <iostream>
using namespace std;
// Function to calculate factorial (using non-negative integer validation)
long long factorial(int number) {
if (number < 0) {
throw invalid_argument("Factorial is not defined for negative numbers.");
} else if (number == 0) {
return 1;
} else {
long long result = 1;
for (int i = 1; i <= number; i++) {
result *= i;
}
return result;
}
}
int main() {
int num;
cout << "Enter a non-negative integer: ";
cin >> num;
try {
long long fact = factorial(num);
cout << "The factorial of " << num << " is: " << fact << endl;
} catch (const invalid_argument& e) {
cerr << "Error: " << e.what() << endl;
}
return 0;
}
Ex9: Write a C++ program, using function, to evaluate the following equation:
z = x! - y! / (x - y)!
Sol//
برنامج C++ يستخدم وظائف لتقييم المعادلة
#include <iostream>
using namespace std;
// Function to calculate factorial (using non-negative integer validation)
long long factorial(int number) {
if (number < 0) {
throw invalid_argument("Factorial is not defined for negative numbers.");
} else if (number == 0) {
return 1;
} else {
long long result = 1;
for (int i = 1; i <= number; i++) {
result *= i;
}
return result;
}
}
// Function to evaluate the equation z = x! - y! / (x - y)!
long long evaluateEquation(int x, int y) {
if (x < y) {
throw invalid_argument("x must be greater than or equal to y.");
}
long long xFactorial = factorial(x);
long long yFactorial = factorial(y);
int denominator = x - y;
if (denominator == 0) {
throw invalid_argument("Division by zero is not allowed.");
}
long long denominatorFactorial = factorial(denominator);
return xFactorial - yFactorial / denominatorFactorial;
}
int main() {
int x, y;
cout << "Enter x (non-negative integer): ";
cin >> x;
cout << "Enter y (non-negative integer, less than or equal to x): ";
cin >> y;
try {
long long result = evaluateEquation(x, y);
cout << "z = " << x << "! - " << y << "! / (" << x << " - " << y << ")! = " << result << endl;
} catch (const invalid_argument& e) {
cerr << "Error: " << e.what() << endl;
}
return 0;
}
Ex10: Write a C++ program, using function, to test the year if it's a leap or not.
Note: use y %4 == 0 && y % 100 != 0 : y % 400 == 0
#include <iostream>
using namespace std;
bool isLeapYear(int year) {
// Check for divisibility by 4 (excluding multiples of 100)
if (year % 4 == 0 && year % 100 != 0) {
return true;
}
// Check for divisibility by 400 (century years)
else if (year % 400 == 0) {
return true;
} else {
return false;
}
}
int main() {
int year;
cout << "Enter a year: ";
cin >> year;
if (isLeapYear(year)) {
cout << year << " is a leap year." << endl;
} else {
cout << year << " is not a leap year." << endl;
}
return 0;
}
Ex11:Write a C++ program, using function, to find X^y Note: use pow instruction with math.h library.
Sol//
برنامج C++ يستخدم الدالة pow من مكتبة <math.h> لحساب X ^ y:
#include <iostream>
#include <math.h> // For the pow function
using namespace std;
double calculatePower(double x, double y) {
"""Calculates x raised to the power of y."""
return pow(x, y);
}
int main() {
double base, exponent;
cout << "Enter base value (x): ";
cin >> base;
cout << "Enter exponent value (y): ";
cin >> exponent;
double result = calculatePower(base, exponent);
cout << base << "^" << exponent << " = " << result << endl;
return 0;
}
Ex12: Write C++ program, using function, to inverse an integer number: For example: 765432 > 234567
Sol//
#include <iostream>
using namespace std;
int reverseInteger(int number) {
int reversedNumber = 0;
// Handle negative numbers (optional)
bool isNegative = number < 0;
if (isNegative) {
number = -number; // Convert to positive for processing
}
// Extract digits and build the reversed number
while (number > 0) {
int lastDigit = number % 10;
reversedNumber = reversedNumber * 10 + lastDigit;
number /= 10;
}
// Restore negative sign (optional)
if (isNegative) {
reversedNumber = -reversedNumber;
}
return reversedNumber;
}
int main() {
int number;
cout << "Enter an integer: ";
cin >> number;
int reversed = reverseInteger(number);
cout << "The reversed integer of " << number << " is " << reversed << endl;
return 0;
}
Ex14:Write C++ program, using function, to find the summation of student's marks, and it's average, assume the student have 8 marks.
Sol//
برنامج C++ يستخدم دالة لحساب مجموع ومتوسط درجات الطالب (بافتراض 8 درجات):
#include <iostream>
using namespace std;
double calculateStudentMarks(int marks[]) {
"""Calculates the sum of the student's marks.
Args:
marks: An array of integers containing the student's marks (8 elements).
Returns:
The sum of the marks.
"""
int sum = 0;
for (int mark : marks) {
sum += mark;
}
return sum;
}
double calculateAverage(int marks[]) {
"""Calculates the average of the student's marks.
Args:
marks: An array of integers containing the student's marks (8 elements).
Returns:
The average of the marks, or 0 if there are no marks (empty array).
"""
double sum = calculateStudentMarks(marks);
int numMarks = sizeof(marks) / sizeof(marks[0]); // Assuming valid array size
return numMarks > 0 ? sum / numMarks : 0.0;
}
int main() {
const int numMarks = 8; // Assuming 8 marks for the student
int marks[numMarks];
cout << "Enter " << numMarks << " student marks: ";
for (int i = 0; i < numMarks; i++) {
cin >> marks[i];
}
double sum = calculateStudentMarks(marks);
double average = calculateAverage(marks);
cout << "Sum of marks: " << sum << endl;
cout << "Average: " << average << endl;
return 0;
}
Ex15:Write C++ program, using function, to convert any char. From capital to small or from small to capital.
Sol//
برنامج C++ يستخدم دالة لتحويل حرف بين الأحرف الكبيرة والصغيرة:
#include <iostream>
#include <cctype> // For tolower and toupper functions
using namespace std;
char convertCase(char ch) {
"""Converts a character between uppercase and lowercase.
Args:
ch: The character to convert.
Returns:
The converted character (uppercase if lowercase, lowercase if uppercase,
unchanged if not an alphabet).
"""
if (isalpha(ch)) {
if (isupper(ch)) {
return tolower(ch); // Convert uppercase to lowercase
} else {
return toupper(ch); // Convert lowercase to uppercase
}
} else {
return ch; // Return the character unchanged if not an alphabet
}
}
int main() {
char character;
cout << "Enter a character: ";
cin >> character;
char converted = convertCase(character);
cout << "Converted character: " << converted << endl;
return 0;
}
Ex16:Write C++ program using recursive function to find the power of n numbers.
Sol//
برنامج C++ يستخدم حلقة تكرارية لحساب قوة الرقم:
#include <iostream>
using namespace std;
int calculatePower(int base, int exponent) {
"""Calculates base raised to the power of exponent.
Args:
base: The base number.
exponent: The exponent (non-negative integer).
Returns:
The result of base raised to the power of exponent.
"""
if (exponent < 0) {
throw invalid_argument("Exponent cannot be negative.");
} else if (exponent == 0) {
return 1; // Any number raised to the power of 0 is 1
} else {
int result = 1;
for (int i = 0; i < exponent; i++) {
result *= base;
}
return result;
}
}
int main() {
int base, exponent;
cout << "Enter base value: ";
cin >> base;
cout << "Enter exponent value (non-negative): ";
cin >> exponent;
try {
int power = calculatePower(base, exponent);
cout << base << "^" << exponent << " = " << power << endl;
} catch (const invalid_argument& e) {
cerr << "Error: " << e.what() << endl;
}
return 0;
}