Using namespace std; //определение рабочего пространства




ОСНОВЫОБЪЕКТНО-ОРИЕНТИРОВАННОГО

ПРОГРАММИРОВАНИЯ

Цель: ознакомится с основными принципами объектно-ориентированного программирования; научится создавать собственные классы на языке программирования С++ и работать с экземплярами классов.

Задание:

14) Дайте определение класса, представляющего одномерный массив целых чисел. Элементы данных должны содержать количество элементов массива, массив целых чисел. Функции-члены должны выполнять такие действия как:

* Создание объекта и его инициализация;

* назначение начальных значений элементам данных;

* сортировку элементов массива по возрастанию;

* определение количества нулевых элементов;

* форматированный вывод массива на экран.

Листинг программы:

 

// vector.cpp: implementation of the vector class.

//

//////////////////////////////////////////////////////////////////////

 

#include "stdafx.h"

#include "vector.h"

#include <iostream.h>

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

/////////////////////////////////////////////////////////////////////

// Construction/Destruction

//////////////////////////////////////////////////////////////////////

 

vector::vector()

{

cout<<"Vvedite kol-vo el-tov: ";

cin>>size;

v=new int[size];

for(int i=0;i<size;i++)

{

cout<<"v["<<i+1<<"]=";

cin>>v[i];

}

}

vector::vector(int N)

{

size=N;

v=new int[size];

srand(time(NULL));

for (int i=0;i<size;i++)

v[i]=rand()%100;

}

vector::~vector()

{

delete v;

}

 

void vector::print()

{

for (int i=0;i<size;i++)

cout<<" v["<<i+1<<"]="<<v[i];

cout<<endl;

}

 

void vector::sortir()

{

int temp;

for (int i=1; i<size; i++)

{

for (int j=0; j<size-i; j++)

{

if (v[j]>v[j+1])

{

 

temp=v[j];

v[j]=v[j+1];

v[j+1]=temp;

}

}

}

}

Вывод: Класс является основой обьектно-ориентированого программирования. Класс – это структура, содержащая в себе переменные,которые предназначены описания или работы какого-нибудь программного или аппаратного обьекта. Доступ к функциям и полям класса происходит через обьект этого класса. Доступ к методам и полям разделяется на такие группы: открытый, закрытый и защищенный. Если спецификатор не указан то по умолчанию доступ является закрытым. Также имя класса служит типом данных для обьекта этого класса.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ

НАЦИОНАЛЬНЫЙ ГОРНЫЙ УНИВЕРСИТЕТ

ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

КАФЕДРА АВТОМАТИЗАЦИИ И КОМПЬЮТЕРИЗИРОВАННЫХ СИСТЕМ

 

 

Отчет по учебной практике

по курсу "Программирование"

 

 

Выполнила студентка

группы СИит-09-1

Микитенко Светлана

Александровна

Проверил:

Зибалов Д.С.

 

 

Днепропетровск

ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ №1

СОРТИРОВКА И ПОИСК

Цель: изучить некоторые алгоритмы сортировки и поиска, а также научиться реализовывать эти алгоритмы с помощью языка программирования С++.

Задание:

  Быстрая сортировка

Таблица имен:

Тип данных имя переменной Для чего служит?
Int *pArr создание указателя
Int z переменная отвечает за размер
Int k хранит выбор пользователя
int h вводимое число
Int i2 правая граница
Int j2 левая граница
Int *pSize создание указателя
Int nsize переменная отвечает за размер массива
Int k хранит выбор пользователя
int chislo переменная для хранения числа
Int a переменная счетчик
Int Start, end определение границ вектора

Листинг программы:

#include"labushka.h"//подключение h-файла

Void main()//точка входа в программу

{

Func1();//вызов функции Func1

}

#include<stdio.h> //подключение библиотеки ввода/вывода

//подключение библиотек для реализации функции заполнения массива

//разупорядоченными значениями вектора

#include<algorithm>

#include<functional>

#include<vector>

#include<iostream>

using namespace std; //определение рабочего пространства

//объявление и определение функции, выполняющей заполнение массива перетасованными значениями

template<typename T>

void quickSortR(T* a, long N)

{

// На входе - массив a[], a[N] - его последний элемент.

long i = 0, j = N; // поставить указатели на исходные места

T temp, p;

p = a[ N>>1 ]; // центральный элемент

// процедура разделения

do {

while (a[i] < p) i++;

while (a[j] > p) j--;

if (i <= j)

{

temp = a[i];

a[i] = a[j];

a[j] = temp;

i++;

j--;

}

} while (i<=j);

// рекурсивные вызовы, если есть, что сортировать

if (j >= 0) quickSortR(a, j);

if (N >= i) quickSortR(a+i, N-i);

}

void RandomShuffle(int *pA, int r, int x, int n)

{

const int VECTOR_SIZE=r; //число элементов вектора

typedef vector<int> IntVector;

typedef IntVector::iterator IntVectorlt;

IntVector Numbers(VECTOR_SIZE);

IntVectorlt start, end, it;

for(int i=0;i<r;i++) //заполнения вектора значениями

{

Numbers[i]=x;

x=x+n;

}

start=Numbers.begin(); //определение границ вектора

end=Numbers.end();



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: