Autor Tema: C Paso de parámetros arrays ¿por valor, o referencia? (LenguajeC) CU00550F  (Leído 2963 veces)

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Buenas, dejo una posible solución a este ejercicio (CU00550F del curso para aprender a programar en lenguaje C).

Citar
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.

Código: [Seleccionar]
#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;
}

Citar
EJERCICIO Nº 2
Estudia el siguiente código y responde a las preguntas:
Código: [Seleccionar]
#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();
}

Citar
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.

Citar
) Si el programa no te funciona, reescríbelo para que funcione.

Código: [Seleccionar]
#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]);
}

Citar
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

Citar
d) ¿Es válido un bucle for sin llaves delimitadoras { … } de las instrucciones a ejecutar?

Si.

Saludos. ;D
« Última modificación: 08 de Julio 2016, 19:20 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
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

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Gracias otra vez.

Saludos.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".