Informe estructura de datos Unidad 1

18
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”

Transcript of Informe estructura de datos Unidad 1

Page 1: Informe estructura de datos Unidad 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”

Page 2: Informe estructura de datos Unidad 1

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

Page 3: Informe estructura de datos Unidad 1

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;

Page 4: Informe estructura de datos Unidad 1

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

Page 5: Informe estructura de datos Unidad 1

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.

Page 6: Informe estructura de datos Unidad 1

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++){

Page 7: Informe estructura de datos Unidad 1

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++){

Page 8: Informe estructura de datos Unidad 1

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;

}

Page 9: Informe estructura de datos Unidad 1

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.

Page 10: Informe estructura de datos Unidad 1

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;

Page 11: Informe estructura de datos Unidad 1

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;

Page 12: Informe estructura de datos Unidad 1

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;

}

Page 13: Informe estructura de datos Unidad 1

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

Page 14: Informe estructura de datos Unidad 1

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;

Page 15: Informe estructura de datos Unidad 1

15

cout<<endl;

cout<<"¿Elija la operacion que desea realizar?"<<endl;

cout<<"1.- Sumar"<<endl;

cout<<"2.- Restar"<<endl;

cout<<"3.- Multiplicar"<<endl;

cout<<"4.- Dividir"<<endl<<endl;

cin>>o;

if(o==1){

Sumar();

}

else{

}

if(o==2){

Restar();

}

else{

}

if(o==3){

Multiplicar();

Page 16: Informe estructura de datos Unidad 1

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;

Page 17: Informe estructura de datos Unidad 1

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.

Page 18: Informe estructura de datos Unidad 1

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.