Este documento presenta 4 programas en C++ que utilizan arreglos y estructuras de datos. El primer programa muestra los elementos de la diagonal principal y diagonal invertida de una matriz. El segundo programa lee las calificaciones de 5 alumnos en 3 asignaturas y calcula el promedio general, por asignatura y los mejores y peores alumnos. El tercer programa almacena los nombres y edades de 3 alumnos usando una estructura y calcula el promedio de edades. El cuarto programa define funciones para realizar operaciones matemáticas basicas.
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Informe estructura de datos Unidad 1
1. 1
INSTITUTO TECNOLOGICO SUPERIOR DE FELIPE CARRILLO PUERTO
MATERIA:
ESTRUCTURA DE DATOS
DOCENTE:
MIL.NIELS HENRYK ARANA CUEVAS
UNIDAD 1:
INTRODUCCION A LAS ESTRUCTURAS DE DATOS
FECHA DE ENTREGA:
30 DE SEPTIEMBRE DEL 2014
ALUMNO:
ELIEZER BALAM SANTOS
SEMESTRE:
TERCER SEMESTRE
GRUPO:
“B”
2. 2
INDICE:
Programa arreglo 1: Matriz escalonada………………………………………………….3-5
Programa 2 arreglo 2: Calificaciones de alumnos……………………………………….6-9
Función struct nombre de alumnos…………………………………………...………..10-13
Funciones estructura de datos operaciones……..……………………………………14-17
Conclusión general…………………………………………………………………………18
3. 3
ARREGLO 1: DIAGONAL PRINCIPAL
int main(int argc, char** argv) {
int a[3][3],dip,dinv,liu;
for(int i=0;i<=2;i++){
for(int j=0;j<=2;j++){
cout<<"ingrese elementos: ";
cin>>a[i][j];
}
}
cout<<"La Matriz es:n";
// Imprimiendo el arreglo en formato matricial
for(int i=0;i<3;i++){
for(int j=0; j<=2;j++){
cout<<a[i][j];
}
}
cout<<"n";
cout<<"La diagonal principal es: n ";
for(int i=0;i<=2;i++){
for(int j=0;j<=2;j++){
if(i==j){
dip=a[i][j];
cout<<dip;
}
}
}
cout<<"n";
cout<<"La diagonal invertida es: n ";
for(int i=0;i<=2;i++){
for(int j=0;j<=2;j++){
if((i+j)==2){
dinv=a[i][j];
cout<<dinv;
4. 4
}
}
}
cout<<"n";
cout<<"La linea 1 es: n ";
for(int i=0;i<=2;i++){
liu=a[1][i];
cout<<liu;
}
return 0;
}
Descripción:
En este primer programa realizado de arreglo lo que representa el código en la parte principal al comienzo, son el llamado de las librerías a utilizar por ejemplo #include<iostrean> y las librerías para poder imprimir en consola, después con el método void main creamos el método principal o el cuerpo de nuestra página después declaramos nuestro arreglo bidimensional de tipo entero y el tamaño del arreglo en este caso de 3 por 3 por lo que nos genera una matriz de 9 elementos, y al mismo tiempo declaramos las variables donde se guardaran los datos de la diagonal principal (dp) la diagonal invertida (di) y por ultimo (lu) para poder mostrar la matriz, una vez concluida esta parte pasamos a los ciclos (for) para poder realizar el llenado de los 9 lugares que se apartaron para guardar los datos el primer ciclo con for la usamos para definir la coordenada x y el segundo for con j para la coordenada y, permitiendo ingresar los valores en cada una de los lugares que se apartaron. En la segunda parte donde tenemos el mensaje de impresión de matriz son otros dos for donde le damos la condición de que mientras las variables i y j < 3 cada una de ellas van a ir aumentando de uno en uno por lo tanto la condición establece que se va imprimir con cout. Después calculamos la matriz inversa por medio de otros ciclos for donde establecemos los valores que se van a imprimir donde las variables i y j deben tener el mismo valor para
5. 5
mostrar la diagonal principal, para imprimir la diagonal invertida es lo mismo que el anterior solo que i y j tienen que sumar dos para imprimir valor de derecha a izquierda es decir de arriba a izquierda y por último se imprime la diagonal lineal 1.
CONCLUSIÓN:
En este programa realizado pudimos conocer otros usos que le podemos dar a los arreglos que declaramos en cada uno de nuestros programas para realizar una función en este caso aprendimos a manipular el contenido de nuestro arreglo bidimensional para mostrar en la consola los datos que nosotros requerimos por ejemplo en esta aplicación imprimimos la las diagonales de la matriz que se forma como también las líneas verticales y horizontales, esto prácticamente nos da una idea de cómo emplear el uso de los arreglos para guardar valores necesarios y procesarlos.
6. 6
PROGRAMA 2 ARREGLO 2: CALIFICACIONES ALUMNOS:
#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main() {
float alu[5][3], cal, prom[5], pu[3], su;
int i, j;
int mayu=0;
int maypro = 0;
int menpro = 0;
for (i=0; i<5; i++){
for (j=0; j<3; j++){
cout << "Introduce la calificacion del alumno"<<endl;
cin >> alu[i][j];
}
}
for (i=0; i<5; i++){
7. 7
for (j=0; j<3; j++){
su = su + alu[i][j];
}
prom[i] = su/3;
su = 0;
}
for (j=0; j<3; j++){
for (i=0; i<5; i++){
su = su + alu[i][j];
}
pu[j] = su/5;
su = 0;
}
for (i=0; i<3; i++){
if(pu[mayu] < pu[i]){
mayu = i;
}
}
cout << "El mejor aprovechamiento es en la unidad: " << mayu << endl;
for (i=0; i<5; i++){
8. 8
if(prom[maypro] < prom[i]){
maypro = i;
}
}
for (i=0; i < 3; i++){
cout << "Calificaciones del mejor alumno son: " << alu[maypro][i] << endl;
}
for (i=0; i<5; i++){
if(prom[menpro] > prom[i]){
menpro = i;
}
}
for (i=0; i < 3; i++){
cout << "Calificaciones del peor alumno es: " << alu[menpro][i] << endl;
}
return 0;
}
9. 9
DESCRIPCION:
En este siguiente programa realizamos la lectura de las calificaciones de 25 alumnos en ello calculamos el alumno con mayor promedio el de menor promedio. Comenzamos con el llamado de la librería iostream y para realizar la impresión en pantalla con namespace std, declaramos un arreglo bidimensional para los alumnos donde guardamos las calificaciones y otros dos arreglos uno que controla el promedio de los alumnos y otro que es promedio de unidad y las variables que vamos a usar como los contadores i, j y donde vamos a guardar los promedios de los alumnos. En el primer ciclo for realizamos el ingreso de las calificaciones de los alumnos estableciendo los contadores de i menor a los valores de la matriz inicial y j menor a 3, después el otro ciclo for que usamos prácticamente lo que realiza es la suma de los valores de las coordenadas de la matriz para que se pueda obtener el promedio y calcular el mayor y el menor, después tenemos el otro for que lo que hace es calcular el promedio de las unidades que se tienen, el tercer for que nosotros tenemos es para realizar la comprobación de cuál de los promedios es el mayor utilizando los contadores i, j y los promedios que se obtuvieron anteriormente, por último se realiza las impresiones de los datos ya encontrados con el cout el del alumno con mayor calificación y el alumno con la peor calificación.
CONCLUSION:
En conclusión tenemos que la realización de esta aplicación de consola realiza correctamente el procedimiento requerido y también como conocimiento extra aprendimos a manipular los datos de arreglos unidimensionales y de arreglos bidimensionales a la vez para poder obtener los datos necesarios y poder imprimir el alumno con el promedio más alto y el del menor promedio, algo que se me dificulto son la compresión de algunas de las funciones para calcular los datos ya que si no prestamos mucha atención no vamos a poder visualizar y comprender correctamente como funciona cada parte del programa y como está relacionado entre ellos.
10. 10
FUNCION STRUCT NOMBRES DE ALUMNOS:
#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
struct alumno{
string nombre;
int edad;
};
int main(int argc, char** argv) {
alumno alu[3];
int se=0, f, mayed=0, mened=0;
float promed;
cout<<"ingresa el nombre del primer alumno:";
cin>>alu[0].nombre;
11. 11
cout<<"ingresa el nombre del segundo alumno: ";
cin>>alu[1].nombre;
cout<<"ingresa el nombre del tercer alumno: ";
cin>>alu[2].nombre;
cout<<"ingresa la edad del primer alumno: ";
cin>>alu[0].edad;
cout<<"ingresa la edad del segundo alumno: ";
cin>>alu[1].edad;
cout<<"ingresa la edad del tercer alumno: ";
cin>>alu[2].edad;
for(f=0;f<3;f++){
se= se+ alu[f].edad;
}
promed= se/3;
cout<<"n El promedio de las edades es:"<<promed<<endl;
12. 12
for(f=0;f<3;f++){
if(alu[mayed].edad< alu[f].edad)
mayed = f;
}
cout<<"n El alumno con mayor edad es: "<<alu[mayed].nombre<<endl;
for(f=0;f<3;f++){
if(alu[mened].edad> alu[f].edad)
mened = f;
}
cout<<"n El alumno con menor edad es: "<<alu[mened].nombre<<endl;
return 0;
}
13. 13
DESCRIPCION:
Comenzamos definiendo los datos y llamando a las librerías como todas las aplicaciones de consolas anteriores, una cosa importante al trabajar con este método es ver cómo definir las variables reduciendo el número de ellos, para comenzar la estructura primero comenzamos con la palabra reserva struct para agregar el nombre de la variable que queremos y los atributos, una vez realizado comenzamos a ingresar los valores por medio de arreglos con las cuales leemos los nombres y después imprimimos los valores por medio de las funciones que nosotros definimos aplicando la modularidad.
CONCLUSION:
En conclusión aprendimos a aplicar la modularidad en nuestras aplicaciones y la forma de que se vea más entendible con el manejo de cada una de las funciones. Prácticamente esta parte es muy fácil ya que se domina lo que son arreglos que son la base importante de c++.
14. 14
FUNCIONES DE OPERACIONES ESTRUCTURAS:
#include <iostream>
#include <conio.h>
using std::cout;
using std::cin;
using std::endl;
void Sumar();
void Restar();
void Multiplicar();
void Dividir();
int a, b, o;
int main(int argc, char** argv) {
cout<<"El programa hace cuatro operaciones posibles con dos números que ingresara acontinuacion"<<endl<<endl;
cout<<"Inserte el primer numero:"<<endl;
cin>>a;
cout<<endl;
cout<<"Inserte el segundo numero:"<<endl;
cin>>b;
16. 16
}
else{
}
if(o==4){
Dividir();
}
else{
}
return 0;
}
void Sumar(){
cout<<"La suma de los dos numeros es:"<<endl;
cout<<a+b<<endl;
}
void Restar(){
cout<<"La resta de los dos numeros es:"<<endl;
17. 17
cout<<a-b<<endl;
}
void Multiplicar(){
cout<<"La multiplicacion es:"<<endl;
cout<<a*b;
}
void Dividir(){
cout<<"La división de los dos numeros es:"<<endl;
cout<<a/b<<endl;
}
DESCRIPCION:
Este programa realiza la función de realizar diferentes funciones con diferentes métodos de operaciones de suma resta multiplicación y división lo que realiza primeramente es pedir los valores de los dos números por medio de las cuales pedía que operación vamos a realizar, y después dependiento del número de elección se realiza la operación correspondiente.
CONCLUSION:
En conclusión tenemos que aquí como en los programas anteriores aprendimos a realizar un buen manejo de las estructuras pero sin perder la modularidad en ellos tenemos una gran parte del conocimiento a realizar en las unidades que sigue.
18. 18
CONCLUSION GENERAL:
Como estudiantes de la materia de estructura de datos es muy importante para nosotros conocer las diferentes formas de trabajar con este lenguaje de programación ya que a partir de ello tenemos gran noción para poder trabajar con proyectos más avanzados ya que ahora conocemos la parte básica de este lenguaje de programación. Primeramente comenzamos con el manejo de arreglos que son muy básicos en este lenguaje de programación y después pasando en la parte de estructura de funciones y por ultimo uniendo estas dos maneras s de programación de datos, todo lo que se vio va ser importante para las futuras materias que vamos a tener. Hasta aurita ya realizamos un pequeño avance de nuestro aprendizaje para la programación en diferentes lenguajes, también nosotros nos dimos cuenta porque ya conocemos algunos lenguajes de programación y nos dimos cuenta que estas sentencias se aplica de la misma manera solo que cambia en algo el ambiente de trabajo. Ahora ya conocemos la importancia que tiene esta sentencia y las diferentes funciones que puede realizar dentro de la estructura de un algoritmo en programa, existe diferentes sentencias la cuales son muy importantes como este también deseamos conocerlos y saber a usarlo. Alguno de nosotros a utilizado esta secuencia de programación y sabemos su aplicación como ya habíamos mencionado anteriormente.