viernes, 17 de septiembre de 2010

TALLER ARREGLOS - 17/09/2010 5to Aministracion

Mostrar los multiplos de 3 comprendidos entre los numeros 1 y 20

Leer un numero de 3 digitos y sumarlos

Dado un numero verificar:
- Que tenga dos digitos
- Verificar si sus digitos son pares
- Promediar sus digitos

Dado un numero verificar si es positivo, negativo o nulo

Dados seis numeros enteros determinar, el menor de ellos

Las permutaciones de un conjunto son las diferentes maneras de colocar sus elementos, usando todos ellos y sin repetir ninguno. Por ejemplo para A, B, C, tenemos: ABC, ACB, BAC, BCA, CAB, CBA.

SEAN DOS VECTORES A[5] y B[8] FORMAR UN TERCER VECTOR C[], DONDE ESTE FORMADO POR A y B PERO DE FORMA ORDENADO ASCD. y DESC.

SEAN LAS MATRICES A 3x3 LLENA CON VALORES PARES POR TECLADO, PRESENTAR DICHA MATRIZ ORDENADA EN FORMA ASC.

SE DESEA IMPLEMENTAR EL JUEGO DEL CHACAL DONDE EL USUARIO DEBE DE DESCUBRIR 4 RUEDAS TENIENDO COMO OPCION EQUIVOCARSE 3 OCACIONES.
EL JUEGO TERMINA CUANDO EL USUARIO DESCUBRE LOS TRES CIRCULOS O PIERDES LAS TRES OPCIONES.

SE DESEA UN PROGRAMA PARA IMPLEMENTAR EL JUEGO DEL ORCADO. TENIENDO SOLO TRES OPORTUNIDADES.

PD. El trabajo debe ser presentado el dia Lunes 20, en hojas de papel ministro, ademas en el respectivo pedrive.
Se tomara leccion en el laboratorio de cualquiera de los ejercicios.

miércoles, 8 de septiembre de 2010

Unidad Estructura - Arreglos QUINTO ADMINISTRACION

Ejercicios con Arreglos unidimensionales.
I. Objetivo. Al finalizar la práctica el estudiante será capaz de:
• Definir estructuras de datos y arreglos.
• Utilizar arreglos en una dimensión para resolver problemas.
II. Introducción Teórica.
II.
Los Arreglos (Vectores o Array)
Un array (lista o tabla9 es una secuencia de datos del mismo tipo. Los datos se llaman elementos del array y se numeran consecutivamente 0, 1, 2, 3, ,, etc. Estos números se denominan valores índice o subíndice del array. El tipo de elementos almacenados en el array pueden ser cualquier tipo de dato de C, incluyendo estructuras definidas por el usuario.
Entonces, podemos entender los arrays (también conocidos como arreglos o formaciones) como variables que contienen diferentes tipos de datos homogéneos. Se puede acceder a cada elemento de datos individual de la variable mediante un subíndice, o índice. En los lenguajes C y C++, un array no se corresponde con un tipo de dato estándar; en su lugar, se trata de un tipo agregado que se obtiene a partir de otros tipos de datos. Es posible tener un array de cualquier cosa: caracteres, enteros, números en coma flotante, arrays, etc.
Un array se declara de modo similar a otros tipos de datos, excepto que se debe indicar al compilador el tamaño o longitud del array. Para indicar al compilador el tamaño o longitud del array se debe hacer seguir al nombre, el tamaño encerrado entre corchetes.
Los arrays tienen cuatro propiedades básicas:
• Los elementos individuales de datos de un array se denominan elementos.
• Todos los elementos deben ser del mismo tipo de dato.
• Todos los elementos se almacenan en posiciones contiguas de la memoria de la computadora y el subíndice (o índice) del primer elemento es cero.
• El nombre de un array es un valor constante que representa la dirección del primer elemento del array.
Para acceder a un elemento especifico del array, se utiliza el nombre de éste seguido por uno o más “índices” (donde cada uno representa una dimensión del arreglo o array) encerrado entre corchetes. Supongamos que tenemos un arreglo unidimensional llamado X con un tamaño de “n” elementos, su esquema grafico es el siguiente:



Como puede verse en el esquema, aunque el arreglo es de “n” elementos, en realidad tienen “n-1” elementos porque comienzan a enumerarse desde cero.
En términos generales para definir un array se especifica el tipo de almacenamiento (atributo opcional), el tipo de datos, el identificador y entre corchetes el tamaño del arreglo. Abajo se muestra algunos ejemplos de definición de arreglos:

a) int num[100]; (un array de 100 enteros)
b) char apellido[25]; (un array de 25 caracteres)
c) float prom[30]; (un array de 30 coma flotante)
d) char contrasena[16]; (un array de 16 caracteres)

La necesidad de definir arrays en función de constantes
A veces es conveniente definir el tamaño de un array en términos de una constante, en lugar de estar especificando una cantidad entera fija. Esto se realiza por facilidad de mantenimiento. Por ejemplo, suponga que tenemos un programa (con 350 líneas de código) donde se halle un array de 20 items, y a lo largo del programa se hace referencia unas 12 veces al arreglo, y supongamos también que se necesita cambiar el tamaño del arreglo. Sin usar la constante se tendría que revisar todo el programa para localizar las líneas de código y efectuar el cambio al nuevo tamaño, en cambio con el uso de constantes sólo se le cambia el tamaño a la misma y el problema esta resuelto. La definición de un array a través de una constante se muestra en el siguiente ejemplo:
# include stdio.h>
# include stdlib.h>
/* Definición de la constante */
#define tamano 20
main()
{
/* Utilización de la constante para definir la dimensión del arreglo */
int promedios[tamano];
/* Leer valores utilizando la variable i como contador dentro del ciclo FOR y ++i como acumulador*/
for (i=0; i < tamano; ++i)
scanf(“%d”,&promedios[i]);
.....
.....
}
La utilización de constantes definidas garantiza que las siguientes referencias al array no sobrepasen el tamaño definido para el mismo.
C no comprueba que los índices del array están dentro del rango definido.

Inicialización de arreglos
En ciertas circunstancias puede ser necesario darle valores iniciales a los arreglos, para ello basta con colocar entre llaves el conjunto de valores deseados separados por comas y en el orden requerido. A continuación se muestran algunos ejemplos:
a) int cant[6]={12,-3,0,15,8};
b) double DesvTipica[8]={0.23, 3.1416, -0.5, 2.16789, -56.78, 25, 0.15, -14 };
c) char meses[12]={‘E’, ‘F’, ‘M’, ‘A’, ‘M’, ‘J’, ‘J’, ‘A’, ‘S’, ‘O’, ‘N’, ‘D’};

Para el caso del arreglo “cant” es como tener:
Cant[0]=12
Cant[1]= -3
Cant[2]=0
Cant[3]=15
Cant[4]=8

Cuando los elementos del arreglo no tienen asignados valores iniciales explícitos, éstos son puestos a cero, a continuación tenemos un ejemplo:
int edades[8]={25,13,18};

El resultado de la asignación seria el siguiente:
Edades[0]=25;
Edades[1]=13;
Edades[2]=18;
Edades[3]=0;
Edades[4]=0;
Edades[5]=0;
Edades[6]=0;
Edades[7]=0;

Este método de inicializar arrays mediante valores constantes después de su definición, es adecuado cuando el número de elementos del arreglo es pequeño.
Una nota interesante en cuanto a la inicialización de arreglos, es que el tamaño no necesita ser indicado explícitamente. Con los arrays numéricos el tamaño será fijado igual al número de valores incluidos. En cuanto a las cadenas, el tamaño se fijará igual al número de caracteres del string o cadena mas uno (el carácter nulo “\0”).
C puede dejar los corchetes vacíos, sólo cuando se asignan valores al array, tal como
int cuenta[ ] = { 15, 25, -45 , 0 , 50 };
char c[ ] = { ‘L’, ‘u’, ‘i’, ‘s’ }; /* declara un array de 4 elementos */
El compilador asigna automáticamente cinco elementos a cuenta.
Otros ejemplos:
a) Int porcent[ ]={8, 6, 10, -15, 23};
b) Char mes[ ]=”octubre”;
que vienen siendo equivalente a:

Porcent[0]=8;
porcent[1]=6;
porcent[2]=10;
porcent[3]= -15;
porcent[4]=23;

mes[0]=‘o’;
mes[1]=‘c’;
mes[2]=‘t’;
mes[3]=‘u’;
mes[4]=‘b’;
mes[5]=‘r’;
mes[6]=‘e’;
mes[7]=‘\0’

Ejemplo 1:
Elabore un programa que permita leer una lista de números en un arreglo, calcule la suma, promedio, cuadrado , cubo y desviación estándar de los mismos:

Nota que los valores fueron declarados de tipo double no enteros, por el tamaño de los valores que se generan en los cálculos.

Ejemplo 2:
El siguiente programa lee 5 valores de teclado y los guarda en un arreglo a. Luego los escribe.


Ejemplo 3:
El siguiente programa, pide 5 numeros y calcula los cubos de ellos, los cuales son guardados en un arreglo y son desplegados.

EJERCICIOS:

Ejercicio 1:
Digite, compile y ejecute el siguiente programa.
#include stdio.h>
#include stdlib.h>
main()
{
int a,b=0;
int c[10]={1,2,3,4,5,6,7,8,9,0};
for (a=0;a<10;++a)
if ((c[a]%2)==0) b+=c[a];
printf("%d\n",b);
system(“pause”);
return 0;
}

¿Qué hace el programa? __________________________________________
_______________________________________________________________
Cuál es la salida? _______

Ejercicio 2:
Digite, compile y ejecute el siguiente programa.
#include stdio.h>
#include stdlib.h>
main()
{
int a,b=0;
int c[10]={1,2,3,4,5,6,7,8,9,0};
for (a=0;a<10;++a)
if ((a%2)==0)b+=c[a];
printf("%d\n",b);
system(“pause”);
return 0;
}
¿Qué hace el programa? __________________________________________
_______________________________________________________________
Cuál es la salida? _______
¿En qué se diferencia del ejemplo anterior? ____________________________
_______________________________________________________________
Ejercicio 3
Elabore un programa que sume los primeros 25 números enteros guardados en un vector. Se desea imprimir la lista de números y al final la suma de los mismos.
Ejercicio 4
Generar e imprimir un vector de 10 números enteros y encontrar el mayor de ellos. Desplegar el resultado.
Ejercicio 5
Dadas dos listas A y B de igual número de elementos, se desea generar e imprimir una lista C conteniendo las sumas: A[i] + B[i] = C[i]




Una casa de cambio desea obtener estadisticas semanales (dia por dia) de la ventana de dolares, las estadisticas a obtener
son las siguientes:
dia ventas dolares
lunes xxxxxx xxxxxx
martes xxxxxx xxxxxx
miercoles xxxxxx xxxxxx
jueves xxxxxx xxxxxx
viernes xxxxxx xxxxxx
sabado xxxxxx xxxxxx
para esto se cuenta con los reportes de venta de la semana cada reporte tiene el mumero del dia en que se hizo la venta (1 a 6, 1=lunes)
y la cantidad de dolares vendidos.

nota: puede haber varias ventas de un mismo dia puede haber dias sin ventas, los reportes no estan organizados.

PARTE DOS
1. Almacenar 150 números en un vector, almacenarlos en otro vector en orden inverso al vector original e imprimir el vector resultante.
2. Se tienen almacenados en la memoria dos vectores M y N de cien elementos cada uno. Hacer un programa que escriba la palabra “Iguales” si ambos vectores son iguales y “Diferentes” si no lo son. Serán iguales cuando en la misma posición de ambos vectores se tenga el mismo valor para todos los elementos.
3. Diseñe un programa que lea dos vectores A y B de 20 elementos cada uno y multiplique el primer elemento de A con el último de B y luego con el segundo elemento de A por el diecinueveavo elemento de B y así sucesivamente hasta llegar al veinteavo elemento de A por el primer elemento de B. El resultado de la multiplicación almacenarlo en un vector C.
4. Leer un vector de enteros y sacar por pantalla primero todos los elementos pares y después todos los impares.
5. Se desea implementar un programa para la gestión de pasajeros de un avión con 100 puestos disponibles. El programa debe acabar cuando no queden clientes por atender o el avión esté completo. El programa debe solicitar a cada cliente el asiento que desea ocupar (la introducción de un número negativo indicará que no quedan clientes por atender). Si dicho asiento está libre, el viajero lo ocupa, además el programa debe pregunta si el viajero es hombre, mujer o niño. Al acabar el programa debe indicar si el avión está completo o no y el número de pasajeros que son hombres, niños y mujeres.

LECCION DIA VIERNES