Sunteți pe pagina 1din 6

Universidad Nacional de Jujuy

Carrera: Analista Programador Universitario

Facultad de Ingeniera Extensin ulica San Pedro


Perodo Lectivo:2016

ESTRUCTURA DE DATOS
Trabajo Prctico N 1

Tema:Vectores-Matrices-Registros

TRABAJO PRCTICO N 1
UNIDAD N 1: ESTRUCTURAS SIMPLES ARREGLOS Y REGISTROS
Consignas
1. La resolucin del presente TP puede realizarse en grupos de no ms de 3 alumnos. En el caso de detectar
grupos que superen el nmero mximo establecido, o copia de TP, se dar por desaprobado el TP a los
alumnos intervinientes, sin posibilidad de rehacerlo.
2. Para considerar aprobado el TP, se debe resolver correctamente el 60% de los ejercicios planteados.
3. La presentacin del trabajo prctico debe ser CLARA, PROLIJA, con la documentacin interna necesaria que
especifique como mnimo: Nombre de la asignatura, Integrantes y enunciado del ejercicio. El trabajo deber
ser entregado en formato digital, remitiendo va MENSAJE por AULA VIRTUAL mediante una carpeta
comprimida, la solucin de los ejercicios: archivos .dev, .cpp, .hpp (NO .exe). Una presentacin fuera de
estas especificaciones, restar un 20% al porcentaje obtenido por la resolucin.
4. De existir soluciones iguales entre distintos grupos, todos sern desaprobados, sin posibilidad de recuperar.
Fecha de Entrega: hasta el 06/09/2016
EJEMPLOS:
A
Dados dos nmeros mostrar el que resulte mayor, o en su defecto indicar si son iguales:
#include <iostream>
using namespace std;

int main(){
intx,y;
cout<<"Escribe El Primer Nmero"<<endl;
cin>>x;
cout<<"Escribe El Segundo Numero"<<endl;
cin>>y;
if(x>y)
cout<<"El mayor es "<<x<<endl;
elseif(y>x)
cout<<"El mayor es "<<y<<endl;
elsecout<<"Son iguales"<<endl;
return 0;
}
Dados dos nmeros ingresados por teclado, sumarlos y mostrar su resultado. Aplicar funciones (mdulos)
#include<iostream>
using namespace std;
//funcion sumar que recibe dos parmetros de tipo entero, y devuelve un valor entero
intsumar(int num1, int num2)
{
return num1 + num2;
}
int main()
{
int num1, num2;
1

Universidad Nacional de Jujuy


Carrera: Analista Programador Universitario

Facultad de Ingeniera Extensin ulica San Pedro


Perodo Lectivo:2016

ESTRUCTURA DE DATOS
Trabajo Prctico N 1

Tema:Vectores-Matrices-Registros

cout<< "Numero 1: "; cin>> num1; //se ingresa el primer valor


cout<< "Numero 2: "; cin>> num2; // se ingresa el segundo valor
cout<< "La suma es " << sumar(num1, num2); //se llama a la funcin sumar con los dos valores ingresados
return 0;
}
C

Este programa pide tres nmeros, los almacena en un vector, le suma 1 a cada elemento y los muestra,
usando para cada accin una funcin. As que tenemos funciones que reciben vectores y que retornan
vectores.
#include<iostream>
#define len 3
using namespace std;
voidpedir(intvec[len])
{ for(inti=0; i<len; i++)
{
cout<< "Numero " << i+1 << ":? ";
cin>>vec[i];
}
}
voidsumar(intvec[len])
{ for(inti=0; i<len; i++)
vec[i]++;
}
voidmostrar(intvec[len])
{ for(inti=0; i<len; i++)
cout<<vec[i] << " ";
}

int main(){
intvec[len]={0};
pedir(vec);
.coutElementos cargados: ;
mostrar(vec);
sumar(vec);
.coutElementos despus de la suma: ;
mostrar(vec);
return 0;
}
Programa que lee un arreglo de 10 nmeros y los ordena con el mtodo de la burbuja de manera
ascendente o descendente segn se elija. Para esto utiliza una funcin que recibe el arreglo y la variable
ord (1=asc, 2=desc), luego utiliza otra funcin para imprimirlo.
#include<iostream>
using namespace std;
2

Universidad Nacional de Jujuy


Carrera: Analista Programador Universitario

Facultad de Ingeniera Extensin ulica San Pedro


Perodo Lectivo:2016

ESTRUCTURA DE DATOS
Trabajo Prctico N 1

Tema:Vectores-Matrices-Registros

voidordenar(intlista[],intord)
{
int c1,c2,aux;
for(c1=0;c1<=9;c1++)
{
for(c2=0;c2<9;c2++)
{
if(ord==1)
{
if(lista[c2]>lista[c2+1])
{
aux=lista[c2];
lista[c2]=lista[c2+1];
lista[c2+1]=aux;
}
}
else
{
if(lista[c2]<lista[c2+1])
{
aux=lista[c2];
lista[c2]=lista[c2+1];
lista[c2+1]=aux;
}
}
}
}
}
void imprimir(int lista[])
{
int c;
for(c=0;c<=9;c++)
cout<<lista[c]<<" ";
system(PAUSE);
}
int main()
{
intc,lista[10],ord;
for(c=0;c<=9;c++)
{
cout<<"Numero "<<c+1<<": "; cin>>lista[c];
}
cout<<"\nAscendente 1\nDescendente 2\n--> Opcin: "; cin>>ord;
3

Universidad Nacional de Jujuy


Carrera: Analista Programador Universitario

Facultad de Ingeniera Extensin ulica San Pedro


Perodo Lectivo:2016

ESTRUCTURA DE DATOS
Trabajo Prctico N 1

Tema:Vectores-Matrices-Registros

if(ord==1 || ord==2)
{
ordenar(lista,ord);
imprimir(lista);
}
return 0;
}
RESOLVER
1) La denominada Criba de Eratstenes es un mtodo para determinar los nmeros primos entre 1 y N,
siguiendo los siguientes pasos:
a) Se escriben los nmeros naturales entre 1 y N.
b) Se deja el 1.
c) Se deja el 2 y se tachan todos los dems nmeros pares.
d) Se deja el 3 y se tachan todos sus mltiplos.
e) Como el 4 ya est tachado, pasamos al 5, que se deja y se tachan todos sus mltiplos (los del 5).
f) ...
As, cuando pasemos del 13, estarn tachados 14, 15 y 16, con lo que seguimos el procesoen el 17. El
proceso acaba cuando llegamos a la raz cuadrada de N. Los nmeros quequeden sin tachar, sern primos.
La siguiente figura muestra este mtodo aplicado del 1 al100. Aparecen en blanco los nmeros no marcados
y que, por tanto, son primos.
Se pide crear una funcin denominada Eratstenes que, mediante la criba descripta yhaciendo uso de
arreglos, debe tomar como parmetro un natural N menor o igual a 200 eimprimir por pantalla todos los
nmeros primos del 1 al N.
2) Implemente un programa con los siguientes mdulos:
Menu: este mdulo, ser un procedimiento que mostrar el siguiente men, y solicitar la opcin
elegida por el usuario, la cual ser devuelta al programa principal.
1 Carga de datos
2 Sumar datos
3 Multiplicar datos
4 Dividir datos
5 Restar datos
6 Salir del programa
CargaDatos: este mdulo ser un procedimiento que solicitar la carga de dos valores mayores que
cero.
SumaDatos: este mdulo, ser una funcin que devolver el resultado de la suma de dos valores que
sern pasados como parmetros
MultiplicaDatos: este mdulo, ser una funcin que devolver el resultado de la multiplicacin de dos
valores que sern pasados como parmetros
DivideDatos: este mdulo, ser una funcin que devolver el resultado de la divisin de dos valores
que sern pasados como parmetros
RestaDatos: este mdulo ser una funcin que devolver el resultado de la resta de dos valores que
sern pasados como parmetros.

Universidad Nacional de Jujuy


Carrera: Analista Programador Universitario

Facultad de Ingeniera Extensin ulica San Pedro


Perodo Lectivo:2016

ESTRUCTURA DE DATOS
Trabajo Prctico N 1

Tema:Vectores-Matrices-Registros

El programa deber presentar al usuario el men de ejecucin, y en funcin de la opcin elegida, deber
ejecutar la operacin elegida. Tener en cuenta que para realizar cualquier operacin, se deben cargar
previamente los datos (al menos una vez). El programa solo finalizar cuando el usuario elija la opcin 6.
3) Una empresa debe calcular el sueldo a pagar a cada uno de sus empleados, para ello, se tiene en cuenta
que por cada da de inasistencia que posea el empleado, sufre un descuento de 0,5% del sueldo bsico.
Adems por cada hijo de hasta 18 aos, se le asigna un plus del 0,3% del sueldo bsico. Y en cuanto a las
horas extras, cada 5 horas extras se le reconoce un 5% del sueldo bsico.
Disear un programa que permita el ingreso de los siguiente datos de los empleadosde la empresa:
Apellido, Nombre, Sueldo Bsico, Inasistencias, Hijos de hasta 18, Hs. extras y muestre el sueldo que
cobrara cada empleado, detallando los descuentos y los plus.
Nota: Cada clculo debe realizarse en un mdulo
4) Considerar dos vectores: Ciudad y Sup, el primero guardar nombres de ciudades y el segundo la superficie
de la ciudad correspondiente. El tamao mximo de los vectores ser igual a 16. Codifique un programa
que mediante un men, permita las siguientes operaciones:
a) Agregar 1 ciudad con su superficie. Verificar previamente que la misma no exista an en el vector.
b) Buscar 1 ciudad en el vector. Si la encuentra, mostrar la superficie de la misma. Caso contrario indicar
que la ciudad solicitada no existe.
c) Mostrar las ciudades ordenadas ascendentemente, segn su superficie.
d) Eliminar 1 ciudad (con su superficie). Indicar si la eliminacin fue exitosa o no. Al eliminar la ciudad
deber correr el resto una posicin a la izquierda, dentro del vector correspondiente
5) Escribir un programa que permita trabajar sobre una matriz de hasta FxC, con las siguientes operaciones:
a) Cargar valores en la matriz. La carga debe realizarse por fila.
b) Indicar si la matriz resultante es Triangular Superior, Inferior o Tridiagonal
c) Indicar cuantos valores son primos
d) Mostrar los elementos de la matriz (debe respetarse la forma de la matriz en la muestra)
6) Una empresa de ventas maneja 5 artculos diferentes y cuenta con 3 vendedores. En un arreglo de 3x5
(donde los vendedores estn representados por las filas y los artculos por las columnas) se tienen
almacenadas las cantidades de cada artculo vendidas por cada vendedor. En un arreglo de 5 posiciones se
almacenan los nombres (descripcin) de cada artculo, y, los precios de cada artculo estn almacenados
en otro arreglo de tamao 5. Se desea elaborar un algoritmo para imprimir lo siguiente:
a) La cantidad de dinero recaudado por cada vendedor.
b) El nmero del vendedor que recaud la mayor cantidad de dinero.
c) El artculo (nombre) con mayor recaudacin (entre todos los vendedores), y el artculo con mayor
cantidad de ventas (entre todos los vendedores).
d) La cantidad de vendedores que no vendieron ningn artculo.
7) Una empresa desea poder administrar la siguiente informacin de hasta 100 empleados: Legajo, apellido,
nombre, fecha de ingreso, domicilio, condicin (fijo o temporal), salario.
El programa debe permitir, mediante un men:
1- Agregar un empleado
2- Borrar un empleado ingresando nmero de legajo,
3- Buscar un empleado por legajo,
4- Calcular cuntos empleados son temporales,
5

Universidad Nacional de Jujuy


Carrera: Analista Programador Universitario

Facultad de Ingeniera Extensin ulica San Pedro


Perodo Lectivo:2016

ESTRUCTURA DE DATOS
Trabajo Prctico N 1

Tema:Vectores-Matrices-Registros

5- Listar los empleados cuya condicin sea fija.

PRUEBAS DE ESCRITORIO: Realice las pruebas de escritorio para los siguientes ejercicios, aplicando el mtodo
de bsqueda y ordenamiento solicitado.

1. Sean los siguientes vectores, aplique el algoritmo de Bsqueda Secuencial, e indique las
comparaciones realizadas para encontrar los siguientes valores: 19, 9, 45.
a. Vector desordenado
45 2 7 34 19 83 12
1

b. Vector ordenado
2 7 12 19 34 45 83
1

2. Sea el siguiente vector, aplique el algoritmo de Bsqueda Binaria, e indique las comparaciones
realizadas para encontrar los siguientes valores: 19, 9, 45.
2 7 12 19 34 45 83
1

3. Sea el siguiente vector, muestre el estado del vector en cada pasada, hasta que quede ordenado
aplicando el mtodo de ordenamiento
18 9 25 11 3 6 4
1

a.
b.
c.
d.

Burbuja mejorado
Shell
Shaker Sort (mtodo de la sacudida)
Insercin binaria

S-ar putea să vă placă și