Скачиваний:
16
Добавлен:
02.05.2014
Размер:
85.5 Кб
Скачать

Содержание

  1. Цель работы ……………………………………………………..3

  2. Теория ……………………………………………………………4

  3. Текст программы ………………………………………………..5

  4. Блок-схемы ……………………………………………………....7

  5. Тест ……………………………………………………………..12

  6. Руководство пользователю…………………………………….13

  7. Список используемой литературы…………………………….14

Цель работы.

Написать программу на С++ Turbo, определяющую свойства на конечных множествах пар, т. е. определяющую является ли заданное отношение функцией. Если да – то какой: инъективной, сюръективной или биективной.

Теория.

Функцией F называется множество такое что найдется не более одного элемента вида называется всюду определенной.

Отношения

n-мерным отношением R на непустом множестве А называется подмножества

Если то говорят что отношение R выполняется для n элементов из множества А (обозначение

Если то говорят, что отношение n не выполняется.

Пусть f: А → В. Тогда функция f называется:

Инъективной, или инъекцией, если b=f(a1)&b = f(a2) => a1 = a2 (двум одинаковым значениям функции соответствуют два одинаковых значения аргумента);

Сюръективной, или сюръекцией, если V b Є A b = f(a) (значение функции пробегает все значения заданного множества);

Биективной, или биекцией, если она инъективна и сюръективна.

Текст программы.

#include <iostream.h>

#include <stdlib.h>

#include <conio.h>

void main()

{int n, j, i, j1, j2,fl, ymin, ymax, i1, i2;

int a[100][100];

cout<<"Programma opredeljaet, javljaetsa li otnoshenie funkciey i esli da, to kakoy"<<endl;

cout<<"Skolko elementov? ";

cin>>n;

cout<<endl<<"Vv. diapazon znacheniy funkcii ";

{cin>>ymin>>ymax;

if (ymin>ymax) {i=ymin; ymin=ymax; ymax=i;}

}

cout<<"Vv. znachenija argumenta (x)"<<endl;

for (i=0; i<n; i++)

cin>>a[0][i];

cout<<endl<<"Vv. znachenija funkcii (y)"<<endl;

for (i=0; i<n; i++)

cin>>a[1][i];

fl=0;

for (i=0; i<n; i++)

for (j=0; j<n; j++)

{if (i==j) j++;

if (a[0][i]==a[0][j]) {fl=1; j1=i; j2=j; i=n; j=n;}

}

if (fl==0 || a[1][j1]!=a[1][j2]) {cout<<endl<<"sootnoshenie ne javljaetsya funkciey"<<endl; getch(); exit(1);}

if (a[1][j1]==a[1][j2])

{cout<<endl<<"sootnoshenie javljaetsya funkciey";

/////////////////////////////////////////////////////////

for (i=0; i<n; i++)

for (j=0; j<n; j++)

{if (i==j) j++;

if (a[1][i]==a[1][j])

if (a[0][i]!=a[0][j])

{i=n; j=n; fl=0;}

}

if (fl==0) cout<<endl<<"funkcija ne in`ektivna";

else cout<<endl<<"funkcija in`ektivna";

//////////////////////////////////////////////////////////

i2=n;

do{i=0;//flagok

i2--;

for (j=0; j<i2; j++)

if (a[1][j]>a[1][j+1])

{i1=a[1][j];

a[1][j]=a[1][j+1];

a[1][j+1]=i1;

i=1;

}

}while (i==1);

j=1;

if (a[1][0]==ymin && a[1][n-1]==ymax)//

{j=0;

for (i=0; i<n; i++)

if (a[1][i+1]-a[1][i]<=1) j=0;

else {j=1; i=n;}

}

if (j==0) cout<<endl<<"funkcija sur`ektivna";

if (j==1) cout<<endl<<"funkcija ne sur`ektivna";

/////////////////////////////////////////////////////

if (fl==1 && j==0) cout<<endl<<"funkcija biektivna";

else cout<<endl<<"funkcija ne biektivna";

}

getch();

}

Блок-схема.

Fl = 1;j1 = i;

j2 = j;

i = n;

j = n

Тест.

Количество элементов: 7

Ввести диапазон значений: 1 6

Ввести х: 2 3 4 3 5 1 6

Ввести у: 4 1 3 1 2 6 5

Результат: соотношение является функцией.

Функция инъективная, сюръективная и биективная.

Количество элементов: 5

Ввести диапазон значений: 1 5

Ввести х: 1 3 2 1 5

Ввести у: 2 3 1 5 4

Результат: соотношение не является функцией.

Количество элементов: 6

Ввести диапазон значений: 1 6

Ввести х: 1 3 2 5 4 3

Ввести у: 2 1 3 4 6 1

Результат: соотношение является функцией. Функция инъективна, не сюръективна, не биективная.

Руководство пользователю.

  1. Ввести количество элементов в строке.

  2. Ввести диапазон значений функции. Т. е. ее минимальное значение и максимальное.

  3. Ввести значения аргумента (икс).

  4. Ввести значения функции (игрик).

  5. Нажать Enter.

Список используемой литературы.

  1. Новиков Ф.А. Дискретная математика для программистов. Учебник для вузов. 2006г.

  2. Кук Д., Бейз Г. Компьютерная математика. 1990 г.

  3. Белоусов А.И., Ткачев С.Б. Дискретная математика. 2002 г.

14