Post on 10-Aug-2015
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
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
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
} } } 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
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
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
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
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
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
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
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
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
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
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
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();
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
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
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.