Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/08/2012, 03:45
antonio715
 
Fecha de Ingreso: agosto-2012
Ubicación: Alcalá
Mensajes: 37
Antigüedad: 12 años, 2 meses
Puntos: 0
duda variables dentro y fuera de funcion

Buenos días, estoy aprendiendo a programar en c++ y tengo una duda creo que sencilla para cualquiera que maneje la programación en c++.

he hecho un programa para resolver una ecuacion de segundo grado utilizando una funcion, tal que así

#include<iostream>
#include<stdio.h>
#include <stdlib.h>
#include <math.h>

using namespace std;

float ecuacion_segundo_grado (float, float, float);//declaracion de funcion para resolver ec. 2º grado
float x1, x2; //valores de x en la ecuacion

int main()
{
float a, b, c;
cout <<"Introduzca los coeficientes a, b y c de la ecuacion ax\253+bx+c=0: ";
cin >>a>>b>>c;
if (a=0)
cout <<"El coeficiente a no puede ser 0"<<endl;
else
{
ecuacion_segundo_grado (a, b, c);
cout <<"Las soluciones de la ecuacion ax\253+bx+c=0 son: x1= "<<x1<<" y x2= "<<x2<<endl;
}

system("PAUSE");
return EXIT_SUCCESS;

}

float ecuacion_segundo_grado (float a, b, c)
{
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
return x1, x2;
}

la duda es que al compilar me dice que no están declaradas las variables a, b y c dentro de la funcion ecuacion_segundo_grado pero entiendo que ya vienen declaradas desde main como en este otro programa que te dice los días que tiene un mes

#include<iostream>
#include<stdio.h>
#include <stdlib.h>
#include <math.h>

using namespace std;

bool bisiesto1 (int);//declaracion de funcion para calcular año bisiesto
bool bisiesto; //la variable se declara fuera de main

int main()
{
int anio, mes;

cout << "Introduzca el año: ";
cin >>anio;
cout <<"Introduzca el numero de mes: ";
cin >>mes;
if ((mes<=0)||(mes>12))
cout << "Mes no valido"<<endl;
else
{
bisiesto1(anio); //se llama a la funcion bisiesto1 que está fuera de main
if ((mes==1)||(mes==3)||(mes==5)||(mes==7)||(mes==8)| |(mes==10)||(mes==12))
cout <<"El mes tiene 31 dias"<<endl;
else if ((mes==4)||(mes==6)||(mes==9)||(mes==11))
cout <<"El mes tiene 30 dias"<<endl;
else if (bisiesto==1)
cout <<"El mes tiene 29 dias"<<endl;
else
cout <<"El mes tiene 28 dias"<<endl;
}

system("PAUSE");
return EXIT_SUCCESS;

}

bool bisiesto1 (int anio)
{

if ((anio%4==0)&&((anio%100==0)&&(anio%400==0)))
bisiesto=1;
else
{
if ((anio%4==0)&&((anio%100==0)&&(anio%400!=0)))
bisiesto=0;
else
{ if (anio%4==0)
bisiesto=1;
}
}
return bisiesto;
}

aquí no he declarado nada dentro de la funcion y sí funciona...

Gracias por vuestros comentarios. Agradeceré cualquier comentario sobre cualquier otra cosa de estos programas también :)

Un saludo.

Antonio715