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

Функция, которая получает два параметра и возвращает результат деления первого параметра на второй - C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
zero-11
 Аватар для zero-11
0 / 0 / 0
Регистрация: 21.03.2014
Сообщений: 56
29.03.2014, 15:43     Функция, которая получает два параметра и возвращает результат деления первого параметра на второй #1
Тут такая задача: написать функцию, которая получает два параметра тип unsigned short int и возвращает результат деления первого параметра на второй. Функция не должна выполнять операцию деления, если второе число равно 0, но в этом случае она должна возвратить значение - 1.

Я попробовал реализовать так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 #include <iostream>
short int Divider( unsigned short int ValOne,
                  unsigned short int ValTwo);
 
 
 
short int Divivder( unsigned short int ValOne,
                    unsigned short int ValTwo);
{
if(ValTwo == 0 )
return -1;
else 
return (valOne / ValTwo);
}
Но сначала пробовал через int main() - то есть вызвать функцию из функции и передать аргументы:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
short int Divider( unsigned short int ValOne,
                  unsigned short int ValTwo);
 
int main();
 
int unsigned short x;
int unsigned short y;
 
short int Divider( unsigned short int x, unsigned short int y);
 
 
short int Divivder( unsigned short int x,unsigned short int y)
{
if(y== 0 )
return -1;
else 
return ( x / y);
}
Не получается откомпилировать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2014, 15:43     Функция, которая получает два параметра и возвращает результат деления первого параметра на второй
Посмотрите здесь:

C++ Функция которая сравнивает два целых числа и возвращает результат сравнения в виде знака: >, < или =
C++ Написать функцию, которая в зависимости от значения первого параметра возвращает количество отрицательных или положительных чисел призвольного массива
C++ Функция, которая возвращает среднее арифметическое элементов параметра-массива
Вызов функции, которая возвращает 2 параметра C++
C++ Функцию, которая получает два параметра str1 и str2 типа string и возвращает позицию начала последнего появления str2 в str1
Создать функцию, в качестве параметра получает массив и количество его элементов, возвращает массив, упорядоченный по возрастанию C++
Напишите перегруженную функцию power (), которая принимает два целочисленных параметра типа int и возвращает целочисленное значение типа int C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
12288 / 6975 / 784
Регистрация: 27.09.2012
Сообщений: 17,286
Записей в блоге: 2
Завершенные тесты: 1
29.03.2014, 16:01     Функция, которая получает два параметра и возвращает результат деления первого параметра на второй #2
Имена сравните
C++
1
2
3
4
5
6
short int Divider( unsigned short int ValOne,
                  unsigned short int ValTwo);
short int Divivder( unsigned short int x,unsigned short int y)
{
//...
}
где main? Че за глобальные переменные?
just_freelance
61 / 37 / 9
Регистрация: 15.03.2014
Сообщений: 315
29.03.2014, 16:21     Функция, которая получает два параметра и возвращает результат деления первого параметра на второй #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
using namespace std;
 
short int Divivder (unsigned short int x, unsigned short int y)
{
    if (y == 0)
        return -1;
    else
        return x / y;
}
 
int main()
{
    unsigned short int x, y;
    cin >> x >> y;
    cout << Divivder(x, y);
    return 0;
}
zero-11
 Аватар для zero-11
0 / 0 / 0
Регистрация: 21.03.2014
Сообщений: 56
29.03.2014, 20:30  [ТС]     Функция, которая получает два параметра и возвращает результат деления первого параметра на второй #4
Так же нужно, что бы выводи результат деления или ошибку, если будет возвращено значение - 1.

Я пробовал такую реализацию :


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
  #include <iostream>
 
short int Divivder (unsigned short int x, unsigned short int y);
 
using namespace std;
using std::cout;
using std::endl;
 
int main()
{
    short int result;
    
    unsigned short int x, y;
    cout<<"vvedite znajenije x: ";
    cin >> x;
    cout<<"vvedite znajenije y: ";
    cin >> y;
    cin >> x >> y;
   result = Divivder( x, y );
    cout <<  " summa: " << result<<endl;
        char response;
        std::cin;
}
    
short int Divivder (unsigned short int x, unsigned short int y)
{
    if (y == 0)
        return -1;
    else
        return (x / y);
}
Программа запрашивает два числа и возвращает либо результат либо сообщение об ошибке, но в цикле if:

C++
1
2
3
4
5
if ( y ==0 )
cout << " Error! Vvedite znajenije y";
return -1;
else
return ( x / y);
реализовать не удается.

Добавлено через 2 часа 12 минут
Я подкорректировал код:

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
#include <iostream>
 
short int Divivder (unsigned short int valone, 
                    unsigned short int valtwo);
 
using namespace std;
 
int main()
{
    short int result;
    
    unsigned short int one, two;
    cout<<"vvedite znajenije x: ";
    cin >> one;
    cout<<"vvedite znajenije y: ";
    cin >> two;
    cin >> one >> two;
    result = Divivder( one, two );
    if ( result >-1);
       cout <<  " summa: " << result;
    else 
        cout << "Error!Vvedite y ";
    return 0;
}
    
short int Divivder (unsigned short int valone, 
    unsigned short int valtwo)
{
    if (valtwo == 0)
        return -1;
    else
        return (valone / valtwo);
}
Пишет ошибка в блоке if...else;
zero-11
 Аватар для zero-11
0 / 0 / 0
Регистрация: 21.03.2014
Сообщений: 56
31.03.2014, 11:48  [ТС]     Функция, которая получает два параметра и возвращает результат деления первого параметра на второй #5
Он в этой конструкции выдает ошибку

Код
if ( result >-1);
	   cout <<  " summa: " << result;
	else 
        cout << "Error!Vvedite y ";
	return 0;
Tulosba
:)
Эксперт С++
4382 / 3225 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
31.03.2014, 11:52     Функция, которая получает два параметра и возвращает результат деления первого параметра на второй #6
zero-11, после ифа точку с запятой уберите:
C++
1
if ( result >-1)
zero-11
 Аватар для zero-11
0 / 0 / 0
Регистрация: 21.03.2014
Сообщений: 56
31.03.2014, 13:34  [ТС]     Функция, которая получает два параметра и возвращает результат деления первого параметра на второй #7
Позволяет ввести два значения, но не выводит результат - хотя после ввода значений управления передается вызываемой функции - может я здесь неверно объявил result = Divivder( one, two ); - но тип short int result - определен - :

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
#include <iostream>
 
short int Divivder (unsigned short int valone, 
                    unsigned short int valtwo);
 
int main();
using namespace std;
 
short int Divivder(unsigned short int valone,
                  unsigned short int valtwo)
{
    short int result;
    
    unsigned short int one, two;
    cout<<"vvedite znajenije one: ";
    cin >> one;
    cout<<"vvedite znajenije two: ";
    cin >> two;
    cin >> one >> two;
    result = Divivder( one, two );
    return 0;
}
   
short int Divider(unsigned short int valone, 
                  unsigned short int valtwo)
{
 short int result;
 
 
    if ( valone == 0)
    cout << "Error! Vvedite y: ";
    else  ( valone > 0)
    result = ( valone / valtwo);
    cout << "resultat:" << result;
    return 0;
}
может есть каки- то идеи-?

точку с запятой я уже убрал и все равно не пашет - может все дело в определении типа - short int Divivder-?
Tulosba
:)
Эксперт С++
4382 / 3225 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
31.03.2014, 13:41     Функция, которая получает два параметра и возвращает результат деления первого параметра на второй #8
Цитата Сообщение от zero-11 Посмотреть сообщение
все равно не пашет
Что на входе, что на выходе? Чем больше подробностей - быстрее и точнее будет ответ.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
12288 / 6975 / 784
Регистрация: 27.09.2012
Сообщений: 17,286
Записей в блоге: 2
Завершенные тесты: 1
31.03.2014, 13:44     Функция, которая получает два параметра и возвращает результат деления первого параметра на второй #9
C++
1
int main();//<-- прототип main?
где функция main?
zero-11
 Аватар для zero-11
0 / 0 / 0
Регистрация: 21.03.2014
Сообщений: 56
31.03.2014, 15:49  [ТС]     Функция, которая получает два параметра и возвращает результат деления первого параметра на второй #10
int main(); - функция возвращающая цело-чиcленное значение типа int - объявлена в коде, вы наверное это имели в виду:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main();
int main()
{
    unsigned short int one, two; 
    unsigned short int result;
    cout<<"vvedite znajenije x:" ;
    cin >> one;
    cout<<"vvedite znajenije y: ";
    cin >> two;
    cin >> one >> two;
    result = Divivder( one, two );
    if ( result >-1)
       cout <<  " summa: " << result;
    else 
        cout << "Error!Vvedite y ";
    return 0;
}
Добавлено через 49 минут
Все перепроверил - на выходе лишь пустая консоль - прототип - имена типов параметров и тип и имя прототипа соответствует :

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
#include <iostream>
using namespace std;
 
unsigned short int Divivder (unsigned short int valone,
                             unsigned short int valtwo);
int main();
int main()
{
    unsigned short int one, two; 
    unsigned short int result;
    cout<<"vvedite znajenije x:" ;
    cin >> one;
    cout<<"vvedite znajenije y: ";
    cin >> two;
    cin >> one >> two;
    result = Divivder( one, two );
    if ( result >-1)
       cout <<  " summa: " << result;
    else 
        cout << "Error!Vvedite y ";
    return 0;
}  
 
unsigned short int Divivder (unsigned short int valone,
                             unsigned short int valtwo)
    
{
 
    if ( valone == 0)
    return -1;
    else 
    return ( valone /valtwo );
}
IrineK
Заблокирован
31.03.2014, 15:55     Функция, которая получает два параметра и возвращает результат деления первого параметра на второй #11
Цитата Сообщение от zero-11 Посмотреть сообщение
возвращает результат деления
Кстати, а деление целочисленное или обычное?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
12288 / 6975 / 784
Регистрация: 27.09.2012
Сообщений: 17,286
Записей в блоге: 2
Завершенные тесты: 1
31.03.2014, 16:17     Функция, которая получает два параметра и возвращает результат деления первого параметра на второй #12
C++
1
2
3
4
5
    cout<<"vvedite znajenije x:" ;
    cin >> one;//<--ввод one
    cout<<"vvedite znajenije y: ";
    cin >> two;//<--ввод two
    cin >> one >> two;//<-- зачем еще раз запрашивать их?
zero-11
 Аватар для zero-11
0 / 0 / 0
Регистрация: 21.03.2014
Сообщений: 56
31.03.2014, 16:29  [ТС]     Функция, которая получает два параметра и возвращает результат деления первого параметра на второй #13
пересылаются введенные данные повторно - объект пери-направления потока ввода - убирал его - все равно компилироваться не хочет.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
12288 / 6975 / 784
Регистрация: 27.09.2012
Сообщений: 17,286
Записей в блоге: 2
Завершенные тесты: 1
31.03.2014, 16:35     Функция, которая получает два параметра и возвращает результат деления первого параметра на второй #14
Цитата Сообщение от zero-11 Посмотреть сообщение
все равно компилироваться не хочет.
Ошибки в студию!
У меня всё компилируется и работает так, как написано(ошибки в логике не учитываю).
C++
1
if ( valone == 0)
то будет ноль, а вот если valtwo будет равен нулю, то будет бо-бо
zero-11
 Аватар для zero-11
0 / 0 / 0
Регистрация: 21.03.2014
Сообщений: 56
31.03.2014, 16:38  [ТС]     Функция, которая получает два параметра и возвращает результат деления первого параметра на второй #15
unsigned short int Divivder - объявляет функцию реализующую целочисленное деление а результат возвращает в виде без-знакового короткого целого - имеет в виду что необходима signed short int Divivder-?
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,316
31.03.2014, 16:39     Функция, которая получает два параметра и возвращает результат деления первого параметра на второй #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
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
using namespace std;
 
short int Divivder(unsigned short int x, unsigned short int y);
 
int main()
{
    short int result;
 
    unsigned short int x, y;
    cout<<"vvedite znajenije x: ";
    cin >> x;
    cout<<"vvedite znajenije y: ";
    cin >> y;
    result = Divivder( x, y );
    cout <<  " summa: " << result << endl;
}
 
short int Divivder(unsigned short int x, unsigned short int y)
{
    if (y == 0)
        return -1;
    else
        return (x / y);
}
 
/*
vvedite znajenije x: 65535
vvedite znajenije y: 1
 [B]summa: -1[/B]
 
Process returned 0 (0x0)   execution time : 5.074 s
Press any key to continue.
 
*/
zero-11
 Аватар для zero-11
0 / 0 / 0
Регистрация: 21.03.2014
Сообщений: 56
31.03.2014, 16:56  [ТС]     Функция, которая получает два параметра и возвращает результат деления первого параметра на второй #17
Всем спасибо, разобрался.
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
31.03.2014, 17:00     Функция, которая получает два параметра и возвращает результат деления первого параметра на второй #18
Croessmah, У меня идиотский вопрос ЗАЧЕМ НУЖЕН ПРОТОТИП main ()?????? Не считаете что надо пояснить:
3.6.1 Main function
...
3.The function main shall not be used within a program. The linkage (3.5) of main is implementation-defined. A program that defines main as deleted or that declares main to be inline, static, or constexpr is illformed. The name main is not otherwise reserved. [ Example: member functions, classes, and enumerations can be called main, as can entities in other namespaces. —end example ]
Tulosba
:)
Эксперт С++
4382 / 3225 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
31.03.2014, 17:11     Функция, которая получает два параметра и возвращает результат деления первого параметра на второй #19
Цитата Сообщение от mustimur Посмотреть сообщение
ЗАЧЕМ НУЖЕН ПРОТОТИП main ()?
Не нужен, но и не противоречит стандарту в упомянутой форме, судя по всему.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2014, 17:14     Функция, которая получает два параметра и возвращает результат деления первого параметра на второй
Еще ссылки по теме:

C++ Функция, которая получает в качестве параметров два целых числа и возвращает сумму
C++ Функция, возвращающая остаток отделения первого параметра на второй
C++ Разработать функцию, которая возвращает остаток от деления первого параметра на второй
Функция возвращает остаток от деления первого параметра на второй. Указать ошибку C++
Разработайте перегружены функции, в которые передаются два параметра типов int или float и три параметра типов C++

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

Или воспользуйтесь поиском по форуму:
zero-11
 Аватар для zero-11
0 / 0 / 0
Регистрация: 21.03.2014
Сообщений: 56
31.03.2014, 17:14  [ТС]     Функция, которая получает два параметра и возвращает результат деления первого параметра на второй #20
Прототип main() - эта главная функция - она стандартная в языке С++ - с нее в соответствии со спецификацией начинается код программы и прототип для нее не определяют - прототип функции необходимо объявить для вызываемой функции - это подпрограмма - это позволяет определить тип имени функции и передаваемые ей параметры - если вещественны числа то double или float или целые - типа int - которые должны быть возвращены в качестве аргументов функции в программе после вызова функции в теле main().

Код
У меня осталось еще три вот таких задачи.
Yandex
Объявления
31.03.2014, 17:14     Функция, которая получает два параметра и возвращает результат деления первого параметра на второй
Ответ Создать тему
Опции темы

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