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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  Practiquemos C++ (juntos)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: Practiquemos C++ (juntos)  (Leído 17,088 veces)
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Practiquemos C++ (juntos)
« Respuesta #10 en: 16 Febrero 2010, 04:39 am »

LOL no me habia dado cuenta que el titulo dice "C++" xD, bueno acepto que me haga falta stdlib.h y string.h xD, en FreeBSD los tendría que poner a fuerza, pero "conio.h", micky123 no necesitas conio.h.

Ahora sobre ejercicios fáciles asi, pues no se me ocurren muchos pero ahi va uno:

Escribir un programa que lea un numero ROMANO en forma de cadena de caracteres y lo convierta en un numero Arábigo. Si ya esta repetido por ahi en las chinchetas propongan otro.

Saludos
 
 


« Última modificación: 16 Febrero 2010, 04:41 am por Anon » En línea

micky123

Desconectado Desconectado

Mensajes: 32


Ver Perfil
Re: Practiquemos C++ (juntos)
« Respuesta #11 en: 16 Febrero 2010, 18:29 pm »

Holas gracias por continuar y bueno dando solucion al ultimo ejercicio mi forma de resolverlo solo convierte un numero romano comprendido entre 0 y 399, seria asía:

/*Escribir un programa que lea un numero ROMANO en forma de cadena de caracteres y lo convierta en un numero Arábigo realizado por Micky123*/

#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>

void main(void)
{
   char v[15];
   int i=1, cont=0,na=0,dim;
   clrscr();
   printf("Ingrse Numero Romano: ");
   fflush(stdin);
   fgets(v,15,stdin);

   //cputs(v);
   dim=strlen(v);
   //mayusculas
   for(i=0;i<dim;i++)
   v=toupper(v);

   for(i=0;i<dim;i++)
     if(v=='I')
       if(v[i+1]=='V')
       { na=na+4;i++;}
       else
    if(v[i+1]=='X')
    {  na=na+9;i++;}
    else
      if(v[i+1]=='L')
        {na=na+49;i++;}
      else
        if(v[i+1]=='C')
          {na=na+99;i++;}
        else
          na++;
     else
       if(v=='V')
    na=na+5;
       else
    if(v=='X')
      if(v[i+1]=='L')
        {na=na+40;i++;}
      else
        if(v[i+1]=='C')
         { na=na+90;i++;}
        else
          na=na+10;
    else
      if(v=='L')
        na=na+50;
      else
        if(v=='C')
          na=na+100;

   printf("\nEn arabigo es %d",na);

   getch();
}

gracias y bueno proponiendo otro ejercicio(mm generacion de digitos) seria:
generar los N numeros perfectos:

salu2


En línea

Littlehorse
All the world's a stage
Colaborador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: Practiquemos C++ (juntos)
« Respuesta #12 en: 16 Febrero 2010, 19:56 pm »

micky123, usa las etiquetas Geshi para poner código, así es mas legible.

Citar
generar los N numeros perfectos:

Código
  1. #include <stdio.h>
  2. int isPnumber(int num);
  3.  
  4. int main()
  5. {
  6.    int num=0;
  7.    int i=0;
  8.  
  9.    printf("Ingrese numero:  ");
  10.    scanf("%d", &num);
  11.  
  12. for(i=1;i<=num;i++)
  13.  if(isPnumber(i))
  14.      printf("%d es perfecto\n",i);
  15.  
  16. }
  17.  
  18. int isPnumber(int num)
  19. {
  20.    int sum = 0 ;
  21.    int i=0;
  22.  
  23.    for( i = 1; i<num; i++ )
  24.        if( num%i==0)
  25.            sum+=i;
  26.    if( sum == num )
  27.        return 1;
  28.    else
  29.        return 0;
  30. }

Citar
Ingrese numero:  10000
6 es perfecto
28 es perfecto
496 es perfecto
8128 es perfecto


Nuevo ejercicio:

Leer tres variables enteras A1, M1, D1, que representan una fecha, y otras tres A2, M2 y D2, que representan otra fecha. Luego informar la cantidad de días entre las dos fechas (respetando la cantidad de días que tiene cada mes y teniendo en cuenta los años bisiestos).
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
micky123

Desconectado Desconectado

Mensajes: 32


Ver Perfil
Re: Practiquemos C++ (juntos)
« Respuesta #13 en: 17 Febrero 2010, 01:34 am »

ok Littlehorse gracias por la sugerencia, es que como soy nuevo en el foro me voy acostumbrando :P...
salu2... resolviendo ejercicio.
Código
  1. Probando geshi
  2.  
En línea

micky123

Desconectado Desconectado

Mensajes: 32


Ver Perfil
Re: Practiquemos C++ (juntos)
« Respuesta #14 en: 17 Febrero 2010, 02:20 am »

hola Litllehorse... bueno me costo mucho resolver este ejercicio je je... fue uno de mis ejercicios mas complejos, pero bueno al fin logre realizarlo... ahí va:

Código
  1. #include <stdio.h>
  2. #include <conio.h>
  3.  
  4. void main()
  5. { int d1,m1,a1,d2,m2,a2,d,db,ca;
  6.  int mes[12],i;
  7.  mes[1]=31;  mes[7]=31;
  8.  mes[2]=28;  mes[8]=31;
  9.  mes[3]=31;  mes[9]=30;
  10.  mes[4]=30;  mes[10]=31;
  11.  mes[5]=31;  mes[11]=30;
  12.  mes[6]=30;  mes[12]=31;
  13.  
  14.  printf("Ingrese dia inicial d1= ");
  15.  scanf("%d",&d1);
  16.  printf("Ingrese mes inicial m1= ");
  17.  scanf("%d",&m1);
  18.  printf("Ingrese año inicial a1= ");
  19.  scanf("%d",&a1);
  20.  
  21.  printf("Ingrese dia final d2= ");
  22.  scanf("%d",&d2);
  23.  printf("Ingrese mes final m2= ");
  24.  scanf("%d",&m2);
  25.  printf("Ingrese año final a2= ");
  26.  scanf("%d",&a2);
  27.  d=0;db=0;
  28.  ca=a2-a1-1;
  29.  d=d+ca*365;
  30.  
  31.  for(i=m1;i<=12;i++)
  32.    d=d+mes[i];
  33.  
  34.  if(m2>1)
  35.    for(i=1;i<=m2-1;i++)
  36.      d=d+mes[i];
  37.  d=d-d1+d2;
  38.  if(d1%100==0)
  39.  {  if(a1%400==0)
  40.      if(m1<=2)
  41. db=1;  
  42.  }
  43.  else
  44.  {
  45.    if(a1%4==0)
  46.      if(m1<=2)
  47. db=1;
  48.  }
  49.  for(i=a1+1;i<=a2;i++)
  50.  { if(i%100==0)
  51.    { if(i%400==0)
  52.        db++;
  53.    }
  54.    else
  55.    { if(i%4==0)
  56. db++;
  57.    }
  58.  
  59.  }
  60.  if(a2%100==0)
  61.  { if(a2%400==0)
  62.    { if(m2>2)
  63.      { db++; }
  64.      else
  65.      { if(m2==2 && d2==29)
  66.  db++;
  67.      }
  68.    }
  69.  }
  70.  else
  71.  { if(a2%4==0)
  72.    { if(m2>2)
  73.      { db++;}
  74.      else
  75.      { if(m2==2 && d2==29)
  76.          db++;
  77.      }
  78.    }  
  79.  }
  80.  d=d+db;
  81.  printf("Los dias entre la fecha 1 y la fecha 2 son= %d",d);
  82.  getch();
  83. }
  84.  

gracias por continuar con la linea y gracias por hacerme romper la cabeza :xD je je
lo necesitaba...
salu2
En línea

micky123

Desconectado Desconectado

Mensajes: 32


Ver Perfil
Re: Practiquemos C++ (juntos)
« Respuesta #15 en: 17 Febrero 2010, 02:29 am »

Bueno me toca proponer otro ejercicio:

Encontrar numeros de 3 digitos, cuya suma del cubo de los digitos sea el numero
de 3 digitos, mostrar los digitos:
    ejemplo: 153= 13+53+33

espero haber sido claro :).

Extra  :)
Sin la intencion de molestar no c si pudieras resolver un ejercicio que hasta el dia de hoy no puedo resolverlo :-( :huh: :-(
si me das opcion a planteartelo lo coloco...

salu2
En línea

Littlehorse
All the world's a stage
Colaborador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: Practiquemos C++ (juntos)
« Respuesta #16 en: 18 Febrero 2010, 12:08 pm »

Ya me estaba olvidando de este post  :P

Encontrar numeros de 3 digitos, cuya suma del cubo de los digitos sea el numero

Código
  1. #include <math.h>
  2. #include <stdio.h>
  3.  
  4. int IsNumber(int num);
  5. int main()
  6. {
  7. int num;
  8. int i;
  9.  
  10. printf("Ingrese numero (100-999): ");
  11. scanf("%d",&num);
  12. printf("----\n");
  13. for(i=100;i<=num;i++)
  14. if(IsNumber(i)==i)
  15.    printf("%d\n",i);
  16. }    
  17.  
  18. int IsNumber( int numero)
  19. {
  20. int i;
  21. int nums[3];
  22. double sum=0;
  23.  
  24. for (i=2;i>=0;i--)
  25. {
  26. nums[i]=numero/pow(10,i);
  27. nums[i]%=10;        
  28. }    
  29. for(i=0;i<3;i++)
  30.   sum+=pow(nums[i],3);
  31.  
  32. return sum;
  33. }
  34.  


Citar
Ingrese numero (100-999): 999
----
153
370
371
407

Nuevo ejercicio:

Desarrollar una función que permita insertar en una secuencia de dígitos los caracteres guión
cada 8 dígitos a partir del cuarto dígito, y un espacio cada 8 dígitos a partir del octavo dígito.
Si la cantidad de dígitos no fuera múltiplo de 8 se deberá adicionar ceros por la izquierda.
Ejemplo:
472348237388539055823012 queda como 4723-4823 7388-5390 5582-3012.

Citar
Sin la intencion de molestar no c si pudieras resolver un ejercicio que hasta el dia de hoy no puedo resolverlo :-( :huh: :-(
si me das opcion a planteartelo lo coloco...

Dale ponelo asi lo vemos, pero primero haz el ejercicio que te pase  :).

Un saludo!
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
micky123

Desconectado Desconectado

Mensajes: 32


Ver Perfil
Re: Practiquemos C++ (juntos)
« Respuesta #17 en: 19 Febrero 2010, 05:18 am »

Hola de nuevo y gracias por continuar...
mi respuesta a:

Desarrollar una función que permita insertar en una secuencia de dígitos los caracteres guión cada 8 dígitos a partir del cuarto dígito, y un espacio cada 8 dígitos a partir del octavo dígito. Si la cantidad de dígitos no fuera múltiplo de 8 se deberá adicionar ceros por la izquierda.
Ejemplo:
472348237388539055823012 queda como 4723-4823 7388-5390 5582-3012.


Código
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <string.h>
  4.  
  5.  
  6. void main(void)
  7. {
  8.   char v[35];
  9.   int i, dim,f;
  10.   clrscr();
  11.   printf("Ingrese Numero ");
  12.   fflush(stdin);
  13.   fgets(v,35,stdin);
  14.   dim=strlen(v);
  15.   v[dim+1]=v[dim];
  16.   for(f=dim;f>=1;f--)
  17.   {
  18.     v[f]=v[f-1];
  19.   }
  20.   for(i=1;i<=dim;i++)
  21.   {  if(i%5==0)
  22.      {
  23. v[dim+1]=v[dim];
  24.  for(f=dim;f>=i;f--)
  25.  {
  26.    v[f]=v[f-1];
  27.  }
  28. if(i%2==0)
  29. {
  30.  v[i]=' ';
  31. }
  32. else
  33. {
  34.  v[i]='-';
  35. }
  36.      }
  37.  
  38.   }
  39.   dim=strlen(v);
  40.   for(i=1;i<=dim;i++)
  41.     printf("%c",v[i]);
  42.   getch();
  43. }

Bueno algo raro que pasa es que introduzco tus datos y me devuelve:
Código
  1. 4723-4823 7388-5390 5582-3@

Porfa pido identificar mi error... gracias de antemano.


En línea

micky123

Desconectado Desconectado

Mensajes: 32


Ver Perfil
Re: Practiquemos C++ (juntos)
« Respuesta #18 en: 19 Febrero 2010, 05:23 am »

El ejercicio q nunca pude resolver es:

Dado un numero x (puede ser de cualquier cantidad de digitos) hallar todas las posibles combinaciones entre sus digitos:
ejemplo1:
x=1234
la salida seria:
1234
1243
1342
2341
2421
.....
123
132
213
231
321
312
....
12
21
31
13
23
32 todas las posibles permutaciones; podria ser x=124  ó x=64875

espero haberme dejado entender...
gracias de antemano
salu2
En línea

ghastlyX
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.900



Ver Perfil
Re: Practiquemos C++ (juntos)
« Respuesta #19 en: 19 Febrero 2010, 18:51 pm »

Si te he entendido, es un simple backtracking muy sencillo de hacer.
Código
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <string>
  4. using namespace std;
  5.  
  6. void rec(int p, string& s, string r) {
  7.    if (p == s.size()) {
  8.        do {
  9.            cout << r << endl;
  10.        } while (next_permutation(r.begin(), r.end()));
  11.        return;
  12.    }
  13.    rec(p + 1, s, r);
  14.    r.push_back(s[p]);
  15.    rec(p + 1, s, r);
  16. }
  17.  
  18. int main() {
  19.    string s;
  20.    cin >> s;
  21.    sort(s.begin(), s.end());
  22.    rec(0, s, "");
  23. }

Un saludo de ghastlyX ;)
En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
UTF-8 e ISO-8859-1 juntos?
Desarrollo Web
mokoMonster 3 5,865 Último mensaje 1 Marzo 2011, 21:48 pm
por mokoMonster
aprender juntos
Dudas Generales
robertofd1995 0 1,489 Último mensaje 27 Agosto 2013, 00:38 am
por robertofd1995
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines