[AYUDA]Funcion avanzada

Iniciado por anonimo12121, 14 Mayo 2010, 12:27 PM

0 Miembros y 1 Visitante están viendo este tema.

anonimo12121

hola necesito ayuda por que no se si seria posible de alguna forma pasarle a 1 parametro de funcion algo como esto
int a,b;
int func(int parametro){
}

func(a || b);

o

fun (a && b);

saludos
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746

h0oke

#1
Supongo que podrías hacerlo, pero en el parámetro deberías indicar un tipo booleano, ya que "a&&b" o "a || b" devuelven un tipo de dato booleano.

(Ahora lo intento)

EDITADO
Espero que te refieras a esto:

Código (cpp) [Seleccionar]

#include <iostream>

#define TRUE 1
#define FALSE 0

int funcion(bool z)
{
 if(z)
   return 4;
 else
   return 0;
}

int main()
{
 int a;
 bool b = TRUE;
 bool c = FALSE;
 a = funcion(b && c);
 std::cout<<"Valor funcion: "<<a<<std::endl;
 return 0;
}

anonimo12121

si creo que si. ahora lo probare y te aviso.

EDITO: pero tiene que ser BOOL o podria ser por ejemplo un int ?.
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746

Gallu

Puede ser perfectamente un int , solo recuerda que en C y C++ 0 es false y cualquier valor distinto de 0 es true

prueba esto ...


#include <stdio.h>

void my_funci(int valor);
int main(){
int a = 1 , b = 0;
my_funci(a&&b);
my_funci(a||b);
my_funci(a&b);
my_funci(a|b);
}

void my_funci(int valor){
printf("\n%d", valor);
}
Nadie alcanza la meta con un solo intento, ni perfecciona la vida con una sola rectificación, ni alcanza altura con un solo vuelo.

h0oke

#4
Puede ser un int, ya que teóricamente en C/C++ el TRUE y FALSE, corresponden a un 1 lógico y un 0 lógico.

(EDIT: Me ganaron la respuesta)

EDIT2:

Creo que lo más conveniente, es declarar un tipo bool ya que precisamente se está evaluando una operación booleana, que en el fondo debería devolver un "tipo boolean", sólo es cuestión de gustos en esta parte... yo eligiría el bool pero no sabría fundamentar BIEN por qué razón...

anonimo12121

Hola miren esto es lo que quiero, pero no me sale.

si algun de las 2 variables puesta en el parametro x es = x devuelve x valor.

Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;
int a1=6;
int a2=5;
int a3;
int funcion(int v1){
    if(v1==6)return 1;
}
int main(int argc,char *argv[]){
    a3=funcion(a1 && a2);
    cout << a3;
    cin.get();
}


pero me devuelve 16364.
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746

Gallu

Hombre , al hacer esto  a3=funcion(a1 && a2);  dentro de la función  v1 = 1 y no a 6 , el valor  16364. es basura simplemente
Nadie alcanza la meta con un solo intento, ni perfecciona la vida con una sola rectificación, ni alcanza altura con un solo vuelo.

h0oke

Código (cpp) [Seleccionar]
v1 = 6 &&5 /*Esto es 1, no 0*/

Nunca podrá ser un valor distinto de 0 o 1 ya que la operación regresa esos 2 valores.

anonimo12121

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746

biribau

Tu quieres una especie de función superescalar o vectorial(creo que no es lo mismo), eso en C no se puede, habrás de pasarle un array de enteros y procesarlos con un bucle, también te hará falta un límite para el array.
int funcion(int *valores, int numero_de_valores) {
       for(int i =0; i < numero_de_valores; i++)
             if(valores[i] == 6) return 1;
       return 0;
}

Y para aprovechar las instrcciones SIMD del procesador pues ya no sé, con funciones de alguna librería.