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)


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Algoritmo de numeros compuestos en: 14 Noviembre 2023, 23:31 pm
Hola de nyevo:

Estoy intentando codificar en C este algoritmo:


      
Código:
algoritmo  BuscaDivisoresMultiplicadosIgualesNumero
            var
                        num, divisor1, divisor2, divisor3: entero;
            fvar


            num := leerEntero( );

            mientras  (num ≠ -1) hacer    
                        buscadivisor1(num, divisor1, divisor2,divisor3);  

                        si loEs(num, divisor1, divisor2,divisor3)  entonces
                                          printaExito(num, divisor1, divisor2,divisor3

                        sino
                                          printaFracaso(num);

                         fsi  


                         num := leerEntero( );

            fmientras


       falgoritmo
 

      accion printaExito( ent a: entero, ent b: entero, ent c: entero, ent d: entero )


                  escribirCadena(‘El número: ‘);
                  escribirEntero(a);

                  escribirCadena(‘ es igual a  ‘);

                  escribirEntero(b);

                  escribirCadena(‘ multiplicado por  ‘);

                  escribirEntero(c);  

                  escribirCadena(‘ y por ‘);

                  escribirEntero(d);  

            fsi        

      faccion


      accion printaFracaso(ent a: entero)
            escribirCadena(‘El número: ‘);
            escribirEntero(a);
            escribirCadena(‘ no tiene divisores diferentes de 1 que multiplicados sean igual a el. ‘);
      faccion


      funcion loEs(ent x: entero,ent y:entero,ent z: entero, ent w: entero): booleano;

                        retorna x = (y * z * w);            
      ffuncion


      accion buscadivisor1(ent n: entero, sal d1: entero, sal d2: entero, sal d3: entero )
            var

                   encontrado: booleano;
            fvar

            encontrado:=falso;

            d1:=2;

            d2:=2;

            d3:=2;

            mientras  d1<=(n div 2) y no encontrado  hacer
                  buscadivisor2 (n,d1,d2,d3);
                  encontrado:= loEs (n,d1,d2,d3);

                   si   no encontrado  entonces

                           d1:=d1+1;

                   fsi  
            fmientras
      faccion
 

      accion buscadivisor2( ent num: entero, ent d1: entero, sal d2: entero, sal d3: entero  )

            var

                   encontrado: booleano;
            fvar

            encontrado:=falso;

            d2:=2;

            d3:=2;

            mientras  d2 <= (num div 2) y no encontrado  hacer
                  buscadivisor3(num,d1,d2,d3);  

                 encontrado:= loEs (num,d1,d2,d3);
                  si no encontrado  entonces
                        d2:=d2+1;
                  fsi      
            fmientras
      faccion

 

      accion buscadivisor3( ent num: entero, ent d1: entero, sal d2: entero, sal d3: entero  )

            var

                   encontrado: booleano;
            fvar

            encontrado:=falso;

            d3:=2;

            mientras  d3 <= (num div 2) y no encontrado  hacer

                 encontrado:= loEs (num,d1,d2,d3);
                  si no encontrado  entonces
                        d3:=d3+1;
                  fsi      
            fmientras
      faccion

Tengo la teoria de que en la prkmera oarte hay que yacer un bucle while que busque divisores, lo de printar  las cadenas  eso lo tengo solucionado, pero lo qye desconozco es como codificar el resto, el resultado, deberia dar un programa el cual te muestra 3 numeros que multiplicados entre si dan el numero introducido

¿Alguien puede ayudarme a codificar el algoritmo?
2  Programación / Programación C/C++ / Contador en: 7 Noviembre 2023, 18:02 pm
Hola

Alguien sabe el porque el contador no se incrementa?

Código
  1. printf("es tu turno jugador, se ha generado tu array y ahora vas a llenarlo \n");
  2.    printf("recuerda que has de usar numeros del 1 al 4\n");
  3.  
  4.    do {
  5.  
  6.  
  7.        printf("Introduce el entero del 1 al 4 numero %d: ",contador);
  8.        scanf("%d",&numero);
  9.  
  10.  
  11.        if((numero>=1)&&(numero<=4)) {
  12.  
  13.            printf("Introduce el entero del 1 al 4 numero %d: ",contador);
  14.            printf("\n");
  15.  
  16.            jugador[numeros];
  17.  
  18.            scanf("%d",&jugador[0]);
  19.            scanf("%d",&jugador[1]);
  20.            scanf("%d",&jugador[2]);
  21.            scanf("%d",&jugador[3]);
  22.            scanf("%d",&jugador[4]);
  23.            scanf("%d",&jugador[5]);
  24.            scanf("%d",&jugador[6]);
  25.            scanf("%d",&jugador[7]);
  26.            scanf("%d",&jugador[8]);
  27.            scanf("%d",&jugador[9]);          
  28.  
  29.        } else {
  30.  
  31.            printf("\n");
  32.            printf("B");
  33.            printf("\n");
  34.  
  35.        }
  36.  
  37.  
  38. contador +=1;
  39. |
3  Programación / Programación C/C++ / Funcion que muestre aciertos y porcentaje en: 4 Noviembre 2023, 21:19 pm
Hola de nuevo,

tengo este codigo:


int porcentaje_aciertos() {

    int f,aciertos,valordelarreglo,valordelotroarreglo, num, porcentaje, numeros_introducidos, arrayjugador;


    aciertos = 0;

    for(f = 0; f < num; f++) {

        valordelarreglo = numeros_introducidos[f], valordelotroarreglo = arrayjugador[f];

        if(valordelarreglo == valordelotroarreglo) {

            aciertos +=1;

        }

    }
   
    porcentaje = (aciertos / num) * 100;

printf("Has acertado %d de: %d", aciertos,num);
printf("Es el %d porciento",porcentaje);
}

que deberia mostrar aciertos y porcentajes, pero me da un error en la linia de: 
        valordelarreglo = numeros_introducidos[f], valordelotroarreglo = arrayjugador ¿ALguien puede decirme por que me dice que no es puntero ni array?
4  Programación / Programación C/C++ / Omparacion de 2 arrays en: 1 Noviembre 2023, 19:41 pm
Hola estaba por responder el otro tema con el mismo nombre, pero me salio una advertencia, asi que inicio nuevo tema:

Veran estoy intentando solventar esto:

Función “numeroNumeroAciertos”. Devuelve el número de aciertos que ha tenido el usuario.

Se trata de hacer 2 arrays que se deben comparar, tengo entendido que primero debes comparar su tamaño y luego valor a valor cada posición, esto es lo poco que he conseguido, lo que no condigo ss hacer la comparativa y 2 for anidados, algo que no entiendo del todo:

void numeros_de_aciertos() {

//elementos a comparar
//contador de aciertos aciertos
//comparación con if
//bucle

    int f, aciertos,arrayjugador[10],numeroaleatorio[10];

    aciertos = 1;

    int longituddelarreglo = sizeof(arrayjugador) / sizeof(arrayjugador[10]);
    int longituddelotroarreglo = sizeof(numeroaleatorio) / sizeof(numeroaleatorio[10]);

    if(longituddelarreglo !=longituddelotroarreglo) {

        printf("los arreglos no son iguales");

       
    }

}

Si alguien me explicara el procedemiento


5  Programación / Programación C/C++ / Pasar a c en: 27 Octubre 2023, 20:31 pm
Hola

Estoy intentando codifixar a a C este pseudocodigo, ¿Alguien puede indicarme algunos conceptos como cadena?, no estoy seguro a si se refiere a array

Código:
var
                        num, divisor1, divisor2, divisor3: entero;
            fvar

            num := leerEntero( );

            mientras  (num ≠ -1) hacer    
                        buscadivisor1(num, divisor1, divisor2,divisor3);  

                        si loEs(num, divisor1, divisor2,divisor3)  entonces
                                          printaExito(num, divisor1, divisor2,divisor3

                        sino
                                          printaFracaso(num);

                         fsi  

                         num := leerEntero( );

            fmientras


       falgoritmo
 

      accion printaExito( ent a: entero, ent b: entero, ent c: entero, ent d: entero )


                  escribirCadena(‘El número: ‘);
                  escribirEntero(a);

                  escribirCadena(‘ es igual a  ‘);

                  escribirEntero(b);

                  escribirCadena(‘ multiplicado por  ‘);

                  escribirEntero(c);  

                  escribirCadena(‘ y por ‘);

                  escribirEntero(d);  

            fsi        

      faccion


      accion printaFracaso(ent a: entero)
            escribirCadena(‘El número: ‘);
            escribirEntero(a);
            escribirCadena(‘ no tiene divisores diferentes de 1 que multiplicados sean igual a el. ‘);
      faccion

      funcion loEs(ent x: entero,ent y:entero,ent z: entero, ent w: entero): booleano;

                        retorna x = (y * z * w);            
      ffuncion

      accion buscadivisor1(ent n: entero, sal d1: entero, sal d2: entero, sal d3: entero )
            var

                   encontrado: booleano;
            fvar

            encontrado:=falso;

            d1:=2;

            d2:=2;

            d3:=2;

            mientras  d1<=(n div 2) y no encontrado  hacer
                  buscadivisor2 (n,d1,d2,d3);
                  encontrado:= loEs (n,d1,d2,d3);

                   si   no encontrado  entonces

                           d1:=d1+1;

                   fsi  
            fmientras
      faccion
 
      accion buscadivisor2( ent num: entero, ent d1: entero, sal d2: entero, sal d3: entero  )

            var

                   encontrado: booleano;
            fvar

            encontrado:=falso;

            d2:=2;

            d3:=2;

            mientras  d2 <= (num div 2) y no encontrado  hacer
                  buscadivisor3(num,d1,d2,d3);  

                 encontrado:= loEs (num,d1,d2,d3);
                  si no encontrado  entonces
                        d2:=d2+1;
                  fsi      
            fmientras
      faccion

      accion buscadivisor3( ent num: entero, ent d1: entero, sal d2: entero, sal d3: entero  )

            var

                   encontrado: booleano;
            fvar

            encontrado:=falso;

            d3:=2;

            mientras  d3 <= (num div 2) y no encontrado  hacer

                 encontrado:= loEs (num,d1,d2,d3);
                  si no encontrado  entonces
                        d3:=d3+1;
                  fsi      
            fmientras
      faccion
¿Por otro lado alguien sabe de algun codificador a C?
6  Programación / Programación C/C++ / Función pedir un a llenar un array en: 26 Octubre 2023, 19:37 pm
Hola

Intento desarrollar jna función para un juego de memorua, consistenete en:

Llenar un array con números enteros, comprendidos entre el 1 y el 4, pedidos al usuario. Si el usuario introduce un número no comprendido en ese rango, se le vuelve a pedir hasta que cumpla
las especificaciones. El array tiene máximo 10 posiciones y se llenarán las que se indiquen por parámetro de entrada que coincidirán con las generadas aleatoriamente.

Asi es como intento solucionarlo:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. void arrayjugador() {
  6.  
  7.    int num,numero2,numero3,numero4,numero5,numero6,numero7,numero8,numero9,numero10;
  8.  
  9.    int numero[10] = {2,3,4,1,2,3,4,4,1,3};
  10.    numero[0] = 2;
  11.    numero[1] = 3;
  12.    numero[2] = 4;
  13.    numero[3] = 1;
  14.    numero[4] = 2;
  15.    numero[5] = 3;
  16.    numero[6] = 4;
  17.    numero[7] = 4;
  18.    numero[8] = 1;
  19.    numero[9] = 3;
  20.  
  21.    printf("Introduce diez numeros desde el 1 al 4");
  22.  
  23.    scanf("%d",&numero[0]);
  24.    scanf("%d",&numero[1]);
  25.    scanf("%d",&numero[2]);
  26.    scanf("%d",&numero[3]);
  27.    scanf("%d",&numero[4]);
  28.    scanf("%d",&numero[5]);
  29.    scanf("%d",&numero[6]);
  30.    scanf("%d",&numero[7]);
  31.    scanf("%d",&numero[8]);
  32.    scanf("%d",&numero[9]);
  33.    scanf("%d",&numero[10]);
  34.  
  35.    if((numero < 0)) && ((numero > 5)) {
  36.  
  37.        do {
  38.  
  39.            printf("Introduce diez numeros desde el 1 al 4");
  40.  
  41.        } while(numero < 0) && (numero > 5)
  42.  
  43.    }
  44.  
  45. }
  46.  
Lo que no estoy seguro de que se solucione dd esta manera si slguien me pudiera almenos indicar el camino  correcto, seria de ageadecer
7  Programación / Programación C/C++ / Numeros capicu del 100 al 999, en: 20 Octubre 2023, 19:56 pm
Hola estoy intentando un algoritmo que encuentre 150 numetos que empiecen por el mismo  digito, el problema ss que cuando llego a 100, la firmula de seoarar numeros en digitos de / 10 %10, deja de funcionar y no se como seguir el codigo:

Código
  1. #include <stdio.h>
  2. #include <stdbool.h>
  3. #include <conio.h>
  4. #include <string.h>
  5.  
  6. int main(void) {
  7.    int n,cociente;
  8.    bool contador,capicua;
  9.  
  10.    n = 0;
  11.    contador = 0;
  12.  
  13.  
  14.    for(n = 0; n <= 9999; n++) {
  15.  
  16.  
  17.        printf("%d",n);
  18.        printf(" - ");
  19.  
  20.        while(n <= 10000) {
  21.  
  22.            capicua = false;
  23.  
  24.            n+=1;
  25.  
  26.            int u,d,c,u_m;
  27.  
  28.            if (n <=9) {
  29.  
  30.                capicua = true;
  31.  
  32.                if (capicua = true) {
  33.  
  34.                    printf("\n");
  35.                    printf("Es cap y cua: %d",n);
  36.                    printf("\n");
  37.                }
  38.  
  39.            } else {
  40.  
  41.                if ((n >=10 ) && (n <=100)) {
  42.  
  43.                    capicua = false;
  44.  
  45.  
  46.                    d = n / 10;
  47.                    u = (n% 10) / 1;
  48.  
  49.                    if (u != d) {
  50.  
  51.  
  52.                    } else {
  53.  
  54.                        u == d;
  55.  
  56.                        capicua = true;
  57.  
  58.                        printf("\n \n");
  59.                        printf("Es cap i cua: %d",n);
  60.  
  61.                        if ((n >100) && (n <=200)) {
  62.  
  63.                            c =n/100;
  64.  
  65.  
  66.                            printf("%d",n);
  67.  
  68.  
  69.                        }
  70.  
  71.                    }
  72.  
  73.  
  74.  
  75.                }
  76.  
  77.            }
  78.  
  79.        }
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.    }
  90.    return 0;
  91. }

Si alguien porfavor supiera una formula que se pare los numeros del 100 al 999, por favor que lo diga

MOD: Etiqueta GeSHi
8  Programación / Programación C/C++ / Duda con expresion en: 16 Febrero 2022, 22:53 pm
Hola buenas noches

codigoACaracter( numContinentes + realAEntero( maxDistancia )

En esa expresion se el remplazo de numContinentes y maxDistancia, ¿alguna idea de como saber el numero para remplazar realAEntero?

Tengo entendido que para solventarlo tengo que primero multipljcar el numero rea. Por el segundo parentesis luego sumar el numContinentes ¿Es correcto este orden?

Gracias por la ayuda
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines