Professional Documents
Culture Documents
Лабораторна №3
Лабораторна №3
Звіт
З лабораторної роботи №3
Виконав:
Прийняв:
Львів – 2020
int main()
{
srand(time(0));
const int n = 31;
int x, x1, y1, z1, s = 0;
bool tf, tfr, tfs, tft;
int arr[n];
int** array;
array = new int*[3];
char yn;
cout << "Do you want to fill in the array with your own numbers? - ";
cin >> yn;
if (yn == 'n') {
cout << "arr = ";
for (int i = 0; i < n; i++) {
arr[i] = rand() % 98 + 1;
cout << arr[i] << ", ";
}
cout << endl;
}else if(yn == 'y')
{
cout << "arr = ";
for (int i = 0; i < n; i++)
{
cin >> arr[i];
}
cout << endl;
}
cout << "1 - x<=y<=z" << endl;
cout << "2 - x=>y=>z" << endl;
cout << "Choose the condition: ";
cin >> x;
if (x == 1)
tf = true;
else if (x == 2)
tf = false;
}
for (int i = 0; i < 3; i++)
array[i] = new int[s];
int t = 0;
for (int i = 0; i < n; i++)
for (int j = i+1; j < n; j++)
for (int k = j+1; k < n; k++) {
x1 = arr[i]; y1 = arr[j]; z1 = arr[k];
if (tf == true && x1 <= y1 && y1 <= z1)
{
array[0][t] = x1;
array[1][t] = y1;
array[2][t] = z1;
t++;
}
else if (tf == false && x1 >= y1 && y1 >= z1)
{
array[0][t] = x1;
array[1][t] = y1;
array[2][t] = z1;
t++;
}
}
for (int j = 0; j < s; j++) {
cout << "arr = ";
for (int i = 0; i < 3; i++) {
cout << array[i][j];
cout << ", ";
}
cout << endl;
}
return 0;
}
Завдання №2 Складіть програму, яка як вхідні дані одержує скінченну
множину з n>30 елементами та задає на ній відношення із заданими
властивостями (рефлективність, симетрію, транзитивність).
#include <iostream>
#include <random>
#include <time.h>
}
cout << "}";
}
int main()
{
srand(time(0));
const int n = 7;
int n1, n2;
int x1, y1, z1, s = 0;
int arr[n];
bool tf;
int** array;
array = new int* [3];
char yn;
cout << "Do you want to fill in the array with your own numbers? - ";
cin >> yn;
if (yn == 'n') {
cout << "arr = ";
for (int i = 0; i < n; i++) {
arr[i] = rand() % 98 + 1;
cout << arr[i] << ", ";
}
cout << endl;
}
else if (yn == 'y')
{
cout << "arr = ";
for (int i = 0; i < n; i++)
{
cin >> arr[i];
}
cout << endl;
}
if (n2 == 1)
tf = true;
else if (n2 == 2)
tf = false;
}
for (int i = 0; i < 3; i++)
array[i] = new int[s];
int t = 0;
for (int i = 0; i < n; i++)
for (int j = i + 1; j < n; j++)
for (int k = j + 1; k < n; k++) {
x1 = arr[i]; y1 = arr[j]; z1 = arr[k];
if (tf == true && x1 <= y1 && y1 <= z1)
{
array[0][t] = x1;
array[1][t] = y1;
array[2][t] = z1;
t++;
}
else if (tf == false && x1 >= y1 && y1 >= z1)
{
array[0][t] = x1;
array[1][t] = y1;
array[2][t] = z1;
t++;
}
switch (n1)
{
case 1:
{
reflective(array, s);
}break;
case 2:
{
symmetry(array, s);
}break;
case 3:
{
transitive(array, s);
}break;
default:
cout << "You put wrong number";
}
return 0;
}
ПОЯСНЕННЯ
1 завдання:
Користувач вирішує чи заповнювати множину(масив) вручну або
автоматично, натискаючи y – вручну, n – автоматично. Далі користувач
обирає відношення(їх всього два, довільні відношення x=>y=>z та x<=y<=z).
Далі в потрійному циклі перебираємо всі елементи множини і рахуємо
кількість елементів які підходять під обрану властивість. Далі виділяємо
пам'ять з кількістю елементів та добавляємо ті елементи у подвійний масив.
Далі йде дослідження по елементам по всім властивостям(рефлексивність,
симетрія або транзитивність) потім вивід на екран тих властивостей які
присутні, якщо ні то вивід на екран none.
2 завдання:
Користувач вирішує чи заповнювати множину(масив) вручну або
автоматично, натискаючи y – вручну, n – автоматично. Далі користувач
обирає властивість на яку буде йти дослід(рефлексивність, симетрія або
транзитивність) та відношення(їх всього два, довільні відношення x=>y=>z та
x<=y<=z). Далі в потрійному циклі перебираємо всі елементи множини і
рахуємо кількість елементів які підходять під обрану властивість. Далі
виділяємо пам'ять з кількістю елементів та добавляємо ті елементи у
подвійний масив. Далі по обраній властивості йде дослід з виводом на екран
тих елементів які підходять по властивості.
Висновок
Ми ознайомитися з властивостями відношень та їх дослідженням.