Sunteți pe pagina 1din 46

Ejercicios Simples

1. Escribir un programa que muestre en pantalla un saludo.

2. Escribir un programa que sume dos nmeros: a=7 b=4.

3. Escribir un programa que lea dos nmeros y los sume.

4. Escribir un programa que sume, reste, multiplique y divida dos nmeros: x = 10 y = 2.

5. Escribir un programa que sume, reste, multiplique y divida dos nmeros ledos desde el teclado.

6. Escribir un programa que calcule el rea de un rectngulo de lado1 = 3 y lado2 = 4. rea del rectngulo=lado1 * lado2

7. Modifique el ejercicio anterior para que los valores de los lados sean suministrados por el usuario.

8. Escribir un programa que calcule el rea de un tringulo, capturando los valores de base yaltura. rea del tringulo = (base * altura)/2

9. Escribir un programa que calcule la longitud y el rea de una circunferencia, capturando el valor del radio. longitud de la circunferencia = 2 * PI * radio rea de la circunferencia = PI * radio2

10. Escribir un programa que calcule la velocidad de un proyectil que recorre x Km en t minutos. Expresar el resultado en metros/segundo. Velocidad = espacio/tiempo

11. Escribir un programa que calcule el volumen de una esfera de radio = r volumen de la esfera = 4/3 * PI * radio3

12. Escribir un programa que evale la siguiente expresin: (a+7*c)/(b+2-a)+2*b

13. Escribir un programa que evale la siguiente expresin: (a+5) * 3 / 2 * b b

14. Escribir un programa que evale la siguiente expresin:

(-b + raz cuadrada(b2-4*a*c)/(2*a).

15. Escribir un programa que calcule las races de una ecuacin de 2 grado. (-b + raz cuadrada(b2-4*a*c)/(2*a).

(-b - raz cuadrada(b2-4*a*c)/(2*a). 16. Escribir un programa que calcule la hipotenusa de un tringulo rectngulo.

17. Escribir un programa que calcula el equivalente en grados Fahrenheit o Celsius de una temperatura t. Celsius / 5 = (Fahrenheit 32) 9

18. Escribir un programa que calcule el nmero de horas, minutos y segundos que hay en 3700 segundos.

19. Escribir un programa que calcule el capital producido por un capital de x de pesos, al cabo de un ao depositado a un inters del y% mensual.

20. Escribir un programa que calcule el equivalente en pies de una longitud de x metros sabiendo que 1 metro equivale a 39.27 pulgadas y 12 pulgadas equivalen a 1 pie.

21. Escribir un programa que calcule el rea de un rectngulo a partir de sus coordenadas x1, y1,x2, y2.

22. Escribir un programa que lea dos nmeros enteros A y B, y obtenga los valores de la divisin entera de A dividido B y el residuo de esta.

23. Escribir un programa que convierta un nmero de segundos en su equivalente en minutos y segundos.

Condicionales
24. Escribir un programa que detecte si un nmero introducido desde el teclado es positivo o negativo.

25. Escribir un programa que detecte si se han introducido en orden creciente tres nmeros introducidos por el usuario.

26. Escribir un programa que determine si un nmero ledo desde el teclado es par o impar

27. Escribir un programa que detecte si un nmero ledo desde el teclado es mayor o menor que 100.

28. Escribir un programa que dado un nmero del 1 a 7 escriba el correspondiente nombre del da de la semana.

29. Escribir un programa que lea un caracter e indique si es o no una vocal.

30. Escribir un programa

que lea dos nmeros desde el teclado y si el primero es mayor que el segundo intercambie sus valores.

31. Escribir un programa que lea desde teclado el importe bruto de una factura y determine el importe neto segn los siguientes criterios. Importe bruto menor de 20.000 -> sin descuento Importe bruto mayor de 20.000 -> 15% de descuento

32. Escribir un programa que una vez leda una hora en formato (horas, minutos, segundos) indique cual ser el tiempo dentro de un segundo.

Ciclos

33. Escribir un programa que realice un bucle con while y muestre en pantalla del 1 al 10.

34. Escribir un programa que realice un bucle con do ... while y muestre en pantalla del 1 al 10.

35. Escribir un programa que realice un bucle con For y muestre en pantalla del 1 al 10.

36. Escribir un programa que visualice en pantalla los nmeros pares entre 1 y 25.

37. Escribir un programa que visualice en pantalla los nmeros mltiplos de 5 comprendidos entre 1 y 100.

38. Escribir un programa que sume los nmeros comprendidos entre 1 y 10.

39. Escribir un programa que genere la tabla de multiplicar de un nmero introducido por el teclado.

40. Escribir un programa que realice la pregunta Desea continuar S/N? y que no deje de hacerla hasta que el usuario teclee N.

41. Escribir un

programa que calcule cuantos aos tarda en duplicarse un capital depositado al 5% de inters anual.

43. Escribir un programa que pida un nmero y si el que se introduce por el teclado es menor de 100 que vuelva a solicitarlo.

44. Escribir un

programa que calcule el factorial de un nmero.

45. Escribir un programa que calcule la media de 5 nmeros introducidos por el teclado.

46. Escribir un

programa que calcule la media de x cantidad nmeros introducidos por el teclado.

47. Escribir un programa que calcule la media de nmeros introducidos por el teclado hasta que el nmero ingresado sea cero.

48. Escribir un

programa que detecte si un nmero es primo o no. Un nmero es primo si slo es divisible por s mismo y por la unidad.

49. Escribir un programa que escriba los nmeros comprendidos entre 1 y 1000. El programa escribir en la pantalla los nmeros en grupos de 20, solicitando al usuario si quiere o no continuar visualizando el siguiente grupo de nmeros.

50. Escribir un programa que calcule, independientemente, la suma y la media de los nmeros pares e impares comprendidos entre 1 y 200.

51. Escribir un programa que calcule la suma de los cuadrados de los 100 primeros nmeros enteros.

52. Escribir un programa que lea 10 datos desde el teclado y sume slo aquellos que sean negativos.

Arreglos
53. Escribir un programa que llene un arreglo con los nmeros enteros comprendidos entre 4 y 14.

54. Escribir un programa

que llene un arreglo con los nmeros pares comprendidos entre 1 y 100.

55. Escribir un programa que llene un arreglo con los nmeros comprendidos entre 0 y 100

divisibles por 3 . 56. Escribir un programa que llene un arreglo con cinco nmeros enteros consecutivos y haga una copia de ese arreglo en otro.

57. Escribir un programa que llene un arreglo de 10 nmeros enteros aleatorios comprendidos entre 50 y 100, copie en otro arreglo esos nmeros multiplicados por 0,5 y

muestre ambos arreglos. 58. Escribir un programa que llene un arreglo con los veinte primeros nmeros pares y calcule su suma.

59. Escribir un programa que solicite cinco nmeros, los almacene en un arreglo y luego calcule la media aritmtica de esos nmeros.

61. Escribir un programa que tras asignar los nmeros, -2, 5, 8, -9, 10, 15 y 4 a un arreglo calcule, independientemente, la suma de los elementos positivos y negativos.

65. Escribir un programa que sume, independientemente, los elementos positivos y negativos dela siguiente matriz: -2 56 50 44 -12 -42 70 57 -86

66. Escribir un programa que multiplique por dos los elementos de la siguiente matriz: 5 6 13 14 2 4 21 7 6

71. Escribir un programa que divida todos los elementos de una matriz M (3,4) por el elemento situado en la posicin 2,2 .

72. Escribir un programa que almacene en un arreglo los nmeros primos comprendidos entre 1 y 100 .

73. Escribir un programa que genera la matriz transpuesta de una matriz de 3 filas y 4 columnas. La matriz transpuesta de una matriz M(m,n) se obtiene intercambiando filas por columnas y viceversa; el resultado se tiene que almacenar en una nueva matriz M_TRANS(n,m).

74. Escribir un programa que genera la inversa de una cadena de caracteres. La cadena original y la invertida deben almacenarse en arreglos independientes.

75. Escribir un programa que sume dos matrices bidimensionales. Las matrices para que puedan sumarse deben tener las mismas dimensiones.

77. Escribir un programa que cuente las maysculas de una cadena de caracteres.

79. Escribir un programa que encripte una cadena de caracteres sumando 2 al cdigo ASCII de cada uno de sus caracteres.

80. Escribir un programa que encripte los caracteres de una cadena sumando 2 a los que situados en posiciones pares y 3 a los situados en posiciones impares.

81. Decir el numero de vocales que aparecen en una frase introducida por el usuario.

83. Escribir un programa que lea una frase introducida desde el teclado y la escriba al revs.

84. Escribir un programa que compare dos arreglos de caracteres y nos diga si son idnticos o no.

86. Decir si una frase es o no un palndromo, es decir, si se lee igual de derecha a a izquierda que de izquierda a derecha (deben ser obviados los espacios).

Ads by Browse to Save

Funciones y procedimientos:
87. Escribir un programa que incremente un nmero usando una funcin.

88. Escribir un programa que calcule la potencia usando una funcin propia (no debe usar la funcin pow).

89. Escribir un programa que calcule el factorial de un numero ledo desde el teclado usando funciones.

90. Escribir un programa, que con funciones, verifique si un caracter introducido es un nmero o no.

91. Escribir un programa que, mediante una funcin, calcule el resultado de restar el doble de un numero a su cuadrado.

92. Escribir un programa que, utilizando funciones con parmetros, lea desde el teclado las unidades y el precio que quiere comprar, y en funcin de las unidades introducidas le haga un descuento o no (cuando las unidades excedan media docena se aplicar 4% y el 10% cuando excedan la docena).

93. Escribir un programa que mediante funciones obtenga la distancia entre dos puntos que se encuentran en el plano a partir de la lectura de sus coordenadas.

94. Escribir un programa que reciba un numero del 1 al 12 desde el teclado y muestre el nmero de das correspondiente al mes que corresponda con ese da (usar funciones).

95. Escribir un programa que transforme nmeros entre 0 y 999 a nmeros romanos (usar funciones).

PUBLICADO POR WILLIAM AX LEN ROSE

Estructuras
97. Escribir un programa que almacene en un arreglo de estructuras los nombres de los alumnos, sus notas parciales y finales. Hallar la nota media y mostrar un mensaje de APTO si el alumno supera o iguala la calificacin de 3.5 o NO APTO si no lo alcanza. Hacerlo para un nmero de 5 alumnos.

98. Escribir un programa que almacene en un arreglo de estructuras las caractersticas de cada persona: nombre, sexo, edad, peso, color de pelo, color de piel, color de ojos, nacionalidad y telfono y permita generar consultas por estas caractersticas.

99. Escriba un programa que usando estructuras implemente una lista de alumnos con sus cdigos, nombres, apellidos, direcciones, telfonos, correos y permita buscar en dicha lista.

Programas Varios
107.Escribir un programa que lea un tiempo en horas, minutos y segundos y empiece a cronometrar el tiempo mostrndolo en pantalla hasta llegar al limite ledo al inicio.

108.Modifique el ejercicio anterior para que el conteo se haga hacia atrs desde el tiempo ledo hasta cero.

109.Escribir un programa que ejemplifique los diferentes mtodos de ordenamiento de arreglos, para esto se deben crear como mnimo las siguientes funciones: Funcin que llena el arreglo con nmeros enteros aleatorios. Funcin que crea una copia del arreglo original. Funcin que muestra en pantalla un arreglo. Funcin de ordenar por burbuja. Funcin de ordenar por seleccin. Funcin de ordenar por insercin. Funcin de ordenar por quick sort. Funcin que muestra en pantalla un men de opciones para el usuario. nota: Recuerde que el programa no solo debe ordenar los arreglos si no mostrar a usuario como es el proceso de ordenamiento segn el caso.

110.Escribir un programa que implemente un calendario perpetuo, es decir, que dado una fecha en formato mes, da y ao le retorne al usuario el da de la semana que corresponde para esta fecha.

112.Escribir un programa que le permita al usuario jugar contra el computador el juego de picas y fijas, se debe implementar el juego con 3, 5 o 5 dgitos.

arios ejercicios resueltos del Captulo 7: Introduccin a las Funciones.


22-Aug-2012 21:58 por Pablo Rampa
Me encuentro varado en el Captulo 6. Pero para despejarme un poco he decicido seguir con el Captulo 7. De paso, me parecen ms manejables estos ejercicios. Quizs podra ir antes que Manejo de Ficherose este captulo. He aqu algunos ejercicios resueltos de Funciones. Me salto algunos que no he podido resolver y en el caso del primero(borrar pantalla), ni idea. Ya vendr la luz!? /* 7.4b_Crear una funcin que calcule el cubo de un nmero real (float). El resultado deber ser otro nmero real. Probar esta funcin para calcular el cubo de 3.2 y el de 5. */ #include <stdio.h> float cubica(float numero) { float cubica; cubica = numero * numero * numero; return cubica;

} int main() { float numero; float cubo; int i=0; while(numero >= -1000000) { if(i==0) puts("\nEscriba un numero real"); else puts("\nEscriba otro numero real"); scanf("%f", &numero); printf("%f elevado al cubo es %f\n", numero,cubo=cubica(numero)); i ++; } return 0; } /* 7.4c_Crear una funcin que calcule cual es el menor de dos nmeros enteros. El resultado ser otro nmero entero. */ #include <stdio.h> int minus(int num1, int num2) { int min; min = num1 < num2? num1: num2; return min; } int main() { int numero1, numero2, menor; while (numero1, numero2) { printf(" Escriba un numero\n"); scanf("%d",&numero1); printf(" Escriba otro numero\n"); scanf("%d",&numero2); menor=minus(numero1, numero2); printf(" El menor es %d\n\n", menor); } return 0; } /* 7.4d_Crear una funcin llamada signo, que reciba un nmero real, y devuelva un nmero entero con el valor: -1 si el nmero es negativo, 1 si es positivo o 0 si es cero. */ #include <stdio.h> int signo (float num) { int sig; if (num sig = if (num sig = if (num sig = > 0) 1; == 0) 0; < 0) -1;

return sig; } int main() { float numero; while (numero > -1000000) { printf("\nEscriba un numero real: "); scanf("%f", &numero); printf("%d", signo(numero)); } return 0; }

/* 7.4e_Crear una funcin que devuelva la primera letra de una cadena de texto. Probar esta funcin para calcular la primera letra de la frase Hola */ #include <stdio.h>

#include <string.h> char primeraLetra (char* cadena) { return cadena[0]; } int main() { char palabra[10]; printf("Escriba una palabra\n"); scanf("%s", palabra); printf("La primera letra es %c.", primeraLetra(palabra)); return 0; } /* 7.4e_Crear una funcin que devuelva la primera letra de una cadena de texto. Probar esta funcin para calcular la primera letra de la frase Hola */ #include <stdio.h> #include <string.h> char ultimaLetra (char* cadena) { return cadena[strlen(cadena)-1]; } int main() { char palabra[10]; int i; printf("Escriba una palabra\n"); scanf("%s", &palabra); printf("La ultima letra es: %c", ultimaLetra(palabra)); return 0; }

/*7.5b_Crear una funcin que reciba un nmero y muestre en pantalla el permetro y la superficie de un cuadrado que tenga como lado el nmero que se ha indicado como parmetro. */ #include <stdio.h> float perimetro (float numero) { float perimetro; perimetro = 4 * numero; return perimetro; } float area (float numero) { float area; area = numero * numero; return area; } int main() { int num; printf("Escriba un numero: "); scanf("%d", &num); printf("Perimetro:%f\n", perimetro(num)); printf("Area:%f\n", area(num)); return 0; } /* 7.6b_Crear una funcin escribirTablaMultiplicar, que recib a como parmetro un nmero entero, y escriba la tabla de multiplicar de ese nmero (por ejemplo, para el 3 deber llegar desde 3x0=0 hasta 3x10=30). */ #include <stdio.h> void escribirTablaMultiplicar (int numero) { int tabla; for (tabla=1; tabla<=10; tabla++) printf("%d x %d = %d\n", numero, tabla, numero * tabla); return; } int main()

{ int num, tabla; printf("Escriba un numero: "); scanf("%d", &num); escribirTablaMultiplicar(num);

return 0; } /* 7.6c_Crear una funcin esPrimo, que reciba un nmero y devuelva el valor 1 si es un nmero primo o 0 en caso contrario. */ #include <stdio.h> int esPrimo (int n) { int r, res; if(n != 1) { r=1; res=1; while (res != 0) { res = n % ++r; } if (n == r) return 1; else return 0; } else return 1; } int main() { int num; while (num){ printf("Escriba un numero: "); scanf("%d", &num); printf("%d ", esPrimo(num)); } return 0; } /*7.7e_Crear una funcin que reciba un nmero cualquiera y que devuelva como resultado la suma de sus dgitos. Por ejemplo, si el nmero fuera 123 la suma sera 6. */ #include <stdio.h> int sumaDeSusCifras (int numero) { int suma=0; if (numero < 10) return numero; else { while (numero >= 10) { suma += numero % 10; numero /= 10; } suma += numero; return suma; } } int main() { int num; printf("Escriba un numero entero positivo: \n"); scanf("%d", &num); printf("La suma de las cifras del numero %d es: %d", num, sumaDeSusCifras(num)); return 0; } /* 7.7f_Crear una funcin que reciba una letra y un nmero, y escriba un tringulo formado por esa letra, que tenga como anchura inicial la que se ha indicado. Por ejemplo, si la letra es * y la anchura es 4, debera escribir **** *** ** * */

#include <stdio.h> void dibujaTriangulo (char letra, int numero) { int i; while (numero > 0) { for (i=0; i<numero; i++) printf("%c", letra); printf("\n"); numero--; } return; } int main() { char letra; int numero; printf("Escriba una letra: "); scanf("%c", &letra); printf("Escriba un numero: "); scanf("%d", &numero); dibujaTriangulo(letra, numero); return 0; } /* 7.9.2a_Crear un programa que halle cualquier raz de un nmero. El usuario deber indicar el nmero (por ejemplo, 2) y el ndice de la raiz (por ejemplo, 3 para la raz cbica). Pista: hallar la raz cbica de 2 es lo mismo que elevar 2 a 1/3. */ #include <stdio.h> #include <math.h> float raizUniversal (int numero, float raiz); int main() { int radicando, indice;; printf("Escriba el numero al cual le quiere extraer raiz: "); scanf("%d", &radicando); printf("Escriba la raiz que quiere extraer: "); scanf("%d", &indice); printf("La raiz es: %f", raizUniversal(radicando, indice)); return 0; } float raizUniversal(int numero, float ind) { float raiz; raiz = pow(numero, 1/ind); return raiz; } /* 7.9.2b_Crear un programa que resuelva ecuaciones de segundo grado, del tipo ax2 + bx + c = 0 El usuario deber introducir los valores de a, b y c. Pista: la solucin se calcula con x = ? raz (b2 4ac) / 2a */ #include <stdio.h> #include <math.h> float ecuacion2oGrado1 (float, float, float); float ecuacion2oGrado2 (float, float, float); int main() { float a, b, c; do { printf("Escriba las constantes a, b y c\n"); scanf("%f %f %f", &a, &b, &c); } while (((a==0) || (b==0) || (c==0)) || (((b*b)-(4*a*c)) < 0)); printf("La raices son: %f %f", ecuacion2oGrado1(a, b, c), ecuacion2oGrado2(a, b, c));

return 0; } float ecuacion2oGrado1 (float a, float b, float c) { float x1;

x1 = (-b + pow(b*b-4*a*c, 0.5)) / (2*a); return x1; } float ecuacion2oGrado2 (float a, float b, float c) { float x2; x2 = (-b - pow(b*b-4*a*c, 0.5)) / (2*a); return x2; } En este tengo problema con algunas potencias de 5. /* 7.10a_Crear una funcin que calcule el valor de elevar un nmero entero a otro nmero entero (por ejemplo, 5 elevado a 3 = 53 = 5 5 5 = 125). Esta funcin se debe crear de forma recursiva. */ #include <stdio.h> #include <math.h> int exponenciacion (int numero, int numero); int main() { int base, exponente; while (exponente >= 0) { printf("Escriba el numero que quiere potenciar: "); scanf("%i", &base); printf("Escriba el numero al que lo quiere elevar: "); scanf("%i", &exponente); printf("La potencia es: %d\n\n", exponenciacion(base, exponente)); } return 0; } int exponenciacion (int a, int n) { if (n == 0) return 1; else return a * pow(a, n-1);

/* Porqu no funciona para muchas de las potencias de 5 como: 3, 4, 5, 7, 8, 9, 10, 13 ? */ } /* 7.10b_Como alternativa, crear una funcin que calcule el valor de elevar un nmero entero a otro nmero entero de forma NO recursiva (lo que llamaremos de forma iterativa), usando la orden for. */ #include <stdio.h> #include <math.h> int exponenciacion (int numero, int numero); int main() { int base, exponente; while (exponente >= 0) { printf("Escriba el numero que quiere potenciar: "); scanf("%d", &base); printf("Escriba el numero al que lo quiere elevar: "); scanf("%d", &exponente); printf("La potencia es: %d\n\n", exponenciacion(base, exponente)); } return 0; } int exponenciacion (int base, int expo) { int i, pot=1; for (i=0; i<expo; i++) pot *= base;

return pot;

/* 7.10c_Crear un programa que emplee recursividad para calcular un nmero de la serie Fibonacci (en la que los dos primeros elementos valen 1, y para los restantes, cada elemento es la suma de los dos anteriores). */

#include <stdio.h> #include <math.h> long serieFibonacci (int); int main() { int termino; while (termino >= 0) { printf("Escriba el termino de la serie que quiere encontrar: "); scanf("%d", &termino); printf("El termino buscado es: %d\n\n", serieFibonacci(termino)); } return 0; } long serieFibonacci (int n) { if ((n == 0) || (n == 1)) return n; else return serieFibonacci(n - 1) + serieFibonacci(n - 2); }

/* 7.10c_Crear un programa que emplee recursividad para calcular un nmero de la serie Fibonacci (en la que los dos primeros elementos valen 1, y para los restantes, cada elemento es la suma de los dos anteriores). */ #include <stdio.h> #include <math.h> long serieFibonacci (int); int main() { int termino; while (termino >= 0) { printf("Escriba el termino de la serie que quiere encontrar: "); scanf("%d", &termino); printf("El termino buscado es: %d\n\n", serieFibonacci(termino)); } return 0; } long serieFibonacci (int n) { if ((n == 0) || (n == 1)) return n; else return serieFibonacci(n - 1) + serieFibonacci(n - 2); }

/* 7.10e_Crear un programa que emplee recursividad para calcular el mayor de los elementos de un vector. */ #include <stdio.h> #define TAMANYO_VECTOR 100 int May(int vector[], int n); main() { int i; int Mayor, n=0; int vec[TAMANYO_VECTOR]; while (n < 1) { printf("Ingrese el numero de elementos: "); scanf("%d", &n); } for (i=0; i<n; i++) { printf("\tElemento[%d]: ", i); scanf("%d", &vec[i]);

} printf("\nMayor: %d\n", May(vec, n)); } int May(int vector[], int n) { int max, maxResto; if (n == 1) /* Caso base */ max = vector[0]; else { maxResto = May(vector+1, n-1); /* Maximo del resto del vector */ if (vector[0] > maxResto) max = vector[0]; else max = maxResto; } return(max); } /* 7.10g_Crear, tanto de forma recursiva como de forma iterativa, una funcin diga si una cadena de caracteres es simtrica (un palndromo). Por ejemplo, "DABALEARROZALAZORRAELABAD" es un palndromo. */ #include <stdio.h> void palindromo (char cadena[80]); int main() { char letras[80]; int a=1, i; while ( a ) { puts("Escriba una palabra o una frase"); scanf("%c", &letras); palindromo(letras); } return 0; } void palindromo (char cadena[80]) { int aux, flag=1, i, j; /* Primera lnea. */

for(i=0; (cadena[i]=getchar()) != '\n'; ++i) aux = i-1; j=aux; for(i=0; i<=aux/2; ++i) { if (cadena[i] != cadena[j]) { flag = 0; break; } --j; } if (flag == 1) printf(" ES un palindromo.\n\n"); else printf(" NO es un palindromo.\n\n"); return; } /* 7.10h_Crear un programa que encuentre el mximo comn divisor de dos nmeros usando el algoritmo de Euclides : Dados dos nmeros enteros positivos m y n, tal que m > n, para encontrar su mximo comn divisor, es decir, el mayor entero positivo que divide a ambos: - Dividir m por n para obtener el resto r (0 = r < n) ; - Si r = 0, el MCD es n.; - Si no, el mximo comn divisor es MCD(n,r). */ #include <stdio.h> #include <math.h> int MCD (int num1, int num2); int main() { int a, numero1, numero2; while( a ) {

printf("Escriba dos numeros enteros:\n"); scanf("%d %d", &numero1, &numero2); if ((numero1 == 0) || (numero2 == 0)) { printf("El cero no es factor de ningun numero.\n\n"); continue; } printf("MCD(%d , %d) = %d\n\n", numero1, numero2, MCD(numero1, numero2)); } return 0; } int MCD (int num1, int num2) { int c, D, d, r; if (num1 > num2) { D = num1; d = num2; } else { D = num2; d = num1; } c = D/d; r = D % d; while (r != 0) { D = d; d = r; c = D/d; r = D % d; } return d; } .....Saludos! V-.

Re: Varios ejercicios resueltos del Captulo 7: Introduccin a las Funciones.


23-Aug-2012 01:14 por Nacho Cabanes
Haces bien en no estancarte y avanzar. En general estn bien, pero en un primer vistazo, veo cosas simplificables, sobre todo en cuanto a variables locales no necesarias o a algn "return" sin valor como ltima orden de la funcin. (Al final recopilo los pocos problemas "serios"). Por ejemplo: int minus(int num1, int num2) { int min; min = num1 < num2? num1: num2; return min; } podra ser int minus(int num1, int num2) { return num1 < num2? num1: num2; } Y de igual modo: int signo (float num) { int sig; if (num > 0) sig = 1; if (num == 0) sig = 0; if (num < 0) sig = -1; return sig; } podra ser int signo (float num) { if (num > 0) return 1; if (num == 0)

return 0; return -1; } Mientras que void escribirTablaMultiplicar (int numero) { int tabla; for (tabla=1; tabla<=10; tabla++) printf("%d x %d = %d\n", numero, tabla, numero * tabla); return; } podra ser void escribirTablaMultiplicar (int numero) { int tabla; for (tabla=1; tabla<=10; tabla++) printf("%d x %d = %d\n", numero, tabla, numero * tabla); } Ahora, los problemas un poco ms "serios": - esPrimo es muy difcil de seguir. Se puede hacer de una forma mucho ms sencilla. - La potencia recursiva... no es recursiva! - El mayor elemento de un vector hace una cosa muy peligrosa: por qu aumentas en 1 un array? Puede tener efectos colaterales que me temo que no has previsto. Mejor, pasa como parmetro el mismo array sin modificar, pero indcale que empiece a analizar en la siguiente posicin. - Lo ideal sera que "palindromo" devolviera un valor, en vez de escribir algo en pantalla (reconozco que el enunciado no lo deja claro).

Re: Varios ejercicios resueltos del Captulo 7: Introduccin a las Funciones.


23-Aug-2012 21:09 por Pablo Rampa
Gracias por su pronta respuesta, estimado Nacho. Tendr que hacer las modificaciones sugeridas y sobretodo con el del palndromo que tengo que volver a codificarlo en la forma recursiva. Por ahora estoy enfocado en el 1er. ej. del captulo. No s cmo llevar el cursor al inicio de la pantalla. Pens en crear un archivo con 25 lneas. Abrirlo en modo r+ para poderlo leer y luego escribir las 25 lneas vacas, pero no s si me fall el "fseek(fichero, 0, SEEK_SET);" o que no se puede hacer de esa manera. Adems en archivos es que estoy varado. Sera ms facil con "gotoxy()" pero por no ser una funcin estandar de ANSI-C no me funciona en mi Dev-C++ 4.9.9.2. He visto que existen formas de emular a "conio.h", pero adems de que me parece muy artificial, la verdad no estara a mi alcance meterme en esos los. Agradecera mucho una idea para salir de este "in pase". Gracias nuevamente y saludos Estimado Nacho.

Re: Varios ejercicios resueltos del Captulo 7: Introduccin a las Funciones.


24-Aug-2012 17:39 por Nacho Cabanes
Respondido en el otro hilo. Aun as, ya sabes: el primer ejercicio (que ahora ser el sexto, y ya no estar duplicado), se hace de la forma ms simple y ms fea posible. clrscr y gotoxy, al ser especficos de una plataforma, y adems de una plataforma en desuso, se ven en el apartado 10.3. No pretendas a estas alturas que las cosas sean "bonitas en pantalla" ;-)

Participar
Si ya eres usuario del sistema, puedes...

Acceder para contestar desde tu cuenta y ganar prestigio

Si slo eres un visitante, puedes optar por...

Responder de forma annima

Web aprendeaprogramar
Bsqueda

o o o o

Novedades
11-Mar-2013 Rediseo del sitio

En los foros
08-05-2013 18:19 como programar en java desde mi tablet galaxy 2 07-05-2013 03:57programa de media 05-05-2013 23:33entender fragmento de codigo

APRENDEA PROGRA MAR.CO M - CO PYRIG HT ( C) 2006 - 2013

S-ar putea să vă placă și