Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Топ:
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Определение места расположения распределительного центра: Фирма реализует продукцию на рынках сбыта и имеет постоянных поставщиков в разных регионах. Увеличение объема продаж...
Интересное:
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
В языке C++ для работы с динамической памятью введены операции new и delete [5, 8-9], которыми можно пользоваться наряду с функцией стандартной библиотеки С malloc, calloc и free.
Операция new используется как для выделения памяти для одного объекта (при этом возможна инициализация выделенной памяти передаваемым значением), так и для массива однородных объектов. Операция new возвращает адрес начала выделенной динамической памяти соответствующего типа.
Ее синтаксис: new тип;
new тип (выражение-инициализатор);
new тип [ выражение_размерность_массива ];
Операция delete освобождает распределенную операцией new память. Ее синтаксис:
delete указатель_на_объект;
delete [ ] указатель_на_массив_объектов;
Первая форма используется, если операцией new размещался единичный (скалярный) объект. Векторная форма используется, если операцией new создан массив объектов, при удалении которого для каждого из объектов необходим вызов деструктора (деструкторы описываются далее). Такими объектами являются объекты пользовательского типа.
Практическое изучение первого принципа ООП – механизма инкапсуляции
Подготовка к лабораторной работе № 1
Программирование точечных конфигураций на плоскости
В первой лабораторной работе используются абстрактные типы данных (АТД). АТД являются математическим понятием, пригодным на этапе подготовки спецификации – в процессе анализа. Понятие класса, предусматривая частичную или полную реализацию, обеспечивает необходимую связь с разработкой ПО на этапах проектирования и программирования. Класс называется эффективным, если его реализация полна, и отложенным - при частичной реализации. Рассмотрим два типовых задания.
Вычисление декартовых координат вершин правильного треугольника
Разработать ООП для вычисления декартовых координат вершин правильного треугольника с заданной длиной стороны, центр которого лежит на оси Х (рисунок 1). Длина стороны треугольника должна передаваться программе через аргумент командной строки, а полученные координаты должны отображаться через стандартный вывод. Программная реализация вычислений должна быть основана на разработке класса точки с приватными полями ее декартовых координат и публичными методами доступа к ним и конструктором инициализации их значений. Кроме того нужно предусмотреть статический метод конструирования точки по ее полярным координатам (программа polar.cc).

Рисунок 1 – К постановке задачи вычисления декартовых координат правильного треугольника
// Программа polar.cc
#include <stdlib.h>
#include <math.h>
#include <iostream.h>
// Класс Point2 точки плоскости
class Point2 {
private:
float x;
float y;
Point2(float _x, float _y): x(_x), y(_y) { };// приватный конструктор
public:
float getx() { return x; }; // доступ к x
float gety() { return y; }; // доступ к ystatic Point2 Polar(float, float); // именованный конструктор точки - статический метод
Point2() { x=y=0.0; }; // конструктор по умолчанию (для массива точек)
}; // Point2
// конструирование точки по полярным координатам
inline Point2 Point2:: Polar(float R, float F) {
Point2 p(R*cos(F), R*sin(F)); // перевод полярных координат в декартовы
return p; // возврат объекта класса точки
}; //polar
// основная функция
int main(int argc, char* argv[ ]) {
float edge = 1.0; // сторона треугольника (1.0 – длина по умолчанию)
float angle = 0.0; // полярный угол вершины
float pi; // число pi
pi = acos (-1.0); // вычислить pi (можно M_PI из math.h)
float radius; // радиус-вектор вершины
int i = 0; // счетчик вершин треугольника
Point2 vertex [3]; // массив вершин треугольника vertex[0], vertex[1], vertex[2]
if(argc > 1)
edge = atof (argv[1]);// получить длину стороны из командной строки
cout << "pi=" << pi << endl;
radius = edge / (2*sin(pi/3.0)); // радиус описанной окружности
while (i<3) { // цикл вычисления декартовых координат вершин
vertex[ i ] = Point2::Polar(radius, angle);
angle += ((4.0*pi)/3.0); // +120 градусов =4* pi/3
i++;
}// while
do { // Печать декартовых координат вершин в обратном порядке
--i;
cout << vertex[ i ].getx() << ';' << vertex[ i ].gety() << endl;
} while(i > 0); //do- while
return (0); // Корректное завершение программы
}// main
|
|
|
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!