Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
лилиэн
6 / 6 / 0
Регистрация: 22.11.2012
Сообщений: 95
#1

Непонятен текст задания - C++

09.09.2013, 14:55. Просмотров 314. Ответов 7
Метки нет (Все метки)

Вот задание:
b) Создать абстрактный тип данных (структура) - вектор, который имеет указатель на float и число элементов. Определить функции: инициализации, удаления вектора, установки/ изменения размера, доступа к элементам вектора, вычисления суммы элементов вектора. Для примера, в функции main, организовать поэлементное умножение двух векторов.
Не понимаю на счет числа элементов
Так как написано в тексте задания я понимаю что в структуре будет неопределенное число элементов ,а сколько именно мы будем хранить в определенном поле,и все эти элементы будут типа float.Но я не могу же создать структуру с неопределенным числом элементов.
я себе это представляю так:
C++
1
2
3
4
5
struct vector
{
   float *fpNum;
   int iCount;
}
тогда что могут иметь в виду под "вычисления суммы элементов вектора" и" установки/ изменения размера"
прошу просто объяснить чего они хотеть от меня то
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2013, 14:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Непонятен текст задания (C++):

Используя текст программы оформить каждый пункт задания в виде функции - C++
Выполнить задание 6-й лабораторной работы («Двумерные массивы»), оформив каждый пункт задания в виде функции. Все необходимые данные для...

Непонятен алгоритм - C++
Здравствуйте. Не подскажете какой здесь сделать алгоритм? Собственно, сама задачка: Дан набор гирек массой m1, …, mN. Можно ли их...

Непонятен синтаксис - C++
Доброго времени суток! Хотелось бы попросить вашего совета. код double **E = new double *; в данном отрывке...

Непонятен пример из Лафоре - C++
В 7й Главе Никак не могу понять как реализован выход из цикла #include <iostream> #include <string> using namespace std; ...

Непонятен состав класса - C++
Не могли бы ли вы объяснить выделенные 10 строк??? #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstring> #include...

непонятен кусочек кода - C++
Вот функция равномерного распределинея чисел. int x1=time(NULL)*16331; int rand_d(int t) { float r; int da=0, db=t, m=97,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Петррр
5949 / 3386 / 337
Регистрация: 28.10.2010
Сообщений: 5,926
09.09.2013, 14:58 #2
Сумма элементов - зная количество элементов вектора (число хранится в поле iCount), ты считаешь сумму.
Изменение размера - ты перевыделяешь память под указатель fpNum, и в iCount записываешь новое количество элементов, и переписываешь все значения в новую память.
лилиэн
6 / 6 / 0
Регистрация: 22.11.2012
Сообщений: 95
09.09.2013, 15:24  [ТС] #3
Цитата Сообщение от Петррр Посмотреть сообщение
Сумма элементов - зная количество элементов вектора (число хранится в поле iCount), ты считаешь сумму.
Изменение размера - ты перевыделяешь память под указатель fpNum, и в iCount записываешь новое количество элементов, и переписываешь все значения в новую память.
Ну ок,допустим у меня 5 элементов...значит мне надо 5 указателей на каждый элемент...но я не могу в уже существующую структуру добавить или убрать указатель не так ли? так что все еще не понятно
Петррр
5949 / 3386 / 337
Регистрация: 28.10.2010
Сообщений: 5,926
09.09.2013, 15:26 #4
Указатель, это некая цифра, указывающая на начало участка памяти, которую вы выделили, а выделять память можно под сколько угодно элементов.
лилиэн
6 / 6 / 0
Регистрация: 22.11.2012
Сообщений: 95
09.09.2013, 15:45  [ТС] #5
Цитата Сообщение от Петррр Посмотреть сообщение
Указатель, это некая цифра, указывающая на начало участка памяти, которую вы выделили, а выделять память можно под сколько угодно элементов.
ну тоесть есть у меня в iCount хранится 5 то pfNum указывает на 1й из 5 элементов, а сразу после него хранится следущий и так далее,значит чтобы добраться до следущего мне достаточно сделать pfNum++ столько раз сколько у меня чисел...гениально блин) спасибки
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,056
Завершенные тесты: 1
09.09.2013, 18:38 #6
Цитата Сообщение от лилиэн Посмотреть сообщение
pfNum++
не просто прибавить один, а прибавить размер ячейки массива
лилиэн
6 / 6 / 0
Регистрация: 22.11.2012
Сообщений: 95
10.09.2013, 09:20  [ТС] #7
Цитата Сообщение от Raali Посмотреть сообщение
не просто прибавить один, а прибавить размер ячейки массива
а разве он не знает сам размер своей ячейки..то есть если он float то он сдвигается на 1 float
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
10.09.2013, 09:40 #8
лилиэн,
может имелась ввиду структура такого типа
C++
1
2
3
4
5
struct MyVect
{
int Coint;
float data[0];
}
напрямую с ней работать нельзя (она и получается абстрактная)
вот как с ней можно работать
например выделяем память для структуры в которой пять float
C++
1
2
3
4
MyVect* mv= (MyVect*) new unsigned char[sizeof(MyVect)+sizeof(float)*5];
mv->Coint=5;
mv->data[0]=3.0;
mv->data[4]=4.0;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.09.2013, 09:40
Привет! Вот еще темы с ответами:

Мне непонятен полный процесс создания программ на с++ - C++
Здравствуйте! Я начал изучать с++, возник небольшой вопрос. Я пользуюсь программой Code blocks и результат компиляции выводится в...

Непонятен код, присваивание значению int символа строки - C++
//получили строку str { std::vector<bool> char_set(128); for (int i = 0; i < str.length(); i++) { int val = str; ...

Непонятен синтаксис шаблонов из кода boost для вычисления факториала - C++
Доброго дня, уважаемые форумчане. Просьба ответить на вопрос в чем смысл дивных конструкций из примера внизу. ...

Немного непонятен алгоритм (в списке класса, состоящем из n строк и m столбцов, отмечаются выполненные лабораторные работы) - C++
вот условие задачи: В списке класса, состоящем из n строк и m столбцов, отмечаются выполненные лабораторные работы. Работа выполнена,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.09.2013, 09:40
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru