ОСНОВЫОБЪЕКТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
Цель: ознакомится с основными принципами объектно-ориентированного программирования; научится создавать собственные классы на языке программирования С++ и работать с экземплярами классов.
Задание:
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();