Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 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; просмотров: 221; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 52.15.59.163 (0.018 с.) |