Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Заблокирован

Определить симметричность матрицы испльзуя указатели

23.05.2014, 23:31. Показов 2720. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание, определить симметричность матрицы с помощью указателей.
Не могу никак разобраться с указателями, но что-то написала (просьба не смеяться )
Меня интересует как обратится к элементам матрицы что бы сравнить их.
p.s. Программа не работает, все время пишет что матрица симметрична.
C++
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
#include <iostream>
#include <conio.h>
 
using namespace std;
int main()
{
 
 setlocale(LC_ALL, "");     
 int m[4][4]; 
 int *p=&m[0][0];;
 for (int i=0; i<4; i++)
     {  
          for (int j=0; j<4; j++)
              {
                   cout <<i <<""<<j<< ": ";
                   cin >> m[i][j] ;                         
              }
     }
 cout << "Ââîä îêîí÷åí"<< endl;
cout << "Ìàòðèöà èìååò âèä: " << endl;
 for (int i = 0; i < 4; ++i)
    {
        for (int j = 0; j < 4; ++j)
           { cout << m[i][j] << "\t";
            }
            cout << endl;
    }    
 if (p[1]!=p[4] & p[2]!=p[8] & p[3]!=p[12] & p[6]!=p[9] & p[7]!=p[13] & p[11]!=p[14])
 cout << "Íå ñèììåòðè÷íà";  
    else cout<< "Ñèììåòðè÷íà";
    
 _getch();
 return 0;   
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.05.2014, 23:31
Ответы с готовыми решениями:

Определить симметричность матрицы относительно главной диагонали
Дан массив размером n x n. Необходимо выяснить, является ли этот массив симметричным, относительно главной диагонали?

Определить симметричность каждой матрицы относительно главной диагонали
Написать и отладить программы с применением подпрограммы процедуры с параметрами. Даны две целые квадратные матрицы шестого порядка....

Определить симметричность квадратной матрицы относительно побочной диагонали
Может кто помочь , сделать прогу, на языке низкого уровня ? Заранее спасибо

23
Заблокирован
24.05.2014, 10:26  [ТС]
Студворк — интернет-сервис помощи студентам
Ну этот код мне понятен, только где указатели?

Добавлено через 1 минуту
Именно таким образом и была сделана эта же задача без использования указателей.
0
 Аватар для taras atavin
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
24.05.2014, 10:56
То же самое в адресной арифметике (на указателях)
C++
1
2
3
4
5
6
7
8
9
10
for (flag=true, p1=(int*)a, e1=p1+n*n+n-1, p2=p1; p1<=e1; p2-=4*n-1)
 {
  for (e2=p1+n-1; p1<=e2; ++p1, p2+=n)
  {
   if (*p1!=*p2)
   {
    flag=false;
   }
  }
 }
, указатели надо объявить на элемент, то есть
C++
1
2
3
4
int *p1;
int *p2;
int *e1;
int *e2;
.

Добавлено через 12 минут
Цитата Сообщение от Алена_Коваленко Посмотреть сообщение
А на счет цикла я пыталась сделать, но там никакой закономерности нет.
Куда ж она делась?
Цитата Сообщение от Алена_Коваленко Посмотреть сообщение
От указателя смещение на n-ое кол-во элементов, смотря какие элементы использовать.
В скобках указывается только индекс и в декларации в тех же скобках количество элементов. Смещение - это p+1, p+2, p+3... Но в таком виде оно эквивалентно индексу, отличаясь лишь синтаксически, не эквивалентное индексу смещение - это от указателя на объект/структуру/образ бинарного файла.

Добавлено через 6 минут
Сам тоже ошибся.
C++
1
2
3
4
5
6
7
8
9
10
for (flag=true, p1=(int*)a, e1=p1+n*n-1, p2=p1; p1<=e1; p2-=n*n-1)
 {
  for (e2=p1+n-1; p1<=e2; ++p1, p2+=n)
  {
   if (*p1!=*p2)
   {
    flag=false;
   }
  }
 }
1
Заблокирован
24.05.2014, 11:01  [ТС]
taras atavin, что-то начинает прояснятся. Но думаю пока рано задавать вопросы, надо еще почитать об этих "злополучных" указателях.
Спасибо за указанные ошибки и код, с которым буду разбираться. Надеюсь сама все-таки смогу доделать работу правильно.
0
 Аватар для taras atavin
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
24.05.2014, 11:18
Указатель есть данное, хранящее адрес подпрограммы, или другого данного. Если указатель хранит адрес другого указателя, то он называется кратным указателем, иначе простым. Указатель на указатель на не указатель называется двойным указателем, указатель на указатель на указатель на не указатель - тройным указателем и так далее. Сколько указателей надо пройти, чтоб добраться до подпрограммы, или обычного данного, такова кратность. На c/c++ звёздочка разыменует, то есть обеспечивает доступ к тому данному, на которое указывает указатель (указатели на функции не требуют разыменования, а используются просто вместо имени, в круглых скобках параметры). На c/c++ обычный массив (не массив-объект) занимает непрерывный блок, упорядочен по возрастанию индексов. Индекс в скобках складывается с указателем на массив и так получается адрес элемента, при этом массив массивов считается указателем на элемент-массив непосредственно самого массива, но если далее снова следуют скобки с индексом, то полученный адрес не разыменуется, а приводится без фактического преобразования к указателю на элемент уже этого массива и снова складывается со следующим индексом, разыменование происходит после последнего сложения. Причём, индексы измеряются не в байтах, а в ячейках той же разрядности, какую имеют элементы. Например, если
C++
1
2
int a[4];
int *p;
, то индексы и при a, и при p измеряются в ячейках, минимально достаточных для хранения int, а если
C++
1
int a[4][4];
, то индекс уже измеряется в четвёрках интов, также в четвёрках интов измеряется индекс при указателе на массив из четырёх интов. Если же
C++
1
2
double a[4];
double *p;
, то индекс измеряется уже в даблах.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.05.2014, 11:18

Симметричность матрицы
Дана квадратная матрица А(N, N).Составьте программу, определяющую, является ли данная матрица симметричной или нет. Если матрица...

Симметричность матрицы
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;iomanip&gt; #include &quot;MyCrt.cpp&quot; using namespace std; int...

Указатели: определить количество столбцов символьной матрицы, не содержащих ни одной буквы 'Q'
Сформировать массив типа char размером в 5х10х7 элементов. Проинициализировать его случайными символами от A до Z. Определить к-во...

Проверка матрицы на симметричность
Помогите с лабой. Двумерный динамический массив нужно заполнить случайными числами и вывести результат в StringGrid(с этим проблем нет)....

Проверка на симметричность матрицы
uses crt; const n=10; var a: array of integer; i,j,s,s1:integer; procedure zapoln; begin for i := 1 to n do begin ...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru