0% encontró este documento útil (0 votos)
25 vistas17 páginas

A6 - Ejercicios Programacion

El documento presenta una serie de ejercicios de programación en C++ para practicar conceptos como funciones, arreglos unidimensionales y bidimensionales, y estructuras. Se pide desarrollar programas para resolver cada ejercicio siguiendo las instrucciones provistas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
25 vistas17 páginas

A6 - Ejercicios Programacion

El documento presenta una serie de ejercicios de programación en C++ para practicar conceptos como funciones, arreglos unidimensionales y bidimensionales, y estructuras. Se pide desarrollar programas para resolver cada ejercicio siguiendo las instrucciones provistas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 17

EJERCICIOS

Fecha:12/05/2024
Nombre del estudiante: yael Daniel Jiménez Domínguez
Nombre del docente: Sharon

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

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
#include <iostream>
// Función que evalúa si un número es par o impar
bool esPar(int numero) {
return numero % 2 == 0;
}
int main() {
int numero;
std::cout << "Ingrese el número a evaluar: ";
std::cin >> numero;

if (esPar(numero)) {
std::cout << "El número " << numero << " es par." << std::endl;
} else {
std::cout << "El número " << numero << " es impar." << std::endl;
}

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
#include <iostream>
#include <vector>

// Función para llenar el arreglo de calificaciones


void llenarArreglo(std::vector<double>& calificaciones) {
int n;
std::cout << "¿Cuántas calificaciones desea ingresar? ";
std::cin >> n;

calificaciones.resize(n);
for (int i = 0; i < n; ++i) {
std::cout << "Ingresa la calificación " << i + 1 << ": ";
std::cin >> calificaciones[i];
}
}

// Función para calcular el promedio


double calcularPromedio(const std::vector<double>& calificaciones) {
double suma = 0.0;
for (double calificacion : calificaciones) {
suma += calificacion;
}
return suma / calificaciones.size();
}

int main() {
std::vector<double> calificaciones;
llenarArreglo(calificaciones);

double promedio = calcularPromedio(calificaciones);


std::cout << "El promedio es: " << promedio << std::endl;

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
#include <iostream>
#include <vector>

// Función para llenar una matriz


void llenarMatriz(std::vector<std::vector<int>>& matriz, int filas, int columnas) {
for (int i = 0; i < filas; ++i) {
for (int j = 0; j < columnas; ++j) {
std::cout << "Ingrese el valor de a" << i + 1 << j + 1 << ": ";
std::cin >> matriz[i][j];
}
}
}

// Función para sumar dos matrices


std::vector<std::vector<int>> sumaMatrices(const std::vector<std::vector<int>>&
matrizA,
const std::vector<std::vector<int>>& matrizB) {
int filas = matrizA.size();
int columnas = matrizA[0].size();
std::vector<std::vector<int>> resultado(filas, std::vector<int>(columnas, 0));

for (int i = 0; i < filas; ++i) {


for (int j = 0; j < columnas; ++j) {
resultado[i][j] = matrizA[i][j] + matrizB[i][j];
}
}

return resultado;
}

// Función para mostrar una matriz


void mostrarMatriz(const std::vector<std::vector<int>>& matriz) {
int filas = matriz.size();
int columnas = matriz[0].size();
for (int i = 0; i < filas; ++i) {
for (int j = 0; j < columnas; ++j) {
std::cout << "C" << i + 1 << j + 1 << " = " << matriz[i][j] << std::endl;
}
}
}

int main() {
int filas, columnas;
std::cout << "Ingrese el número de filas: ";
std::cin >> filas;
std::cout << "Ingrese el número de columnas: ";
std::cin >> columnas;

std::vector<std::vector<int>> matrizA(filas, std::vector<int>(columnas));


std::vector<std::vector<int>> matrizB(filas, std::vector<int>(columnas));

std::cout << "Matriz A" << std::endl;


llenarMatriz(matrizA, filas, columnas);

std::cout << "Matriz B" << std::endl;


llenarMatriz(matrizB, filas, columnas);

std::vector<std::vector<int>> matrizC = sumaMatrices(matrizA, matrizB);

std::cout << "Matriz C = Matriz A + Matriz B" << std::endl;


mostrarMatriz(matrizC);
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

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 29. Struc (estructuras)
- Video 30. Struc, Typedef y entrada de usuario
- Video 31. Estructuras y funciones
- Video 32. Estructuras dentro de estructuras
Código
#include <iostream>
#include <string>

// Definición del struct para almacenar los datos del estudiante


struct Estudiante {
int matricula;
std::string nombre;
std::string carrera;
double promedio;
std::string direccion;
};

// Función para capturar los datos del estudiante


void capturarDatos(Estudiante& estudiante) {
std::cout << "Ingrese la matrícula del estudiante: ";
std::cin >> estudiante.matricula;

std::cout << "Ingrese el nombre del estudiante: ";


std::cin.ignore(); // Limpiar el buffer
std::getline(std::cin, estudiante.nombre);

std::cout << "Ingrese la carrera del estudiante: ";


std::getline(std::cin, estudiante.carrera);

std::cout << "Ingrese el promedio del estudiante: ";


std::cin >> estudiante.promedio;

std::cout << "Ingrese la dirección del estudiante: ";


std::cin.ignore(); // Limpiar el buffer
std::getline(std::cin, estudiante.direccion);
}

// Función para mostrar los datos del estudiante


void mostrarDatos(const Estudiante& estudiante) {
std::cout << "La matrícula del estudiante es: " << estudiante.matricula <<
std::endl;
std::cout << "El nombre del estudiante es: " << estudiante.nombre << std::endl;
std::cout << "La carrera del estudiante es: " << estudiante.carrera << std::endl;
std::cout << "El promedio del estudiante es: " << estudiante.promedio <<
std::endl;
std::cout << "La dirección del estudiante es: " << estudiante.direccion <<
std::endl;
}

int main() {
Estudiante miEstudiante; // Crear una instancia del struct
// Capturar los datos del estudiante
capturarDatos(miEstudiante);

// Mostrar los datos del estudiante


mostrarDatos(miEstudiante);

return 0;
}
Ejercicio 5. Cuestionario
2. 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?


2. ¿Qué es la llamada a una función?
3. ¿Cuál es la diferencia entre argumentos formales y argumentos reales?
4. ¿La instrucción return sólo puede aparecer una vez dentro de una función?
Justifica brevemente
5. ¿Podemos llamar a una función más de una vez desde distintas partes de
un programa? Justifica brevemente
6. ¿Qué diferencia existe entre el paso de argumentos por valor y el paso de
argumentos por referencia?
7. ¿De qué se vale C para implementar el paso de argumentos por referencia?
8. ¿Cuándo es recursiva una función?
9. ¿Qué son las funciones de biblioteca?
10. ¿Cómo se pasan los argumentos a la función scanf?

1. Una función es un bloque de código que realiza una tarea específica y puede ser
reutilizado en diferentes partes de un programa.
2. La llamada a una función es cuando se invoca o se ejecuta el código de una
función desde otra parte del programa.
3. Los argumentos formales son los parámetros declarados en la definición de una
función, mientras que los argumentos reales son los valores pasados a esos
parámetros cuando se llama a la función.
4. No, la instrucción `return` puede aparecer varias veces en una función, pero
cuando se ejecuta, la primera aparición de `return` que se encuentra termina la
ejecución de la función y devuelve el valor especificado.
5. Sí, una función puede ser llamada múltiples veces desde distintas partes de un
programa, lo que permite reutilizar su código para realizar la misma tarea en
diferentes contextos.
6. El paso de argumentos por valor implica que se pasa una copia del valor de la
variable a la función, mientras que el paso de argumentos por referencia implica
pasar la dirección de memoria de la variable, lo que permite que la función
modifique el valor original de la variable.
7. En C, el paso de argumentos por referencia se implementa utilizando punteros.
Al pasar un puntero a una función, la función puede acceder y modificar el valor
apuntado por ese puntero, lo que efectivamente permite el paso por referencia.
8. Una función es recursiva cuando se llama a sí misma directa o indirectamente
en su definición.
9. Las funciones de biblioteca son funciones predefinidas proporcionadas por el
lenguaje de programación o por bibliotecas adicionales, que realizan tareas
comunes y están disponibles para ser utilizadas en programas sin necesidad de
reescribir su código.
10. Los argumentos se pasan a la función `scanf` mediante su dirección de
memoria, utilizando el operador `&` para obtener la dirección de la variable que se
quiere leer. Por ejemplo, `scanf("%d", &numero)` se utiliza para leer un entero y
almacenarlo en la variable `numero`.

Conclusión

La programación en C++ implica comprender conceptos fundamentales como funciones,


argumentos, paso de parámetros, y el uso de bibliotecas estándar. Las funciones son
bloques de código que realizan tareas específicas y pueden ser llamadas desde otras partes
del programa. La llamada a una función implica pasar argumentos, que pueden ser
formales (definidos en la función) o reales (valores pasados a la función). El uso de return
en una función permite devolver un valor y terminar su ejecución. Además, en C++, se
puede implementar el paso de argumentos por valor o por referencia, este último
utilizando punteros. Las funciones de biblioteca son herramientas predefinidas que
simplifican tareas comunes. En el caso específico de C++, se hace uso extensivo de su rica
biblioteca estándar, lo que facilita el desarrollo de aplicaciones complejas. En conjunto,
estos conceptos son fundamentales para entender y desarrollar aplicaciones en el lenguaje
de programación C++.

También podría gustarte