![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 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. |
![]() |
![]() |
![]() |
#2 |
Новичок
Джуниор
Регистрация: 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: ![]() { 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. |
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 26.09.2009
Сообщений: 3
|
![]()
это код,который смог сделать
r1 b r2-строка и столбец r-общее количество элементов Arr[a]-одномерный Массив с не нулевыми элементами матрицы не могу понять,как вывести матрицу в одномерном массиве чоб получилось что то типа типа такой матрицы 5х5 только мне нужно учесть размерность матрицы которую введёт пользователь 00000 12345 00000 12345 00000 |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обращение матрицы методом союзной матрицы | 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 |