elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con esta funcion
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con esta funcion  (Leído 7,077 veces)
gold oscar

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Ayuda con esta funcion
« en: 2 Noviembre 2016, 18:49 pm »

Hola gente, soy muy nuevo en programar y necesito que me ayuden para poder entender esta parte de la materia. Si bien hasta ahora entendí todo lo visto en la materia, esto de funciones me esta dando trabajo, mas específicamente en el pasaje por valor y parámetros. Mi duda es sobre un ejercicio, que no puedo interpretar y no se como hacer, y creo que si puedo entender como se hace este, puedo sacar los demás también.

El ejercicio en cuestión es este:
Implementar una función que devuelva la cantidad de bits en 1 que tiene un char que se le pasa como parámetro por valor y por referencia. Invocarla desde el main y verificar imprimiendo varios casos(hexadecimal y al lado cant de unos).

Alguien podría darme una mano! Es que si bien entiendo la "lógica" del pasaje de parámetros, no se como hacerlo en el programa.

Saludos y disculpen mi ignorancia!!  :-(


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda con esta funcion
« Respuesta #1 en: 2 Noviembre 2016, 19:13 pm »

las funciones tienden a ser en general bastante simples

ejemplo de una función cualquiera...

Código
  1. int nombreDeLaFuncion(int parametro){
  2.    //contenido
  3.    return algo;
  4. }

en general son

Código:
tipoRetorno nombreFuncion(tipoParametro nombreParametro){
    //contenido
    return variableDeTipoRetorno;
}

el tipo tanto de funcion como de parametros son int,char, etc...
el return debe ser un valor del mismo tipo que la función

así que si haces por ejemplo una funcion de división que acepte enteros pero retorne float

Código
  1. float division(int dividendo, int divisor){
  2.    float resultado = (float)dividendo/(float)divisor;
  3.    return resultado;
  4. }

(los float entre parentesis es para obligar a que se comporten como y que retornen decimales)

espero resuelva tu duda, si no, explica con más detalle cual fue


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
gold oscar

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Ayuda con esta funcion
« Respuesta #2 en: 2 Noviembre 2016, 20:24 pm »

Si eso lo entiendo, pero no entiendo como plantear ese ejercicio que puse ahi
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda con esta funcion
« Respuesta #3 en: 2 Noviembre 2016, 20:31 pm »

El char sabemos que tiene 8 bits, la forma más simple es cuando & y >> para ir leyendo bit a bit en un for
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
gold oscar

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Ayuda con esta funcion
« Respuesta #4 en: 3 Noviembre 2016, 00:54 am »

Sigo sin entender como comenzarlo, :-(
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda con esta funcion
« Respuesta #5 en: 3 Noviembre 2016, 01:06 am »

Recomiendo e estudiar operadores de bits

Es algo básico de c que te puede ayudar mucho más adelante

Aquí hay información básica
http://www.zator.com/Cpp/E4_9_3.htm
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
gold oscar

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Ayuda con esta funcion
« Respuesta #6 en: 3 Noviembre 2016, 01:37 am »

Ya se todo lo de operadores de bits, lo que no se es como hacer el ejercicio que postee, si alguien aunque sea me ayuda a comenzarlo......
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda con esta funcion
« Respuesta #7 en: 3 Noviembre 2016, 02:10 am »

sabes convertir un char a binario? (obtener los bits)

que no sabes exactamente?
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
gold oscar

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Ayuda con esta funcion
« Respuesta #8 en: 3 Noviembre 2016, 07:05 am »

No entiendo como hacer el ejercicio en si. >:(
En línea

gold oscar

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Ayuda con esta funcion
« Respuesta #9 en: 3 Noviembre 2016, 08:30 am »

Hola, disculpen que sea tan pesado, pero esto es lo que se me ocurrio hasta ahora
Código:
int cant(char a[30])
        {
            int i=0;

            while(a[i]!=0)
            {
                if(a[i]>='0' && a[i]<='2')
                {
                    i++;
                }
            }
            return(i);
        }


int main()
        {
           char a[30]="11111";
           int j;
           j=cant(a);


            printf("cantidad de bits en 1=%d",j);

            return(0);
        }



se imprime: la cantidad de bits en 1 es=5


estara bien eso?  :(
« Última modificación: 3 Noviembre 2016, 13:50 pm por engel lex » En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con esta funcion
Java
nico56 7 4,027 Último mensaje 13 Julio 2010, 01:35 am
por joseprox
quien me ayuda con esta funcion?
Programación C/C++
miguelb18 3 2,645 Último mensaje 21 Octubre 2010, 10:26 am
por satu
ayuda con esta funcion
Programación C/C++
Fer995 2 2,567 Último mensaje 6 Marzo 2011, 01:42 am
por Akai
[Ayuda] Por que no anda esta función en Haskell
Programación General
PabloPbl 1 2,416 Último mensaje 12 Marzo 2018, 19:05 pm
por srWhiteSkull
Ayuda con esta función en C
Programación C/C++
GominaTilted 1 2,740 Último mensaje 4 Abril 2020, 21:41 pm
por fary
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines