Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2009, 17:50   #1
Sergio777
Новичок
Джуниор
 
Регистрация: 26.09.2009
Сообщений: 3
Сообщение С++, Разряжённые матрицы

Помогите пожалуйста сделать лабу по структурам дааных,на с++.

Пользователь вводит размерность матрицы, и её элементы.
Все нечётные строки матрицы нулевые.
Все значимые элементы,которые вводит пользователь, записываются в одномерный массив.
нужно по введёным пользователем координатам (x,y) вывести элемент в матрице и вывести матрицу в логическом представлении...
есть ещё 3 функции которые можно использовать:

1.Function NewIndex(y, x : integer) : integer; - функция выполняет переход от индексов в матрице - x,y - к одному индексу в одномерном массиве по формуле. Функция возвращает индекс для массива.

2.Function PutTab(y,x,value : integer) : integer; - функция выполняет запись значения value в сжатое представление матрицы на место, определяемое координатами x,y. Если координаты определяют место элемента, нулевого по определению, запись не производится и функция возвращает 0, в противном случае она возвращает значение value.

3.Function GetTab(y,x: integer) : integer; - функция возвращает значение, выбранное из матрицы по координатам x,y, в том числе и 0 для "пустых" мест матрицы.

Последний раз редактировалось Sergio777; 26.09.2009 в 18:09.
Sergio777 вне форума Ответить с цитированием
Старый 26.09.2009, 17:56   #2
Sergio777
Новичок
Джуниор
 
Регистрация: 26.09.2009
Сообщений: 3
По умолчанию

using namespace std;
const int a=50;

class osd
{
public:
int Arr[a];
int r,r1,x,y,i,j,r2,value,s;
void read();
int rasch();
void disp();
int NewIndex(int x,int y);

};
void osd::read()
{
cout<<"Vvedite razmernost Matrici ne bolsche chem 10x10"<<endl;
cout<<"x=";
cin>>r1;
cout<<"y=";
cin>>r2;
r=r1*r2;

if (r%2==0)
{
r=r/2;
cout<<"Vvedite ";
cout<<r;
cout<<" elementov"<<endl;
for (i=0;i<r;i++ )
{
cout<<"r=";
cin>>Arr[i];
}
}


else
{
r1=r1-1;
r2=r2-1;
r=(r1*r2)/2;
cout<<"vvedite ";
cout<<r;
cout<<" elementov"<<endl;;
for (i=0;i<r;i++ )
{
cout<<"r=";
cin>>Arr[i];
}
};

}
int osd::rasch() \\Расчёт(реализация функций)
{
cout<<"Vvedite koordinati elementa "<<endl;
cout<<"x=";
cin>>x;
cout<<"y=";
cin>>y;

int Puttab(int y,int x,int value);

if (x%2==0)
{
value=Arr[i];
return value;
}
else
{ return 0;}


int GetTab(int r1,int r2);
{
if ((r1%2!=0) && (r2%2!=0))

{ return 0;}

else

return Arr[NewIndex(r1,r2)];
}
}
void osd:isp() \\Вывод на экран
{
int PutTab();
cout<<"element s koordinatami "<<x<<":"<<y<<"= "<<s<<endl;

r=r1*r2;
cout<<" Logicheskoe predstavlenie Matrici:"<<endl;

for (i=0;i<r;i++)//Вот здесь,не могу вывести эту матрицу
cout<<setw(3)<<Arr[i];


}
int main()
{
osd ob;
ob.read();
ob.rasch();
ob.disp();
getch();
return 0;
}
int osd::NewIndex(int x, int y)

{ s=(x-1)*r1+y;
return s;
}

Последний раз редактировалось Sergio777; 26.09.2009 в 18:07.
Sergio777 вне форума Ответить с цитированием
Старый 26.09.2009, 18:04   #3
Sergio777
Новичок
Джуниор
 
Регистрация: 26.09.2009
Сообщений: 3
По умолчанию

это код,который смог сделать

r1 b r2-строка и столбец
r-общее количество элементов
Arr[a]-одномерный Массив с не нулевыми элементами матрицы
не могу понять,как вывести матрицу в одномерном массиве чоб получилось что то типа
типа такой матрицы 5х5 только мне нужно учесть размерность матрицы которую введёт пользователь

00000
12345
00000
12345
00000
Sergio777 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение матрицы методом союзной матрицы dofmat Помощь студентам 6 03.10.2011 15:01
Сумма четных элементов матрицы. Произведение элементов 3-го столбца. Минимальный элемент матрицы. renovare Помощь студентам 2 03.07.2009 21:13
Матрицы Deidre Общие вопросы C/C++ 1 03.06.2009 22:37
матрицы chelsi Паскаль, Turbo Pascal, PascalABC.NET 13 25.04.2008 10:07