Foros aprenderaprogramar.com
		Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: pedro,, en 07 de Julio 2016, 01:29
		
			
			- 
				Buenas, dejo una posible solución a este ejercicio (CU00550F del curso para aprender a programar en lenguaje C).
 
 EJERCICIO Nº1
 Refactoriza el código que hemos visto como ejercicio resuelto para que cumpla con estos requisitos:
 a) La función entraDatos deberá tener como tipo de retorno int en lugar de void, de modo que devolverá el valor introducido por el usuario.
 b) La función proceso ya no existirá y en su lugar tendremos dos funciones: calcularRaiz(int num) y calcularSumatorio (int num)
 c) La función resultados ya no existirá y su cometido será realizado dentro del main.
 
 #include <stdio.h>
 #include <stdlib.h>
 #include <math.h>
 int entraDatos(); double calculaRaiz(int num); int calcularSumatorio(int num);
 int main() {
 int num = entraDatos();
 printf("La ra\xA1z cuadradada de %d es: %lf\n", num, calculaRaiz(num));
 printf("El sumatorio de %d es: %d", num, calcularSumatorio(num));
 return 0;
 }
 
 int entraDatos() {
 int dato = 0;
 do {
 printf("\nPor favor introduzca numero entero entre 0 y 100: ");
 scanf("%d", &dato);
 } while (dato<0 || dato>100);
 return dato;
 }
 
 double calculaRaiz(int num){
 double resultado;
 resultado = sqrt(num);
 return resultado;
 }
 
 int calcularSumatorio(int num) {
 int resultado = num;
 int i = num -1;
 for (i; i>0; i--) {
 resultado = resultado + i;
 }
 return resultado;
 }
 EJERCICIO Nº 2
 Estudia el siguiente código y responde a las preguntas:
 #include <stdio.h>
 #include <stdlib.h>
 #include<conio.h>
 // Ejercicios curso C aprenderaprogramar.com
 
 //---------------------------------
 void fun(int arr[]) {
 int i;
 for(i=0;i< 5;i++)
 arr[i] = arr[i] + 10;
 }
 //--------------------------------
 void main() {
 int arr[5],i;
 clrscr();
 printf("\nEnter the array elements : ");
 for(i=0;i< 5;i++)
 scanf("%d",&arr[i]);
 
 printf("\nPassing entire array .....");
 fun(arr);  // Pass only name of array
 
 for(i=0;i< 5;i++)
 printf("\nAfter Function call a[%d] : %d",i,arr[i]);
 
 getch();
 }
 a) Busca información sobre conio.h, clrscr() y getch() ¿Forman parte del estándar de C? 
 No,La librería conio.h no se considera parte de la biblioteca estándar de C.
 
 ) Si el programa no te funciona, reescríbelo para que funcione. 
 #include <stdio.h>
 #include <stdlib.h>
 
 void fun(int arr[])
 {
 int i;
 for(i=0; i< 5; i++)
 arr[i] = arr[i] + 10;
 }
 void main()
 {
 int arr[5],i;
 printf("\nEnter the array elements : ");
 for(i=0; i< 5; i++)
 scanf("%d",&arr[i]);
 
 printf("\nPassing entire array .....");
 fun(arr);  // Pass only name of array
 
 for(i=0; i< 5; i++)
 printf("\nAfter Function call a[%d] : %d",i,arr[i]);
 }
 c) ¿Qué objetivo tiene este programa? ¿Qué resultado debe devolver si se introducen los números 1, 2, 3, 4, 5? 
 Introducimos valores en un array de enteros de 5 elementos, luego cambiamos los valores de cada elemntos sumandole 10 a cada uno y luego lo mostramos por pantalla.
 Passing entire array .....
 After Function call a[0] : 11
 After Function call a[1] : 12
 After Function call a[2] : 13
 After Function call a[3] : 14
 After Function call a[4] : 15
 
 d) ¿Es válido un bucle for sin llaves delimitadoras { … } de las instrucciones a ejecutar? 
 Si.
 
 Saludos. ;D
- 
				Buenas igual bien otra vez Creo que el segundo ejercicio lo que pretende es demostrar cómo en C el paso de arrays a funciones permite la manipulación del contenido del array dentro de la función.
 
 Salu2
- 
				Gracias otra vez.
 
 Saludos.