miércoles, 12 de noviembre de 2014

ALGORITMO EPM

ALGORITMO EPM

/* La empresas publicas de Medellin requieren
desarrollar un programa que permita leer el nombre,
la dirección, teléfono, metros cúbicos de agua 
consumidos y estrato del usuario. Si el estrato
del usuario es 1 o 2 el metro cubico tiene un
valor de 1000, si el estrato es 3 o 4 el metro
cubico tiene un valor de 2000 y si es 5 o 6
el metro cubico tiene un valor de 3000 muestre
toda la información*/

ESTRUCTURA CASO

cadena [15] nombre,direcc,telefono
entero mtc,pagar
caracter estracto
inicio
escriba "Ingrese Nombre: "
lea nombre
escriba "Ingrese Direccion: "
lea direcc
escriba "Ingrese Telefono: "
lea telefono
escriba "Ingrese m3 consumidos: "
lea mtc
escriba "Ingrese Esracto: "
lea estracto
caso estracto
'1','2': pagar<-mtc*1000
'3','4': pagar<-mtc*2000
'5','6': pagar<-mtc*3000
fin caso
Escriba "Su nombre es: ",nombre,", Telefono: ",telefono,", Direccion: ",direcc
llamar nueva_linea
Escriba "Metros Cubicos consumidos: ",mtc,", Estracto: ",estracto
llamar nueva_linea
Escriba "Total a pagar: ",pagar

fin



ESTRUCTURA SI 

cadena [15] nombre,direcc,telefono
entero mtc,pagar,estracto
inicio
escriba "Ingrese Nombre: "
lea nombre
escriba "Ingrese Direccion: "
lea direcc
escriba "Ingrese Telefono: "
lea telefono
escriba "Ingrese m3 consumidos: "
lea mtc
escriba "Ingrese Esracto: "
lea estracto
si estracto = 1 o 2 entonces
pagar<-mtc*1000
fin si 
si estracto = 3 o 4 entonces
pagar<-mtc*1000
fin si 
si estracto = 5 o 6 entonces
pagar<-mtc*1000
fin si 
Escriba "Su nombre es: ",nombre,", Telefono: ",telefono,", Direccion: ",direcc
llamar nueva_linea
Escriba "Metros Cubicos consumidos: ",mtc,", Estracto: ",estracto
llamar nueva_linea
Escriba "Total a pagar: ",pagar

fin


ESTRUCTURA MIENTRAS

cadena [15] nombre,direcc,telefono,resp
entero mtc,pagar
caracter estracto
inicio
resp<-"si"
mientras resp = "si" haga
escriba "Ingrese Nombre: "
lea nombre
escriba "Ingrese Direccion: "
lea direcc
escriba "Ingrese Telefono: "
lea telefono
escriba "Ingrese m3 consumidos: "
lea mtc
escriba "Ingrese Esracto: "
lea estracto
caso estracto
'1','2': pagar<-mtc*1000
'3','4': pagar<-mtc*2000
'5','6': pagar<-mtc*3000
fin caso
Escriba "Su nombre es: ",nombre,", Telefono: ",telefono,", Direccion: ",direcc
llamar nueva_linea
Escriba "Metros Cubicos consumidos: ",mtc,", Estracto: ",estracto
llamar nueva_linea
Escriba "Total a pagar: ",pagar
llamar nueva_linea
Escriba "Recuerse Las respuestas solo son 'si' o 'no'"
llamar nueva_linea
Escriba "Desea Continuar"
lea resp
fin mientras

fin

HAGA PARA 

cadena [15] nombre,direcc,telefono
entero mtc,pagar,i
caracter estracto
inicio
para i<-1 hasta 2 haga
escriba "Ingrese Nombre: "
lea nombre
escriba "Ingrese Direccion: "
lea direcc
escriba "Ingrese Telefono: "
lea telefono
escriba "Ingrese m3 consumidos: "
lea mtc
escriba "Ingrese Esracto: "
lea estracto
caso estracto
'1','2': pagar<-mtc*1000
'3','4': pagar<-mtc*2000
'5','6': pagar<-mtc*3000
fin caso
Escriba "Su nombre es: ",nombre,", Telefono: ",telefono,", Direccion: ",direcc
llamar nueva_linea
Escriba "Metros Cubicos consumidos: ",mtc,", Estracto: ",estracto
llamar nueva_linea
Escriba "Total a pagar: ",pagar
llamar nueva_linea
fin para

fin

ARREGLO "VECTOR"

arreglo [2] de cadena [15] nombre
arreglo [2] de entero pagar
cadena [15] direcc,telefono
entero mtc,i
caracter estracto
inicio
para i<-1 hasta 2 haga
escriba "Ingrese Nombre: "
lea nombre[i]
escriba "Ingrese Direccion: "
lea direcc
escriba "Ingrese Telefono: "
lea telefono
escriba "Ingrese m3 consumidos: "
lea mtc
escriba "Ingrese Esracto: "
lea estracto
caso estracto
'1','2': pagar[i]<-mtc*1000
'3','4': pagar[i]<-mtc*2000
'5','6': pagar[i]<-mtc*3000
fin caso
fin para
para i<-1 hasta 2 haga
Escriba nombre[i],"   ",pagar[i]
llamar nueva_linea
fin para

fin

SUMA DE MATRICES

En estos momentos les mostrare como sumar dos matrices

arreglo [3] de entero matriz1
arreglo [3] de entero matriz2
arreglo [3] de entero matriz3
entero i,a
inicio
para i<-1 hasta 3 haga
para i<-a hasta 3 haga
Escriba "Ingrese Numero: "
lea matriz1[i,a]
Fin para
fin para
para i<-1 hasta 3 haga
para i<-a hasta 3 haga
Escriba "Ingrese Numero: "
lea matriz2[i,a]
Fin para
fin para
para i<-1 hasta 3 haga
para i<-a hasta 3 haga
Escriba "Ingrese Numero: "
matriz3[i,a]<-matriz1[i,a]+matriz2[i,a]
Fin para
fin para

para i<-1 hasta 3 haga
para i<-a hasta 3 haga
Escriba matriz1[i,a],"  "
fin para
llamar nueva_linea
fin para
para i<-1 hasta 3 haga
para i<-a hasta 3 haga
Escriba matriz2[i,a],"  "
fin para
llamar nueva_linea
fin para
para i<-1 hasta 3 haga
para i<-a hasta 3 haga
Escriba matriz3[i,a],"  "
fin para
llamar nueva_linea
fin para
fin

LENGUAJES DE PROGRAMACION

LENGUAJES DE PROGRAMACIÓN






















https://estudi-ando.wikispaces.com/Algoritmos

ARREGLOS


ARREGLO


Un arreglo en LPP puede ser considerado como una agrupación de objetos del mismo tipo que se nombran mediante un único identificador; tales objetos ocupan una posición al interior del arreglo y pueden ser leídos o escritos accediendo a dicha posición. Los arreglos suelen dividirse en vectores (arreglos unidimensionales) y matrices (arreglos bidimensionales).

Nota: se pueden crear arreglos de más dimensiones (arreglos n-dimensionales donde n es un número natural) pero, típicamente, los arreglos de mayor dimensión que se usan son los tridimensionales (de 3 dimensiones).

Como ejemplo se podría tomar una lista de estudiantes de un grupo particular: se puede intuir que cada posición de la lista es ocupada por un único estudiante pero, cuando se hace referencia al total de estudiantes se puede hablar de “la lista de estudiantes del grupo X” y, si se desea llamar a un estudiante específico bastaría con saber su posición en la lista.
Lista.png
Nota: En la imagen anterior, si se llama al estudiante de la posición 3, solamente José López respondería.



Vectores


- Declaración de vectores en LPP

Un arreglo unidimensional en LPP se declara usando las palabra reservada arreglo seguida por una pareja de corchetes cuadrados que entre ellos tiene la cantidad MÁXIMA de datos que puede albergar el arreglo; posteriormente se escribe la palabra reservada de seguida del tipo de datos que se van a guardar y, por último se escribe el nombre que va a llevar el arreglo.
Cifras.png

Ejemplo:
Para declarar el vector de enteros contenidos en la anterior tabla habría que escribir los siguiente:
arreglo[8] de entero Cifras
Donde arreglo[8] de define un arreglo unidimensional que podrá admitir hasta 8 datos, entero simboliza el tipo de datos que pueden ser alojados al interior del arreglo y Cifras es el nombre del arreglo.

- Llenando vectores en LPP

Para llenar un arreglo unidimensional en LPP basta con invocar la posición del arreglo a la cual se quiere acceder (esto se hace escribiendo el nombre del arreglo seguido de un par de corchetes cuadrados con la posición a la que se desea acceder entre ellos) y asignarle el valor que se desea guardar en dicha posición.

Ejemplo:
Para dar un valor de 3 a la primera posición del arreglo que se declaró en el ejemplo anterior, la instrucción sería:
Cifras[1]<-3

- Imprimiendo vectores en LPP

Para conocer el valor que se tiene guardado en una posición de un arreglo dado, basta con ingresar la palabra escriba seguida del nombre del arreglo y la posición (entre dos corchetes cuadrados) a la cual queremos acceder.

  • Ejemplo:
Para ver qué valor tiene la primera posición del arreglo que se usó en el ejemplo anterior, la instrucción sería:


arreglo[8] de entero Cifras
entero n
inicio
 Cifras[1]<-3
 Cifras[2]<-7
 Cifras[3]<-9
 Cifras[4]<-5
 Cifras[5]<-2
 Cifras[6]<-4
 Cifras[7]<-8
 Cifras[8]<-1
 //Los valores para cada posición del arreglo han sido colocados uno por uno solamente para que coincidan con el ejemplo de la tabla
 para n<-1 hasta 8 haga
  escriba Cifras[n]
  llamar nueva_linea 
 fin para
fin



Matriz

- Declaración de matrices en LPP

Un arreglo bidimensional en LPP se declara usando las palabra reservada arreglo seguida por una pareja de corchetes cuadrados que entre ellos tienen dos cifras separadas por una coma: la primera cifra indica la cantidad de filas que tendrá el arreglo, mientras que la segunda cifra indica la cantidad de columnas que tendrá el mismo. Posteriormente se escribe la palabra reservada de seguida del tipo de datos que se van a guardar y, por último se escribe el nombre que va a llevar la matriz.
Matriz.png

Ejemplo:
Para declarar la matriz de cadenas contenidas en la anterior tabla habría que escribir lo siguiente:
arreglo[2,4] de cadena[4] Nombres
Donde arreglo[2,4] de define un arreglo bidimensional con 2 filas y 3 columnas, cadena[4] simboliza el tipo de datos que pueden ser alojados al interior del arreglo (palabras de máximo 4 letras) y Nombres es el nombre del arreglo.

- Llenando matrices en LPP

Para llenar un arreglo unidimensional en LPP basta con invocar la posición del arreglo a la cual se quiere acceder (esto se hace escribiendo el nombre del arreglo seguido de un par de corchetes cuadrados con la posición a la que se desea acceder entre ellos) y asignarle el valor que se desea guardar en dicha posición.

Ejemplo:
Para colocar la palabra "Paco" en el arreglo que se declaró en el ejemplo anterior, la instrucción sería:
Nombres[1,2]<-"Paco"
Nota: tenga en cuenta que la primera cifra del arreglo corresponde a la fila y la segunda cifra corresponde a la columna; en otras palabras la instrucción diría "en la primera fila y segunda columna del arreglo llamado Nombres, coloque la cadena "Paco". Además, el dato a ingresar se debe colocar entre comillas dobles (") para que el programa reconozca que es una cadena.

-Imprimiendo matrices en LPP

Para conocer el valor que se tiene guardado en una posición de un arreglo dado, basta con ingresar la palabra escriba seguida del nombre del arreglo y la posición (fila y columna separadas por coma), entre los corchetes cuadrados, a la cual queremos acceder.
  • Ejemplo:
Para ver qué valor tiene la tercera columna de la segunda fila del arreglo que se usó en el ejemplo anterior, la instrucción sería:

arreglo[2,4] de cadena[4] Nombres
entero filas, columnas
inicio
 Nombres[1,1]<-"Hugo"
 Nombres[1,2]<-"Paco"
 Nombres[1,3]<-"Luis"
 Nombres[1,4]<-"Juan"
 Nombres[2,1]<-"Jose"
 Nombres[2,2]<-"Pepe"
 Nombres[2,3]<-"Topo"
 Nombres[2,4]<-"Nino"
 para filas<-1 hasta 2 haga //Estructura repetitiva que recorre las filas del arreglo
  para columnas<-1 hasta 4 haga //Estructura repetitiva que recorre las columnas del arreglo
   escriba Nombres[filas, columnas]," " //Se concatena con un espacio en blanco por presentación
  fin para
  llamar nueva_linea //Se hace un salto de linea para que muestre los elementos de cada fila en un renglón diferente
 fin para
fin








CICLOS

Ciclos


Un bucle o ciclo, en programaciòn, es una sentencia que se realiza repetidas veces a un trozo aislado de código, hasta que la condición asignada a dicho bucle deje de cumplirse.
Generalmente,un bucle es utilizado para hacer una acción repetida sin tener que escribir varias veces el mismo código, lo que ahorra tiempo, deja el código más claro y facilita su modificación en el futuro.


1.Ciclo Haga Mientras

El Bucle while o Ciclo mientras es una estructura de la mayoría de los lenguajes de programación estructurados cuyo propósito es repetir un bloque de código mientras una condición se mantenga verdadera.


  • Sintaxis 

 Mientras /*Condicion*/ Haga
/*Instruccion*/
Fin Mientras



  •   Ejemplo:
entero contador
cadena[25] nombre
inicio

contador<-0
   mientras contador<5 haga
        escriba "ingrese el nombre"
        lea nombre
        contador<-contador+1
    fin mientras
fin








2. Ciclo Haga Para

para/hasta/haga - fin para: palabras reservadas que representan una estructura repetitiva del tipo para/for y sirven para repetir las instrucciones que estén después del haga TANTAS VECES como diga el para. El valor inicial de la variable va después del para, el valor final de la variable va después del hasta y SIEMPRE tiene la comparación "menor o igual" (<=) así que sólo debe escribirse el número final y la variación de la variable viene establecida por defecto en +1.


  • Sintaxis 



   {\color{Sepia}      \mathit{ para }} \;
   {\color{OliveGreen} \mathit{ i }} \;
   {\color{BlueViolet} \mathit{ \gets }} \;
   {\color{OliveGreen} \mathit{ x }} \;
   {\color{Sepia}      \mathit{ hasta }} \;
   {\color{OliveGreen} \mathit{ n}} \;
   {\color{Sepia}      \mathit{ a \; incrementos \; de }} \;
   {\color{OliveGreen} \mathit{ s }} \;
   {\color{Sepia}      \mathit{ hacer }}

   {\color{BlueViolet} \mathit{ instrucciones }}

   {\color{Sepia}      \mathit{ fin \; para }}

  •   Ejemplo
entero n
inicio
 para n<-1 hasta 10 haga
  escriba n," "
 fin para
fin






3. Ciclo Repita Hasta

El bucle repetir comprueba la condición de finalización al final del cuerpo del bucle, y si ésta es cierta continua con el resto del programa, a veces esto resulta más adecuado
  • Sintaxis 

   { \color{Sepia}      \mathit{ repetir }}
 
   { \color{BlueViolet} \mathit{ instrucciones }}
 
 
   { \color{Sepia}      \mathit{ hasta \; que }} \;
   { \color{OliveGreen} \mathit{ condici \acute{o} n }}
















    •   Ejemplo

entero n
inicio
repita
escriba "Ingrese el numero cero (0) para salir: "
lea n
hasta n=0
fin    




viernes, 7 de noviembre de 2014

ESTRUCTURA CONDICIONAL Y CASO

2. Estructura Condicional Simple

Este es el tipo mas sencillo de estructura condicional. Sirve para implementar acciones condicionales del tipo siguiente:
Si se verifica una determinada condición, ejecutar una serie de instrucciones y luego seguir adelante. Si la condición NO se cumple, NO se ejecutan dichas instrucciones y se sigue adelante.
  • Sintaxis:
Si /*Condición*/ Entonces
/*Instrucciones*/
Fin Si







  • Ejemplo:
Entero edad
Inicio
Escriba "¿Cuál es tu edad?"
Lea edad 
Si edad >= 18 entonces
Escriba "Eres mayor de edad"
Fin si
Fin









3.Estructura Condicional Doble o Compuesta

Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas posibles en función del cumplimiento o no de una determinada condición. 

  • Sintaxis:
Si /*Condición*/ Entonces
/*Instrucciones*/
Sino
/*Instrucciones*/
Fin Si

  • Ejemplos:


Real cal

Cadena [25] nombre

Inicio

Escriba "Ingresar el nombre: "

Lea nombre
Escriba "Ingresar la calificación: "
Lea cal
Si cal > 3 entonces
Escriba "Alumno aprobado: ", nombre
Sino
Escriba "No aprobado!:  " ,nombre
Fin si
Fin

real num_neg , num_pos , calc
Inicio
Escriba "ingresar un numero negativo: "
Lea num_neg
Si (num_neg > 0) Entonces 
Escriba "Debe ingresar un numero menor de cero"
sino 
calc<- num_neg/(-1)
Escriba "el numero ingresado en positivo es: ", calc
Fin si
Fin






4. Estructura Condicional Anidada

La instrucción SI ANIDADA se utiliza para diseñar estructuras que contengan mas de dos alternativas.
  • Sintaxis:
Si condición 1 entonces
                  Instrucciones
                              Sino si condición 2 entonces
                                           Instrucciones
                                                      Sino si condición 2 entonces
                                                                   Instrucciones
                                                                                   Sino
                                                                                       Instrucciones
                                                       Fin si
                              Fin si
 Fin si




  • Ejemplos:
entero a, b ,c
inicio
 escriba "ingrese un  numero : "
 lea  a
 escriba "ingrese un  numero : "
 lea  b
 escriba "ingrese un  numero : "
 lea  c
 //para a//
 si (a mod 7=0) entonces
    escriba  a,"este valor es multiplo de 7 "
    llamar nueva_linea
sino 
   escriba   a,"este valor no es multiple de 7 "
    
//para b//
 si (b mod 7=0) entonces
    escriba  b,"este valor es multiplo de 7 " 
sino
   escriba   b,"este valor no es multiple de 7 "
    
//para c//
 si (c mod 7=0) entonces
    escriba  c,"este valor es multiplo de 7 "
sino
   escriba   c,"este valor no es múltiple de 7 "

fin si 
fin si
fin si
fin

5. Estructura Caso

Esta estructura se usa como sustituto en algunos casos del si anidado, por ser mas practico al aplicarlo en la evaluación de algunas condiciones.


  • Sintaxis:
  Inicio
              Caso variable
                valor 1, valor 2, valor 3:
                   Instrucciones
                valor 1, valor 2, valor 3:
                   Instrucciones
                        •
                        •
                  Sino
                   Instrucciones
              Fin caso
           Fin


  • Ejemplos:
entero n
inicio
escriba "Ingrese un n?mero: "
lea n
caso n
1:
escriba "El n?mero ingresado es igual a 1"
2:
escriba "El n?mero ingresado es igual a 2"
3:
escriba "El n?mero ingresado es igual a 3"
sino:
escriba "El n?mero ingresado es diferente de 1, de 2 y de 3"
fin caso
fin





ALGOTIMOS-ESTRUCTURA SECUENCIAL

ALGORITMO:

Serie de pasos organizados, Para la solución de un problema especifico.

  1. Estructura Secuencial  
La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. 

  • Estructura:


  • Ejemplos

entero base, altura, per, area
inicio
escriba "ingresar base del rectangulo: "
lea base

escriba "ingresar altura del rectangulo: "
lea altura
per<-(base*2)+(altura*2)
area<- base*altura
escriba "el perimetro del rectangulo es: ", per
llamar nueva_linea
escriba "el area del rectangulo es: ", area
fin





real sal_bruto , ret_fuente, sal_neto, sal_base
inicio
sal_bruto<-5000*4
ret_fuente<-(sal_bruto*12.5)/100

sal_neto<-sal_bruto-ret_fuente
escriba "el salario bruto es :" ,sal_bruto
llamar nueva_linea
escriba  " la retencion de la fuenete es:" ,ret_fuente
llamar nueva_linea
escriba  " el salario neto es:" , sal_neto
fin