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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


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

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Ayuda con un programa
« en: 8 Julio 2011, 07:21 am »

Hola a todos es mi primera vez escribiendo aquí y quisiera saber si hay alguien que me ayude con el desarrollo de un programa en dev-c++, soy un aprendiz de programación por lo que quisiera puedan ayudarme con el seudocódigo y consejos para poder desarrollarlo.
Sin mas que decir aqui planteo el problema:

Implemente un programa que lea un número decimal y lo muestre en pantalla en hexadecimal (base 16). El cambio de base se realiza mediante divisiones sucesivas por 16 en las cuales los restos determinan los dígitos hexadecimales del número según la siguiente correspondencia:


____________________________________________________

Me ayudaron con el seudocódigo, pero es en visual net si mal no recuerdo, pero quisiera que alguien me de las pautas para desarrollarlo en dev-c++
y si pudieran el seudódigo, aunque no lo entiendo aki se los dejo.
_____________________________________________________

Codigo----

Dim num, resultado As Double
Dim nuevoNumero As String
Private Sub Command1_Click()
Label1.Caption = ""
num = CDbl(numero.Text)
resultado = 0
nuevoNumero = ""
While num > 15
resultado = num Mod 16
Label1.Caption = Label1.Caption & "Resultado Modulo-> " & resultado & " <-" & vbCrLf
If resultado < 10 Then
nuevoNumero = resultado & nuevoNumero
End If
If resultado = 10 Then
nuevoNumero = "A" & nuevoNumero
End If
If resultado = 11 Then
nuevoNumero = "B" & nuevoNumero
End If
If resultado = 12 Then
nuevoNumero = "C" & nuevoNumero
End If
If resultado = 13 Then
nuevoNumero = "D" & nuevoNumero
End If
If resultado = 14 Then
nuevoNumero = "E" & nuevoNumero
End If
If resultado = 15 Then
nuevoNumero = "F" & nuevoNumero
End If
If num / 16 > 15.1 And num / 16 < 16 Then
num = 15
Else
num = CInt(num / 16)
End If
Label1.Caption = Label1.Caption & "Creacion Numero-> " & nuevoNumero & vbCrLf
Label1.Caption = Label1.Caption & "Nuevo Numero-> " & num & vbCrLf
Wend
If num < 10 Then
nuevoNumero = num & nuevoNumero
End If
If num = 10 Then
nuevoNumero = "A" & nuevoNumero
End If
If num = 11 Then
nuevoNumero = "B" & nuevoNumero
End If
If num = 12 Then
nuevoNumero = "C" & nuevoNumero
End If
If num = 13 Then
nuevoNumero = "D" & nuevoNumero
End If
If num = 14 Then
nuevoNumero = "E" & nuevoNumero
End If
If num = 15 Then
nuevoNumero = "F" & nuevoNumero
End If
Label1.Caption = Label1.Caption & "Ultimo numero-> " & num & " <-" & vbCrLf
Label1.Caption = Label1.Caption & "Creacion Numero-> " & nuevoNumero & vbCrLf
res.Text = nuevoNumero
End Sub

Eso es todo espero su ayuda (:


« Última modificación: 8 Julio 2011, 07:31 am por Genoske » En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Ayuda con un programa
« Respuesta #1 en: 8 Julio 2011, 08:58 am »

Aquí te dejo mi versión, con el uso de un pequeño "alfabeto".

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <math.h>
  5.  
  6. char *alfabeto = "0123456789ABCDEFG";
  7.  
  8. char *hexa(unsigned long long n)
  9. {
  10.    if(n == 0)
  11.    return "0";
  12.    char *s = NULL;
  13.    unsigned i = 0, j, c;
  14.  
  15.    for(; n > 0; n /= 16)
  16.    {
  17.        s = realloc(s, sizeof(char) * ++i);
  18.        s[i - 1] = alfabeto[ (int)fmod(n, 16)  ];
  19.    }
  20.  
  21.    for(i = 0, j = strlen(s) - 1; i < j; i++, j--, s[j + 1] = c)
  22.    {
  23.        c = s[i];
  24.        s[i] = s[j];
  25.    }
  26.  
  27.    return s;
  28. }
  29.  
  30. int main(void)
  31. {
  32.    puts(hexa(1234567));
  33.    return 0;
  34. }
  35.  


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Ayuda con un programa
« Respuesta #2 en: 8 Julio 2011, 11:32 am »

Hola

Aquí lo tienes recursivo en C++

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. void mostrar(int num)
  6. {
  7.    switch(num)
  8.        {
  9.        case 10: cout<<"A"; break;
  10.        case 11: cout<<"B"; break;
  11.        case 12: cout<<"C"; break;
  12.        case 13: cout<<"D"; break;
  13.        case 14: cout<<"E"; break;
  14.        case 15: cout<<"F"; break;
  15.        default: cout<<num;
  16.        }
  17. }
  18.  
  19. void hexa(unsigned long long num)
  20. {
  21.    int n;
  22.  
  23.    if(num>15)
  24.        {
  25.        n=num%16;
  26.        num /= 16;
  27.        hexa(num);
  28.        mostrar(n);
  29.        }
  30.    else
  31.        mostrar(num);
  32. }
  33.  
  34. int main()
  35. {
  36.    unsigned long long num;
  37.  
  38.    cout << "Introduce el numero: ";
  39.    cin>>num;
  40.    hexa(num);
  41.  
  42.    while(cin.get()!='\n'); // Limpiamos el buffer
  43.    cout<<endl<<endl<<"Pulsa Enter para salir"<<endl;
  44.    cin.get(); // Pausamos el programa hasta que se pulse Enter
  45.    return 0;
  46. }
  47.  

Saludos
En línea

Breakbeat como forma de vida
El_Java

Desconectado Desconectado

Mensajes: 144



Ver Perfil WWW
Re: Ayuda con un programa
« Respuesta #3 en: 8 Julio 2011, 17:36 pm »

En C++ la manera más fácil creo que es esta xD
Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main(){
  5.    unsigned long long num;
  6.    cin >> num;
  7.    cout << hex << num << endl;
  8.    return 0;
  9. }
  10.  

Un saludo!
En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Ayuda con un programa
« Respuesta #4 en: 8 Julio 2011, 19:37 pm »

En C++ la manera más fácil creo que es esta xD
Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main(){
  5.    unsigned long long num;
  6.    cin >> num;
  7.    cout << hex << num << endl;
  8.    return 0;
  9. }
  10.  

Un saludo!

Ostras no sabía que eso se pudiera hacer  :o :o :o
En línea

Breakbeat como forma de vida
El_Java

Desconectado Desconectado

Mensajes: 144



Ver Perfil WWW
Re: Ayuda con un programa
« Respuesta #5 en: 9 Julio 2011, 13:28 pm »

Ostras no sabía que eso se pudiera hacer  :o :o :o
Te sorprenderia la cantidad de cosas que se puede hacer solo con los estandares, tienen funciones realmente útiles, sólo hay que conocer bien el tema.
Aqui tienes lo de 'cout << hex' http://www.cplusplus.com/reference/iostream/ostream/operator%3C%3C/.
En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Ayuda con un programa
« Respuesta #6 en: 10 Julio 2011, 15:59 pm »

thanks  ;-) ;-)
En línea

Breakbeat como forma de vida
Genoske

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Ayuda con un programa
« Respuesta #7 en: 12 Julio 2011, 02:21 am »

agradezco mucho su ayuda a todos :)
realmente es muy util lo que hacen ^_^
sin embargo aun soy principiante en esto, solo se desarrollar programas simples
no sabia de operadores hasta ver la ayuda de @El_Java, agradezco tambien a @Leo Gutiérrez, pero por falta de nivel aun no entiendo muy bien su programada, de todos modos gracias por la ayuda :)
@satu... amigo en verdad me fue de mucho ayuda tu codigo en programa se ve bastante entendible, pero podrias explicarme tambien si es que se puede desarrollar por ejemplo solo con un:

include <iostream>
using namespace std:
main ()
{
bla bla bla
bla bla bla
system("pause");
}

solo se desarrollar problemas de esta manera, por decirlo con un solo main y no con varios como me planteaste en respuesta.
tengo conocimiento de Estructura de Control... Secuencial, Selectiva: Simple, Doble y Multible: Desde - Mientras - Repetir ~ Hasta.

if
do
while
switch
case


Espero puedas apoyarme un poco, no entiendo tanto el problema que me planteaste, exactamente estas partes:

void mostrar
void hexa
este si: int main


Bueno agradezco a todos por su ayuda :)
En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Ayuda con un programa
« Respuesta #8 en: 12 Julio 2011, 15:13 pm »

Hola

Vale te ayudo aunque no me explico muy bien

void mostrar() y void hexa() son funciones a las que llama el main. Como sabrás, el programa se ejecuta secuencialmente empezando por el main hasta el final, pues cuando el main encuentra la llamada a una función, en este caso hexa(), se empieza a ejecutar lo que hay en la función y cuando termina sigue por el main por donde se quedó y así hasta el final. La utilizaión de funciones es muy útil porque tienen una funcionalidad concreta, para una tarea específica, por lo que es bueno que te acostumbres a usarlas.

En mi programa, la función hexa() es recursiva, eso quiere decir que se llama a sí misma, busca en google sobre recursividad para que lo entiendas. Haz una traza paso a paso con tu IDE para que veas el comportamiento del programa y de esta función.

Espero haberte ayudado y si tienes más dudas pregúntalas que estaremos aquí para responderlas.

Saludos
En línea

Breakbeat como forma de vida
Genoske

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Ayuda con un programa
« Respuesta #9 en: 14 Julio 2011, 08:03 am »

Hola

Vale te ayudo aunque no me explico muy bien

void mostrar() y void hexa() son funciones a las que llama el main. Como sabrás, el programa se ejecuta secuencialmente empezando por el main hasta el final, pues cuando el main encuentra la llamada a una función, en este caso hexa(), se empieza a ejecutar lo que hay en la función y cuando termina sigue por el main por donde se quedó y así hasta el final. La utilizaión de funciones es muy útil porque tienen una funcionalidad concreta, para una tarea específica, por lo que es bueno que te acostumbres a usarlas.

En mi programa, la función hexa() es recursiva, eso quiere decir que se llama a sí misma, busca en google sobre recursividad para que lo entiendas. Haz una traza paso a paso con tu IDE para que veas el comportamiento del programa y de esta función.

Espero haberte ayudado y si tienes más dudas pregúntalas que estaremos aquí para responderlas.

Saludos

Hey, muchas gracias ;)
me eres de mucha ayudo bro..! (:
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
AYUDA CON PROGRAMA
Diseño Gráfico
Luisango 1 2,475 Último mensaje 17 Abril 2005, 13:25 pm
por Sub_Cero
ayuda con mi programa
Programación Visual Basic
nitrox 2 2,382 Último mensaje 31 Julio 2005, 00:48 am
por Slasher-K
Ayuda con programa en vb
Programación Visual Basic
BriaNUR 1 1,376 Último mensaje 12 Febrero 2006, 16:55 pm
por Kizar
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines