Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.90/48: Рейтинг темы: голосов - 48, средняя оценка - 4.90
1 / 1 / 1
Регистрация: 15.12.2010
Сообщений: 48
1

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

23.11.2012, 21:15. Показов 9276. Ответов 21
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать встроенную функцию, которая возвращает значение типа 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;
}
Помогите исправить
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.11.2012, 21:15
Ответы с готовыми решениями:

Сформировать массив типа bool из массива типа char
Доброго времени суток! После ввода элементов массива вылазит ошибка &quot;Необработанное исключение:...

Возвращение результата функции bool и использование его в функции main()
У меня есть функция bool, которая имеет вид: bool Pisos(int row, int place) { if (...)...

Функция типа bool
Сумма первой и последней цифры в введенном четырехзначном числе является нечетным значением. Если...

функция типа bool
Привет! Подскажите пожалуйста как написать функцию типа bool. Есть вектор целых чисел, в котором...

21
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
23.11.2012, 21:19 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); 
  
}
1
4064 / 3318 / 924
Регистрация: 25.03.2012
Сообщений: 12,495
Записей в блоге: 1
23.11.2012, 21:29 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);
}
1
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.11.2012, 21:31 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;
}
1
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
23.11.2012, 21:42 5
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
(a+b)==(c<<1);
теперь неплохо бы объяснить начинающему, что сдвиг влево на 1 позицию равен умножению на 2
0
1 / 1 / 1
Регистрация: 15.12.2010
Сообщений: 48
23.11.2012, 21:43  [ТС] 6
Мне нужно возвращать значение в том случае, когда c будет равно результату функции
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
23.11.2012, 21:44 7
Цитата Сообщение от Avazart Посмотреть сообщение
bool dx( *double a, double b, double c) // обработка
{
* return *c ==((a+b)/2);
}
ошибок округления не боишься?
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.11.2012, 21:46 8
Цитата Сообщение от ValeryS Посмотреть сообщение
ошибок округления не боишься?
Ну так не суть... откуда мне знать что там подразумевается ?
По сути там
C++
1
return fabs(c -(a+b)/2.)<= e;
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
23.11.2012, 21:47 9
Цитата Сообщение от viper[ua
;3744803]Мне нужно возвращать значение в том случае, когда c будет равно результату функции
результат возвращается в любом случае
и задачку то ты внимательно прочитал?
Цитата Сообщение от viper[ua
;3744655]которая возвращает значение типа bool в зависимости от истинности утверждения.
Цитата Сообщение от viper[ua
;3744655]Число c является средним арифметическим чисел а и b.
т.е вернуть истина если является и ложь если не является
0
1 / 1 / 1
Регистрация: 15.12.2010
Сообщений: 48
23.11.2012, 21:47  [ТС] 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;
}
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.11.2012, 21:48 11
По сути там
C++
1
return fabs(c -(a+b)/2.)<= e;
где е это погрешность...
1
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
23.11.2012, 21:50 12
Цитата Сообщение от viper[ua
;3744832]Объясните эту ошибку: "ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup"
а теперь покажи мне в своей программе главную функцию main
1
4064 / 3318 / 924
Регистрация: 25.03.2012
Сообщений: 12,495
Записей в блоге: 1
23.11.2012, 21:56 13
Цитата Сообщение от ValeryS Посмотреть сообщение
(a+b)==(c<<1);
теперь неплохо бы объяснить начинающему, что сдвиг влево на 1 позицию равен умножению на 2
Да, слегка отдаёт намеренным запутыванием. Однако об операции сдвига начинающим тоже полезно иногда напомнить. А то некоторые начинающие изучать С++ считают, что << это лишь оператор ввода/вывода.
0
1 / 1 / 1
Регистрация: 15.12.2010
Сообщений: 48
23.11.2012, 22:05  [ТС] 14
Цитата Сообщение от ValeryS Посмотреть сообщение
а теперь покажи мне в своей программе главную функцию main
Дописал, но программа останавливается на первой части не доходя до основных расчетов.
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.11.2012, 22:11 15
Ну так код напиши и ошибку выложи )
0
1 / 1 / 1
Регистрация: 15.12.2010
Сообщений: 48
23.11.2012, 22:14  [ТС] 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;
}
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.11.2012, 22:17 17
C++
1
2
3
4
5
int _tmain(int argc, _TCHAR* argv[])
{
    cout << "Task 3 " << endl;
    return 0;
}
А вызвать ф-цию ?
1
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
23.11.2012, 22:18 18
а где ты вызываешь функцию dx???
и какую из них ты будешь вызывать ???
у тебя их две
Цитата Сообщение от viper[ua
;3744992]bool dx( *double a, double b, double c);
Цитата Сообщение от viper[ua
;3744992]bool dx()
возьми код у Kuzia domovenok и разберись с ним
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.11.2012, 22:18 19
https://www.cyberforum.ru/post3744735.html
0
1 / 1 / 1
Регистрация: 15.12.2010
Сообщений: 48
23.11.2012, 22:26  [ТС] 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;
}
Подскажите правильно ли.
0
23.11.2012, 22:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.11.2012, 22:26
Помогаю со студенческими работами здесь

размер типа bool
сколько занимает в памяти bool?

Переменные типа bool
Сколько переменных типа bool здесь определено: bool &amp;l1, &amp;p2, **t3, b4, *n5, w6;

Переменная типа bool
Что значит данная строчка? for (int i = 0; i &lt; n - 1 &amp;&amp; uvelichenie; i++) #include &lt;iostream.h&gt;...

Цикл и переменная типа bool
У меня есть переменная типа bool, которая при bool == true выводит звездочку, а при bool == false...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru