Quick actions

cmd+k|ctrl+k

Navigation

Languages

Лабораторная 6

Snippet info

Language

Cpp

Visibility

public

Author

vladislav-taranenko

Created

2019-12-13T01:10:22Z

Updated

2019-12-13T01:10:22Z

#include <iostream> 
#include <time.h>
#include <set>
#include <iomanip>
using namespace std;
int Task18()
//18.Дан массив A. Определить сумму знакочередующейся последовательности A[1] – А[2] + А[3] – A[4] + ... . 
//Условную инструкцию и операцию возведения в степень не использовать.
{
	int n;
	cout << "Введите количество чисел\n> "; cin >> n;

	double* A = new double[n], sign = 1., sum = 0.;

	cout << "Введите " << n << " чисел:\n> ";
	for (int i = 0; i < n; i++)
	{
		cin >> A[i];
		sum += sign * A[i];
		sign = -sign;
	}

	cout << "sum = " << sum << "\n";

	delete[]A;
	system("pause");
	return 0;
}
int Task53()
//53.	Сформировать массив простых чисел, не превышающих заданное натуральное число N
{

	int i, n; 
		srand(time(0));
		cout << "Введите число: " << endl;
		cin >> n;
		double* m = new double[n];
		for (i = 0; i < n; i++)
		{
			m[i] = rand() % n;
		}
		cout << endl << "Result:" << endl;
		for (i = 0; i < n; i++)
		{
			cout << m[i] << " " << endl;
		}
		delete[] m;
		system("pause");
		return 0;
	
	
}
int Task88()
//88.	Имеются данные о сумме очков, набранных в чемпионате каждой из футбольных команд. 
//Выяснить, перечислены ли команды в списке в соответствии с занятыми ими местами в чемпионате.
{
	srand(time(0));

	int A[10];
	for (int i = 0; i < 10; i++)
	{
		A[i] = rand() % 21;
		cout << A[i] << endl;
	}
	cout << endl;

	for (int i = 0; i < 10; i++)
	{
		if (A[i] < A[i + 1])
		{
			cout << "Команды не в правильном порядке! ";
			break;
		}
		else
			cout << " ";
	}
	delete[] A;
	return 0;
}
int Task123()
//123. Дана последовательность целых положительных чисел. Найти произведение только тех из них, которые больше заданного числа М. 
//Если таких чисел нет, то выдать сообщение об этом.
{
	unsigned count;
	unsigned result(1);
	unsigned number_m;
	bool contains = false;

	cout << "Введите количество чисел : "; 
	cin >> count;
	
	if (count < 0) return 0;
	
	unsigned* numbers = new unsigned int[count];
	for (unsigned i = 0; i < count; i++) 
	{
		cout << "  Number " << i + 1 << " from " << count << " : ";
		cin >> numbers[i];
	}

	cout << "\nВведите число M : "; 
	cin >> number_m;

	for (unsigned i = 0; i < count; i++) 
	{
		if (numbers[i] > number_m) 
		{
			result *= numbers[i];
			if (!contains) 
			{
				cout << numbers[i];
				contains = true;
			}
			else
				cout << "*" << numbers[i];
		}
	}
	if (contains) 
		cout << " = " << result << endl;
	else 
		cout << "Все числа меньше " << number_m <<" либо равны" << endl;

	system("pause");
	delete[] numbers;
	return 0;
}
int Task158()
//158.	Дан массив чисел. Найти минимальный элемент массива.
{
	int N, i, j, Min;
	int a[10];
	N = 10;
	for (i = 0; i < N; i++)
	{
		a[i] = 1 + rand() % 155;
	}
	for (i = 0; i < N; i++)
	{
		cout << "a[" << i << "]=" << a[i] << endl;
	}
	Min = a[0];
	for (i = 1; i < N; i++)
	{
		if (Min > a[i]) Min = a[i];
	}
	cout << "\nНаименьший элемент = " << Min << endl;
	delete[] a;
	return 0;
}
int Task193()
//Дан целочисленный массив А[n],если среди элементов есть одинаковые, вывести соответствующее сообщение.
{
	srand(time(0));
	int rows = 3, col = 3;
	int** arr = new int* [rows];
	for (int i = 0; i < rows; ++i)
	{
		arr[i] = new int[col];
		for (int j = 0; j < col; ++j)
			arr[i][j] = 1 + rand() % 112;
	}
	for (int i = 0; i < rows; ++i)
	{
		for (int j = 0; j < col; ++j)
			cout << setw(5) << arr[i][j];
		cout << endl;
	}
	set<int> without_rep_arr;
	for (int i = 0; i < rows; ++i)
		without_rep_arr.insert(*(arr + i), (*(arr + i) + col));
	if (without_rep_arr.size() < rows * col)
		cout << "\nrepeated" << endl;
	else
		cout << "\nnot repeated" << endl;
	system("pause");
	delete[] arr;
	return 0;
}
int main()
{
	setlocale(LC_ALL, "russian");
	Task18();
	Task53();
	Task88();
	Task123();
	Task158();
	Task193();
}
INFO