search

Рекомендация: прочитайте задачу! Выполните ее и сравните полученный результат с картинкой CMD

Если вы полностью уверены что не можете осилить эту задачу, советую вам просмотреть код и полностью в нем разобраться! Протестировать все в отладчике!

Написать функцию, которая получает в качестве ар- гументов целое положительное число и систему счис- ления, в которую это число должно переводится (си- стемы счисления от 2 до 36). Например, при переводе числа 27 в систему счисления 16 должно получиться 1B; 13 в 5-ю — 23; 35 в 18-ю — 1H.
	
#include <iostream>
using namespace std;
#define STOP_CMD system("pause"); 
#define COLOR_CMD system("color 0A"); 

void CalculationSystem(long long int PozitiveValue, long long int CalculationValue) {
	const int size = 255;
	int ArrayResult[255] = { 0 };
	int count = 0;
	if (CalculationValue <= 36 && CalculationValue >= 2 && PozitiveValue <= 9223372036854775807 && PozitiveValue > 0) {
		while (PozitiveValue > 0) { //Calculation of the number system
			ArrayResult[count] = PozitiveValue % CalculationValue;
			PozitiveValue /= CalculationValue;
			count++;
		}
		for (int i = count - 1; i >= 0; i--) { //Outputting data in reverse order
			if (ArrayResult[i] < 10) cout << ArrayResult[i];
			else cout << char(ArrayResult[i] - 10 + 'a'); // Conversion
		}
		cout << endl;
		cout << "Values = " << count << endl;

	}
	else { cout << "MAX 36 || MIN 2 && MAX Value = 9223372036854775807 && MIN Value = 0" << endl; }
}

int main() {
	COLOR_CMD
		CalculationSystem(255, 2);
	STOP_CMD
	return 0;
}	

array	
Игра «кубики». Условие: имеется два игральных кубика со значениями от 1 до 6. Игра происходит с компью- тером, кубики бросаются поочередно. Побеждает тот, у кого сумма выпавших очков по итогам пяти бро- сков больше. Предусмотрите возможность получения первого хода человеком или компьютером. Кубики отображаются с помощью символов. В конце игры необходимо выводить среднюю сумму по броскам для обоих участников.
	
#include <iostream>
using namespace std;
#define STOP_CMD system("pause"); 
#define COLOR_CMD system("color 0A");

const int str = 5, col = 5; //const STRING COLUMN
char ArrCube[str][col] = { 0 }; // cube
float averageM = 0, averageC = 0; //AVERAGE PC AND USER
int RandValueUser = 0, RandValueComputer = 0, Throw1 = 0, Throw2 = 0, gameOver = 0;
char symbolUser = 0; // CHECK

void cubes(int RandomValue, char arr[][5], int str, int col) { //CUBES

	for (int i = 0; i < str; i++) { // CUBE
		for (int j = 0; j < col; j++) {
			if (i == 0 || i == str - 1 || j == 0 || j == col - 1) {
				arr[i][j] = '#';
			}
			else
			{
				arr[i][j] = ' ';
			}
		}
	}
	switch (RandomValue)
	{
	case 1: {
		arr[str / 2][col / 2] = 'O';
		break;
	}
	case 2: {
		arr[str / 2 - 1][col / 2 - 1] = 'O';
		arr[str / 2 + 1][col / 2 + 1] = 'O';
		break;
	}
	case 3: {
		arr[str / 2 - 1][col / 2 - 1] = 'O';
		arr[str / 2][col / 2] = 'O';
		arr[str / 2 + 1][col / 2 + 1] = 'O';
		break;
	}
	case 4: {
		arr[1][1] = 'O';
		arr[1][col - 2] = 'O';
		arr[str - 2][1] = 'O';
		arr[str - 2][col - 2] = 'O';
		break;
	}
	case 5: {
		arr[1][1] = 'O';
		arr[1][str - 2] = 'O';
		arr[str / 2][col / 2] = 'O';
		arr[str - 2][1] = 'O';
		arr[str - 2][col - 2] = 'O';
		break;
	}
	case 6: {
		arr[1][1] = 'O';
		arr[1][2] = 'O';
		arr[1][col - 2] = 'O';
		arr[str - 2][1] = 'O';
		arr[str - 2][2] = 'O';
		arr[str - 2][col - 2] = 'O';
		break;
	}
	default:
		cout << "Erorr";
		break;
	}
}

int ManThrow1() { // MAN
	cout << "Throw the first cube (Enter 1): " << endl;
	cin >> Throw1;
	if (Throw1 == 1) {
		RandValueUser = rand() % 6 + 1;
		averageM += RandValueUser;
		return RandValueUser;
	}
	else
	{
		cout << "Enter 1" << endl;
	}
}
int ManThrow2() { // MAN
	cout << "Throw the second cube (Enter 2): " << endl;
	cin >> Throw2;
	if (Throw2 == 2) {
		RandValueUser = rand() % 6 + 1;
		averageM += RandValueUser;
		return RandValueUser;
	}
	else
	{
		cout << "Enter 2" << endl;
	}
}
int Computer() { //COMPUTER
	cout << "Computer run: " << endl;
	RandValueUser = rand() % 6 + 1;
	averageC += RandValueUser;
	return RandValueUser;
}
void menu() { // MENU

	cout << "*******************************************\n";
	cout << "*           The game of cubes             *\n";
	cout << "*******************************************\n";
	cout << "**| The computer goes first | (Enter C) |**\n";
	cout << "**| The man walks first     | (Enter M) |**\n";
	cout << "*******************************************\n" << endl;
	cout << "***rules of the game***\nThe game is throwing dice! 2 dice for every move of 5 moves!\n" << endl;
	cout << endl;
	cin >> symbolUser;
	cout << endl;
}
void display(char arr[][5], int str, int col) { // Display Cubes
	for (int i = 0; i < str; i++) {
		for (int j = 0; j < col; j++) {
			cout << arr[i][j] << " ";
		}
		cout << endl;
	}
	cout << endl;
}
void StartGame() {
	menu();
	while (gameOver < 5) // gameOver (counter Five)
	{
		if (symbolUser == 'C') { // Computer one
			cubes(Computer(), ArrCube, str, col);
			display(ArrCube, str, col);
			cubes(Computer(), ArrCube, str, col);
			display(ArrCube, str, col);
			cubes(ManThrow1(), ArrCube, str, col);
			display(ArrCube, str, col);
			cubes(ManThrow2(), ArrCube, str, col);
			display(ArrCube, str, col);
		}
		if (symbolUser == 'M') { //User one
			cubes(ManThrow1(), ArrCube, str, col);
			display(ArrCube, str, col);
			cubes(ManThrow2(), ArrCube, str, col);
			display(ArrCube, str, col);
			cubes(Computer(), ArrCube, str, col);
			display(ArrCube, str, col);
			cubes(Computer(), ArrCube, str, col);
			display(ArrCube, str, col);
		}
		gameOver++; //counter
	}
	cout << "Average points MAN = " << averageM / 10 << " " << "Number of points = " << averageM << endl;
	cout << "Average points Computer = " << averageC / 10 << " " << "Number of points = " << averageC << endl;
}

int main() {
	COLOR_CMD
		StartGame();
	STOP_CMD
	return 0;
}	

array	
Написать шаблон функции для поиска среднего ариф- метического значений массива.
	
#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;
#define STOP_CMD system("pause"); 
#define COLOR_CMD system("color 0A");

template <typename T1, typename T2> T1 average(T1 arr[], T2 size) {
	double AverageArr = 0;
	for (int i = 0; i < size; i++) {
		AverageArr += arr[i];
	}
	return AverageArr / size;
}

int main() {
	COLOR_CMD
		srand(time(NULL)); 
		/*Average*/
	const int sizeArr = 10;
	double Arr[sizeArr] = { 0 };
	for (int i = 0; i < sizeArr; i++) {
		Arr[i] = rand() % 10;
	}
	for (int i = 0; i < sizeArr; i++) {
		cout << Arr[i];
	}
	cout << endl;
	cout << average(Arr, sizeArr);
	cout << endl; 
	STOP_CMD
	return 0;
}	

array	
Написать перегруженные шаблоны функций для на- хождения корней линейного (a*x + b = 0) и квадратного (a*x2+b*x + c = 0) уравнений. Замечание: в функции передаются коэффициенты уравнений.
	
#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;
#define STOP_CMD system("pause"); 
#define COLOR_CMD system("color 0A");

template <typename T1, typename T2> T1 linear(T1 b, T2 a) {
	if (b < 0 && a < 0) { return b / a; }
	if (b > 0 && a > 0 && b < a) { return double((-a) / b); }
	if (b > 0 && a > 0 && b > a) { return double((-b) / a); }
	else { return (-b) / a; }
}
template <typename T1, typename T2, typename T3> T1 quadratic(T1 a, T2 b, T3 c) {
	double D = (b * b) - (a * c * 4); //discriminant
	double ResultX1 = 0, ResultX2 = 0;
	if (D == 0) {
		ResultX1 = ((-b) + sqrt(D)) / (2 * a); // x1
		cout << "X1 = " << ResultX1 << endl; // display
		cout << "Discriminant = 0 " << endl;
	}
	if (D > 0) {
		ResultX1 = ((-b) + sqrt(D)) / (2 * a); // x1
		cout << "X2 = " << ResultX1 << endl; // display
		ResultX2 = ((-b) - sqrt(D)) / (2 * a); // x2
		cout << "X1 = " << ResultX2 << endl; // display
	}
	if (D < 0) { cout << "Discriminant < 0" << endl; return -1; } // discriminant = -discriminant
}
int main() {
	COLOR_CMD
		srand(time(NULL)); 
	/*Equations*/
	linear(10, 20);
	quadratic(1, 20, 30);

	STOP_CMD
	return 0;
}	

array	
Написать функцию, которая принимает в качестве параметров вещественное число и количество знаков после десятичной точки, которые должны остаться. Задачей функции является округление вышеуказан- ного вещественного числа с заданной точностью
	
#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;
#define STOP_CMD system("pause"); 
#define COLOR_CMD system("color 0A");

double RoundingNumber(double number, int precision) {

	int storage = number; // storage = integer
	number -= storage;
	int counter = precision; // two while

	while (precision > 0) { number *= 10; precision--; } // one counter precision = 0

	double value = int(number);

	while (counter > 0) { value /= 10; counter--; } // two counter counter = 0
	return double(storage + value); //Conversion double
}

int main() {
	COLOR_CMD
		srand(time(NULL)); 

	/*RoundingNumber */
	cout << RoundingNumber(9.527456, 3) << endl; 

	STOP_CMD
	return 0;
}	

array	
Дан массив чисел размерностью 10 элементов. Написать функцию, которая сортирует массив по возрастанию или по убыванию, в зависимости от третьего пара- метра функции. Если он равен 1, сортировка идет по убыванию, если 0, то по возрастанию. Первые 2 па- раметра функции — это массив и его размер, третий параметр по умолчанию равен 1.
	
#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;
#define STOP_CMD system("pause"); 
#define COLOR_CMD system("color 0A");

void InsertSortInversion(int arr[], int size, int inversion) { //FUNC SORT

	if (inversion == 0) { // From Less to Greater
		int i, j, tmp;
		for (i = 0; i < size; i++) {
			tmp = arr[i]; //Temporary variable
			for (j = i - 1; j >= 0 && arr[j] > tmp; j--) { // InsertSort
				arr[j + 1] = arr[j];
			}
			arr[j + 1] = tmp;
		}
	}

	if (inversion == 1) { // From Greater to less
		int i, j, tmp;
		for (i = 0; i < size; i++) {
			tmp = arr[i];
			for (j = i - 1; j >= 0 && arr[j] < tmp; j--) { // InsertSort
				arr[j + 1] = arr[j];
			}
			arr[j + 1] = tmp;
		}
	}
}

int main() {
	COLOR_CMD
		srand(time(NULL)); 

	const int SIZE = 10;
	int arr[SIZE];

	for (int i = 0; i < SIZE; i++) {
		arr[i] = rand() % 10;
	}

	InsertSortInversion(arr, SIZE, 1);

	for (int i = 0; i < SIZE; i++) {
		cout << arr[i] << "\t";
	}
	cout << endl;

	STOP_CMD
	return 0;
}	

array	
Дан массив случайных чисел в диапазоне от –20 до +20. Необходимо найти позиции крайних отрицательных элементов (самого левого отрицательного элемента и самого правого отрицательного элемента) и отсо- ртировать элементы, находящиеся между ними.

#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;
#define STOP_CMD system("pause"); 
#define COLOR_CMD system("color 0A");

int PositionsLeftNegativeNumber(int arr[], int size) {
	for (int i = 0; i < size; i++)
		if (arr[i] < 0) { return i; } // search element LEFT
	return -1;
}
int PositionsRightNegativeNumber(int arr[], int size) {
	for (int i = size - 1; i > 0; i--)
		if (arr[i] < 0) { return i; } // search element RIGHT
	return -1;
}

template <class T>
void SortBooble(T arr[], T size, T LeftPosition, T RightPosition) { // FUNC SORT

	T tmp = 0; // Temporary variable

	for (T i = LeftPosition; i < RightPosition + 1; i++) {
		for (T j = RightPosition; j > i; j--) {
			if (arr[j] < arr[i]) { // SORT
				tmp = arr[i];
				arr[i] = arr[j];
				arr[j] = tmp;
			}
		}
	}
}

int main() {
	COLOR_CMD
		srand(time(NULL)); 
	const int size = 10;
	int arr[size];

	for (int i = 0; i < size; i++) {
		arr[i] = rand() % 40 - 20;
	}

	SortBooble(arr, size, PositionsLeftNegativeNumber(arr, size), PositionsRightNegativeNumber(arr, size));
	for (int i = 0; i < size; i++) {
		cout << arr[i] << "\t";
	}
	cout << endl;
	STOP_CMD
	return 0;
}

array	
Дан массив из 20 целых чисел со значениями от 1 до 20. Необходимо:
■■ написать функцию, разбрасывающую элементы мас- сива произвольным образом;
■■ создать случайное число из того же диапазона и найти позицию этого случайного числа в массиве;
■■ отсортировать элементы массива, находящиеся сле- ва от найденной позиции по убыванию, а элементы массива, находящиеся справа от найденной позиции по возрастанию.

#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;
#define STOP_CMD system("pause"); 
#define COLOR_CMD system("color 0A");

void RandArrayIndex(int arr[], int size) { // Random Array Elements
	int RandStart = 0, RandEnd = 0, tmp = 0;
	for (int i = 0; i < size; i++) {
		RandStart = rand() % size;
		RandEnd = rand() % size;
		if (RandStart != RandEnd) {
			tmp = arr[RandStart];
			arr[RandStart] = arr[RandEnd];
			arr[RandEnd] = tmp;
		}
	}
}
int SearchPosition(int arr[], int size) { // Search position
	int PositionNumber = arr[rand() % size];
	for (int i = 0; i < size; i++) {
		if (arr[i] == PositionNumber) {
			return i;
		}
	}
	return -1;
}
void SortRandNumber(int arr[], int size, int Position) { // Sort Array ==>> [Position big to less] [Position from Less to Big]
	int tmp = 0;

	for (int i = 0; i < Position; i++) { // Position big to less
		for (int j = Position - 1; j > i; j--) {
			if (arr[j] > arr[i]) { // SORT
				tmp = arr[i];
				arr[i] = arr[j];
				arr[j] = tmp;
			}
		}
	}
	for (int i = Position; i < size; i++) { // Position from Less to Big
		for (int j = size - 1; j > i; j--) {
			if (arr[j] < arr[i]) { // SORT
				tmp = arr[i];
				arr[i] = arr[j];
				arr[j] = tmp;
			}
		}
	}
}
int main() {
	COLOR_CMD
		srand(time(NULL)); 
	const int size = 20;
	int arr[size] = { 0 };

	for (int i = 0; i < size; i++) {
		arr[i] = rand() % 20 + 1;
	}

	RandArrayIndex(arr, size);
	SortRandNumber(arr, size, SearchPosition(arr, size));

	for (int i = 0; i < size; i++) {
		cout << arr[i] << " ";
	}
	cout << endl;
	STOP_CMD
	return 0;
}	

array