close

Вход

Забыли?

вход по аккаунту

?

Otchet po 2 lab

код для вставкиСкачать
ИНСТИТУТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Отчет по лабораторной работе №2
по курсу " Основы объектно-ориентированного программирования "
на тему
"Пользовательский тип данных "Классы", использование конструктора и деструктора. Работа с динамической памятью"
Выполнил
студент гр. 280511
Ерома А.В.
Проверила
Калугина В.А.
Минск 2013
Код программы:
#include "stdafx.h"
#include "math.h"
#include <iostream>
using namespace std;
class X {
double *x; double *y;
double *z;
double *result;
public:
X ();
~X () ;
void Set (double x1,double y1,double z1) ;
void Print ();
void Run();
};
X::X()
{
x= new double(0.1722); y =new double(6.33); z= new double(3.25e-4); result=new double(0);
}
X::~X (){ delete x;
delete y;
delete z;
delete result;
}
void X::Print () {
cout << "x="<<*x <<" y="<<*y<<" z="<<*z<<". Result="<<*result<< endl; } void X::Set(double x1,double y1,double z1)
{*x=x1; *y = y1; *z=z1; *result=0;}
void X::Run(void)
{
*result= (5*atan(*x) )-(((1/4)*(acos(*x)))*( (*x+3*abs(x-y)+ pow(*x,2) ) /(abs(x-y)**z + pow(*x,2)) ) );
}
int _tmain(int argc, _TCHAR* argv[])
{
X My1;
X * My2;
My2=&My1;
My1.Run();
My2->Print();
cin.get(); return 0;
}
Вывод на экран:
Контрольные вопросы
1. Формат и назначение библиотечной функции malloc()?
malloc( ) - выделение области памяти для размещения блока размером n байт: void *malloc (unsigned n); возвращает указатель на распределенную область или NULL при неудаче;
2. Формат и назначение библиотечной функции calloc()?
calloc( ) - выделение памяти для размещения n объектов размером size байт и заполнение полученной области нулями: void *calloc(unsigned n, unsigned size); возвращает указатель на захваченную область памяти или NULL при неудаче;
3. Формат и назначение библиотечной функции free().
free( ) - освобождение блока памяти, адресуемого указателем b: void free (void *b);
4. Как создать и уничтожить динамический одномерный массив при помощи операций?
type *name;// декларировали указатель на начало массива
...........................................
name = new type[size]; // захватили память
...........................................
delete [ ] name; // освободили память
где type - тип элементов, size - max количество элементов, name - ID массива
Пример контроля захвата памяти для целочисленного массива int *n;
if ( ! ( n = new int[5] ) )
{
printf( "\n Error " ); getch(); exit(1);
}
//работа с элементом с использованием косвенной адресации
*(n+i) = i;
...............................................
delete [ ] n;
5. Как программно контролируется захват динамической памяти под массив?
Операции по захвату и освобождению динамической памяти new и delete для этих целей используют стандартные библиотечные функции, декларацию которых содержит заголовочный файл alloc.h.
Документ
Категория
Рефераты
Просмотров
10
Размер файла
168 Кб
Теги
lab, otchet
1/--страниц
Пожаловаться на содержимое документа