Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2011, 21:23   #1
Drakowa
Новичок
Джуниор
 
Регистрация: 28.03.2011
Сообщений: 1
Печаль C++ создать класс Вектор

Задание: Дано 2 n-мерных вектора, необходимо найти угол между ними (через скалярное произведение) с созданием своего класса Vector и описания в нём конструктора, деструктора и friend-функций-операторов +, -, *.
Написала програмку без класса:

Цитата:
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include "Unit1.h"
//----------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#define PI 3.14159265
TForm1 *Form1;

//----------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{}
//-------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString s1,s2,buf1,buf2;
int i,p=0,q=0,a[50],b[50],len1,len2,mn=0,scal=0,x=0,xx=0,y=0 ,yy=0;
float kyt=0.0, coskyt=0.0;
s1 = Edit2->Text;
s2 = Edit3->Text;
len1 = s1.Length();
len2 = s2.Length();
buf1 = "";
buf2 = "";
// считываю элементы 1 вектора в массив a[50] из Edit
for(i=1; i<=len1; i++)
{
while(i<=len1 && s1[i]==' ') i++;
while(i<=len1 && s1[i]!=' ') buf1 += s1[i++];
a[p++] = StrToInt(buf1);
buf1 = "";
}
//считываю элементы 2 вектора в массив b[50] из Edit
for(i=1; i<=len2; i++)
{
while(i<=len2 && s2[i]==' ') i++;
while(i<=len2 && s2[i]!=' ') buf2 += s2[i++];
b[q++] = StrToInt(buf2);
buf2 = "";
}

for(i=0; i<p; i++)
for(i=0; i<q; i++)
mn= a[i]*b[i]; //скалярное произведение
scal=scal+mn;
Label9->Caption = IntToStr(scal);

for(i=0; i<p; i++) {
x=a[i]*a[i]; //х^2
xx=xx+x;
}
Label8->Caption = IntToStr(xx);

for(i=0; i<q; i++) {
y=b[i]*b[i]; //y^2
yy=yy+y;
}
Label13->Caption = IntToStr(yy);
coskyt=scal/(sqrt(xx)*sqrt(yy)); //нахожу косинус угла
Label6->Caption = FloatToStr(coskyt);
kyt=acos(coskyt)* 180.0 / PI; //угол между векотрами
Label15->Caption = FloatToStr(kyt);
}
Теперь надо написать класс и функции к нему, но не знаю с чего начать. Помогите пожалуйста)
Drakowa вне форума Ответить с цитированием
Старый 29.03.2011, 16:31   #2
sig_GB
Пользователь
 
Регистрация: 23.02.2010
Сообщений: 69
По умолчанию

Начать с освоения основ ООП в С++.
Открываете учебник и читаете темы:
  • инкапсуляция, скрытность (определение класса)
  • перегрузки (почти тоже что и перегрузки функций + перегрузки операндов и классов)
  • наследование (на закуску).
Помог? Нажми на <Весы> слева.
С++, Pascal, Assembler 386 - под заказ.
sig_GB вне форума Ответить с цитированием
Старый 29.03.2011, 17:06   #3
Acronis27
Новичок
Джуниор
 
Регистрация: 29.03.2011
Сообщений: 3
По умолчанию

Можешь попробовать здесь http://student-helper.org
Мне однажды помогли.
Acronis27 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать программу класс Вектор на С++ provayder Общие вопросы C/C++ 4 28.11.2010 21:44
С++класс-вектор cati Помощь студентам 4 21.04.2010 21:58
определить класс описывающий вектор.С++ varlonec Помощь студентам 0 26.01.2010 17:47
c++,класс вектор вникнуть в задание ahab Помощь студентам 5 26.12.2009 13:52
Создать вектор из элементов матрицы Dayterius Паскаль, Turbo Pascal, PascalABC.NET 0 20.05.2009 12:32