![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Розробити підпрограми роботи з деком. Дек організований на масиві із циклічним заповненням та із зсувом. Операції виконуються з обох кінців дека.Содержание книги
Поиск на нашем сайте
Текст програми #include <iostream.h> #include <conio.h> #define n 10 Class Dec// оглошуємо клас { public: void revers(int dec[n]){ char v; do {// заповнення дека for(int i=0;i<n;i++) dec[i]=dec[i+1]; cin>>dec[n]; cout<<"Continue(y/n)"; cin>>v; clrscr(); } while(v!='n'); } void not_revers(int dec[n]){ char v; do { for(int i=n;i>=0;i--) dec[i]=dec[i-1]; cin>>dec[0]; cout<<"Continue(y/n)"; cin>>v; clrscr(); } while(v!='n'); } void Pocaz_Dec(int dec[n]){ for(int i=0;i<n;i++) cout<<dec[i]<<"\t"; getch(); } }; void main(){ Dec asdf; int dec[n]; int v; for(int i=0;i<n;i++) dec[i]=0; start:clrscr(); cout<<"1-S konca\n"; cout<<"2-S nachala\n"; cout<<"3-Pokazat` Dec\n"; cout<<"4-Exit\n"; cout<<"Sdelaite vibor-> "; cin>>v; switch(v){ case 1:asdf.revers(dec); goto start; case 2:asdf.not_revers(dec); goto start; case 3:asdf.Pocaz_Dec(dec); goto start; } getch(); } Результат роботи програми: Рисунок 1.2 Індивідуальне завдання 3 Створити клас матриця. Даний клас містить покажчик на int, Розмір рядків і стовпців і стан помилки. Визначити конструктор без Параметрів, конструктор з одним параметром і конструктор з двома Параметрами, деструктор. Визначити методи доступу: повертати значення Елемента (i, j) і адресу цього елемента. Визначити функцію друку. визначити Функції додавання і віднімання (матриці з матрицею), множення матриці на Матрицю. Визначити множення матриці на число. Перевірити роботу цього Класу. У разі нестачі пам'яті, невідповідності розмірностей, виходу за Межі встановлювати код помилки. Текст програми #include "iostream.h" using namespace std; class Matrix { public: int **A; //вказівник int N; Matrix () {} Matrix(int N,int M) // заповнюємо матрицю { A= new int*[N]; for (int i = 0; i < N; i++) A[i] = new int[N]; for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { A[i][j]=rand()%10; }} }// виконання операцій void Show(Matrix &obj,int N,int M){ int i,j; for(i=0; i<N; i++){ for(j=0; j<M; j++){ cout<<" "<<A[i][j];} cout <<endl; } cout <<endl; } Matrix Matrix::Add(Matrix obj,int N,int M){ Matrix result(N,M); for(int i=0;i<N;i++) for(int j=0;j<M;j++) { result.A[i][j]=0; result.A[i][j]+=A[i][j] + obj.A[i][j];} return result; } Matrix Matrix::Sub(Matrix obj,int N,int M){ Matrix result(N,M); for(int i=0;i<N;i++) for(int j=0;j<M;j++) { result.A[i][j]=0; result.A[i][j]+=A[i][j] - obj.A[i][j];} return result; } Matrix Matrix::Mul_nf(int N,int M,int num){ Matrix result(N,M); for(int i=0;i<N;i++) for(int j=0;j<M;j++) { result.A[i][j]=0; result.A[i][j]+=A[i][j]*num;} return result; } Matrix Matrix::Mul_ns(Matrix obj,int N,int M,int num){ Matrix result(N,M); for(int i=0;i<N;i++) for(int j=0;j<M;j++) { result.A[i][j]=0; result.A[i][j]+=obj.A[i][j]*num;} return result; } Matrix Matrix::Mul(Matrix obj,int N,int M){ // моження матриці на матрицю Matrix result(N,M); for(int k=0; k<N;k++) for(int i=0;i<M;i++) { result.A[k][i]=0; for(int j=0;j<M;j++) result.A[k][i]+=A[k][j] * obj.A[j][i];} return result; } int accept(int i,int j) {return A[i][j]; } int* accept_ad(int i,int j) {return &A[i][j]; } }; void main(void) // тіло програми { int n_,m_,num,n,m; char cs; srand(time(0)); Matrix result; // виводимо результат на екран system("cls"); cout<<"Size:"<<endl<<"Rows: "; cin>>n; cout<<"Cols: "; cin>>m; system("cls"); Matrix first(n,m); // перша матриця Matrix second(n,m); // друга матриця do { system("cls");// очистка вікна first.Show(first,n,m); second.Show(second,n,m); cout << "1.Add.\n" << "2.Sub.\n" << "3.Mult.\n" << "4.Mult on number(first matrix).\n" << "5.Mult on number(second matrix).\n" << "6.Accept to element(first matrix).\n" << "7.Accept to element(second matrix).\n" << "0.Exit.\n"; cout<<endl<<"Enter: ";cin>>cs; cout<<endl<<"Result:"<<endl; switch(cs) { case'1':{ result=first.Add(second,n,m); result.Show(result,n,m);break;} case'2':{ result=first.Sub(second,n,m); result.Show(result,n,m);break;} case'3':{ result=first.Mul(second,n,m); result.Show(result,n,m);;break;} case'4':{ cout<<"Enter number: "; cin>>num; result=first.Mul_nf(n,m,num); result.Show(result,n,m);;break;} case'5':{ cout<<"Enter number: "; cin>>num; result=first.Mul_ns(second,n,m,num); result.Show(result,n,m);;break;} case'6':{ cout<<"Row: "; cin>>n_; cout<<"Col: "; cin>>m_; cout<<"A[Row][Col] = "<<first.accept(n_,m_)<<endl; cout<<"&A[Row][Col] = "<<first.accept_ad(n_,m_)<<endl; break;} case'7':{ cout<<"Row: "; cin>>n_; cout<<"Col: "; cin>>m_; cout<<"A[Row][Col] = "<<second.accept(n_,m_)<<endl; cout<<"&A[Row][Col] = "<<second.accept_ad(n_,m_)<<endl; break;} default:exit(1); } system("PAUSE");} while(1); } Результат роботи програми: Рисунок 1.3
Індивідуальне завдання 4 Створити клас матриця. Даний клас містить покажчик на int, Розмір рядків і стовпців і стан помилки. Визначити конструктор без Параметрів, конструктор з одним параметром і конструктор з двома
|
||||
Последнее изменение этой страницы: 2016-09-13; просмотров: 285; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.136 (0.008 с.) |