Está en la página 1de 19

Universidad del Valle de

México
Dr. Sergio Sentecal Guerrero

Materia: Lógica y Programación Estructurada

Alumno:
✓ José Reyes Cortés Montelongo

Actividad 5

Ejercicios
31-julio -2022
Tetramestre mayo – ago 2022
ACTIVIDAD V:

PROPUESTA DE EJERCICIO CON FUNCIONES, ESTRUCTURAS Y ARREGLOS

Resuelve los ejercicios aplicando los conocimientos sobre:


➢ Lógica de programación
➢ Funciones
➢ Estructuras
➢ Arreglos
Para hacer el desarrollo de la actividad se puede utilizar cualquier editor de C o C++. Elige cualquiera
de las siguientes dos opciones:

a) Editor en línea (recomendado) https://www.onlinegdb.com/ aquí se trabajará con C++. Para


su habilitación desde internet, consulta el documento Guía_OnlineGDB.pdf que se
proporciona en los materiales de consulta de la unidad.
b) Una segunda opción es utilizar un entorno de desarrollo integrado (IDE), se recomienda
instalar y explorar Visual Studio disponible en
https://visualstudio.microsoft.com/es/downloads/ aquí podrás trabajar con C++

1. Revisa la Guía de uso de Online GDB, compilador y depurador en línea que se proporciona en
los materiales básicos para esta actividad, así como la serie de videotutoriales para comenzar a
programar en lenguaje C

Universidad del Valle de México (Productor). (2020). Programación en C [Archivo web].


Introducción
La programación requiere de diversas estructuras para manejar datos sin la necesidad de
respaldarse en el uso de una base de datos o algún filtro a la información; las funciones,
estructuras y arreglos permiten modelar la información de tal forma que se pueda organizar como
las bases de datos, archivos de texto o cualquier necesidad del usuario para cubrir cierta
necesidad.
Ejercicio 1. Procedimientos y funciones
A partir de los recursos revisados acerca de procedimientos y funciones, resuelve lo siguiente:

Realiza un programa que determine si un número es par o impar, se deben de


implementar las siguientes funciones:

a. La función que evalúa si un número es par o impar.


b. La función main que hace el uso correcto de la función definida anteriormente.

Ejemplo de entrada
Ingrese el número a evaluar 8
Ejemplo se salida
El número 8 es par

Enviar el código fuente (el que tiene extensión cpp) así como capturas de pantalla que muestren el
funcionamiento correcto del programa.
Nota. Para resolver este programa se sugiere haber revisado los siguientes videos de la serie de
videotutoriales:
- Video 22. Vectores
- Video 23. Primer vector
- Video 24. Fábrica de vectores
Código implementado:
#include<stdio.h>
void par_impar(int numero); //Definimos la funcion

//inicializa las funciones

void par_impar(int numero) {

int resultado;
resultado = numero % 2;
if (resultado == 0)
{
printf("El numero %d es par\n", numero);
}
else
{
printf("El numero %d es impar\n", numero);
}
printf("Hasta pronto\n\n");
}

int main() { // inicia la funcion principal


int num;
printf("Escribe un numero: \n\n");
scanf("%d", &num);
//llamamos a la funcion par_impar
par_impar(num);

return 0;

}
Ejercicio 2. Arreglos de una dimensión
A partir de los recursos revisados acerca arreglos de una dimensión y funciones, resuelve lo siguiente:
Realiza un programa que llene un arreglo unidimensional (vector) de tamaño n de
calificaciones y calcule el promedio, usar funciones.
Las funciones que debe de implementar son las siguientes:
a. Función para llenar el arreglo
b. Función para calcular el promedio
c. La función main, en donde se deben de llamar a las demás funciones de la forma
correcta.

Ejemplo de entrada
¿Cuantas calificaciones desea
ingresar? 7
Ingresa la calificación 1: 6
Ingresa la calificación 2: 3
Ingresa la calificación 3: 4
Ingresa la calificación 4: 7
Ingresa la calificación 5: 5
Ingresa la calificación 6: 4
Ingresa la calificación 7: 8

Ejemplo de salida
El promedio es: 5.28

Enviar el código fuente (el que tiene extensión cpp) así como capturas de pantalla que muestren el
funcionamiento correcto del programa.

Nota. Para resolver este programa se sugiere haber revisado los siguientes videos de la serie de
videotutoriales:
- Video 22. Vectores
- Video 23. Primer vector
Video 24. Fábrica de vectores
Código empleado:
#include<stdio.h>
void llenarVector(int tam, int vec[]);
void imprimirVector(int tam, int vec[]);
void promedio(int tam, int vec[]);
//Funciones
void llenarVector(int tam, int vec[]) {
int i;
for (i = 1; i <= tam; i++)
{
printf("Ingresa la calificacion No%d: (1-10)", i);
scanf("%d", &vec[i]);
}
}
void imprimirVector(int tam, int vec[]) {
int i;
printf("\nLa lista de calificaciones es la siguiente: \n");
for (i = 1; i <= tam; i++)
{
printf("Alumno No%d: %d \n", i, vec[i]);
}
}
void promedio(int tam, int vec[]) {
int i, suma = 0, promedio;
for (i = 1; i <= tam; i++)
{
suma = suma + vec[i];
}
promedio = suma / tam;
printf("El promedio es: %d\n", promedio);
}
//Funcion principal
int main() {
int tVector;
printf("Ingresa el numero de alumnos a promediar: ");
scanf("%d", &tVector);
int vector[tVector];
llenarVector(tVector, vector);
imprimirVector(tVector, vector);
promedio(tVector, vector);
return 0;
}
Ejercicio 3. Arreglos bidimensionales
A partir de los recursos revisados acerca arreglos bidimensionales y funciones, resuelve lo
siguiente:
Realiza un programa que calcule la suma de matrices (arreglos bidimensionales),
de dimensión mxn, use funciones.

Las funciones que debe de implementar son las siguientes:

a. Función para llenar las matrices a sumar


b. Función que calcule la suma de matrices
c. Función que muestre el resultado de la suma de matrices.
d. Función main que llama de la forma de la forma correcta a las demás
funciones.

Ejemplo de entrada:

Ingrese el número de filas: 3


Ingrese el número de columnas: 3

Matriz A
Ingrese el valor de a11: 1
Ingrese el valor de a12: 2
Ingrese el valor de a13: 2
Ingrese el valor de a21: 1
Ingrese el valor de a22: 2
Ingrese el valor de a23: 3
Ingrese el valor de a31: 2
Ingrese el valor de a32: 1
Ingrese el valor de a33: 2

Matriz B
Ingrese el valor de b11: 2
Ingrese el valor de b12: 2
Ingrese el valor de b13: 2
Ingrese el valor de b21: 1
Ingrese el valor de b22: 1
Ingrese el valor de b23: 1
Ingrese el valor de b31: 4
Ingrese el valor de b32: 4
Ingrese el valor de b33: 3

Ejemplo de salida

Matriz C = Matriz A+ Matriz B


C11 = 3
C12 = 4
C13 = 4
C21 = 2
C22 = 3
C23 = 4
C31 = 6
C32 = 5
C33 = 5

Enviar el código fuente (el que tiene extensión cpp) así como capturas de pantalla que muestren el
funcionamiento correcto del programa.
Nota. Para resolver este programa se sugiere haber revisado los siguientes videos de la serie de
videotutoriales:
- Video 28. Matrices
Código empleado:
#include<stdio.h>
void llenarArreglo(int f, int c, int vec[][100]);
void imprimirArreglo(int f, int c, int vec[][100]);
void sumarArreglos(int f, int c, int vec1[][100], int vec2[][100], int vec3[][100]);
//funciones
void llenarArreglo(int f, int c, int vec[][100]) {
int fila, columna;
for (fila = 0; fila < f; fila++)
{
for (columna = 0; columna < c; columna++)
{
printf("Ingresa el valor del arreglo en la posicion %d, %d\n", fila,
columna);
scanf("%d", &vec[fila][columna]);
}
}
}
void imprimirArreglo(int f, int c, int vec[][100]) {
int fila, columna;
for (fila = 0; fila < f; fila++)
{
for (columna = 0; columna < c; columna++)
{
printf("%d", vec[fila][columna]);
}
printf("\n");
}
}
void sumarArreglos(int f, int c, int vec1[][100], int vec2[][100], int vec3[][100]) {
printf("Iniciando la suma de arreglo1 + arreglo2 = arreglo3\n");
int fila, columna;
for (fila = 0; fila < f; fila++)
{
for (columna = 0; columna < c; columna++)
{
vec3[fila][columna] = vec1[fila][columna] + vec2[fila][columna];
printf("%d", vec3[fila][columna]);
}
printf("\n");
}
}
//funcion principal
int main() {
int nfilas, ncolumnas;
printf("Ingresa el numero de filas\n");
scanf("%d", &nfilas);
printf("Ingresa el numero de columnas\n");
scanf("%d", &ncolumnas);
int arreglo1[nfilas][100];
int arreglo2[nfilas][100];
int arreglo3[nfilas][100];
llenarArreglo(nfilas, ncolumnas, arreglo1);
imprimirArreglo(nfilas, ncolumnas, arreglo1);
llenarArreglo(nfilas, ncolumnas, arreglo2);
imprimirArreglo(nfilas, ncolumnas, arreglo2);
sumarArreglos(nfilas, ncolumnas, arreglo1, arreglo2, arreglo3);
return 0;
}
Ejercicio 4. Estructuras
A partir de los recursos revisados acerca de los tipos de datos struct, resuelve lo siguiente:
Realizar un programa que permita guardar en un tipo struct los datos concernientes a un
estudiante, los datos de interés son:

• Matricula
• Nombre
• Carrera
• Promedio
• Dirección

Se debe de realizar las siguientes funciones:


a. Captura de los datos
b. Mostrar los datos
c. La función main que llame de la forma correcta a las funciones captura y mostrar.

Ejemplo de entrada
Ingrese la matrícula del estudiante: 12345
Ingrese el nombre del estudiante: Juan Pérez
Ingrese la carrera del estudiante: Ingeniería en Sistemas
Ingrese el promedio del estudiante: 9.5
Ingrese la dirección del estudiante: Calle Juárez #16, Colonia Centro, Macuspana Tabasco
Ejemplo de salida
La matrícula del estudiante es: 12345
El nombre del estudiante es: Juan Pérez
La carrera del estudiante es: Ingeniería en Sistemas
El promedio del estudiante es: 9.5
La dirección del estudiante es: Calle Juárez #16, Colonia Centro, Macuspana Tabasco
Código implementado:
#include<stdio.h>
//estructura del estudiante
typedef struct estudiante
{
int matricula;
char nombre[40];
char carrera[40];
float promedio;
char direccion[40];
}estudiante_t;
estudiante_t crear_ne() {
estudiante_t new_e;
printf("Ingrese Matricula del estudiante: ");
scanf("%d", &new_e.matricula);
printf("Ingrese Nombre del estudiante: ");
scanf("%s", &new_e.nombre);
printf("Ingrese Carrera del estudiante: ");
scanf("%s", &new_e.carrera);
printf("Ingrese Promedio del estudiante: ");
scanf("%f", &new_e.promedio);
printf("Ingrese Direccion del estudiante: ");
scanf("%s", &new_e.direccion);
return new_e;
}
//funcion
void imprimir_estudiante(estudiante_t estudiante) {
printf("\n\n Los datos del estudiante son: \n");
printf("Matricula %d \n", estudiante.matricula);
printf("Nombre %s \n", estudiante.nombre);
printf("Carrera %s \n", estudiante.carrera);
printf("Promedio %f \n", estudiante.promedio);
printf("Direccion %s \n", estudiante.direccion);
}
int main() {
estudiante_t e1 = crear_ne();
imprimir_estudiante(e1);
return 0;
}
Ejercicio 5. Cuestionario
Revisa nuevamente el documento “Funciones en C” disponible también en los materiales básicos
de la unidad y resuelve el cuestionario de evaluación que aparece en la página 98.
1. ¿Qué es una función?

Las funciones nos permiten dividir grandes programas en pequeñas partes con tareas específicas,
permitiéndonos tratar el código de una manera óptima y muy realista.

La estructura general de una función en C es la siguiente:

tipo_de_retorno nombre_de_la_función (lista_de_parámetros)

{ cuerpo_de_la_función return expresión }

2. ¿Qué es la llamada a una función?


Cuando queremos acceder a una función, debemos hacerlo dando su nombre, seguido de una lista de
parámetros utilizados por la función entre paréntesis. Si la función a la que desea acceder no tiene
parámetros, debe encerrar paréntesis vacíos.
3. ¿Cuál es la diferencia entre argumentos formales y argumentos reales?
Los parámetros que usamos en las llamadas a funciones se denominan parámetros reales. El número y tipo
de estos parámetros debe coincidir con los parámetros formales o de función. No olvide que los parámetros
formales son parámetros utilizados en la definición y/o declaración de una función. Los parámetros reales
pueden ser variables, constantes o incluso expresiones más complejas. El valor de cada parámetro real en
una llamada de función se pasa a la función y se asigna al parámetro formal correspondiente.
4. ¿La instrucción return sólo puede aparecer una vez dentro de una función? Justifica brevemente

Si, Porque cuando aparece la palabra, la función deja de funcionar. Puede existir más de un return si
el código se ramifica, ya que el programa devuelve el control a la sentencia que llamó a la función en
cuanto encuentra el return.
5. ¿Podemos llamar a una función más de una vez desde distintas partes de un programa?
Justifica brevemente

Si, Siempre que se requiera ejecución de código. Hay que recordad que las funciones son bloques
de código independientes que pueden reutilizarse desde varias partes del código.
6. ¿Qué diferencia existe entre el paso de argumentos por valor y el paso de argumentos por
referencia?

El parámetro se asigna directamente y el valor de referencia se obtiene de otra variable o programa.


7. ¿De qué se vale C para implementar el paso de argumentos por referencia?
Uso de la dirección de memoria de parámetros o del valor del argumento.
8. ¿Cuándo es recursiva una función?

Cuando es capaz de llamarse a sí misma


9. ¿Qué son las funciones de biblioteca?

Es un conjunto de funciones estándar que soportan las operaciones más comunes. Estas funciones
se agrupan en bibliotecas.
10. ¿Cómo se pasan los argumentos a la función scanf?

Scanf es una función de entrada para obtener cualquier cosa desde el teclado. Estas se ejecutand
e la siguiente manera: Scanf (“cadena de control”, lista de argumentos);

Conclusiones
El manejo de las estructuras de datos permite desarrollar códigos que den soluciones aplicadas a
procesos que logren generar valores agregados a la información que se maneja; ya sea al manipular
datos para generar más información o que los datos tengan un formato adecuado que puedan ser
utilices para un usuario o un cliente.

Referencias
1. García-Bermejo Giner, José R. (2008). Programación estructurada en C [Versión
electrónica].Recuperado de https://elibro.net/es/ereader/uvm/53853

2. S.A. (s.f.). Funciones en C Haga clic para ver más opciones [Archivo PDF]. Recuperado de
https://www.mheducation.es/bcv/guide/capitulo/8448148681.pdf

3. Mancilla, A., Gómez, R. y Portilla, J. (2014). Diseño y construcción de algoritmos [Versión


electrónica].Recuperado de https://elibro.net/es/ereader/uvm/69931

También podría gustarte