Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Vector(int r,int q);//конструктор з двома параметрами ⇐ ПредыдущаяСтр 3 из 3
~Vector(); // деструктор }; Vector::Vector(){//обнуляємо a=new int[0]; a[0]=0; } Vector::Vector(int r){//задаємо нове значення a=new int[r]; for(int i=0;i<r;i++) a[i]=0; k=r;//присвоюємо нове значення } Vector::Vector(int r,int k){ a=new int[r]; for(int i=0;i<r;i++) a[i]=k; this->k=r; } Vector::~Vector(){ for(int i=0;i<k;i++) delete(a); } void Vector::Set_Value(){ int b,i; cout<<"Enter index of array-> "; cin>>i; cout<<"Enter value of elements->"; cin>>b; a[i]=b; } void Vector::Get_Value(){ int i; cout<<"Enter index of array-> "; cin>>i; cout<<"You elemet is->"<<a[i]<<"\n"; } void Vector::Print_Array(){ cout<<"You have this array\n"; for(int i=0;i<k;i++) cout<<a[i]<<"\t"; cout<<"\n"; } Vector *Vector::operator+(Vector v){ if(k!=v.k) { cout<<"Error, vectors must be identical size"; return 0; } else{ Vector *tmp=new Vector(k); for(int i=0;i<k;i++) tmp->a[i]=a[i]+(v.a[i]); return tmp; } } Vector *Vector::operator-(Vector v){ if(k!=v.k) { cout<<"Error, vectors must be identical size"; return 0; } else{ Vector *tmp=new Vector(k); for(int i=0;i<k;i++) tmp->a[i]=a[i]-(v.a[i]); return tmp; } } Vector *Vector::operator*(Vector v){ if(k!=v.k) { cout<<"Error, vectors must be identical size"; return 0; } else{ Vector *tmp=new Vector(k); for(int i=0;i<k;i++) tmp->a[i]=a[i]*(v.a[i]); return tmp; } } bool Vector::operator<(Vector v){ if(k!=v.k) { cout<<"Error, vectors must be identical size"; return false; } else{ float v1=0,v2=0; for(int i=0;i<k;i++) v1+=a[i]*a[i]; for(int i=0;i<k;i++) v2+=v.a[i]*v.a[i]; if(sqrt(v1)<sqrt(v2)) Return true; else return false; } } bool Vector::operator>(Vector v){ if(k!=v.k) { cout<<"Error, vectors must be identical size"; return false; } else{ float v1=0,v2=0; for(int i=0;i<k;i++) v1+=a[i]*a[i]; for(int i=0;i<k;i++) v2+=v.a[i]*v.a[i]; if(sqrt(v1)>sqrt(v2)) Return true; else return false; } } bool Vector::operator==(Vector v){ if(k!=v.k) { cout<<"Error, vectors must be identical size"; return false; } else{ float v1=0,v2=0; for(int i=0;i<k;i++) v1+=a[i]*a[i]; for(int i=0;i<k;i++) v2+=v.a[i]*v.a[i]; if(sqrt(v1)==sqrt(v2)) Return true; else return false; } } void main(){ Vector *v1=new Vector(); Vector *v2=new Vector(4); Vector *v3=new Vector(10,5); v3->Set_Value(); v3->Get_Value(); v3->Print_Array(); getch(); } Результат роботи програми:
Рисунок 1.5 Тема 2. Конструктори. Деструктори. Мета: Розглянути принцип роботи конструктора (з параметрами за замовчуванням) і деструктора при роботі з об'єктом. Індивідуальне завдання 1 Розробити програму, що дозволяє виконати сортування набору даних класичним бульбашковим методом і шейк ер-сортування. У програмі виконати порівняння ефективності сортування за часом. Текст програми #include <stdio.h> #include <windows.h> #include <conio.h> #include <time.h> int sheiker (int in[], int n); int puz(int A[], int n); void About (); Void main () { //----Ввод масива---- int nn=0; int trudoemk1, trudoemk2;
int input [100]; int input2 [100]; char bb [80]; CharToOem ("\nВведите число элементов массива: ", bb); printf("%s", bb); scanf ("%d", &nn); //Узнаємо розмір масива CharToOem ("\nВведите через пробел целые числа: ", bb); printf("%s", bb); for (int j=0; j<nn; j++) scanf ("%d", &input[j]); //Заповнення масиву CharToOem ("\nВы ввели следующий массив: ", bb); printf("%s", bb); for (int mm=0; mm<nn; mm++) {printf ("%d ", input[mm]); //Перевірка виводом масива на екран input2[mm]=input[mm];} //Робить копію масива printf ("\n"); clock_t before; double elapsed; before = clock(); trudoemk1 = sheiker(input, nn); //Сортування методом Шейкер-сортування CharToOem ("Сравнений: ", bb); printf("%s", bb); printf ("%d", trudoemk1); CharToOem ("\nРеальные затраты времени на выполнении сортировки, в секундах: ", bb); printf("%s", bb); printf ("%.3f\n\n", elapsed/CLOCKS_PER_SEC); before = clock(); trudoemk2 = puz(input2, nn); //Сортування бульбашковим методом CharToOem ("\nСравнений: ", bb); printf("%s", bb); printf ("%d", trudoemk2); elapsed = clock()-before; //Виводить час витрачений на виконаня функції CharToOem ("\nРеальные затраты времени на выполнении сортировки, в секундах: ", bb); printf("%s", bb); printf ("%.3f\n", elapsed/CLOCKS_PER_SEC); getch(); } //функція шейкер-сортування int sheiker (int in[], int n) { int sravnen=0; char bb [80]; CharToOem ("\n\nШейкер сортировка: ", bb); printf("%s\n", bb); int a, b, dd, i, lasta, lastb, swap; for (a=lasta=0, b=lastb=n, dd=1; a < b; dd =!dd, a=lasta, b=lastb) { if (dd) { for (i=a,lastb=a; i<b; i++) if (in[i] > in[i+1]) { lastb = i; swap = in[i]; in[i]=in[i+1]; in[i+1]=swap; sravnen++; for (int mm=0; mm<n; mm++) printf ("%d ", in[mm]); //Перевірка методом виводу масиву на екран printf ("\n"); } else sravnen++; } Else { for (i=b,lasta=b; i>a; i--) if (in[i-1] > in[i]) { lasta = i; swap = in[i]; in[i]=in[i-1]; in[i-1]=swap; sravnen++; for (int mm=0; mm<n; mm++) printf ("%d ", in[mm]); //Перевірка методом виводу масиву на екран printf ("\n"); } else sravnen++; } } CharToOem ("Отсортированный массив методом Шейкер-сортировки: \n", bb); printf("%s", bb); for (int mm=0; mm<n; mm++) printf ("%d ", in[mm]); printf("\n"); return sravnen; } //функція сортування бульбашковим методом int puz(int A[], int n) { char bb [80]; CharToOem ("Сортировка методом \"пузырька\": \n", bb); printf("%s", bb);
|
|||||
Последнее изменение этой страницы: 2016-09-13; просмотров: 109; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.216.239.46 (0.024 с.) |