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

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

Войти
Регистрация
Восстановить пароль
 
Nasty zzz
0 / 0 / 0
Регистрация: 08.12.2011
Сообщений: 41
#1

Класс - выдает ошибку - C++

26.04.2012, 23:53. Просмотров 638. Ответов 14
Метки нет (Все метки)

прога по идее верная но компилятор выдает ошибку
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
class myclass{
int a,b,l;
public:
void set_a(int num); void set_b(int num); void set_l(int num);
int get_a(); int get_b(); int get_l();
};
void myclass::set_a(int num){
a=num;}
int myclass::get_a(){
return a;} void myclass::set_b(int num){
b=num;}
int myclass::get_b(){
return b;} void myclass::set_l(int num){
l=num;}
int myclass::get_l(){
return l;}
void main(){ float s;  int d,f,c;
myclass ob1,ob2,ob3 ;
cout<<"Vvedite dlinu 1 diogonali ";
cin>>d;
cout<<"Vvedite dlinu 2 diogonali ";
cin>>f;
cout<<"Vvedite ugol megdu diogonalymi ";
cin>>c;
ob1.set_a(d);
ob2.set_b(f);
ob3.set_l(c);
s=0.5*ob1.get_a()*ob2.get_b()*sin(ob3.get_l());
cout<<ob1.get_a()<<"\n";
cout<<ob2.get_b()<<"\n";
cout<<ob3.get_l()<<"\n";
cout<<s;
getch();
}
// SABCD= Ѕ AC·BD·sinЯ
//---------------------------------------------------------------------------
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2012, 23:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Класс - выдает ошибку (C++):

Создать класс Triad (тройка чисел). Выдает ошибку - C++
задание звучит так: создать класс Triad (тройка чисел); определить методы изменения полей и вычисления суммы чисел. Определить производный...

Выдает ошибку,тут что не так? Простейший класс - C++
#include&lt;conio.h&gt; #include&lt;io.h&gt; #include&lt;string.h&gt; #include&lt;iostream.h&gt; #include&lt;math.h&gt; ...

Реализовать класс матрицы в ООП(есть код, но выдает ошибку) - C++
В задании нужно постpоить класс для pаботы с квадратными матрицами. Класс должен включать соответствующие поля: порядок, набор...

Элементарный класс для работы с файлами, компилятор выдает ошибку, что не так с private - C++
#include &lt;ctime&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;iostream&gt; #include &lt;string&gt; #include...

Подскажите как исправить ошибку. прога ломается на 79 строке. а ошибку не выдает - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; using namespace std; int chisla(int a,int b) { ...

Найти ошибку в программе: в visual studio выдает ошибку - C++
#include &lt;math.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; using namespace std; int main() { double x, E, ypred, y, S; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
cetrael
60 / 5 / 3
Регистрация: 01.10.2011
Сообщений: 93
27.04.2012, 01:50 #2
Указали хотя бы ошибку, например.
0
Whiteha
Программист
33 / 33 / 4
Регистрация: 08.07.2011
Сообщений: 190
Записей в блоге: 1
27.04.2012, 04:06 #3
Вероятно синус от инта вызываете, а это неоднозначный вызов.
Там где синус вместо sin(ob3.get_l()) напишите sin((float)ob3.get_l()).
В образовательных целях - что у вас делают #pragma hdrstop и #pragma argsused?
1
Rengen
3 / 3 / 0
Регистрация: 15.01.2012
Сообщений: 67
27.04.2012, 08:34 #4
C++
1
2
3
4
5
...
class myclass{
int a,b,l;
public:
...
a,b,l, у вас к чему относятся?(Public,private,protected)
Но я не сильный спец конечно, и возможно синтаксис позволяет так их объявлять,и я могу ошибаться, но по-моему структуре нужно указывать как обращаться со своими членами класса.
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
27.04.2012, 08:49 #5
Цитата Сообщение от Rengen Посмотреть сообщение
C++
1
2
3
4
5
...
class myclass{
int a,b,l;
public:
...
a,b,l, у вас к чему относятся?(Public,private,protected)
Но я не сильный спец конечно, и возможно синтаксис позволяет так их объявлять,и я могу ошибаться, но по-моему структуре нужно указывать как обращаться со своими членами класса.
По умолчанию private.
0
HighPredator
5542 / 1848 / 345
Регистрация: 10.12.2010
Сообщений: 5,455
Записей в блоге: 2
27.04.2012, 13:17 #6
Цитата Сообщение от Whiteha Посмотреть сообщение
В образовательных целях - что у вас делают #pragma hdrstop и #pragma argsused?
C++
1
#pragma hdrstop
формирует пакет из скомпилированных заголовочных файлов перечисленных перед ней. Это необходимо в том случае, если где-то еще есть включение тех же заголовочных в том же порядке. При компиляции проекта в каждый из модулей будет подставляться этот пакет. Ускоряет компиляцию.
C++
1
#pragma argsused
указывается перед функцией и действует только на объявленную следом. Она отключает для данной функции предупреждение об объявленном, но не используемом в теле этой функции параметре.
Обе директивы специфичны для компиляторов Borland.
2
Nasty zzz
0 / 0 / 0
Регистрация: 08.12.2011
Сообщений: 41
01.05.2012, 09:57  [ТС] #7
Цитата Сообщение от Whiteha Посмотреть сообщение
вместо sin(ob3.get_l()) напишите sin((float)ob3.get_l())
вот это ошибка была
0
Nasty zzz
0 / 0 / 0
Регистрация: 08.12.2011
Сообщений: 41
05.05.2012, 17:10  [ТС] #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
.......
cout<<"Vvedite ugol megdu diogonalymi ";
cin>>c;
ob1.set_a(d);
ob2.set_b(f);
ob3.set_l(c);
s=0.5*ob1.get_a()*ob2.get_b()*sin(ob3.get_l());
cout<<ob1.get_a()<<"\n";
cout<<ob2.get_b()<<"\n";
cout<<ob3.get_l()<<"\n";
cout<<s;
.......
когда с=0.8
неверно считает выводит с=0 и площадь = 0
а кода с=1 и более то все верно в чем ошибка
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.05.2012, 00:49 #9
.............................................
31 void main(){ float s; int d,f,c;
.............................................
Переменные d, f, c объявлены как int (целое со знаком). Дробная часть будет отбрасываться. Объяви их как float: float s,d,f,c;
0
Nasty zzz
0 / 0 / 0
Регистрация: 08.12.2011
Сообщений: 41
06.05.2012, 15:27  [ТС] #10
float s,c;
так пробовал но все равно неверно считает
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.05.2012, 17:55 #11
Цитата Сообщение от Nasty zzz Посмотреть сообщение
float s,c;
так пробовал но все равно неверно считает
Все int и float в программе поменяй на double. И здесь: ...sin((float)ob3.get_l()); float вообще убери. Уже не нужно будет. То есть, напиши так: s=0.5*ob1.get_a()*ob2.get_b()*sin(ob3.get_l());

Добавлено через 48 минут
Величина угла, которую принимает функция sin() должна быть в радианах. Поэтому и неправильно считает. Введи переменную: double pi = 3.1415926535; и измени строку: s=0.5*ob1.get_a()*ob2.get_b()*sin((ob3.get_l() * pi) / 180); Это: ((ob3.get_l() * pi) / 180) - перевод градусов в радианы;
0
Nasty zzz
0 / 0 / 0
Регистрация: 08.12.2011
Сообщений: 41
07.05.2012, 00:56  [ТС] #12
не работает

Добавлено через 26 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
class myclass
{
 double a,b,l;
 public:
  void set_a(double num);
  void set_b(double num);
  void set_l(double num);
    double get_a();
    double get_b();
    double get_l();
};
 void myclass::set_a(double num){a=num;}
  double myclass::get_a(){return a;}
 void myclass::set_b(double num){b=num;}
  double myclass::get_b(){return b;}
 void myclass::set_l(double num){l=num;}
  double myclass::get_l(){return l;}
void main(){
 double s,d,f,c;
 //double pi = 3.1415926535;
 myclass ob1,ob2,ob3 ;
  cout<<"Vvedite dlinu 1 diogonali "; cin>>d;
  cout<<"Vvedite dlinu 2 diogonali "; cin>>f;
  cout<<"Vvedite ugol megdu diogonalymi "; cin>>c;
 ob1.set_a(d);
 ob2.set_b(f);
 ob3.set_l(c);
 s=0.5*ob1.get_a()*ob2.get_b()*sin(ob3.get_l());
  cout<<ob1.get_a()<<"\n";
  cout<<ob2.get_b()<<"\n";
  cout<<ob3.get_l()<<"\n";
  cout<<" s = " <<s;
getch();
}
// SABCD=0,5 AC·BD·sinЯ
//s=0.5*ob1.get_a()*ob2.get_b()*sin((ob3.get_l() * pi) / 180);
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.05.2012, 04:29 #13
Вот так у меня всё работает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//#include <vcl.h>
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#pragma hdrstop
#pragma argsused
using namespace std;
 
class myclass
{
 double a,b,l;
 public:
  void set_a(double num);
  void set_b(double num);
  void set_l(double num);
  double get_a();
  double get_b();
  double get_l();
};
 void myclass::set_a(double num){a=num;}
  double myclass::get_a(){return a;}
 void myclass::set_b(double num){b=num;}
  double myclass::get_b(){return b;}
 void myclass::set_l(double num){l=num;}
  double myclass::get_l(){return l;}
void main(){
 double s,d,f,c;
 double pi = 3.1415926535;
 myclass ob1,ob2,ob3 ;
  cout<<"Vvedite dlinu 1 diogonali "; cin>>d;
  cout<<"Vvedite dlinu 2 diogonali "; cin>>f;
  cout<<"Vvedite ugol megdu diogonalymi "; cin>>c;
 ob1.set_a(d);
 ob2.set_b(f);
 ob3.set_l(c);
 s=0.5*ob1.get_a()*ob2.get_b()*sin((ob3.get_l() * pi) / 180);
  cout<<ob1.get_a()<<"\n";
  cout<<ob2.get_b()<<"\n";
  cout<<ob3.get_l()<<"\n";
  cout<<" s = " <<s;
getch();
}
0
Nasty zzz
0 / 0 / 0
Регистрация: 08.12.2011
Сообщений: 41
08.05.2012, 11:07  [ТС] #14
не пашет s=0

Добавлено через 15 часов 25 минут
C++
1
//#include <vcl.h>  - почему в коментах
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.05.2012, 11:49 #15
Компилятор другой. Он этого не понимает.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2012, 11:49
Привет! Вот еще темы с ответами:

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

Выдает ошибку - C++
error: reference to ‘dec’ is ambiguous class dec { public: void entire(int enter) { while(false)

Выдает ошибку - C++
После запуска кода выдает ошибку Unresolved external '_Form1' referenced from D:\PROJECTS\PROJECT1.OBJ. Что за ошибку. Код прилагаю ниже ...

С++ выдает ошибку - C++
Доброе утро! Подскажите пожалуйста, на что может ругаться компилятор? Выдет ошибку: error: no match for 'operator&lt;&lt;' in...


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

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

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