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: Pandemia en 24 de Julio 2016, 15:23
-
Buenas amigos, Aquí les dejo una posible solución al ejercicio CU00550F del curso de programación aprenda C como si estuviera en primero.
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 dato = 0;
double raiz01, raiz02;
double suce = 0.0;
int entraDato();
void calcularRaiz(int num);
void calcularSumatorio(int num);
int main()
{
int opcionUsuario=1;
while(opcionUsuario != 2)
{
printf("\n1: Calculo\n2: Salir\n\nElija opcion: ");
scanf("%d", &opcionUsuario);
if(opcionUsuario == 1)
{
entraDato();
calcularRaiz(dato);
calcularSumatorio(dato);
printf("\nDato base: %d",dato);
printf("\nRa%cz01=%lf Ra%cz02=%lf", 161,161,raiz01,raiz02);
printf("\nValor sucesi%cn: %lf", 162,suce);
}
}
return 0;
}
int entraDato()
{
do
{
printf("\nPor favor, introduzca n%cmero entero entre 0 y 100: ", 163);
scanf("%d",&dato);
}
while(dato<0 || dato>100);
return dato;
}
void calcularRaiz(int num)
{
suce=0.0; //Borrado dato valor suce
raiz01=sqrt(num);
raiz02=-raiz01;
}
void calcularSumatorio(int num)
{
suce=0.0;
while(num>=0)
{
suce=suce+sqrt(num);
num=num-1;
}
}
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 pertenece a borland por lo que no es estándar y no la encontraremos - o no al menos totalmente en otros muchos compiladores y mas importante en otros sistemas lo que reduce la portabilidad de tu código. Es una biblioteca de entrada salida de datos en la consola del sistema dos que se la considera obsoleta y es posible que alguna de las funciones que incluye no funcionen, o lo hagan incorrectamente. No es estrictamente necesaria para programar.
clrscr(): Se borran todos los datos de la pantalla de forma automática.
getch(): El programa se cierra hasta que no se pulse una tecla.
b) 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. Aunque no es aconsejable para unos buenos hábitos de programación.
-
Hola!
EJERCICIO 1
He intentado ejecutar con el mismo dato que viene en la entrega pero no me muestra resultados correctos.
Me sale esto:
1: Calculo
2: Salir
Elija opcion: 1
Por favor, introduzca número entero entre 0 y 100: 85
Dato base: 85
Raíz01=0.000000 Rahz02=-9.219544
Valor sucesión: 526.847258
1: Calculo
2: Salir
Elija opcion: 2
Ahí Raíz01 y Raíz02 no están apareciendo correctamente (la sucesión si es correcta)
Tienes que revisar eso
EJERCICIO 2
Has respondido getch(): El programa se cierra hasta que no se pulse una tecla.
Esto tienes que revisarlo, la función getch no cierra el programa.
Todo lo demás bien!
Saludos!