|
3 / 3 / 3
Регистрация: 17.10.2012
Сообщений: 147
|
|
[ООП] Геометрические функции04.11.2014, 12:32. Показов 9072. Ответов 11
Метки нет (Все метки)
Очередное задание по ООП (наследование):
Используя метод декомпозиции реализовать геометрические функции + значение площадей этих фигур. Какие функции, каких фигур - ничего не известно. Сказали на свой выбор. Не могли бы показать, как примерно это должно выглядеть?
0
|
|
| 04.11.2014, 12:32 | |
|
Ответы с готовыми решениями:
11
ООП . Геометрические тела
ООП. Геометрические фигуры |
|
Модератор
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
|
|
| 04.11.2014, 14:32 | |
|
геометрическая фигура->
-круг -четырехугольник-> --прямоугольник->квадрат --равнобедренная трапеция -треугольник-> --равнобедренный --равносторонний геометрические функции: -расчет периметра -расчет площади
0
|
|
|
3 / 3 / 3
Регистрация: 17.10.2012
Сообщений: 147
|
|
| 04.11.2014, 14:34 [ТС] | |
|
Я имел ввиду, как это выглядит в коде, часть какой-то фигуры.
0
|
|
|
Модератор
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
|
|||||||||||
| 04.11.2014, 16:10 | |||||||||||
...для равнобедренного и равностороннего не стал делать думаю понятно что там должно быть Добавлено через 1 час 1 минуту -в начале идет абстрактный базовый класс shape (фигура) -у него есть чистые виртуальные функции p (периметр) и s (площадь) -из этого класса мы выводим классы circle (окружность) и polygon (многоугольник) для которых определены функции расчета периметра и площади известные нам из курса геометрии -из класса многоугольник мы выводим класс quad (четырехугольник) который сам по себе не несет никакой нагрузки -из класса четырехугольник мы выводим класс rectangle (прямоугольник) которому для удобства даем поля a и b (стороны) и соответствующий конструктор -из класса прямоугольник мы выводим класс square (квадрат) которому для удобства мы даем соответствующий конструктор который просто передает единственный параметр (сторону) в конструктор прямоугольника -из класса четырехугольник мы выводим класс trapezium (равнобедренная трапеция) которому для удобства мы даем поля a, b и h (основания и высота) и соответствующий конструктор -из класса многоугольник мы выводим класс triangle (треугольник) который сам по себе не несет никакой нагрузки -аналогично из класса треугольник выводятся классы равнобедренный треугольник и равносторонний треугольник которым для удобства даются поля a, h (основание и высота для равнобедренного) или a (для равностороннего) и соответствующие конструкторы ----- демонстрация проводится как-то так
0
|
|||||||||||
|
3 / 3 / 3
Регистрация: 17.10.2012
Сообщений: 147
|
||||||
| 04.11.2014, 16:11 [ТС] | ||||||
|
Возникает ошибка на этом месте:
0
|
||||||
|
Модератор
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
|
|||||||||||
| 04.11.2014, 17:06 | |||||||||||
Сообщение было отмечено Andrea13 как решение
Решение
для тех кто не может исправить незначительные неточности связанные с тем что код вводили прямо на форум приводится рабочая версия
1
|
|||||||||||
|
3 / 3 / 3
Регистрация: 17.10.2012
Сообщений: 147
|
||||||||||||||||
| 04.11.2014, 20:39 [ТС] | ||||||||||||||||
|
Все здорово, но у меня несколько вопросов:
Что-за формула? Где ее можно посмотреть в интернете? (не нашел) 2.
Это какие-то варианты или что? Пояснения все на англ. языке. 3.
0
|
||||||||||||||||
|
Модератор
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
|
|
| 04.11.2014, 20:59 | |
|
1 тут формула http://www.mathsisfun.com/geom... ygons.html
2 push_back добавляет точку в список вершин. пусть вас не смущает название класса vector - смотрите на него просто как на динамический массив хранящий точки многоугольника. 3 в скобках точки трапеции. первая точка (0, 0), вторая лежит на оси X на расстоянии a и имеет координаты (a, 0). потом идут точки принадлежащие второму основанию - они удалены от оси X на расстояние h, а их координаты по оси X мы вычисляем зная длины оснований
0
|
|
|
3 / 3 / 3
Регистрация: 17.10.2012
Сообщений: 147
|
||||||||||||||||||||||||||
| 06.11.2014, 13:21 [ТС] | ||||||||||||||||||||||||||
|
Все таки этот предмет называется ООП, преподаватель все поменял и сделал такой код:
Сказал также сделать диструктор, и, что он обязательно должен присутствовать здесь:
Он: Что нам мешает в треугольнике сделать 5 вершин?! Я : Ничего. Это так он намекнул, что, возможно, тут что-то по-другому надо сделать. Или проверку - не знаю.
Помогите разобраться с этим.
0
|
||||||||||||||||||||||||||
|
Модератор
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
|
|
| 06.11.2014, 16:37 | |
|
очень странные правки.
1 назвать фигурой точку можно только с очень большими оговорками тем более, что такие понятия как периметр и площадь к ней неприменимы. точка это скорее нечто большее. например, точка - это геометрический объект. 2 выводить окружность из точки 3 выводить эллипс из круга 4 виртуальный деструктор можете сделать. правда он у вас не будет выполнять никаких действий. 5 функция смещение если перевести ее на человеческий язык и включить телепатию наверное означает возврат координат точки вставки фигуры (некоторой точки принятой за начало локальной системы координат фигуры) 6 относительно того что мешает сделать в треугольнике 5 вершин - можно было смело ответить "руководство пользователя библиотекой графических примитивов и квалификация разработчика". в качестве альтернативы можно сделать список вершин закрытым полем которое будет недоступно снаружи класса. 7 многоугольник - это такая штука у которой много вершин. 3. или 4. или 1 000 000. в чем проблема вывести четырехугольник из многоугольника? многоугольник - это базовый класс который реализует общее поведение всех фигур являющихся многоугольниками. дочерний класс треугольник может расширять этот класс своими методами в зависимости от специфики задачи. может вы разрабатываете библиотеку для применения в САПР где предусмотрены функции растягивания фигуры и они будут существенно отличаться для треугольника и чего-нибдь еще. ==== таким образом если учесть отсутствие четкой формулировки задачи все претензии можно назвать высосанными из пальца - программист решает задачу - если задача не ставится он решает ее так как телепатия подсказывает и глупо потом стучать в закрытые двери головой. тем более что задача на самом деле решена в объеме заявленного учебного материала. тем более что правки на половину состоят то ли из провокаций то ли из маразма
0
|
|
|
0 / 0 / 0
Регистрация: 05.04.2011
Сообщений: 7
|
||||||||||||
| 18.11.2014, 22:28 | ||||||||||||
допустим, у нас есть класс A и унаследованный от него класс B. В классе А память не выделяется и не очищается, ничего такого. В классе B же есть выделение памяти и очистка её в деструкторе. Примерно так:
Собственно, практически всегда нужно делать деструкторы в классах виртуальными, потому что если виртуального деструктора не будет и кто-то захочет унаследоваться от класса, этот кто-то не сможет нормально работать с памятью.
0
|
||||||||||||
|
Модератор
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
|
||
| 19.11.2014, 11:02 | ||
|
0
|
||
| 19.11.2014, 11:02 | |
|
Помогаю со студенческими работами здесь
12
Классическая задача ООП: геометрические фигуры ООП виртуальные функции ООП или функции ООП Дружественные Функции, Операторы.
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|