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

 

 


Tema destacado: Curso de javascript por TickTack


  Mostrar Mensajes
Páginas: 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 23
41  Programación / Programación C/C++ / Re: Calcular potencia con recursividad en: 8 Junio 2015, 23:05 pm
Gracias a todos por vuestra respuestas!

He conseguido terminarlo pero creo que no como me pide el ejercicio.

Código
  1. #include<stdio.h>
  2. #include<conio.h>
  3.  
  4. /* Declaración de funciones */
  5. int potencia(int, int);
  6.  
  7. int main(void){
  8. int base, exponente;
  9.  
  10. printf("Base: ");
  11. fflush(stdin);
  12. scanf("%i", &base);
  13.  
  14. printf("Exponente: ");
  15. fflush(stdin);
  16. scanf("%i", &exponente);
  17.  
  18. printf("\nLa pontencia del numero %i con exponente %i es %i", base, exponente, potencia(base, exponente));
  19.  
  20. getch();
  21. return 0;
  22. }
  23.  
  24. int potencia(int base, int exponente){
  25. if (exponente  == 0) return 1;
  26.  
  27. else{
  28. return base * potencia(base, exponente -1); // llamada recursiva
  29. }
  30. }
42  Programación / Programación C/C++ / Re: Calcular potencia con recursividad en: 8 Junio 2015, 21:47 pm
Gracias Stakewinner, lo voy entendiendo solo que al ver esa formula se me esta complicando.

Entonces ahora me quedaría así:

Código
  1. #include<stdio.h>
  2. #include<conio.h>
  3.  
  4. /* Declaración de funciones */
  5. int potencia (int);
  6.  
  7. int main(void){
  8. int n;
  9.  
  10. printf("Esribe un numero para calcular su potencia: ");
  11. scanf("%i", &n);
  12.  
  13. printf("\nLa pontencia del numero %i es %i", n, potencia(n));
  14.  
  15. getch();
  16. return 0;
  17. }
  18.  
  19. int potencia(n){
  20.  
  21. if (n == 0) return 1;
  22.  
  23. if (n == 1) return 0;
  24.  
  25. if (n % 2 == 0){
  26. (potencia^(n/2))^2
  27. }
  28. else{
  29. potencia*(potencia^((n-1)/2))^2
  30. }
  31.  
  32. }
43  Programación / Programación C/C++ / Calcular potencia con recursividad en: 8 Junio 2015, 21:00 pm
Hola compañeros, estoy un poco confuso en como puedo realizar el siguiente ejercicio.

Tengo la siguiente función y tengo que calcular la potencia de forma recursiva:

función(x,n):
1 si n = 0
x si n = 1
(x^(n/2))^2 si n es par, n>1
x*(x^((n-1)/2))^2 si n es impar, n>2


Y bueno dejaré mi pobre código esperando un poco de ayuda  :rolleyes: :rolleyes:

Código
  1. #include<stdio.h>
  2. #include<conio.h>
  3.  
  4. /* Declaración de funciones */
  5. int potencia (int);
  6.  
  7. int main(void){
  8. int n;
  9.  
  10. printf("Esribe un numero para calcular su potencia: ");
  11. scanf("%i", &n);
  12.  
  13. printf("\nLa pontencia del numero %i es %i", n, potencia(n));
  14.  
  15. getch();
  16. return 0;
  17. }
  18.  
  19. int potencia(n){
  20.  
  21. if (n == 0) return 0;
  22.  
  23. if (n == 1) return 1;
  24.  
  25. if (n % 2 == 0){
  26. (x^(n/2))^2
  27. }
  28. else{
  29. x*(x^((n-1)/2))^2
  30. }
  31.  
  32.  
  33. }
44  Programación / Programación C/C++ / Re: Numero menor recursivo en: 15 Abril 2015, 00:15 am
Hola compañeros, ya tengo mejorado el código. Lo que pretendia hacer con la variable "medida" era saber los elementos que habrán en el vector.

Ahora lo verán más claro:

Código
  1. #include<stdio.h>
  2. #include<conio.h>
  3.  
  4. /* Programa recursivo que muestra el numero menor de un vector */
  5.  
  6. int valorMenor(int* vector, int num_elementos, int menor_encontrado);
  7.  
  8. int main(){
  9.    int i, valor;
  10.    int vector[100];
  11.    int num_elementos;
  12.    int menor_encontrado;
  13.  
  14.    printf("Cuantos numeros quieres introducir? "); // Creo que esto no se tiene que poner, hay que rellenar el vector sin pedir el tamaño pero estoy dudando
  15.    scanf("%i", &num_elementos);
  16.  
  17.    for(i=0; i<num_elementos; i++){ // Rellenamos el vector
  18.             printf("Valor %i: ", i+1);
  19.             scanf("%i", &valor);
  20.             vector[i] = valor;
  21.    }
  22.  
  23.    printf("El valor mas pequeno es: %i", valorMenor(vector, num_elementos, menor_encontrado));
  24.  
  25.  
  26.    getch();
  27.    return 0;
  28. }
  29.  
  30. int valorMenor(int* vector, int num_elementos, int menor_encontrado){
  31.  
  32. // Caso base
  33. if (num_elementos == 0)
  34. return menor_encontrado;
  35.    else
  36.     return valorMenor(vector, num_elementos -1, min(menor_encontrado, vector[num_elementos -1]));
  37.  
  38. } // Fin función
  39.  

Gracias por la ayuda!
45  Programación / Programación C/C++ / Numero menor recursivo en: 13 Abril 2015, 21:11 pm
Hola compañeros, estoy haciendo un programa recursivo en C que mostrará el número menor de un vector.

De momento esto es lo que he planteado:

Código
  1. #include<stdio.h>
  2. #include<conio.h>
  3.  
  4. /* Programa recursivo que muestra el numero menor de un vector */
  5.  
  6. int valorMenor(int vector[100], int medida);
  7.  
  8. int main(){
  9.    int medida, i, valor;
  10.    int vector[100];
  11.  
  12.    printf("Cuantos numeros quieres introducir? "); // Creo que esto no se tiene que poner, hay que rellenar el vector sin pedir el tamaño pero estoy dudando
  13.    scanf("%i", &medida);
  14.  
  15.    for(i=0; i<medida; i++){ // Rellenamos el vector
  16.             printf("Valor %i: ", i+1);
  17.             scanf("%i", &valor);
  18.             vector[i] = valor;
  19.    }
  20.  
  21.    printf("El valor mas pequeno es: %i", valorMenor(vector, medida));
  22.  
  23.  
  24.    getch();
  25.    return 0;
  26. }
  27.  
  28. int valorMenor(int vector[100], int medida){
  29.    int menor=0;
  30.  
  31.    // Caso base
  32.    if (medida==0){
  33.              if (menor > vector[100]){
  34.                        return vector[100];
  35.                        }
  36.              else{
  37.                   return menor;
  38.                   }
  39.              }
  40.  
  41.              else{
  42.              if (menor > vector[100]){
  43.                        return valorMenor (vector[100], medida-1, menor);
  44.                        }
  45.                        else{
  46.                             return valorMenor (vector, medida-1, menor);
  47.                        }
  48.              }
  49. } // Fin función
  50.  

Un saludo
46  Programación / Programación C/C++ / Re: 1ra palabra de un String en: 21 Febrero 2015, 09:18 am
Gracias por la ayuda, era solamente eso!!  ;-) ;-)

Tengo otra función parecida, la de mostrar la palabra más larga del String introducido y no me funciona:



Código
  1. /* Función para mostrar la palabra más larga de una frase */
  2. char* palabraLarga(char frase[20]){
  3. char *elemento = strtok ( frase, " " );
  4.  
  5. strcpy(frase, elemento);
  6.  
  7. while ( elemento != NULL ) {
  8. if(strlen(elemento) >= strlen(frase))
  9. strcpy(frase, elemento);
  10. elemento = strtok(NULL, " ");
  11. }
  12. return frase;
  13. }

Código
  1. case 3:
  2. system("cls");
  3. printf("La palabra más larga del String es ' %s '", palabraLarga(frase));
  4. break;
47  Programación / Programación C/C++ / 1ra palabra de un String en: 19 Febrero 2015, 23:29 pm
Hola, que tal?

Les vengo a preguntar sobre una función que me muestra la 1r palabra de un string, tengo esta función hecha, compila bien pero no muestra nada.

Código
  1. char* extraerPalabra(char frase[20]) {
  2.  
  3. char *elemento = strtok(frase, " ");
  4.  
  5. strcpy(frase, elemento);
  6.  
  7. while (elemento != NULL) {
  8.        if (!strcmp(frase, elemento)) // Comparamos las dos cadenas
  9. elemento = strtok(NULL, " ");
  10.    }
  11. return frase;
  12. }


Código
  1. case 2:
  2. printf("String mostrando la 1r palabra: ' %s '", extraerPalabra(frase));
  3. break;
  4.  
48  Programación / Programación C/C++ / Re: Pasar string por referencia o no en: 19 Febrero 2015, 21:22 pm
Ya lo he podido solucionar TODO!

Gracias por la ayuda compañeros!! :)

Saludos
49  Programación / Programación C/C++ / Re: Pasar string por referencia o no en: 17 Febrero 2015, 18:42 pm
Buenas,

Ya he podido solventar el problema de leer un String, ahora tengo problemas al pasar por referencia, dejo el código:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int frecuencia(char *, char letra);
  6.  
  7.  
  8. int main(){
  9. int opcion=1;
  10. char frase[20], letra;
  11.  
  12. while(opcion!=5){
  13. system("cls");
  14. printf("1. Introducir frase\n");
  15. printf("2. Frecuencia caracter\n");
  16. printf("3. Quitar primera palabra\n");
  17. printf("4. Sin espacios en blanco\n");
  18. printf("5. Salir\n");
  19. printf("\n\nEscoge una opcion: ");
  20. fflush(stdin);
  21. scanf("%i", &opcion);
  22.  
  23. switch (opcion){
  24. case 1:
  25. system("cls");
  26. printf("Introduce una frase ");
  27. fflush(stdin);
  28. gets(frase); // Guardamos el String
  29.  
  30. printf("\n\nLa frase introducida es:\n\n\n");
  31. printf("%s", frase);
  32. fflush(stdin);
  33.  
  34. getch();
  35. break;
  36.  
  37. case 2:
  38. system("cls");
  39. printf("\n\nQue letra quieres buscar en la cadena? ");
  40. scanf("%c", &letra); // guardamos la letra que queremos buscar en la cadena
  41. printf("La letra %c aparece %i veces repetidas", letra, frecuencia(frase,letra));
  42. getch();
  43. break;
  44.  
  45. case 3:
  46. system("cls");
  47. //printf("\nLa frase sin la primera palabra: %s\n", quitarPrimera(frase));
  48. system("pause");
  49. break;
  50. case 4:
  51. system("cls");
  52. //printf("\nLa frase sin espacio es: %s\n", sinEspacios(frase));
  53. break;
  54. case 5:
  55. system("cls");
  56. printf("Hasta luego!");
  57. getch();
  58. return 0;
  59. break;
  60. default:
  61. printf("\nOpcion incorrecta! Intenta de nuevo");
  62.  
  63. }
  64. getch();
  65.  
  66. }
  67.  
  68. getch();
  69. return 0;
  70. }// fin main
  71.  
  72. // Función para comprobar cuantas veces se repite una letra
  73. int frecuencia(char *frase[20], char letra){
  74. int i, cont=0; // la variable contador será la encargada de sumar cuando se encuentre la letra
  75.  
  76. for (i=0; frase[i] != '\0'; i++){ // recorremos con un for hasta encontrar el espacio en blanco
  77. if (frase[i] == letra){ // si el punto de la cadena es = a la letra que queremos encontrar
  78. cont++;              // sumara el contador
  79. }
  80. }
  81. return cont; // retornaremos las veces que se ha encontrado el caracter que hemos buscado en el for
  82. }

Al leer un String y pasarlo por referencia se pone " & " delante de la variable pero me da error.

Gracias
50  Programación / Programación C/C++ / Re: Pasar string por referencia o no en: 16 Febrero 2015, 19:54 pm
Buenas compañeros,

Sigo teniendo problemas a la hora de leer Strings, si leo caracteres no tengo problema pero como quiera escribir un Strings con una frase con espacios me da el siguiente error:


No me permite escribir nada en el String

Código
  1. printf("Introduce el String: ");
  2. gets(frase);
  3.  
  4. printf("\nLa frase sin la primera palabra: %s\n", quitarPrimera(frase));
  5. system("pause");



Código
  1. char* quitarPrimera(char frase[20]);
  2.  
  3.  
  4. int main(){
  5.  
  6. char frase[20];

Creo que será que tengo que recoger de otra forma la cadena porque con un SCANF puedo pero no me permite coger frases con espacios y no es el objetivo que estoy buscando.

Gracias!!!
Páginas: 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 23
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines