viernes, 7 de septiembre de 2012

martes, 4 de septiembre de 2012

Ejercicios Pseint

Ya enseñé como utilizar el programa Pseint, así que para que prueben sus habilidades, traigo algunos problemas resueltos por mi, intenten resolverlos y probarlos en Psint. Si descargan una versión muy antigua deben fijarse en poner todas las variables en un principio, ya que Psint buscara el primer termino de la variable y no lo encontrará, en las versiones mas actuales no es necesario poner todas las variables con un valor inicial, solo aquellas que parten en un proceso y no algunas en las que se ingresa el valor. A continuación los ejercicios.

1)Se desea ingresar a un computador para procesarla, la siguiente información de alumnos de la Universidad:

  Número de matrícula
  Nombre
  Sexo 1 = masculino
           2 = femenino
           3 = fin de datos
  Edad
  Ingreso familiar

Confeccione un algoritmo que emita un listado con la siguiente información:

· Cuántos hombres poseen un ingreso familiar que esté comprendido entre $ 350.000 y $ 1.800.000.
· Cuántas mujeres cuya edad fluctúa entre 19 y 22 años, tienen un ingreso familiar superior a $ 700.000.
· La edad promedio de las mujeres y de los hombres.

* en este problema el programa debe finalizar cuando el usuario escriba 3 en la variable de sexo








2)Para efectos de contabilización y cálculo de las ventas diarias de un supermercado, se ideó la siguiente entrada de datos:

Código de producto
Unidades vendidas.
Tipo de envase 1 = envase de 3 kilos
                        2 = envase de 5 kilos
                        3 = envase de 9 kilos
                        4 = fin de datos

Los precios de venta dependen del tipo de producto y son los que se detallan a continuación:
                            
Tipo 1 $ 18,00 el kilo
Tipo 2 $ 16,00 el kilo
Tipo 3 $ 15,00 el kilo

El empresario requiere un listado diario que contenga la siguiente información:

· Un listado con código de producto, unidades vendidas, cantidad de kilos vendidos y el ingreso.
· Los ingresos totales obtenidos diarios así como los kilos vendidos.
· Se requiere saber cuál fué la cantidad más alta de kilos vendidos y a que código pertenece.









Solución a los problemas:

Si tienen alguna duda pueden probarlos en Pseint, ambos funcionan perfectamente. Recuerden que los ejercicios se pueden resolver de mas de una manera, ya que es un conjunto de ordenes lógicas, así que puede que algunos utilicen mas o menos lineas si se sabe como ahorrar espacio de manera lógica. Las respuestas que entrego no son absolutas:

Ejercicio 1:


Proceso Informacion_U
numero<-0
nombre<-" "
s<-0
edad<-0
ingreso<-0
h<-0
m<-0
eh<-0
em<-0
promh<-0
promm<-0
Mientras s<>3 Hacer
Escribir "Ingrese Numero de matricula"
Leer numero
Escribir "Ingrese Nombre del alumno"
leer nombre
Escribir "Ingrese Sexo del alumno, 1 hombre, 2 mujer, 3fin de datos"
Leer s
Escribir "Ingrese Edad del alumno"
Leer edad
Escribir "Ingrese Ingreso familiar del alumno"
leer ingreso
Si s=1 Entonces
cth<-cth+1
eh<-eh+edad
si ingreso<=1800000 y ingreso>=350000 Entonces
h<-h+1
FinSi
FinSi
si s=2 Entonces
ctm<-ctm+1
em<-em+edad
si edad<=22 y edad>=19 y ingreso>700000 Entonces
m<-m+1
FinSi
FinSi
FinMientras
si cth<>0 Entonces
promh<-eh/cth
FinSi
si ctm<>0 Entonces
promm<-em/ctm
FinSi
Escribir "la cantidad de hombres que poseen un ingreso familiar entre 350.000 y 1.800.000 es:", h
Escribir "la cantidad de mujeres con un ingreso superior a 700.000, entre los 19 y 22 años es:", m
Escribir "El promedio de edad de las mujeres es ", promm " y el promedio de edad de los hombres es ", promh
FinProceso


Ejercicio 2:

Proceso Kilos
codigo<-0
unidades_vendidas<-0
tipo_envase<-0
may<--100
codigomay<-0
ct1<-0
ct2<-0
ct3<-0
kg1<-0
kg2<-0
kg3<-0
mientras tipo_envase<>4 hacer
escribir "ingrese el codigo del producto"
leer codigo
escribir "ingrese unidades vendidas"
leer unidades_vendidas
escribir "ingrese tipo de envase del producto"
escribir "1=3kg; 2=5Kg; 3=9Kg; 4=Fin de datos"
leer tipo_envase
escribir ""
si tipo_envase=1 Entonces
ct1<-ct1+1
kg1<-kg1+3*unidades_vendidas
FinSi
si tipo_envase=2 Entonces
ct2<-ct2+1
kg2<-kg2+5*unidades_vendidas
FinSi
si tipo_envase=3 Entonces
ct3<-ct3+1
kg3<-kg3+9*unidades_vendidas
FinSi
si tipo_envase=1 y may<kg1 Entonces
may<-kg1
codigomay<-codigo
FinSi
si tipo_envase=2 y may<kg2 Entonces
may<-kg2
codigomay<-codigo
FinSi
si tipo_envase=3 y may<kg3 Entonces
may<-kg3
codigomay<-codigo
FinSi
escribir "el codigo es ",codigo," las unidades vendidas son de ",unidades_vendidas," unidades"
escribir "la cantidad de kilos vendidas son ",kg1+kg2+kg3," kilos"
escribir "el ingreso es de $",ct1*3*18+ct2*5*16+ct3*9*15
escribir ""
finmientras
ingresos_totales<-ct1*3*18 + ct2*5*16 + ct3*9*15
kg_totales_vendidos<-kg1+kg2+kg3
escribir ""
escribir ""
escribir "los ingresos totales son de $",ingresos_totales," y los kg totales vendidos son ",kg_totales_vendidos
escribir ""
escribir "la cantidad mas alta de kilos vendidos es de ",may," kilos, cuyo codigo es ",codigomay
FinProceso

Lenguaje Pseint

Anteriormente hablamos sobre los distintos lenguajes computacionales, entre ellos se encuentra el lenguaje del programa Pseint. Este lenguaje se basa en algoritmos, los cuales pueden formar distintos tipos de programas simples.

Pseint funciona con una serie de comandos lógicos, por lo que es simple su funcionamiento. Mientras mas se practique mas fácil se nos irá haciendo utilizarlo ya que iremos comprendiendo la lógica de este programa.

Sus comandos son

-Mientras (condición) hacer: Mientras se cumpla una condición, el programa debe hacer...
-Si (condición) Entonces: Si se cumple una condición el programa debe hacer...
-Escribir: escribir un enunciado con "" y/o una variable
-Leer: Leer una variable ingresada
- + : más
- - : menos
- < : menor
- >: mayor
- =: igual
- <>= distinto
- ^: Elevado a...
- y: para unir dos opciones
- o: para cualquiera de las dos opciones
- <-: equivalente a


Primero que todo se inicia el programa de la siguiente manera.

Programa (nombre del programa)


En este ejemplo haremos un programa que escriba los números pares del 1 al 50, para eso, necesitamos darle variables al programa, estas pueden ser cualquier letra excluyendo la "Y" ya que es un comando que se utiliza en  el lenguaje, entonces iniciamos el programa anteriormente

Programa Números

luego asignamos variables junto con un valor, como por ejemplo a x=0

Programa Números
x<-0

Para este ejercicio necesitaremos que un proceso se repita, entonces utilizaremos Mientras, esto sirve para que un proceso se repita mientras se cumplan ciertas condiciones, en este caso que los numeros sean menores o iguales al 50


Programa Números
x<-0
 Mientras x<=50 Hacer




Ahora debemos colocar el proceso que queremos, por lo tanto con una ecuación podemos darle valores pares a nuestra variable x, de la siguiente manera

Programa Números
x<-0
 Mientras x<=50 Hacer
    x<-x+2

Con esa ecuación, le estamos ordenando al programa convertir x en en el valor x y le sumamos 2, en este caso seria x=0+2, el proceso solo se hace una vez, por lo tanto x solo tomara el valor de 2. Ya tenemos nuestro primer numero, pero necesitamos que se vea el resultado, para eso usamos el comando "escribir"


Programa Números
x<-0
 Mientras x<=50 Hacer
    x<-x+2
    Escribir x

Con eso el programa mosrtará en pantalla nuestro valor de x, como ya esta listo nuestro numero finalizamos el proceso


Programa Números
x<-0
 Mientras x<=50 Hacer
    x<-x+2
   Escribir x
 FinMientras

FinMientras significa que acabo el proceso, pero nuestra x solo ha tomado el valor de 2 y le dimos la orden de trabajar mientas x sea menor a 50, por lo tanto el proceso se repetirá, y en esta ocasión nuestra ecuación sera x=2+2, ya que el valor de x no vuelve a 0, sino que queda con el ultimo valor que le dimos, por lo tanto nuestro programa esta listo, para eso le damos la orden de terminar


Programa Números
x<-0
  Mientras x<=50 Hacer
    x<-x+2
    Escribir x
  FinMientras
Finprograma

Como pueden ver es un programa que funciona con lógica. en caso de que hubiésemos querido los pares entre 10 y 50 tendríamos que haber puesto el comando Si, el cual "si es que" se cumple una condición, entonces se realiza el proceso, generalmente se ocupa dentro del mientras, ya que solo excluye ciertos términos y no vuelve a repetir el proceso, por lo tanto utilizaremos nuestro programa anterior, pero le colocaremos un si a nuestro "Escribir" ya que este solo debe funcionar con los números superiores e iguales a 10, entonces.



Programa Números
x<-0
  Mientras x<=50 Hacer
    x<-x+2
    Si x>=10 Entonces
       Escribir x
    FinSi
  FinMientras
Finprograma



Hay que recordar terminar cualquier condicionante tanto como el programa, sin el Fin, el proceso tendrá un error ya que no sabrá en que parámetros debe trabajar. En el caso que quicieramos obtener los numeros pares menores a un numero cualquiera, utilizaremos otra variable, en este caso la variable "cantidad". No es necesario que las variables sean solo una letra, estas pueden ser palabras, conjuntos de letras e incluso letras y números. Volvamos a tomar nuestro primer programa


Programa Números
x<-0
  Mientras x<=50 Hacer
    x<-x+2
    Escribir x
  FinMientras
Finprograma

Queremos que el programa escriba pares a nuestro antojo, por lo tanto cambiaremos el 50 por una variable


Programa Números
x<-0
cantidad<-0
  Mientras x<=cantidad Hacer
    x<-x+2
    Escribir x
  FinMientras
Finprograma




En este caso el programa funcionara solo 1 vez, ya que tanto x como cantidad es 0. Asi que utilizaremos el comando escribir para pedirle a nuestro usuario que ingrese hasta que numero desea tener pares.





Programa Números
x<-0
cantidad<-0
Escribir "ingrese numero limite"
  Mientras x<=cantidad Hacer
    x<-x+2
    Escribir x
  FinMientras
Finprograma







De esta manera, el usuario ingresara el limite de pares que deseé. El "Escribir" debe ir fuera del mientras, ya que solo pediremos el numero una vez, si va dentro del mientras, nos pedira cambiar la variable cada vez que se repita el proceso, pero nuestra variable sigue siendo 0 a pesar de que le pedimos al usuario que ingrese un numero, para que nuestra variable tome el valor deseado usamos el comando "leer"



Programa Números
x<-0
cantidad<-0
Escribir "ingrese numero limite"
Leer cantidad
  Mientras x<=cantidad Hacer
    x<-x+2
    Escribir x
  FinMientras
Finprograma

El comando leer, cambiara el valor de la variable por el numero que ingresemos, por lo tanto si ponemos 10, el mientras funcionara cuando x sea menor o igual a 10.