Foros del Web » Programación para mayores de 30 ;) » C/C++ »

muchas funciones!!

Estas en el tema de muchas funciones!! en el foro de C/C++ en Foros del Web. Buenas tardes. Mi situacion es que quiero utilizar una funcion dentro de otra funcion sin que ninguna sea main Ejemplo: Código PHP: #include <******.h> int a , ...
  #1 (permalink)  
Antiguo 12/07/2010, 10:49
 
Fecha de Ingreso: marzo-2010
Mensajes: 53
Antigüedad: 16 años, 6 meses
Puntos: 0
muchas funciones!!

Buenas tardes.
Mi situacion es que quiero utilizar una funcion dentro de otra funcion sin que ninguna sea main
Ejemplo:
Código PHP:
#include <******.h>
int a,b,c;
char d;
???
primera (int a, int b, int c, char d)
{
****
****
}
???
segunda(???primera???)]
{

****
como la nombro??(primera)
****
}
main(??????????????)
{
****
como la nombro??(segunda)
****
return 
0;
} 
Es un programa-esquema para intentar que se entienda mejor, pero no se si lo e consegido,jejejeje.
Mis dudas son los interrogantes. Y los asteriscos son informacion que creo que es inutil.
¿Por que me dice el compilador que son demasiadas variables pequeñas en la funcion primera por ser 3 o + del mismo tipo(int)??
Espero no nublaros la mente con este cacao ,jejejej
Un saludo.

Última edición por kerso4; 12/07/2010 a las 10:55
  #2 (permalink)  
Antiguo 12/07/2010, 12:18
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 21 años, 7 meses
Puntos: 1360
Respuesta: muchas funciones!!

Ok, puedes ser mas claro con respecto a lo que quieres?

Quieres pasar una función como un parámetro?
Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. int f(int x){
  4.     //Esto es f(x) = x ^ 2
  5.     return x * x;
  6. }
  7.  
  8. int g(int x){
  9.     //Esto es g(x) = 2*x + 3
  10.     return 2*x + 3;
  11. }
  12.  
  13. int funcion_compuesta( int f1 (int), int f2(int), int x){
  14.     return f1(f2(x));
  15. }
  16.  
  17. int main(){
  18.  
  19.     int resultado, x;
  20.  
  21.     x = 1;
  22.  
  23.     resultado = funcion_compuesta(f, g, x);
  24.     printf("Resultado de f(g(%d)) = %d\n", x, resultado);
  25.  
  26.     resultado = funcion_compuesta(g, f, x);
  27.     printf("Resultado de f(g(%d)) = %d\n", x, resultado);
  28.     return 0;
  29. }
  #3 (permalink)  
Antiguo 15/07/2010, 10:16
 
Fecha de Ingreso: marzo-2010
Mensajes: 53
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: muchas funciones!!

lo siento por no explicarme bien pero Si me has resuelto la duda
muchas gracias.
Un saludo
  #4 (permalink)  
Antiguo 16/07/2010, 09:00
 
Fecha de Ingreso: marzo-2010
Mensajes: 53
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: muchas funciones!!

Lo he probado y no funciona asique voy a poner el programa entero para que lo podais ver y corregir. Que conste que el programa no esta terminado. El problema surge en la compilacion en la funcion eleccion1. Debe ir estructurado en la funciones que estan (cada funcion tiene que ser una funcion):
Código PHP:
#include <cstdlib>
#include <iostream>
#include <math.h>

using namespace std;

int Num, Num2, Num3, Multi, Multi2, Multi3, Factorial=1 ,Factorial2=1 , Factorial3=1 , times, X, Y, Z, sol, sol2;

void variacionord (int Num, int X, int Factorial, int Multi) /*Permutaciones ordinarias*/
{
      
printf("Introduce el numero de elementos: ");
      
scanf("%d",&Num);
      while (
X!=1)
      {
              
X = Num--;
              
Multi = Num * X;
              
Factorial = Factorial *X;
              
X = X--;
              }
      
printf("\n%d", Factorial);
      
      }
void variacionrep( int Num, int X, int Factorial, int Multi, int Num2, int Y, int Factorial2, int Multi2, int Num3, int Z, int Factorial3, int Multi3,  int sol)  /*Permutaciones con repeticion*/
{
       
printf(")Introduce el numero de elementos: ");
       
scanf("%d",&Num);
       
printf("¿Cuántos elementos se repiten?");
       
scanf("%d",&Num2);
       
printf("Cuántas veces se repite?");
       
scanf("%d",&Num3);
       while(
X!=1)
       {
              
X = Num--;
              
Multi = Num * X;
              
Factorial = Factorial *X;
              
X = X--;
              }
       while (
Y!=1)
       {
              
Y = Num2--;
              
Multi2 = Num2 * Y;
              
Factorial2 = Factorial2 * Y;
              
Y = Y--;
              }
       while (
Z!=1)
       {
              
Z = Num3--;
              
Multi3 = Num3 * Z;
              
Factorial3 = Factorial3 * Z;
              
Z = Z--;
              }
       
sol = Factorial/(Factorial2 * Factorial3);
       
printf("\n %d", sol);
       
       }
void combinaciones ( int Num, int X, int Factorial, int Multi, int Num2, int Y, int Factorial2, int Multi2, int Num3, int Z, int Factorial3, int Multi3,  int sol,  int sol2)/*Combinaciones*/
{
       
cout<<"Introduce el numero de elementos: ";
       
cin>>Num;
       
cout<<"Introduce el numero de elementos por cada agrupacion: ";
       
cin>>Num2;
       while(
X!=1)
       {
              
X = Num--;
              
Multi = Num * X;
              
Factorial = Factorial *X;
              
X = X--;
              }
       
Num3 = Num - Num2;
       while (
Y!=1)
       {
              
Y = Num3--;
              
Multi3 = Num3 * Y;
              
Factorial3 = Factorial3 * Y;
              
Y = Y--;
              }
       
sol2 = (Factorial/Factorial3);
       while (
Z!=1)
       {
              
Z = Num2--;
              
Multi2 = Num2 * Z;
              
Factorial2 = Factorial2 *Z;
              
Z = Z--;
              }
       
sol = (sol2/Factorial2);
       
cout<<sol;
       }  
       
void variacionord( int Num, int X, int Factorial, int Multi, int Num2, int Num3, int Y, int Factorial3, int Multi3,  int sol)/*Variaciones*/
{
       
cout<<"Introduce el numero de elemento: ";
       
cin>>Num;
       
cout<<"Introduce el numero de elementos de cada agrupacion:";
       
cin>>Num2;
       while(
X!=1)
       {
              
X = Num--;
              
Multi = Num * X;
              
Factorial = Factorial *X;
              
X = X--;
              }
       
Num3 = Num - Num2;
       while (
Y!=1)
       {
              
Y = Num3--;
              
Multi3 = Num3 * Y;
              
Factorial3 = Factorial3 * Y;
              
Y = Y--;
              }
       
sol = (Factorial/Factorial3);
       
cout<<sol;
       }

void variacionrep() /*Variaciones con repetición*/
{              
       
double a =0.0;
       
double b = 0.0;
       
cout<<"Introduce el numero de elementos: ";
       
cin>>a;
       
cout<<"introduce el numero de elementos que interviene: ";
       
cin>>b;
       
cout<< pow(a,b) << endl; 
       }
int eleccion1(void permutacionord(int),void variacionrep (int),void combinaciones (int),void variacionord(int),void variacionrep(void))
{
     
int n=0;
     
printf("****************************************");
     
printf("**   Elige uno de los tipos:          **");
     
printf("**    1.Permutacion ordinaria         **");
     
printf("**    2.Permutaciones con repeticion  **");
     
printf("**    3.Combinaciones                 **");
     
printf("**    4.Variacion ordinaria           **");
     
printf("**    5.Variacion con repeticion      **");
     
printf("****************************************");
     
scanf("%f",&n);
     switch(
n)
     {
              case 
1: /*Permutaciones ordinarias*/
              
void permutacionord( Num, X, Factorial, Multi);
              break;
              case 
2: /*Permutaciones con repeticion*/
              
void variacionrep( Num, X, Factorial, Multi, Num2, Y, Factorial2, Multi2, Num3, Z, Factorial3, Multi3, sol);
              break;
              case 
3: /*Combinaciones*/
              
void combinaciones ( Num, X, Factorial, Multi, Num2, Y, Factorial2, Multi2, Num3, Z, Factorial3, Multi3, sol, sol2);
              break;
              case 
4:/*Variaciones*/
              
void variacionord( Num, X, Factorial, Multi, Num2, Num3, Y, Factorial3, Multi3, sol);
              break;
              case 
5: /*Variaciones con repetición*/
              
void variacionrep();
              break;
              default:
                     return 
eleccion1();
              break;
              }
     
system("pause");
     }
       
          
       
main()
{
    
    
char sn;
    
printf("Sabes los tipos de combinatoria:('S=1'/'N=2')");
    
scanf("%f",&sn);
    if (
sn == 1)
    {
           
int eleccion1(permutacionord, variacionrep, combinaciones, variacionord, variacionrep);
           }
    if (
sn == 2)
    {
           
int eleccion1(permutacionord, variacionrep, combinaciones, variacionord, variacionrep);
           return 
0;
           }
    
           
    return 
EXIT_SUCCESS;
} 
Admito quejas, insultos( sin pasarse) , correcciones, sugerencias etc...
Un saludo.

Etiquetas: funciones, muchas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:12.