#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();
}