Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Vlai
0 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 19
#1

Составить описание класса для определения одномерных массивов целых чисел( устранение ошибок) - C++

10.11.2012, 20:32. Просмотров 534. Ответов 0
Метки нет (Все метки)

Составить описание класса для определения одномерных массивов целых чисел (векторов). Предусмотреть возможность обращения к отдельному элементу массива с контролем выхода за пределы массива, возможность задания произвольных границ индексов при создании объекта и выполнения операций поэлементного сложения и вычитания массивов с одинаковыми пределами индексов, умножения и деления всех элементов массива на скаляр, вывода на экран элемента массива по заданному индексу и всего массива.


#include <iostream.h>
#include <stdlib.h>
#include <time.h>
class Massiv{
int *a;
public:
void Sozd(int k);
void Vvod_Sl(int k,int k1,int k2);
void Obrash(int k1, int k2);
void Slozh(Massiv b,Massiv c,int k1,int k2,int h1,int h2);
void Vichit(Massiv b, Massiv c,int k1, int k2, int h1, int h2);
void Umnozh(int k1, int k2);
void Delen(int k1, int k2);
void Print_el(int k1, int k2);
void Print(int k1, int k2);
void Del();
};
void main()
{
Massiv a,b,c;
int n,m,n1,n2,m1,m2;
randomize();
int punkt;
cout<<"MENU:"<<endl;
cout<<"sozdat massiv______________________(1)"<<endl;
cout<<"Obrashenie k elementu massiva______(2)"<<endl;
cout<<"Slozhenie__________________________(3)"<<endl;
cout<<"Vichitanie_________________________(4)"<<endl;
cout<<"Umnozhenie_________________________(5)"<<endl;
cout<<"Delenie____________________________(6)"<<endl;
cout<<"Vivod elementa massiva_____________(7)"<<endl;
cout<<"Vivod massiva______________________(8)"<<endl;
cout<<"Udalenie massiva___________________(9)"<<endl;
cout<<"Otmena_____________________________(0)"<<endl;
cout<<endl;
cout<<"Viberite punkt menu ";
cin>>punkt;
cout<<endl;
while (punkt != 0)
{
switch (punkt)
{
case 1:
{
cout << "vvedite nachalnuu granizu indeksa massiva1: ";
cin >> n1;
cout << "vvedite konechnuu granizu indeksa massiva1: ";
cin >> n2;
n=n2-n1+1;
cout << "vvedite nachalnuu granizu indeksa massiva2: ";
cin >> m1;
cout << "vvedite konechnuu granizu indeksa massiva2: ";
cin >> m2;
m=m2-m1+1;
a.Vvod_Sl(n,n1,n2);
b.Vvod_Sl(m,m1,m2);
};break;
case 2:
{
cout<<"Viberite massiv (1 or 2): ";
int r;
cin>>r;
switch (r)
{
case 1:
{
a.Obrash(n1,n2);
}; break;
case 2:
{
b.Obrash(m1,m2);
}; break;
default:cout<<"Massivov s takimi nomerami net"<<endl;
}
cout<<endl;
};break;
case 3:
{
c.Vvod_Sl(n,n1,n2);
a.Slozh(b,c,n1,n2,m1,m2);
c.Del();
};break;
case 4:
{
c.Vvod_Sl(n,n1,n2);
a.Vichit(b,c,n1,n2,m1,m2);
};break;
case 5:
{
cout<<"Viberite massiv (1 or 2): ";
int r;
cin>>r;
switch (r)
{
case 1:
{
a.Umnozh(n1,n2);
}; break;
case 2:
{
b.Umnozh(m1,m2);
}; break;
default:cout<<"Massivov s takimi nomerami net"<<endl;
}
};break;
case 6:
{
cout<<"Viberite massiv (1 or 2): ";
int r;
cin>>r;
switch (r)
{
case 1:
{
a.Delen(n1,n2);
}; break;
case 2:
{
b.Delen(m1,m2);
}; break;
default:cout<<"Massivov s takimi nomerami net"<<endl;
}
//a.Delen();
};break;
case 7:
{
cout<<"Viberite massiv (1 or 2): ";
int r;
cin>>r;
switch (r)
{
case 1:
{
a.Print_el(n1,n2);
}; break;
case 2:
{
b.Print_el(m1,m2);
}; break;
default:cout<<"Massivov s takimi nomerami net"<<endl;
}
cout<<endl;
//a.Print_el();
};break;
case 8:
{
cout<<"1-ii massiv:"<<endl;
a.Print(n1,n2);
cout<<endl;
cout<<"2-oi massiv:"<<endl;
b.Print(m1,m2);
};break;
case 9:
{
a.Del();
b.Del();
};break;
case 0:
{
punkt=0;
};break;
default:cout<<"Vi nechego ne vibrali. Prilozhenie bydet zakrito"<<endl;
}
cout<<endl;
cout<<"sozdat-(1), Obr-(2), Slozh-(3), Vich-(4), Umn-(5), Delen-(6), Viv_el-(7),
Viv-(8), Ud-(9), Otm-(0)"<<endl;
cout<<endl;
cout<<"Viberite punkt menu ";
cin>>punkt;
cout<<endl;
}
}
void Massiv::Sozd(int k)
{
a=(int *) malloc (sizeof(int) * (k+3));
}
void Massiv :: Vvod_Sl(int k,int k1 ,int k2)
{
Sozd(k);
for (int i=k1; i <= k2; i++)
{ *(a+i)= random(10); }
}
void Massiv :: Obrash(int k1, int k2)
{
int in;
cout<<"Vvedite indeks vivodimogo el-ta";
cin>>in;
if ((in>=k1)&&(in<=k2))
{
cout<<"element s indeksom ";cout<<in; cout<<" : ";
cout << *(a+in) << " ";
}
else
cout<<"Vi vishli za granici indeksa"<<endl;
}

void Massiv :: Slozh(Massiv b,Massiv c,int k1, int k2, int h1, int h2)
{
if ((k1==h1)&&(k2==h2))
{
for (int i=k1; i<=k2; i++)
{
(c.a[i])=(*(a+i))+(b.a[i]);
}
cout<<"res:"<<endl;
c.Print(k1,k2);
}
else
cout<<"Indeksi massivov ne sovpadaut"<<endl;
}
void Massiv :: Vichit(Massiv b, Massiv c, int k1, int k2, int h1, int h2)
{
if ((k1==h1)&&(k2==h2))
{
for (int i=k1; i<=k2; i++)
{
(c.a[i])=(*(a+i))-(b.a[i]);
}
cout<<"res:"<<endl;
c.Print(k1,k2);
}
else
cout<<"Indeksi massivov ne sovpadaut"<<endl;
}
void Massiv :: Umnozh(int k1, int k2)
{
int k;
cout<<"Vvedite skalyar: ";
cin>>k;
for (int i=k1; i <= k2; i++)
{ *(a+i)= *(a+i)*k; }
}

void Massiv :: Delen(int k1, int k2)
{
int k;
cout<<"Vvedite skalyar: ";
cin>>k;
while (k==0)
{
cout<<"Delenie na nul nevozmozhno. Vvedite drugoe znachenie.";
cin>>k;
}
for (int i=k1; i <= k2; i++)
{ *(a+i)= *(a+i)/k; }
}
void Massiv :: Print_el(int k1, int k2)
{
int k;
cout<<"Vvedite nomer el-ta, kot-ii sled-et vivesti: ";
cin>>k;
if ((k>=k1)&&(k<=k2))
{
cout<<"element s indeksom ";
cout<<k;
cout<<" :";
cout<< *(a+k)<<endl;
}
else cout<<"Vi vishli za granici indeksa"<<endl;
}
void Massiv::Print(int k1, int k2)
{
for (int i=k1; i <= k2; i++) { cout << *(a+i) << " ";}
cout << endl;
}
void Massiv :: Del()
{ free(a); }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2012, 20:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Составить описание класса для определения одномерных массивов целых чисел( устранение ошибок) (C++):

Составить описание класса для определения одномерных массивов целых чисел (векторов) - C++
Здравствуйте, уважаемые программисты! Не так давно я начал изучать язык С++. Есть задание: Составить описание класса для определения...

Составить описание класса для определения одномерных массивов - C++
напишите пжлста програмку:

Составить описание класса для определения квадратных матриц целых чисел - C++
Реализация класса для работы с матрицами целых чисел. Задание: Составить описание класса для определения квадратных матриц целых...

Описание класса для определения одномерных массивов строк фиксированной длины - C++
Составить описание класса для определения одномерных массивов строк фиксированной длины. Предусмотреть возможность обращения к отдельным...

Описание класса для определения одномерных массивов строк. Исправить ошибку - C++
Программа иногда работает правильно а иногда вылетает с ошибкой Unhandled exception at 0x009C12F8 in HelloWorld.exe: 0xC0000005: Access...

Составить описание класса одномерных массивов строк, каждая строка задается длиной и указателем на выделенную для нее память - C++
Реализация системы классов для работы с одномерными массивами строк.Составить описание класса одномерных массивов строк, каждая строка...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2012, 20:32
Привет! Вот еще темы с ответами:

Составить описание класса одномерных массивов строк - C++
Составить описание класса одномерных массивов строк, каждая строка задается длиной и указателем на выделенную для нее память. Предусмотреть...

Составить описание класса одномерных массивов строк - C++
Составить описание класса одномерных массивов строк,каждая строка которых задается длиной и указателем на выделенную для нее память....

Описание класса: определение одномерных массивов - C++
Составить описание класса для определения одномерных массивов строк фиксированной длины. Предусмотреть возможность обращения к отдельным...

Пытаюсь создать описание класса одномерных массивов строк. В чем моя ошибка? - C++
Помогите пожалуйста! Пытаюсь создать описание класса одномерных массивов строк. В чем моя ошибка? #include &lt;iostream&gt; #include...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru