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

Возвращение типа bool - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
viper[ua]
 Аватар для viper[ua]
1 / 1 / 0
Регистрация: 15.12.2010
Сообщений: 48
23.11.2012, 21:15     Возвращение типа bool #1
Написать встроенную функцию, которая возвращает значение типа bool в зависимости от истинности утверждения. Функция должна иметь столько параметров, сколько необходимо для вычисления заданного логического выражения.

Вот задача:
Число c является средним арифметическим чисел а и b.

Я пока плохо понимаю в CI ++, вот написал фрагментик:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
 
bool (a, b, c, d);
int _tmain(int argc, _TCHAR* argv[])
{
    double a,c,b,d;
 
    cout << "Task 3 " << endl;
    return 0;
 
}
 
bool dx()
{
    bool result = true;
cout << "Vveditb A, B i C" << endl;
    cin >> a >> b >> c;
    d=(a+b)/2;
    return result;
}
Помогите исправить
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6373 / 4839 / 440
Регистрация: 14.02.2011
Сообщений: 16,038
23.11.2012, 21:19     Возвращение типа bool #2
Цитата Сообщение от viper[ua
;3744655]bool dx()
{
bool result = true;
cout << "Vveditb A, B i C" << endl;
cin >> a >> b >> c;
d=(a+b)/2;
return result;
}
можно так
C++
1
2
3
4
5
6
7
8
9
10
bool dx()
{
cout << "Vveditb A, B i C" << endl;
 cin >> a >> b >> c;
 d=(a+b)/2;
if(d==c) 
   return true;
   else
  return false;
}
но лучше так
C++
1
2
3
4
5
6
7
8
bool dx()
{
cout << "Vveditb A, B i C" << endl;
 cin >> a >> b >> c;
 d=(a+b)/2;
return (d==c); 
  
}
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
23.11.2012, 21:29     Возвращение типа bool #3
Цитата Сообщение от viper[ua
;3744655]#include "stdafx.h" #include <iostream> #include <math.h> using namespace std; bool (a, b, c, d); int _tmain(int argc, _TCHAR* argv[]) { double a,c,b,d; cout << "Task 3 " << endl; return 0; } bool dx() { bool result = true; cout << "Vveditb A, B i C" << endl; cin >> a >> b >> c; d=(a+b)/2; return result; }
a-a-a
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
 
bool is_average(int ,int , int );
int _tmain(int argc, _TCHAR* argv[])
{
cout << "Vveditb A, B i C" << endl;
    cin >> a >> b >> c;
if (is_average(a,b, c))
    cout<<"its average";
else
   cout<<"its not average";
return 0;
}
 
bool is_average(int a, int b, int c){
return (a+b)==(c<<1);
}
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,560
Записей в блоге: 17
23.11.2012, 21:31     Возвращение типа bool #4
Обычно лучше разделять ввод, вывод и обработку данных...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
bool dx(  double a, double b, double c) // обработка
{
  return  c ==((a+b)/2);
}
//--------------------------------------------------------
int main()
{
double a,c,b;
 
std::cout << "Vveditb A, B i C" << std::endl;
std::cin>>a>>b>>c;   // ввод
 
std::cout <<"result= "<< dx(a,b,c)<< std::endl;  // вывод
 
return 0;
}
ValeryS
Модератор
6373 / 4839 / 440
Регистрация: 14.02.2011
Сообщений: 16,038
23.11.2012, 21:42     Возвращение типа bool #5
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
(a+b)==(c<<1);
теперь неплохо бы объяснить начинающему, что сдвиг влево на 1 позицию равен умножению на 2
viper[ua]
 Аватар для viper[ua]
1 / 1 / 0
Регистрация: 15.12.2010
Сообщений: 48
23.11.2012, 21:43  [ТС]     Возвращение типа bool #6
Мне нужно возвращать значение в том случае, когда c будет равно результату функции
ValeryS
Модератор
6373 / 4839 / 440
Регистрация: 14.02.2011
Сообщений: 16,038
23.11.2012, 21:44     Возвращение типа bool #7
Цитата Сообщение от Avazart Посмотреть сообщение
bool dx( *double a, double b, double c) // обработка
{
* return *c ==((a+b)/2);
}
ошибок округления не боишься?
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,560
Записей в блоге: 17
23.11.2012, 21:46     Возвращение типа bool #8
Цитата Сообщение от ValeryS Посмотреть сообщение
ошибок округления не боишься?
Ну так не суть... откуда мне знать что там подразумевается ?
По сути там
C++
1
return fabs(c -(a+b)/2.)<= e;
ValeryS
Модератор
6373 / 4839 / 440
Регистрация: 14.02.2011
Сообщений: 16,038
23.11.2012, 21:47     Возвращение типа bool #9
Цитата Сообщение от viper[ua
;3744803]Мне нужно возвращать значение в том случае, когда c будет равно результату функции
результат возвращается в любом случае
и задачку то ты внимательно прочитал?
Цитата Сообщение от viper[ua
;3744655]которая возвращает значение типа bool в зависимости от истинности утверждения.
Цитата Сообщение от viper[ua
;3744655]Число c является средним арифметическим чисел а и b.
т.е вернуть истина если является и ложь если не является
viper[ua]
 Аватар для viper[ua]
1 / 1 / 0
Регистрация: 15.12.2010
Сообщений: 48
23.11.2012, 21:47  [ТС]     Возвращение типа bool #10
Объясните эту ошибку: "ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup"

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
 
bool dx(  double a, double b, double c)
 
{
    cout << "Task 3 " << endl;
    return 0;
}
 
bool dx()
{
    double a,c,b,d;
cout << "Vveditb A, B i C" << endl;
 cin >> a >> b >> c;
 d=(a+b)/2;
if(d==c) 
   return true;
   else
  return false;
}
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,560
Записей в блоге: 17
23.11.2012, 21:48     Возвращение типа bool #11
По сути там
C++
1
return fabs(c -(a+b)/2.)<= e;
где е это погрешность...
ValeryS
Модератор
6373 / 4839 / 440
Регистрация: 14.02.2011
Сообщений: 16,038
23.11.2012, 21:50     Возвращение типа bool #12
Цитата Сообщение от viper[ua
;3744832]Объясните эту ошибку: "ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup"
а теперь покажи мне в своей программе главную функцию main
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
23.11.2012, 21:56     Возвращение типа bool #13
Цитата Сообщение от ValeryS Посмотреть сообщение
(a+b)==(c<<1);
теперь неплохо бы объяснить начинающему, что сдвиг влево на 1 позицию равен умножению на 2
Да, слегка отдаёт намеренным запутыванием. Однако об операции сдвига начинающим тоже полезно иногда напомнить. А то некоторые начинающие изучать С++ считают, что << это лишь оператор ввода/вывода.
viper[ua]
 Аватар для viper[ua]
1 / 1 / 0
Регистрация: 15.12.2010
Сообщений: 48
23.11.2012, 22:05  [ТС]     Возвращение типа bool #14
Цитата Сообщение от ValeryS Посмотреть сообщение
а теперь покажи мне в своей программе главную функцию main
Дописал, но программа останавливается на первой части не доходя до основных расчетов.
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,560
Записей в блоге: 17
23.11.2012, 22:11     Возвращение типа bool #15
Ну так код напиши и ошибку выложи )
viper[ua]
 Аватар для viper[ua]
1 / 1 / 0
Регистрация: 15.12.2010
Сообщений: 48
23.11.2012, 22:14  [ТС]     Возвращение типа bool #16
Вот код (ошибки нет):
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
#include "stdafx.h"
#include <iostream>
#include <math.h>
 
using namespace std;
 
bool dx(  double a, double b, double c);
 
int _tmain(int argc, _TCHAR* argv[])
{
    cout << "Task 3 " << endl;
    return 0;
}
bool dx()
{
    double a,c,b,d;
    cout << "Vveditb A, B i C" << endl;
    cin >> a >> b >> c;
    d=(a+b)/2;
    if(d==c) 
        return true;
    else
        return false;
}
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,560
Записей в блоге: 17
23.11.2012, 22:17     Возвращение типа bool #17
C++
1
2
3
4
5
int _tmain(int argc, _TCHAR* argv[])
{
    cout << "Task 3 " << endl;
    return 0;
}
А вызвать ф-цию ?
ValeryS
Модератор
6373 / 4839 / 440
Регистрация: 14.02.2011
Сообщений: 16,038
23.11.2012, 22:18     Возвращение типа bool #18
а где ты вызываешь функцию dx???
и какую из них ты будешь вызывать ???
у тебя их две
Цитата Сообщение от viper[ua
;3744992]bool dx( *double a, double b, double c);
Цитата Сообщение от viper[ua
;3744992]bool dx()
возьми код у Kuzia domovenok и разберись с ним
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,560
Записей в блоге: 17
23.11.2012, 22:18     Возвращение типа bool #19
Возвращение типа bool
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2012, 22:26     Возвращение типа bool
Еще ссылки по теме:

Переменная типа bool C++
Переменные типа bool C++
Цикл и переменная типа bool C++

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

Или воспользуйтесь поиском по форуму:
viper[ua]
 Аватар для viper[ua]
1 / 1 / 0
Регистрация: 15.12.2010
Сообщений: 48
23.11.2012, 22:26  [ТС]     Возвращение типа bool #20
Вот, изменил немножко:
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
#include "stdafx.h"
#include <iostream>
#include <math.h>
 
using namespace std;
 
bool dx(  double a, double b, double c);
 
int _tmain(int argc, _TCHAR* argv[])
{
    double a = 2, b = 2, c = 2;
 
    dx(a, b, c);
 
    return 0;
}
bool dx(double a, double b, double c)
{
    double d;
    d=(a+b)/2;
    cout << "D = " << d << endl;
    if(d==c) 
        return true;
    else
        return false;
}
Подскажите правильно ли.
Yandex
Объявления
23.11.2012, 22:26     Возвращение типа bool
Ответ Создать тему
Опции темы

Текущее время: 00:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru