Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: ошибка при реализации меню  (Прочитано 4541 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
555irina
Интересующийся

ru
Offline Offline

« : 18-12-2010 08:33 » new

Всем привет !
Необходимо организовать меню для этой программы,а у меня при выводе функции выдаёт ошибку... Не понял


Код:
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
class vector
{
        private:
        int *mas;   //  массив 
        int low;        // нижняя граница
        int high;     // верхняя граница
        public:
        vector();                         //   конструктор
        vector(int low, int high);                  //     конструктор с настройкой границ
        ~vector();                          //  деструктор
        int Add(vector *v);     //   сложить 2 вектора
        int Sub(vector *v);    //âû÷åñòü 2 âåêòîðà
        void Mul(int k);          // óìíîæèòü âåêòîð íà ÷èñëî
        void Div(int k);                // ïîäåëèòü âåêòîð íà ÷èñëî
        int &operator[](int k);              // îáðàùåíèå ê ýëåìåíòó âåêòîðà
        void VyvodElem(int index);    //âûâîä îäíîãî ýëåìåíòà
        void VyvodVector(void);   //âûâîä âñåãî âåêòîðà
};
vector::vector()
{        low= 0;
        high= 100;
        mas= (int*)malloc((high-low+1)*4);
}
vector::vector(int low, int high)
{
        this->low= low;
        this->high= high;
        mas= (int*)malloc((high-low+1)*4);
}
vector::~vector()
{
        free(mas);
}
int vector::Add(vector *v)
{
        if ((low==v->low)&&(high==v->high))
        {
                for (int i=0; i<=high-low; i++)
                mas[i]+= v->mas[i];
                return 0;
        }
        return 1;
}
void vector::Mul(int k)
{
        for (int i=0; i<=high-low; i++)
                mas[i]*= k;
}
void vector::Div(int k)
{
        for (int i=0; i<=high-low; i++)
                mas[i]/= k;
}
int vector::Sub(vector *v)
{
        if ((low==v->low)&&(high==v->high))
        {
                for (int i=low; i<=high; i++)
                mas[i]-= v->mas[i];
                return 0;
        }
        return 1;
}
int &vector::operator[](int index)
{
        if ((index>=low)&&(index<=high))
        {
                return mas[index-low];
        }
        throw "error";
}
void vector::VyvodElem(int index)
{
        if ((index>=low)&&(index<=high))
        {
                printf("%d", mas[index-low]);
        }
        else
        printf("Worng index");
}
void vector::VyvodVector(void)
{
        for (int i=0; i<=high-low; i++)
                printf("%d ", mas[i]);
        printf("\n");
}

void main()
{
        vector v(10, 20);

        for(int i=10; i<=20; i++)
                v[i]= i;

        v.VyvodVector();
        v.Mul(10);
        v.VyvodVector();
        v.Div(5);
        v.VyvodVector();

       // здесь начинается меню............

       int n;

        cout<<"MENU:"<<endl;
        cout<<"0-exit"<<endl;
        cout<<"1-slogit 2 vectora"<<endl;
        cout<<"2-vichest 2 vectora"<<endl;
        cout<<"3-ymnogit vector na chislo"<<endl;
        cout<<"4-delit vector na chislo"<<endl;
        cout<<"5-vivod odnogo elementa "<<endl;
        cout<<"6-vivod vsego elementa"<<endl;
        cin>>n;

         for(int i=0;i<100;i++)
       if(n==1)
      {
      cout<<Add();   // сложение 2 векторов....здесь выдаёт ошибку
      }

         if(n==0)
     {
      exit(1);
      }
        getch();
}
//---------------------------------------------------------------------------
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 18-12-2010 10:10 » 

555irina, Add - это не функция, а метод вектора. А где у тебя объект вектора?
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines