martes, 14 de junio de 2011

VECTORES

VECTORES
es una zona de almacenamiento continuo, que contiene una serie de elementos del mismo tipo, los elementos de la matriz. Desde el punto de vista lógico una matriz se puede ver como un conjunto de elementos ordenados en fila (o filas y columnas si tuviera dos dimensiones).

En principio, se puede considerar que todas las matrices son de una dimensión, la dimensión principal, pero los elementos de dicha fila pueden ser a su vez matrices (un proceso que puede ser recursivo), lo que nos permite hablar de la existencia de matrices multidimensionales, aunque las más fáciles de imaginar son los de una, dos y tres dimensiones.
Estas estructuras de datos son adecuadas para situaciones en las que el acceso a los datos se realice de forma aleatoria e impredecible. Por el contrario, si los elementos pueden estar ordenados y se va a utilizar acceso secuencial sería más adecuado utilizar una lista, ya que esta estructura puede cambiar de tamaño fácilmente durante la ejecución de un programa.


4
8
3
6
7
0
1
2
3
4


Forma de acceso
La forma de acceder a los elementos de la matriz es directa; esto significa que el elemento deseado es obtenido a partir de su índice y no hay que ir buscándolo elemento por elemento (en contraposición, en el caso de una lista, para llegar, por ejemplo, al tercer elemento hay que acceder a los dos anteriores o almacenar un apuntador o puntero que permita acceder de manera rápida a ese elemento).
Para trabajar con vectores muchas veces es preciso recorrerlos. Esto se realiza por medio de ciclos siguiente pseudocódigo muestra un algoritmo típico para recorrer un vector y aplicar una función 'f(...)' a cada una de las componentes del vector

ejemplos
           
Realizar un algoritmo que permita almacenar números en un arreglo de 10 posiciones y luego muestra los resultados por pantalla.
Inicio                                                                   
Entero= i , vector [10]
para i = 0, 9 , 1
leer=                                           
fin para
para i = 0, 9 , 1
mostrar= (vector [i])
fin para
fin programa.



el vector se lee por medio de un ciclo para, de acuerdo a las posiciones que pidan, en este caso el vector o arreglo fue de 10 posiciones, se comenzó de 0 hasta 9, y el vector tambien se muestra con otro ciclo para, con las mismas posiciones.
Modificar el algoritmo anterior para que una vez almacenados los datos en el vector se pueda obtener el promedio de esos números.
Inicio
Entero= i, vector[10], suma
Real= promedio
Suma=0
para i= 0, 9,1                                                                                          
leer=(vector[i])
suma= suma+vector[i]
promedio = suma/10
fin para
mostrar('el promedio es:', promedio)
fin programa.


En este caso no se va mostrar el vector si no leerlo porque vamos a calcular el promedio y no mostrar lo que hay en las casillas del vector.
En conclusión, un vector sirve para guardas varios datos en una sola lectura sin necesidad de varias lecturas.

ciclo for

ciclo for
Este ciclo es usado para repetir una secuencia de instrucciones, sobre todo cuando se conoce la cantidad exacta de veces que se quiere que se ejecute una instrucción simple o compuesta.







 5 son las veces que quiero que se repita la pregunta y 1 de cuanto en cuanto se incrementa, en este casa de 1 en 1.



Donde
INICIO
ENTERO: N,i, FACTORIAL
MOSTRAR ('DIGITE UN NUMERO')
LEER(N)
FACTORIAL=1
PARA( i= 1, HASTA , N, 1)
FACTORIAL= FACTORIAL* i
FIN PARA
MOSTRAR ('EL FACTORIAL ES:', FACTORIAL)
FIN
 




Es el orden en el que se realizan las operaciones si hay mas de una Hay un orden de prioridad como vemos en la tabla. Si hay dos operadores que tienen la misma prioridad se ejecutan de izquierda a derecha.EJEMPLOS:


X= 10+5%2
X= 10+1
X=11

Como el modulo es mas prioritario que la suma se realiza primero el modulo.

R= 10/5%2
R= 2 % 2
R=2

Aquí los operadores son de la misma casilla de prioridad, por eso se resuelve de izquierda a derecha.


Veremos otro ejemplo mas complejo.


T= -3+(-4%2)*5/3+12
T= -3+0*5/3+12
T= -3+0/3+12
T= -3+0+12
T= -3+12
T= 9

Vimos como resolvimos primero los operadores de mayor prioridad de izquierda a derecha, luego los de segunda prioridad. Lo que esta dentro del paréntesis siempre se hace de primer porque esta agrupado.

La jerarquía de operadores es muy importante tenerla en cuenta cuando ejecutamos un algoritmo,  porque muchas veces no la tenemos en cuenta y los resultados no nos dan.

pseudocodigo


Inicio
Entero: np tp ct pt
Real: promedio
Mostrar:(‘digite número de días’)
Leer:(nd)
Mostrar (‘digite costos porción’)
Leer :( np)
P=0
T=0
Par i = 1, nd, 1
Para j = 1,3, 1
Mostrar (‘digitenúmero de porciones ‘)
Leer: (np)
Mostrar (‘digite  tiempo que tarda ‘)
Leer: (tp)
P = p+ np
T = t + pt
Fin para
Fin para
Ct àcp * p
Promedio t / (3 * nd)
Mostrar (‘promedio comida es;‘promedio)
Mostrar (‘costo total es;’ ct)
Mostrar (‘el númerototal de porción es;’p)
Fin programa
el objetivo del pseudocodigo es representar la solucion a un algoritmo de la forma mas detallada posible, y de la forma como se va a utilizae en la codificacion.
Las principales caracteristicas del pseudocodigo es que se puede ejecutar en un ordenador, es una representacion sencilla de mutilizar y manipular.
Todo pseudocodigo debe de tener instrucciones primitivas, instrucciones del proceso, instrucciones del control, instrucciones compuestas e instrucciones de descripcion.


DIAGRAMAS DE FLUJO
Un diagrama de flujo es la representación gráfica de un algoritmo en el cual se utilizan símbolos para representarlo.


es utilizado por programadores para describir algoritmos en un lenguaje humano simplificado que no es dependiente de ningún lenguaje de programación. Por este motivo puede ser implementado en cualquiera lenguaje por cualquier programador que utilice el pseudocódigo.
 
 




WHILE - DO WHILE




Un ciclo se utiliza para ejecutar una seria de instrucciones (o una sola) mientras se cumpla una condición, cuando se deje de cumplir la condición, estas instrucciones se dejarán de ejecutar.

Do...while es la última de las estructuras para implementar repeticiones de las que dispone en Java script y es una variación del ciclo while visto anteriormente. Se utiliza generalmente cuando no sabemos cuantas veces se habrá de ejecutar el ciclo, igual que el ciclo WHILE, con la diferencia de que sabemos seguro que el ciclo por lo menos se ejecutará una vez.

Elaborar un algoritmo que permita calcular el total de una nomina, teniendo en cuenta que se ingresan datos de horas trabajadas para cada empleado. El valor de la hora es 10 500 pesos
y si el trabajador laboro mas de 40 horas se le paga  10% más.
Además de mostrar el total de la nomina se debe indicar a cuantos empleados se les va a pagar



Imprimir las 30 primeras potencias de 4, es decir, 4 elevado a la 1, 4 elevado a la 2, etcétera.


INICIO
ENTERO: HORAS, VALORH, SUMA, TOTAL, RECARGO, CONTADOR
CADENA: DECISIÓN
DECISION= 'SI'
CONTADOR=0
VALORH=10500
SUMA=0
HAGA
MOSTRAR('DIGITE HORAS TRABAJADAS')
LEER(HORAS)
TOTAL=HORAS*VALORH
CONTADOR=CONTADOR+1
SI(HORAS>40)ENTONCES
RECARGO=TOTAL*10/100
TOTAL=TOTAL+RECARGO
MOSTRAR('TIENE RECARGO, EL TOTAL A PAGAR CON RECARGO INCLUIDO ES:',TOTAL)
MOSTRAR('LA CANTIDAD DE EMPLEADOS A PAGAR ES:', CONTADOR)
SI NO
MOSTRAR('EL TOTAL A PAGAR ES:',TOTAL)
MOSTRAR('LA CANTIDAD DE EMPLEADOS A PAGAR ES:', CONTADOR)
FIN SI
SUMA=SUMA+TOTAL
MOSTRAR('EL TOTAL DE LA NOMINA ES:',SUMA)
MIENTRAS(DESICION='SI')
MOSTRAR('DESEAS CALCULAR LA NOMINA DE OTRO TRABAJADOR')
LEER(DECISION)
FIN MIENTRAS
FIN




mostraremos el ejemplo con while-do, y el ejercicio que usted hará tiene que ser con do-while, no será muy difícil, ya que solo tiene que entender el ejemplo (while-do)
Si N=5
Queremos saber la suma de sus números inferiores incluyendo el
mismo número.
Entonces la suma de sus números será 15
¿Por que?
Pues la suma de 1+2+3+4+5=15
1+2=3
3+3=6
6+4=10
10+5=15

mostraremos el ejemplo con while-do, y el ejercicio que usted hará tiene que ser con do-while, no será muy difícil, ya que solo tiene que entender el ejemplo (while-do)
Si N=5
Queremos saber la suma de sus números inferiores incluyendo el
mismo número.
Entonces la suma de sus números será 15
¿Por que?
Pues la suma de 1+2+3+4+5=15
1+2=3
3+3=6
6+4=10
10+5=15
mostraremos el ejemplo con while-do, y el ejercicio que usted hará tiene que ser con do-while, no será muy difícil, ya que solo tiene que entender el ejemplo (while-do)
Si N=5
Queremos saber la suma de sus números inferiores incluyendo el
mismo número.
Entonces la suma de sus números será 15
¿Por que?
Pues la suma de 1+2+3+4+5=15
1+2=3
3+3=6
6+4=10
10+5=15




Hacer un algoritmo que lea 5 numeros y determine la suma entre ellos.

INICIO

ENTERO: N, i, SUMA
i=1
SUMA=0
MIESTRAS(i <=5) HAGA
MOSTRAR( 'DIGITE UN NUMERO')
LEER (N)
SUMA= SUMA+N
i= i+1
FIN MIENTRAS
MOSTRAR ('LA SUMA ES:', SUMA)
FIN
Como vemos en la condicion al principio se cumple, pero como i se va incrementando, al llegar hacer mayor que 5 se sale del mientras y termina la ejecucion.
INICIO
ENTERO: N,i, SUMA
REAL: PROMEDIO
i=1
SUMA=0
MIENTRAS (i <=5) HAGA
MOSTRAR ('DIGITE UN NUMERO')
LEER (N)
SUMA=SUMA+N
i=i+1
PROMEDIO=SUMA/5
FIN MIENTRAS.
MOSTRAR ('EL PROMEDIO ES:', PROMEDIO)
FIN
INICIO
ENTERO: N,i, SUMA
REAL: PROMEDIO
i=1
SUMA=0
MIENTRAS (i <=5) HAGA
MOSTRAR ('DIGITE UN NUMERO')
LEER (N)
SUMA=SUMA+N
i=i+1
PROMEDIO=SUMA/5
FIN MIENTRAS.
MOSTRAR ('EL PROMEDIO ES:', PROMEDIO)
FIN
INICIO
ENTERO: N,i, SUMA
REAL: PROMEDIO
i=1
SUMA=0
MIENTRAS (i <=5) HAGA
MOSTRAR ('DIGITE UN NUMERO')
LEER (N)
SUMA=SUMA+N
i=i+1
PROMEDIO=SUMA/5
FIN MIENTRAS.
MOSTRAR ('EL PROMEDIO ES:', PROMEDIO)
FIN
INICIO
ENTERO: N,i, SUMA
REAL: PROMEDIO
i=1
SUMA=0
MIENTRAS (i <=5) HAGA
MOSTRAR ('DIGITE UN NUMERO')
LEER (N)
SUMA=SUMA+N
i=i+1
PROMEDIO=SUMA/5
FIN MIENTRAS.
MOSTRAR ('EL PROMEDIO ES:', PROMEDIO)
FIN
INICIO
ENTERO: N,i, SUMA
REAL: PROMEDIO
i=1
SUMA=0
MIENTRAS (i <=5) HAGA
MOSTRAR ('DIGITE UN NUMERO')
LEER (N)
SUMA=SUMA+N
i=i+1
PROMEDIO=SUMA/5
FIN MIENTRAS.
MOSTRAR ('EL PROMEDIO ES:', PROMEDIO)
FIN