Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2010, 10:21   #1
jagger
 
Регистрация: 10.11.2010
Сообщений: 5
Вопрос Перегрузка функции.С++

Нужно: Используя механизм перегрузки функции, разработать и отладить программу вычисления значения y = f(x, y, z) для различных типов параметров. Предусмотреть задание параметров функции «по умолчанию» и с клавиатуры.

Кампиятор выдает ошибки, подскажите что неправильно в коде:

Код:
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <iomanip>
#include <locale>
using namespace std;

double myfunc(double,double x=2,44, double y=0,86, double z=-0,16);//перегрузка функции
double myfunc (float, float x=2,44, float y=0,86);//прототип функции с параметрами по умолчанию

int main()
{
	setlocale(0, "rus");

	double x,y,z;
	cout<<"\n Последовательно введите три числа: X, Y, Z( от -1 до 1):\n"
		<< endl;
	cin>>x; cin>>y; cin>>z;
      while ( z>-1 || z<1)
	  {
		  cout<< "\n Значение z должно быть в пределах от -1 до 1 ! Введите z заново:\n";
		  cin>> z;
	  }
	 
	 cout<< "\n Функция (x,y)="<<myfunc (float x, float y)<< "\nПараметры не указаны, используюются параметры по умолчанию A=" <<myfunc();
     cout << "\nФункция(x,y,z)= "<<myfunc(double x, double y, double z)<<"\nПараметры не указаны, используются параметры по умолчанию В= " <<myfunc()<<endl;
	 system("pause"); 
	 return 0;
	  }
    double myfunc(float x,float y)
      {
		  double A=0;
	cout <<"\nВызвана 1ая функция!Вычислется А\n";
     A=(pow(y,x+1)/(pow(abs(y-2),1/3.0)+3.0))+((x+0.5*y)/(2*abs(x+y)));
	 return A;
	 }
    double myfunc(double x ,double y ,double z)
     {
    double B=0;
	cout <<"\nВызвана 2ая функция! Вычислется В\n";
	B=pow(x+1,(-1.0)/sin(z));
	  return B;
	}

Последний раз редактировалось Stilet; 10.11.2010 в 12:53.
jagger вне форума Ответить с цитированием
Старый 10.11.2010, 12:00   #2
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

Цитата:
double myfunc(double,double x=2,44, double y=0,86, double z=-0,16);//перегрузка функции
double myfunc (float, float x=2,44, float y=0,86);//прототип функции с параметрами по умолчанию
а в чем смысл у вас перегруузки???? float и double - это числа с плавающей запятой, вы делаете масло масляней
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 10.11.2010, 23:04   #3
jagger
 
Регистрация: 10.11.2010
Сообщений: 5
По умолчанию

Цитата:
Сообщение от RUSt88 Посмотреть сообщение
а в чем смысл у вас перегруузки???? float и double - это числа с плавающей запятой, вы делаете масло масляней
Подскажите как правильно, int сделать? Я еще слабо разбираюсь в програмировании...

Последний раз редактировалось jagger; 10.11.2010 в 23:11.
jagger вне форума Ответить с цитированием
Старый 10.11.2010, 23:28   #4
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

какие ошибки выдает?
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума Ответить с цитированием
Старый 11.11.2010, 09:31   #5
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

Код:
double myfunc(idouble x = 2,44, double y = 0,86, int z = -0,16);//перегрузка функции
double myfunc (float x=2,44, float y=0,86);//прототип функции с параметрами по умолчанию
вот теперь компилятор поймет, какую функцию вызывать, проанализировав параметры функции
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 11.11.2010, 10:40   #6
jagger
 
Регистрация: 10.11.2010
Сообщений: 5
Восклицание

Цитата:
Сообщение от kaljan775 Посмотреть сообщение
какие ошибки выдает?
cl: командная строка warning D9035: использование параметра "Wp64" нежелательно, он будет удален в следующих выпусках
Lab 4.1.cpp
lab 4.1.cpp(8) : error C2059: синтаксическая ошибка: константа
lab 4.1.cpp(9) : error C2059: синтаксическая ошибка: константа
lab 4.1.cpp(25) : error C2144: синтаксическая ошибка: перед "float" требуется ")"
lab 4.1.cpp(25) : error C2668: myfunc: неоднозначный вызов перегруженной функции
lab 4.1.cpp(9): может быть 'double myfunc(float)'
lab 4.1.cpp(8): или 'double myfunc(double)' при попытке сопоставить список аргументов '(void)'
lab 4.1.cpp(25) : error C2059: синтаксическая ошибка: )
lab 4.1.cpp(26) : error C2144: синтаксическая ошибка: перед "double" требуется ")"
lab 4.1.cpp(26) : error C2668: myfunc: неоднозначный вызов перегруженной функции
lab 4.1.cpp(9): может быть 'double myfunc(float)'
lab 4.1.cpp(8): или 'double myfunc(double)' при попытке сопоставить список аргументов '(void)'
lab 4.1.cpp(26) : error C2059: синтаксическая ошибка: )
lab 4.1.cpp(34) : error C2666: pow: для 6 перегрузок есть подобные преобразования
jagger вне форума Ответить с цитированием
Старый 11.11.2010, 10:48   #7
jagger
 
Регистрация: 10.11.2010
Сообщений: 5
По умолчанию

Цитата:
Сообщение от RUSt88 Посмотреть сообщение
Код:
double myfunc(double x = 2,44, double y = 0,86, int z = -0,16);//перегрузка функции
double myfunc (float x=2,44, float y=0,86);//прототип функции с параметрами по умолчанию
вот теперь компилятор поймет, какую функцию вызывать, проанализировав параметры функции
К сожалению он ничего не понял, или я не понял...
jagger вне форума Ответить с цитированием
Старый 11.11.2010, 14:22   #8
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

компилятор намекает на то, что Ваш пример перегрузки функции явно неудачен
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума Ответить с цитированием
Старый 11.11.2010, 22:27   #9
jagger
 
Регистрация: 10.11.2010
Сообщений: 5
По умолчанию

Цитата:
Сообщение от kaljan775 Посмотреть сообщение
компилятор намекает на то, что Ваш пример перегрузки функции явно неудачен
А я думал, что он намекает на то что я гениальный програмист
jagger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перегрузка функции.. (выдаёт ошибку) tipilat Помощь студентам 13 30.03.2010 19:19
C++. Перегрузка функции, требуется помощь) SinSmile Помощь студентам 0 08.12.2009 18:22
Перегрузка функции в С++ Vultar Помощь студентам 7 19.11.2009 13:12
перегрузка alema Общие вопросы C/C++ 2 28.10.2009 21:20
перегрузка + softrix Общие вопросы C/C++ 2 21.06.2008 22:27