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
ALUMNO:
Aristo Rodriguez Arana
SEMESTRE:
TERCER SEMESTRE
GRUPO:
“B”
INDICE:
2. 2
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
ARREGLO 1: DIAGONAL PRINCIPAL
int main(int argc, char** argv) {
int a[3][3],dip,dinv,liu;
for(int i=0;i<=2;i++){
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;
}
Introduccion
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
5. 5
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 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:
Lo importante en este programa es el hecho de comprender la aplicación de los arreglos
y su implementación para resumir código y asignar en sus casillas los datos que
queremos ingresar 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.
PROGRAMA 2 ARREGLO 2: CALIFICACIONES ALUMNOS:
#include <iostream> using
namespace std;
6. 6
/* 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++){
for (j=0; j<3; j++){
su = su + alu[i][j];
}
7. 7
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++){
if(prom[maypro] < prom[i]){
maypro = i;
}
8. 8
}
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;
}
Introduccion:
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
9. 9
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.
FUNCION STRUCT NOMBRES DE ALUMNOS:
10. 10
#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;
cout<<"ingresa el nombre del segundo alumno: ";
cin>>alu[1].nombre;
11. 11
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; for(f=0;f<3;f++){
if(alu[mayed].edad< alu[f].edad)
mayed = f;
12. 12
}
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;
}
Introduccion:
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++.
13. 13
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;
15. 15
}
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; cout<<a-b<<endl;
16. 16
}
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;
}
Introduccion:
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.
17. 17
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.
CONCLUSION GENERAL:
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
18. 18
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.