КИТА unofficial
Ноябрь 22, 2024, 04:43:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   ПРАВИЛА Помощь WIKI PDA Войти Регистрация  


Страниц: [1] 2 3  Все   Вниз
  Печать  
Автор Тема: Не понятно условие лабы? Тебе сюда  (Прочитано 47174 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Артем
sprata
Mодератор
Завкаф
*****

Карма: +40/-5
Offline Offline

Пол: Мужской
Сообщений: 1107


« : Март 04, 2008, 05:02:27 »

Частенько в лабораторных работах встречаеться ДВОЯКОЕ условие, то бишь, ПОНИМАЙ КАК ХОЧЕШЬ !!! И кажый преподаватель ТРАКТУЕТ условие ПО-СВОЕМУ !!! Надеюсь, что эта тема все таки прольет свет на ИСТИННОЕ условие наших лаб !!!
Записан
transformator
Dark Elf
Флудомодератор
Проректор
*****

Карма: +236/-8
Offline Offline

Пол: Мужской
Сообщений: 3509


Omnia mea mecum porto


« Ответ #1 : Март 04, 2008, 05:06:21 »

artem90, ну хотя бы пример привел бы...Вынес так сказать на суд общественности Улыбка

Да, и еще: надо правила форума почитать;) Не стоит капсить в названиях тем.
Записан

"Зрелище неорганизованных масс для меня невыносимо".  Артем
Артем
sprata
Mодератор
Завкаф
*****

Карма: +40/-5
Offline Offline

Пол: Мужской
Сообщений: 1107


« Ответ #2 : Март 04, 2008, 05:25:26 »

ПРИМЕР: неделю назад я сдавал 1-ый выч по ООП. В условие выча было 2 структуры составления программы (для четных и для нечетных вариантов).

Для НЕчетных вариантов:

  Нужно было сделать один класс "Матрица", свойствами которого должны быть: размерность матрицы, одномерный массив - вектор, размерность вектора.

Для четных вариантов:

  Нужно было сделать 2 класса. Отдельно класс "Матрица" и отдельно "Вектор".  В принципе ну НЕМНОГО сложнее и все.
  НО ПРЕПОДАВАТЕЛЬ который у нас принимал, трактовал условие для ЧЕТНЫХ вариантов иначе: объект класса "Вектор" должен быть свойством объекта класса "Матрица". То есть получаеться "класс в классе". И где после этого справедливость НепонимающийНепонимающийНепонимающий??

Задания у четных вариантов на порядок сложнее чем у НЕчетных !!!!!!

Но дело еще в том, что составлял задание другой преподаватель, который скорее всего имел ввиду просто 2 отдельных класса, а не "класс в классе".  Вот такая неразбериха !!! 
Записан
zer_owlet
Необычные пользователи
Проректор
*

Карма: +103/-16
Offline Offline

Пол: Мужской
Сообщений: 2399



« Ответ #3 : Март 04, 2008, 05:46:14 »

Ну на сколько я понимаю у вектора должны были быть свои методы....
и в этом случае это действительно класс в классе.... не вижу что ж тут сложного то.... и это логично, т.к. получается что матрица -- это массив векторов с указанием размера вектора и количества векторов... и у каждого вектора есть свои методы... все вполне логично и понятно вроде как...

так что все правильно требуют и претензия возникла лишь от непонимания на кой вообще классы нужны...

ЗЫ: но тема создана правильно и я ее полностью поддерживаю. т.к. она позволит разобрать все обиды и не мучатсья от того что "а меня завалили несправедливо"

ЗЗЫ: была и у меня такая ситуевина -- сдавал лабу 4 раза и каждый раз Фонотов находил такие входные данные чтобы прога не сработала (нужно было проверить правильность мат выражения и адекватность расставленных скобок)... в результате таки Поляков сказал что и так все нормально и что новые требования не для моего уровня... но мне было интересно поразбираться. правда, потом этот долбаный разбор мат выражений (который делал Лазарус, например) меня не интересовал... было просто не интересно ковыряться... но это так... лирика...
Записан



Если бы те, кто злословит обо мне, знали, что я о них думаю, они бы ещё не то говорили.

Так хочется быть добрым и порядочным, особенно, когда понимаешь, что патронов на всех никогда не хватит..

Памятка женщинам: если ты хочешь, чтоб мужчина встал на колени - разденься и встань на четвереньки.
LazarusLong
Ирландский доброволец
Проректор
*****

Карма: +181/-7
Offline Offline

Пол: Мужской
Награды:
А может я тоже хочу себе награду?
Сообщений: 6134


Ukrainian by birth, Irish by the grace of God


WWW
« Ответ #4 : Март 04, 2008, 09:44:13 »


ПРИМЕР: неделю назад я сдавал 1-ый выч по ООП. В условие выча было 2 структуры составления программы (для четных и для нечетных вариантов).

Для НЕчетных вариантов:

  Нужно было сделать один класс "Матрица", свойствами которого должны быть: размерность матрицы, одномерный массив - вектор, размерность вектора.

Для четных вариантов:

  Нужно было сделать 2 класса. Отдельно класс "Матрица" и отдельно "Вектор".  В принципе ну НЕМНОГО сложнее и все.
  НО ПРЕПОДАВАТЕЛЬ который у нас принимал, трактовал условие для ЧЕТНЫХ вариантов иначе: объект класса "Вектор" должен быть свойством объекта класса "Матрица". То есть получаеться "класс в классе". И где после этого справедливость

Я бы попросил задание в студию. Полный текст - дословно. А то мы пока судим о задании только со слов студента. Может он сам его не правильно понял.

Записан

Когда ему нужно - он русский, когда нужно - украинец, а когда ему ни хрена не нужно - он ирландец.

"...Он любил говорить факин щит
Когда что-то не так ему
Принимал он свой самый ирландский вид
И кидался трубкой в жену..."
Артем
sprata
Mодератор
Завкаф
*****

Карма: +40/-5
Offline Offline

Пол: Мужской
Сообщений: 1107


« Ответ #5 : Март 04, 2008, 10:25:03 »

Я бы попросил задание в студию. Полный текст - дословно. А то мы пока судим о задании только со слов студента. Может он сам его не правильно понял.

Дело в том, что этот выч я уже сдал, а его условие привел только в качестве примера. Но я уже убедился, что я сам не правильно его понял. В данный момент меня больше интересует следующий вопрос, он даже больше не по условию, а по реализации. Но условие напишу, чтобы был понятен мой вопрос:

Требуеться создать класс "Вектор", "Матрица", и класс "Обработчик".

При создании вектора необходимо выполнить следующие требования:

- определить конструктор для создания вектора заданного размера;
- определить метод вывода на экран;
- данные вектора должны размещаться в динамической памяти;
- обеспечить корректное освобождение памяти;
- все поля вектора должны быть закрытыми, и доступ к данным должен осуществляться только с   помощью селекторов и модификаторов;

При создании матрицы необходимо выполнить требования:

-определить конструктор для создания матрицы заданной размерности;
-обеспечить корректное освобождение памяти в деструкторе;
-определить метод вывода матрицы на экран;
-ДАННЫЕ МАТРИЦЫ ДОЛЖНЫ ХРАНИТЬСЯ КАК ДИНАМИЧЕСКИЙ МАССИВ ВЕКТОРОВ С ЗАКРЫТЫМ ДОСТУПОМ, ПРИ ЭТОМ РАЗМЕРНОСТЬ МАССИВА И РАЗМЕРНОСТЬ ВЕКТОРОВ ОПРЕДЕЛЯЕТСЯ ТРЕБУЕМОЙ РАЗМЕРНОСТЬЮ МАТРИЦЫ;
- доступ к данным векторов, из кот-ых сформирована матрица, должен быть выполнен внутренней обработкой информации только с помощью селекторов и модификаторов класса "Вектор"

В классе-обработчике требуеться определить:
 
- конструктор, деструктор;
- поле для хранения указателя на исходную матрицу;
- метод заполнения матрицы по формуле;
- метод обработки матрицы;
- если результат - новая матрица млм вектор, то класс--обработчик должен содержать закрытое поле-указатель на матрицу-результат, и соответственно, иметь селектор доступа к ней;
« Последнее редактирование: Март 04, 2008, 10:37:00 от artem90 » Записан
LazarusLong
Ирландский доброволец
Проректор
*****

Карма: +181/-7
Offline Offline

Пол: Мужской
Награды:
А может я тоже хочу себе награду?
Сообщений: 6134


Ukrainian by birth, Irish by the grace of God


WWW
« Ответ #6 : Март 04, 2008, 10:46:32 »

Ну и что тут не понятного? Все предельно ясно и четко изложено. Хоть бери и по пунктам пиши программу. Непонимающий
Записан

Когда ему нужно - он русский, когда нужно - украинец, а когда ему ни хрена не нужно - он ирландец.

"...Он любил говорить факин щит
Когда что-то не так ему
Принимал он свой самый ирландский вид
И кидался трубкой в жену..."
Артем
sprata
Mодератор
Завкаф
*****

Карма: +40/-5
Offline Offline

Пол: Мужской
Сообщений: 1107


« Ответ #7 : Март 04, 2008, 10:47:34 »

Когда нам объясняли условие этой лабы, то сделали акцент на то, что в класее "Вектор" должно быть 2 конструктора: по умолчанию и с параметром. Причем конструктор по умолчанию должен ВЫДЕЛЯТЬ ПАМЯТЬ ДЛЯ 1-МЕРНОГО ВЕКТОРА ПОД 0 ЭЛЕМЕНТОВ. А уже потом с помощью конструктора с параметром выделить память для нужного кол-ва элементов.

МОЙ ВОПРОС:  если мы сразу создадим объект класса "Вектор"  конструктором по умолчанию и выделим память под 0 элементов, то потом что нам нужно ПЕРЕСОЗДАВАТЬ объект с помощью  конструктора с параметром, чтобы установить нужную размерность?Непонимающий или как?Непонимающий 
Записан
LazarusLong
Ирландский доброволец
Проректор
*****

Карма: +181/-7
Offline Offline

Пол: Мужской
Награды:
А может я тоже хочу себе награду?
Сообщений: 6134


Ukrainian by birth, Irish by the grace of God


WWW
« Ответ #8 : Март 04, 2008, 10:54:59 »

Фактически, каждый конструктор который ты создаешь описывает способ создания объекта. Используй каждый конструктор по необходимости. Но в любом случае это мнэ... странно создавать объект сперва конструктором по умолчанию, а затем пересоздавать его же параметризованным конструктором. Сразу создавай объект нужным конструктором.
Записан

Когда ему нужно - он русский, когда нужно - украинец, а когда ему ни хрена не нужно - он ирландец.

"...Он любил говорить факин щит
Когда что-то не так ему
Принимал он свой самый ирландский вид
И кидался трубкой в жену..."
EvilMax
Администратор
Завкаф
*****

Карма: +59/-0
Offline Offline

Пол: Мужской
Сообщений: 1072


Злой и страшный :)


« Ответ #9 : Март 04, 2008, 10:55:08 »

Читаю условие и в упор не вижу конструктора по умолчанию, переотведения памяти и т.п.

-ДАННЫЕ МАТРИЦЫ ДОЛЖНЫ ХРАНИТЬСЯ КАК ДИНАМИЧЕСКИЙ МАССИВ ВЕКТОРОВ С ЗАКРЫТЫМ ДОСТУПОМ, ПРИ ЭТОМ РАЗМЕРНОСТЬ МАССИВА И РАЗМЕРНОСТЬ ВЕКТОРОВ ОПРЕДЕЛЯЕТСЯ ТРЕБУЕМОЙ РАЗМЕРНОСТЬЮ МАТРИЦЫ;

Код: (cpp)
class Vector {
  int * data;
  int size;
public:
  Vector(int s)
 { //Create vector of size 's' here
 }
 // Think by yourself what else...
};

class Matrix {
  Vector ** rows;
  int m, n;
public:
  Matrix(int m, int n)
  {//Create matrix of size m x n here
  }
 // Think by yourself what else...
};
Записан

Оптимальная концентрация кофе - это когда код уже дает советы, как его написать, но еще не спорит с тобой и не подкалывает в случае неудач...
---
Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист
Артем
sprata
Mодератор
Завкаф
*****

Карма: +40/-5
Offline Offline

Пол: Мужской
Сообщений: 1107


« Ответ #10 : Март 04, 2008, 10:57:03 »


Читаю условие и в упор не вижу конструктора по умолчанию, переотведения памяти и т.п.
Нам сказали что в условии этого нет, и поэтому передали на словах
Записан
EvilMax
Администратор
Завкаф
*****

Карма: +59/-0
Offline Offline

Пол: Мужской
Сообщений: 1072


Злой и страшный :)


« Ответ #11 : Март 04, 2008, 11:03:22 »

Жаль.. Ну что ж, тогда придется делать метод, нечто вроде SetSize, в нем делать новую матрицу/вектор (точно так же как в конструкторе), копировать туда старые данные и старую память освобождать. Итого: повторение кода конструктора, но c учетом новой переменной-указателя, копирование данных в цикле и освобождение старой памяти. ИМХО, не страшно. Главное - внимательно следить за работой с динамической памятью.
Записан

Оптимальная концентрация кофе - это когда код уже дает советы, как его написать, но еще не спорит с тобой и не подкалывает в случае неудач...
---
Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист
Артем
sprata
Mодератор
Завкаф
*****

Карма: +40/-5
Offline Offline

Пол: Мужской
Сообщений: 1107


« Ответ #12 : Март 04, 2008, 11:07:10 »

Возможно это и не страшно, но нам это еще не дали на лекции по моему, и не сильно ли это сложновато для 2-ой лабы?Непонимающий

(Отправлено в: 04 Марта 2008, 22:06:32)

EvilMax - Максим Владимирович, а это случайно не вы???
Записан
EvilMax
Администратор
Завкаф
*****

Карма: +59/-0
Offline Offline

Пол: Мужской
Сообщений: 1072


Злой и страшный :)


« Ответ #13 : Март 04, 2008, 11:10:48 »

но нам это еще не дали на лекции по моему
То, что у класса может быть поле любого типа? В т.ч. и типа "класс"? Дали-дали Подмигивающий Причём давненько. Уже лекции далеко вперёд ушли. Еще 1-2 и можно 3-ю выдавать Подмигивающий

Цитата: artem90
Максим Владимирович, а это случайно не вы???
Нет, не я, конечно  Смеющийся
Записан

Оптимальная концентрация кофе - это когда код уже дает советы, как его написать, но еще не спорит с тобой и не подкалывает в случае неудач...
---
Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист
KyDECHuK
Декан
*****

Карма: +43/-4
Offline Offline

Пол: Мужской
Сообщений: 1711


... вот что бывает, когда башню срывает ...


WWW
« Ответ #14 : Март 04, 2008, 11:14:12 »

Off-Topic - помечено автором как "не соответствует обсуждаемой теме"
EvilMax - Максим Владимирович, а это случайно не вы???
Случайно не он! Смеющийся
artem90 - а ты случайно не студент первого-второго курса?

Возможно это и не страшно, но нам это еще не дали на лекции по моему, и не сильно ли это сложновато для 2-ой лабы?Непонимающий
Рассинхрон между лекциями и практическими занятиями будет всегда.
То, что какой-то материал не давали на лекции, не повод бросать лабу - это на будущее Улыбка
Записан

Артем
sprata
Mодератор
Завкаф
*****

Карма: +40/-5
Offline Offline

Пол: Мужской
Сообщений: 1107


« Ответ #15 : Март 04, 2008, 11:16:46 »

EvilMax, Хорошо, а как Вы думаете Смеющийся, что все таки хотел от нас М.В Смеющийся. чтобы мы делали все это:

"повторение кода конструктора, но c учетом новой переменной-указателя, копирование данных в цикле и освобождение старой памяти. "

Или все таки один конструктор создать и сразу выделить память под нужное кол-во???
Записан
EvilMax
Администратор
Завкаф
*****

Карма: +59/-0
Offline Offline

Пол: Мужской
Сообщений: 1072


Злой и страшный :)


« Ответ #16 : Март 04, 2008, 11:21:11 »

Я хотел от вас ровно то, что написано в условии. Без переотведения памяти. Оно выброшено намеренно, чтобы снизить объём работы по Л/р №2. Как показала практика, несмотря на ранее изученный  материал по работе с динамической памятью, при изменении размера ломают очень много дров, и часто из-за невнимательности. Но задача курса - научить вас ООП а не просто усилить знания по работе с указателями - это еще успеете сделать, и не раз.

К сожалению, я положился только на письменный вариант задания, и не предупредил некоторых преподавателей. Завтра я этот вопрос решу.
Записан

Оптимальная концентрация кофе - это когда код уже дает советы, как его написать, но еще не спорит с тобой и не подкалывает в случае неудач...
---
Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист
Артем
sprata
Mодератор
Завкаф
*****

Карма: +40/-5
Offline Offline

Пол: Мужской
Сообщений: 1107


« Ответ #17 : Март 04, 2008, 11:22:15 »

EvilMax, Спасибо!!!!!
Записан
EvilMax
Администратор
Завкаф
*****

Карма: +59/-0
Offline Offline

Пол: Мужской
Сообщений: 1072


Злой и страшный :)


« Ответ #18 : Март 04, 2008, 11:25:25 »

Пока еще не за что.
Записан

Оптимальная концентрация кофе - это когда код уже дает советы, как его написать, но еще не спорит с тобой и не подкалывает в случае неудач...
---
Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист
Артем
sprata
Mодератор
Завкаф
*****

Карма: +40/-5
Offline Offline

Пол: Мужской
Сообщений: 1107


« Ответ #19 : Март 04, 2008, 11:30:44 »

EvilMax, Вы не могли бы примерчик на вот это: МАТРИЦА ДОЛЖНА ХРАНИТЬСЯ КАК ДИНАМИЧЕСКИЙ МАССИВ ВЕКТОРОВ . Буду очень благодарен !!!
Записан
Страниц: [1] 2 3  Все   Вверх
  Печать  
 
Перейти в:  

Penguins Counter Powered by MySQL Powered by PHP Powered by SMF 1.1.8 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS! Internetmap
Страница сгенерирована за 0.144 секунд. Запросов: 32.