Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/47: Рейтинг темы: голосов - 47, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 26.11.2012
Сообщений: 15

Проверить матрицу на рефлексивность, симметричность и транзитивность

30.07.2013, 02:23. Показов 9078. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ошибка: массив имеет другое количество размерностей
Задание: проверить матрицу на рефлексивность, симметричность и транзитивность
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
uses crt;
const n = 3;
var a: array[1..n, 1..n] of boolean;
    i, j, k: integer;
    reflexivity, symmetry, transivity: boolean;
 
begin randomize; clrscr;
     {Initilization}
 
     reflexivity := true;
     symmetry    := true;
     transivity  := true;
 
     {Header output}
     write(' ');
     for i:= 1 to n do
         write('|', i);
     writeln;
 
     write(' ');
     for i := 1 to 2 * n do
         write('_');
     writeln;
 
     {Array generation}
     for i := 1 to n do
     begin
          write(i, '|');
          for j := 1 to n do
          begin
               a[i][j] := boolean(random(2));  {----массив имеет другое количество размерностей}
               write(integer(a[i][j]), ' ');
          end;
          writeln;
     end;
 
     {reflexivity check}
     for i := 1 to n do
     begin
          if not a[i][i] then reflexivity := false;
     end;
     writeln('Reflexivity: ', reflexivity);
 
     {symmetry check}
     for i := 1 to n do
     begin
          for j := i + 1 to n do
          begin
               if a[i][j] <> a[j][i] then
               begin
                    symmetry := false;
                    break;
               end;
          end;
 
          if not symmetry then break;
     end;
     writeln('Symmetry: ', symmetry);
 
     {transivity check}
     for i := 1 to n do
     begin
          for j := 1 to n do
          begin
               for k := 1 to n do
               begin
                    if a[i][k] and a[k][j] and not a[i][j] then
                       transivity := false;
               end;
          end;
     end;
     writeln('Transivity: ', transivity);
 
     if reflexivity and symmetry and transivity then
        writeln('Equivalence relation')
     else writeln('NOT equivalence relation');
 
     readln;
end.
может кто-нибудь поможет разобраться в чем дело?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.07.2013, 02:23
Ответы с готовыми решениями:

Проверить на симметричность
Проверить целочисленную матрицу NxM на симметричность относительно строк. Как объяснил преподаватель нужно сделать чтобы сравнивало...

Как проверить симметричность в массиве строк?
Дан массив строк.Если стока симметрична,то... Подскажите как проверить симметричность в массиве строк

Матрица. Проверить симметричность относительно побочной диагонали
спс большое, можете еще эту посмотреть - Дана матрица, надо проверить симметричность (симметрия относительной побочной диагонали).

12
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
30.07.2013, 07:44
Программа написана для Турбо Паскаль и не работает в АВС.
1. Обозначать матрицу как a[i][j] можно, и даже нужно, когда строки или столбцы матрицы описаны как линейный массив, иначе можно писать только так a[i,j].
2. Не допускается прямое приведение типов, исправил
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
uses crt;
const n = 3;
var a: array[1..n, 1..n] of boolean;
    i, j, k: integer;
    reflexivity, symmetry, transivity: boolean;
 
begin randomize; clrscr;
     {Initilization}
 
     reflexivity := true;
     symmetry    := true;
     transivity  := true;
 
     {Header output}
     write(' ');
     for i:= 1 to n do
         write('|', i);
     writeln;
 
     write(' ');
     for i := 1 to 2 * n do
         write('_');
     writeln;
 
     {Array generation}
     for i := 1 to n do
     begin
          write(i, '|');
          for j := 1 to n do
           begin
            k:=random(2);
            a[i,j] := k=0;  {----массив имеет другое количество размерностей}
            write(k, ' ');
          end;
          writeln;
     end;
 
     {reflexivity check}
     for i := 1 to n do
     begin
          if not a[i,i] then reflexivity := false;
     end;
     writeln('Reflexivity: ', reflexivity);
 
     {symmetry check}
     for i := 1 to n do
     begin
          for j := i + 1 to n do
          begin
               if a[i,j] <> a[j,i] then
               begin
                    symmetry := false;
                    break;
               end;
          end;
 
          if not symmetry then break;
     end;
     writeln('Symmetry: ', symmetry);
 
     {transivity check}
     for i := 1 to n do
     begin
          for j := 1 to n do
          begin
               for k := 1 to n do
               begin
                    if a[i,k] and a[k,j] and not a[i,j] then
                       transivity := false;
               end;
          end;
     end;
     writeln('Transivity: ', transivity);
 
     if reflexivity and symmetry and transivity then
        writeln('Equivalence relation')
     else writeln('NOT equivalence relation');
 
     readln;
end.
2
0 / 0 / 0
Регистрация: 26.11.2012
Сообщений: 15
30.07.2013, 13:54  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
a[i,j] := k=0; *{----массив имеет другое количество размерностей}
элементу массива присваивается k, а дальше - k=0; непойму что означает?. спасибо
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
30.07.2013, 14:10
Если k=0 a[i,j]=true иначе a[i,j]=false
0
0 / 0 / 0
Регистрация: 05.06.2017
Сообщений: 41
27.10.2017, 23:40
Puporev, Здравствуйте,а как сделать вот в этой программе заполнение с клавиатуры?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
28.10.2017, 09:48
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Поскольку не знаю какой у Вас Паскаль,написал для любого.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
writeln('Введите элементы матрицы 0 и 1 ');
for i:=1 to n do
for j:=1 to n do
 begin
  repeat
   write('a[',i,',',j,']=');
   readln(k);
  until k in [0,1];
  a[i,j]:=k=1;
 end;
{Initilization}
 reflexivity := true;
 symmetry    := true;
 transivity  := true;
{Header output}
 write(' ');
 for i:= 1 to n do
 write('|', i);
 writeln;
 write(' ');
 for i := 1 to 2 * n do
 write('_');
 writeln;
 {Array generation}
 for i := 1 to n do
  begin
   write(i, '|');
   for j := 1 to n do
   if a[i,j] then write('1 ')
   else write('0 ');
   writeln;
  end;
1
0 / 0 / 0
Регистрация: 05.06.2017
Сообщений: 41
29.10.2017, 12:10
Puporev, Спасибо, большое
0
0 / 0 / 0
Регистрация: 05.06.2017
Сообщений: 41
03.11.2017, 19:17
Puporev, Можно еще один вопрос. Как сделать,допустим,ты вводишь 7 чисел от 0 до 9(включительно), и паскаль по ним строил матрицу нулей и единиц,при этом,если число из строки равно числу из столбца там ставится "0". Как это сделать?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
03.11.2017, 19:27
Ничего не понятно.
0
0 / 0 / 0
Регистрация: 05.06.2017
Сообщений: 41
03.11.2017, 20:02
Puporev, вводим числа с клавиатуры от 0 до 9(включительно) любые 7 чисел,он их присваивает строке и столбцу и по ним строит матрицу 0 и 1. Если число в строке равно числу в столбце он напротив них 0 ставит
0
0 / 0 / 0
Регистрация: 05.06.2017
Сообщений: 41
03.11.2017, 20:05
Puporev, так нагляднее будет,мы вводим числа 1,2,3,4,5 надо чтобы он по ним матрицу сформировал
Миниатюры
Проверить матрицу на рефлексивность, симметричность и транзитивность  
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
03.11.2017, 21:06
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Примерно так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
const n=7;
var a:array[0..n,0..n] of byte;
    i,j:byte;
begin
randomize;
for i:=1 to n do
 begin
  a[0,i]:=random(10);
  a[i,0]:=random(10);
 end;
for i:=1 to n do
for j:=1 to n do
if a[i,0]=a[0,j] then a[i,j]:=0 else a[i,j]:=1;
write('   ');
for i:=1 to n do
write(a[0,i]:3);
writeln;
for i:=1 to 3*(n+1) do write('-');
writeln;
for i:=1 to n do
 begin
  write(a[i,0],' |');
  for j:=1 to n do
  write(a[i,j]:3);
  writeln
 end
end.
0
0 / 0 / 0
Регистрация: 05.06.2017
Сообщений: 41
05.11.2017, 22:45
Puporev, да,но мне как бы вручную числа надо вводить
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.11.2017, 22:45
Помогаю со студенческими работами здесь

Проверить множество P на рефлексивность, симметричность, антисимметричность и транзитивность. P={(x,y) | x,y принадлежит
Проверить множество P на рефлексивность, симметричность, антисимметричность и транзитивность. P={(x,y) | x,y принадлежит Z, x+1=y}

Свойства нечеткого отношения (рефлексивность, симметричность, транзитивность)
Прошу помощи! нужна программа, которая реализует проверку свойств нечеткого отношения(рефлексивность,антирефлексивность, симметричность,...

Отношение исследовать на рефлексивность, антирефлексивность, симметричность, антисимметричность, транзитивность
Всем доброго времени суток! Есть задача и мало времени для её решения. Просто крик о помощи! Задание: Отношение R\subset {R}^{2}...

Исследовать рефлексивность, симметрию, транзитивность
исследовать рефлексивность, симметрию, транзитивность отношения заданного на множественные Х при условии Х = Z, (x,y) є R, если x-y делится...

Проверить матрицу на симметричность относительно вертикальной оси
Задача состоит в том, чтобы проверить квадратный массив на симметричность относительно вертикальной линии в середине массива, т.е. сравнить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru