IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Арифметические вычисления ( С++), при помощи перегруженной функции
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 145
Пол: Мужской
Реальное имя: Павел

Репутация: -  0  +


Написать программу с использованием перегруженной функции calc (выполняет 4 простейших арифметических действий для 2 целочисленных значений типа float и double)

Не имею понятия, что есть перегруженная функция, в С++ ничего не понимаю, а надо крайне-крайне срочно... Спасайте учебу, избавляйте от армейских сапогов


--------------------
- Дорогие девушки! У вас сухая кожа? Редкие волосы? Проблемы с фигурой? Приходите к нам! У нас темно и мы пьяные.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
выполняет 4 простейших арифметических действий
blink.gif Так что именно должна выполнять функция calc()? Все четыре действия сразу, или какое-то одно из них, или ей надо передавать флажок, какое именно действие производить?

Цитата
для 2 целочисленных значений типа float и double
blink.gif С каких пор float/double стали целочисленными?

Цитата
Не имею понятия, что есть перегруженная функция
Это несколько функций с одним именем, различающихся типом/количеством параметров (функции, различающиеся только типом результата, не могут быть перегруженными), при вызове функции по имени, компилятор находит наиболее подходящую функцию из перегруженных (по типам параметров) и вызывает именно ее... Так понятнее? Вот теперь, зная это, перечитай свой вопрос, и пойми, что для решения задачи явно не хватает данных... Уточняй задание.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 145
Пол: Мужской
Реальное имя: Павел

Репутация: -  0  +


Функция должна выполнять вычисления определенного типа, то есть, к примеру, либо сложение, либо вычитание на выбор. На вид должно выйти примерно так:

Код

Арифметические операции с типом float
Введите первое число:
Введите второе число:
Введите оператор (+,-,/,*):
Результат:

Арифметические операции с типом double
Введите первое число:
Введите второе число:
Введите оператор(+,-,/,*):
Результат:


Добавлено через 11 мин.
Добрые люди подмогнули, и вот что вышло:


#include <stdio.h>

float calc(float , float , char );
double calc(double, double, char );

float calc(float a, float b, char op)
{
printf("\nFloat \n");
switch(op)
{
case '+': return a+b;
case '-': return a-b;
case '/': return a/b;
case '*': return a*b;
}
return 0;
}



double calc(double a, double b, char op)
{
printf("\nDouble \n");
switch(op)
{case '+': return a+b;
case '-': return a-b;
case '/': return a/b;
case '*': return a*b;
}
return 0;
}

int floatit()
{
float a,b;
char op;

printf("Vvedite pervoe chislo (Float):");
scanf("%f", &a);
printf("\nVVedite vtoroe chislo (Float):");
scanf("%f", &b);

printf("\nVvedite operator:");
scanf("%s", &op);


printf("%f\n", calc(a,b,op));

return 0;


}


int
doubleit()
{
double a,b;
char op;

printf("Vvedite pervoe chislo (Double):");
scanf("%f", &a);
printf("\nVVedite vtoroe chislo (Double):");
scanf("%f", &b);

printf("\nVvedite operator:");
scanf("%s", &op);


printf("%f\n", calc(a,b,op));

return 0;


}



int main()
{
int menu;


printf("\nViberete neobhodimiy tip dannih:\n 1 - float\n 2 - double\nmenu>");

scanf("%i", &menu);

switch(menu)

{
case 1: floatit();
break;
case 2: doubleit();
}

return 0;
}



Но что-то за проблемы с вычислением данных типа double, всегда выдает 0


--------------------
- Дорогие девушки! У вас сухая кожа? Редкие волосы? Проблемы с фигурой? Приходите к нам! У нас темно и мы пьяные.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Тебе "добрые" люди не подсказали, что
1) твоя программа к С++ не имеет никакого отношения, а написана на чистом С?
2) при работе с данными типа double форматная строка меняется на "%lf" вместо "%f" (если уж использовать scanf/printf)?
3) деление на 0 надо ловить, и предотвращать?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 145
Пол: Мужской
Реальное имя: Павел

Репутация: -  0  +


Нет, к сожалению, ничего не сказали... Насчет деления на ноль - надо наверное отлавливать. Сделать условие, если введен 0, то попросить пользователя ввести другое число


--------------------
- Дорогие девушки! У вас сухая кожа? Редкие волосы? Проблемы с фигурой? Приходите к нам! У нас темно и мы пьяные.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 18.04.2024 18:00
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name