miércoles, 3 de mayo de 2017

HISTORIA DE JAVA Y PROGRAMACION ORIENTADA A OBJETOS

HISTORIA

Java se creó como una herramienta de programación para ser usada en un proyecto de set top box en una pequeña operación denominada the Green Project en Sun Microsystems en el año 1991. El equipo (Green Team), compuesto por trece personas y dirigido por james gosling, trabajó durante 18 meses en Sand Hill Road en Menlo Park en su desarrollo.
El lenguaje se denominó inicialmente Oak (por un roble que había fuera de la oficina de Gosling), luego pasó a denominarse Green tras descubrir que Oak era ya una marca comercial registrada para adaptadores de tarjetas gráficas y finalmente se renombró a Java.
Es frecuentada por algunos de los miembros del equipo. Pero no está claro si es un acrónimo o no, aunque algunas fuentes señalan que podría tratarse de las iniciales de sus diseñadores: James Gosling, Arthur Van Hoff, y Andy Bechtolsheim. Otros abogan por el siguiente acrónimo, Just Another Vague Acronym ("sólo otro acrónimo ambiguo más"). La hipótesis que más fuerza tiene es la de que Java debe su nombre a un tipo de café disponible en la cafetería cercana, de ahí que el icono de java sea una taza de café caliente. Un pequeño signo que da fuerza a esta teoría es que los 4 primeros bytes (el número mágico) de los archivos.class que genera el compilador, son en hexadecimal, 0xCAFEBABE. A pesar de todas estas teorías, el nombre fue sacado al parecer de una lista aleatoria de palabras.
Los objetivos de Gosling eran implementar una máquina virtual y un lenguaje con una estructura y sintaxis similar a c++. Entre junio y julio de 1994, tras una sesión maratoniana de tres días entre John Gaga, James Gosling, Patrick Naughton, Wayne Rosing y Eric Schmidt, el equipo reorientó la plataforma hacia la Web. Sintieron que la llegada del navegador web mosaic, propiciaría que Internet se convirtiese en un medio interactivo, como el que pensaban era la televisión por cable. Naughton creó entonces un prototipo de navegador, WebRunner, que más tarde sería conocido como hot java.
En 1994, se les hizo una demostración de HotJava y la plataforma Java a los ejecutivos de Sun. Java 1.0a pudo descargarse por primera vez en 1994, pero hubo que esperar al 23 de mayo de 1995, durante las conferencias de SunWorld, a que vieran la luz pública Java y HotJava, el navegador Web. El acontecimiento fue anunciado por John Gage, el Director Científico de Sun Microsystems. El acto estuvo acompañado por una pequeña sorpresa adicional, el anuncio por parte de Marc Andreessen, Vicepresidente Ejecutivo de Netscape, de que Java sería soportado en sus navegadores. El 9 de enero del año siguiente, 1996, Sun fundó el grupo empresarial JavaSoft para que se encargase del desarrollo tecnológico.  Dos semanas más tarde la primera versión de Java fue publicada.
La promesa inicial de Gosling era Write Once, Run Anywhere (Escríbelo una vez, ejecútalo en cualquier lugar), proporcionando un lenguaje independiente de la plataforma y un entorno de ejecución (la jvm) ligero y gratuito para las plataformas más populares de forma que los binarios (bytecode) de las aplicaciones Java pudiesen ejecutarse en cualquier plataforma.
El entorno de ejecución era relativamente seguro y los principales navegadores web pronto incorporaron la posibilidad de ejecutar applets Java incrustadas en las páginas web.
Java ha experimentado numerosos cambios desde la versión primigenia, jdk 1.0, así como un enorme incremento en el número de clases y paquetes que componen la biblioteca estándar.
Desde j2se 1.4, la evolución del lenguaje ha sido regulada por el JCP (java comunity proccess), que usa Java Specification Requests (JSRs) para proponer y especificar cambios en la plataforma Java. El lenguaje en sí mismo está especificado en la Java Language Specification (JLS), o Especificación del Lenguaje Java. Los cambios en los JLS son gestionados en jsr 901.
  • JDK 1.0 (23 de enero de 1996) — Primer lanzamiento:comunicado de prensa
  • JDK 1.1 (19 de febrero de 1997) — Principales adiciones incluidas: comunicado de prensa
    • una reestructuración intensiva del modelo de eventos AWT (Abstract Windowing Toolkit)
    • clases internas (inner classes)
    • java bean
    • jdbc (Java Database Connectivity), para la integración de bases de datos
    • rmi (Remote Method Invocation)
  • J2SE 1.2 (8 de diciembre de 1998) — Nombre clave Playground. Esta y las siguientes versiones fueron recogidas bajo la denominación Java 2 y el nombre "J2SE" (Java 2 Platform, Standard Edition), reemplazó a JDK para distinguir la plataforma base de J2EE (Java 2 Platform, Enterprise Edition) y J2ME (Java 2 Platform, Micro Edition). Otras mejoras añadidas incluían: comunicado de presna
    • la palabra reservada (keyword) stirctfp
    • reflexion de la programacion
    • la API gráfica ( swing) fue integrada en las clases básicas
    • la máquina virtual (JVM) de Sun fue equipada con un compilador jit (Just in Time) por primera vez
    • java plug in
    • java idl, una implementación de IDL (Lenguaje de Descripción de interfaz) para la interoperabilidad con corba
    • Colecciones (collections)
  • J2SE 1.3 (8 de mayo de 2000) — Nombre clave Kestrel. Los cambios más notables fueron:comunicado de prensa lista de cambios completos
    • la inclusión de la máquina virtual de hotspot  JVM (la JVM de HotSpot fue lanzada inicialmente en abril de 1999, para la JVM de J2SE 1.2)
    • rmi fue cambiado para que se basara en corba
    • javasound
    • se incluyó el java naming (JNDI) en el paquete de bibliotecas principales (anteriormente disponible como una extensión)
    • Java Platform Debugger Architecture (JPDA)
  • J2SE 1.4 (6 de febrero de 2002) — Nombre Clave Merlin. Este fue el primer lanzamiento de la plataforma Java desarrollado bajo el Proceso de la Comunidad Java como JSR 59. Los cambios más notables fueron: comunicado de prensalista completa de cambios
    • Palabra reservada assert (Especificado en JSR 41.)
    • Expresiones regulares modeladas al estilo de las expresiones regulares Perl
    • Encadenación de excepciones Permite a una excepción encapsular la excepción de bajo nivel original.
    • non-blocking NIO (New Input/Output) (Especificado en JSR 51.)
    • Logging API (Specified in JSR 47.)
    • API I/O para la lectura y escritura de imágenes en formatos como JPEG o PNG
    • Parser XML integrado y procesador XSLT (JAXP) (Especificado en JSR 5 y JSR 63.)
    • Seguridad integrada y extensiones criptográficas (JCE, JSSE, JAAS)
    • Java Web Start incluido (El primer lanzamiento ocurrió en marzo de 2001 para J2SE 1.3) (Especificado en JSR 56.)
  • J2SE 5.0 (30 de septiembre de 2004) — Nombre clave: Tiger. (Originalmente numerado 1.5, esta notación aún es usada internamente.) Desarrollado bajo JSR 176, Tiger añadió un número significativo de nuevas características comunicado de prensa
    • Plantillas (genéricos) — provee conversión de tipos (type safety) en tiempo de compilación para colecciones y elimina la necesidad de la mayoría de conversión de tipos (type casting). (Especificado por JSR 14.)
    • Metadatos — también llamados anotaciones, permite a estructuras del lenguaje como las clases o los métodos, ser etiquetados con datos adicionales, que puedan ser procesados posteriormente por utilidades de proceso de metadatos. (Especificado por JSR 175.)
    • Autoboxing/unboxing — Conversiones automáticas entre tipos primitivos (Como los int) y clases de envoltura primitivas (Como Integer). (Especificado por JSR 201.)
    • Enumeraciones — la palabra reservada enum crea una typesafe, lista ordenada de valores (como Dia.LUNES, Dia.MARTES, etc.). Anteriormente, esto solo podía ser llevado a cabo por constantes enteras o clases construidas manualmente (enum pattern). (Especificado por jsr 201.)
    • Varargs (número de argumentos variable) — El último parámetro de un método puede ser declarado con el nombre del tipo seguido por tres puntos (e.g. void drawtext(String... lines)). En la llamada al método, puede usarse cualquier número de parámetros de ese tipo, que serán almacenados en un array para pasarlos al método.
    • bucle for mejorado — La sintaxis para el bucle for se ha extendido con una sintaxis especial para iterar sobre cada miembro de un array o sobre cualquier clase que implemente iterable, como la clase estándar colection, de la siguiente forma:
 void displayWidgets (Iterable<Widget> widgets) {
     for (Widget w : widgets) {
         w.display();
     }
 }
Este ejemplo itera sobre el objeto Iterable widgets, asignando, en orden, cada uno de los elementos a la variable w, y llamando al método display() de cada uno de ellos. (Especificado por JSR 201.)
  • Java SE 6 (11 de diciembre de 2006) — Nombre clave mustang. Estuvo en desarrollo bajo la JSR. En esta versión, Sun cambió el nombre "J2SE" por Java SE y eliminó el ".0" del número de versión.. Está disponible en http://java.sun.com/javase/6/. Los cambios más importantes introducidos en esta versión son:
    • Incluye un nuevo marco de trabajo y APIs que hacen posible la combinación de Java con lenguajes dinámicos como PHP, Python, Ruby y JavaScript.
    • Incluye el motor Rhino, de Mozilla, una implementación de Javascript en Java.
    • Incluye un cliente completo de Servicios Web y soporta las últimas especificaciones para Servicios Web, como JAX-WS 2.0, JAXB 2.0, STAX y JAXP.
    • Mejoras en la interfaz gráfica y en el rendimiento.
  • Java SE 7 — Nombre clave Dolphin. En el año 2006 aún se encontraba en las primeras etapas de planificación. Su lanzamiento fue en julio de 2011.
    • Soporte para XML dentro del propio lenguaje.
    • Un nuevo concepto de superpaquete.
    • Soporte para closures.
    • Introducción de anotaciones estándar para detectar fallos en el software.
  • No oficiales:
    • NIO2.
    • Java Module System.
    • Java Kernel.
    • Nueva API para el manejo de Días y Fechas, la cual reemplazara las antiguas clases Date y Calendar.
    • Posibilidad de operar con clases BigDecimal usando operandos.
  • Java SE 8 — lanzada en marzo de 2014. Cabe destacar:
    • Incorpora de forma completa la librería JavaFX.
    • Diferentes mejoras en seguridad.
    • Diferentes mejoras en concurrencia.
    • Añade funcionalidad para programación funcional mediante expresiones Lambda.
    • Mejora la integración de JavaScript.
    • Nuevas API para manejo de fechas y tiempo (date - time).
  • java se 9 — prevista para 23 de Marzo del 2017:
En el 2005 se calcula en 4,5 millones el número de desarrolladores y 2.500 millones de dispositivos habilitados con tecnología Java.

PROGRAMACION ORIENTADA A OBJETOS


La programación orientada a objetos (POO, u OOP según sus siglas en inglés) es un paradigma de programación que viene a innovar la forma de obtener resultados. Los objetos manipulan los datos de entrada para la obtención de datos de salida específicos, donde cada objeto ofrece una funcionalidad especial.
Muchos de los objetos pre-diseñados de los lenguajes de programación actuales permiten la agrupación en bibliotecas o librerías, sin embargo, muchos de estos lenguajes permiten al usuario la creación de sus propias bibliotecas.
Está basada en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento.
Su uso se popularizó a principios de la década de 1990. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos.

Origen

Los conceptos de la POO tienen origen en Simula 67, un lenguaje diseñado para hacer simulaciones, creado por Ole-Johan Dahl y Kristen Nygaard, del Centro de Cómputo Noruego en Oslo. En este centro se trabajaba en simulaciones de naves, que fueron confundidas por la explosión combinatoria de cómo las diversas cualidades de diferentes naves podían afectar unas a las otras. La idea surgió al agrupar los diversos tipos de naves en diversas clases de objetos, siendo responsable cada clase de objetos de definir sus "propios" datos y comportamientos. Fueron refinados más tarde en Smalltalk, desarrollado en Simula en Xerox PARC (cuya primera versión fue escrita sobre Basic) pero diseñado para ser un sistema completamente dinámico en el cual los objetos se podrían crear y modificar "sobre la marcha" (en tiempo de ejecución) en lugar de tener un sistema basado en programas estáticos.
La POO se fue convirtiendo en el estilo de programación dominante a mediados de los años 1980, en gran parte debido a la influencia de C++, una extensión del lenguaje de programación C. Su dominación fue consolidada gracias al auge de las interfaces gráficas de usuario, para las cuales la POO está particularmente bien adaptada. En este caso, se habla también de programación dirigida por eventos.
Las características de orientación a objetos fueron agregadas a muchos lenguajes existentes durante ese tiempo, incluyendo Ada, BASIC, Lisp más Pascal, entre otros. La adición de estas características a los lenguajes que no fueron diseñados inicialmente para ellas condujo a menudo a problemas de compatibilidad y en la capacidad de mantenimiento del código. Los lenguajes orientados a objetos "puros", por su parte, carecían de las características de las cuales muchos programadores habían venido a depender. Para saltar este obstáculo, se hicieron muchas tentativas para crear nuevos lenguajes basados en métodos orientados a objetos, pero permitiendo algunas características imperativas de maneras "seguras". El lenguaje de programación Eiffel de Bertrand Meyer fue un temprano y moderadamente acertado lenguaje con esos objetivos, pero ahora ha sido esencialmente reemplazado por Java, en gran parte debido a la aparición de Internet y a la implementación de la máquina virtual Java en la mayoría de navegadores web. PHP en su versión 5 se ha modificado; soporta una orientación completa a objetos, cumpliendo todas las características propias de la orientación a objetos.

CLASES DE POO

Las clases son declaraciones de objetos, también se podrían definir como abstracciones de objetos. Esto quiere decir que la definición de un objeto es la clase. Cuando programamos un objeto y definimos sus características y funcionalidades en realidad lo que estamos haciendo es programar una clase. En los ejemplos anteriores en realidad hablábamos de las clases coche o fracción porque sólo estuvimos definiendo, aunque por encima, sus formas.
Propiedades en clases
Las propiedades o atributos son las características de los objetos. Cuando definimos una propiedad normalmente especificamos su nombre y su tipo. Nos podemos hacer a la idea de que las propiedades son algo así como variables donde almacenamos datos relacionados con los objetos.
Métodos en las clases
Son las funcionalidades asociadas a los objetos. Cuando estamos programando las clases las llamamos métodos. Los métodos son como funciones que están asociadas a un objeto.

Objetos en POO

Los objetos son ejemplares de una clase cualquiera. Cuando creamos un ejemplar tenemos que especificar la clase a partir de la cual se creará. Esta acción de crear un objeto a partir de una clase se llama instanciar (que viene de una mala traducción de la palabra instace que en inglés significa ejemplar). Por ejemplo, un objeto de la clase fracción es por ejemplo 3/5. El concepto o definición de fracción sería la clase, pero cuando ya estamos hablando de una fracción en concreto 4/7, 8/1000 o cualquier otra, la llamamos objeto.
Para crear un objeto se tiene que escribir una instrucción especial que puede ser distinta dependiendo el lenguaje de programación que se emplee, pero será algo parecido a esto.
miCoche = new Coche()
Con la palabra new especificamos que se tiene que crear una instancia de la clase que sigue a continuación. Dentro de los paréntesis podríamos colocar parámetros con los que inicializar el objeto de la clase coche.
Estados en objetos
Cuando tenemos un objeto sus propiedades toman valores. Por ejemplo, cuando tenemos un coche la propiedad color tomará un valor en concreto, como por ejemplo rojo o gris metalizado. El valor concreto de una propiedad de un objeto se llama estado.
Para acceder a un estado de un objeto para ver su valor o cambiarlo se utiliza el operador punto.
miCoche.color = rojo
El objeto es miCoche, luego colocamos el operador punto y por último el nombre e la propiedad a la que deseamos acceder. En este ejemplo estamos cambiando el valor del estado de la propiedad del objeto a rojo con una simple asignación.
Mensajes en objetos
Un mensaje en un objeto es la acción de efectuar una llamada a un método. Por ejemplo, cuando le decimos a un objeto coche que se ponga en marcha estamos pasándole el mensaje “ponte en marcha”.
Para mandar mensajes a los objetos utilizamos el operador punto, seguido del método que deseamos invocar.
miCoche.ponerseEnMarcha()
En este ejemplo pasamos el mensaje ponerseEnMarcha(). Hay que colocar paréntesis igual que cualquier llamada a una función, dentro irían los parámetros.

Características de la POO

Existe un acuerdo acerca de qué características contempla la "orientación a objetos". Las características siguientes son las más importantes:
ABSTRACCION
 
Denota las características esenciales de un objeto, donde se capturan sus comportamientos. Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar "cómo" se implementan estas características. Los procesos, las funciones o los métodos pueden también ser abstraídos, y, cuando lo están, una variedad de técnicas son requeridas para ampliar una abstracción. El proceso de abstracción permite seleccionar las características relevantes dentro de un conjunto e identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo real. La abstracción es clave en el proceso de análisis y diseño orientado a objetos, ya que mediante ella podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el problema que se quiere atacar.
 
ENCAPSULAMIENTO

Significa reunir todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesión (diseño estructurado) de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultación, principalmente porque se suelen emplear conjuntamente.
 
POLIMORFISMO

Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre; al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando. O, dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre en "tiempo de ejecución", esta última característica se llama asignación tardía o asignación dinámica. Algunos lenguajes proporcionan medios más estáticos (en "tiempo de compilación") de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++.
 
HERENCIA

Las clases no se encuentran aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento, permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que volver a implementarlo. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en árboles o enrejados que reflejan un comportamiento común. Cuando un objeto hereda de más de una clase se dice que hay herencia múltiple; siendo de alta complejidad técnica por lo cual suele recurrirse a la herencia virtual para evitar la duplicación de datos.
 
MODULARIDAD

Se denomina "modularidad" a la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes. Estos módulos se pueden compilar por separado, pero tienen conexiones con otros módulos. Al igual que la encapsulación, los lenguajes soportan la modularidad de diversas formas.
 
PRINCIPIO DE LA OCULTACION

Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una "interfaz" a otros objetos que especifica cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas; solamente los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no puedan cambiar el estado interno de un objeto de manera inesperada, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstracción. La aplicación entera se reduce a un agregado o rompecabezas de objetos.
 
RECOLECCION DE BASURA
 
La recolección de basura (garbage collection) es la técnica por la cual el entorno de objetos se encarga de destruir automáticamente, y por tanto desvincular la memoria asociada, los objetos que hayan quedado sin ninguna referencia a ellos. Esto significa que el programador no debe preocuparse por la asignación o liberación de memoria, ya que el entorno la asignará al crear un nuevo objeto y la liberará cuando nadie lo esté usando. En la mayoría de los lenguajes híbridos que se extendieron para soportar el Paradigma de Programación Orientada a Objetos como C++ u Object Pascal , esta característica no existe y la memoria debe desasignarse expresamente.
 
 
WEBGRAFIA
https://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos
https://es.wikipedia.org/wiki/Java_(lenguaje_de_programaci%C3%B3n)#Orientado_a_objetos
https://www.desarrolloweb.com/articulos/499.php|





miércoles, 19 de abril de 2017

EJERCICIO 10 vectores

Cristian Mateo Pataquiva Bello

101   diurno  ING SISTEMAS

NOMBRE : VECTORES

OBJETIVO:

practicar:

entradas
salidas
variables- asignacion
simples y cmputadoras
operadores logicos
operadores aritmeticos
conocer DFD PSI , pseudocodigo

 DESARROLLO
esta practica o ejercicio fue bastante distinto ya que se utilizaron incrementos para que nos diera el calculo correspondiente


EJERCICIO
    dimension A[6]
    Para I<-1 Hasta 6 Con Paso 1 Hacer
        escribir "digite posicion  ",I;
        leer A[I];
       
       
       
       
    Fin Para
    Para I<-1 Hasta 6 Con Paso 1 Hacer
        escribir " " ,A[I] sin saltar;
       
       
    Fin Para
FinAlgoritmo

EJERCICIO 2
dimension A[3,3]
    Para I<-1 Hasta 3 Con Paso 1 Hacer
        Para j<-1 Hasta 3 Con Paso 1 Hacer
            Escribir "digite posicion" I, J ;
            leer A[I,J]
           
           
           
        Fin Para
    Fin Para
    Para I<-1 Hasta 3 Con Paso 1 Hacer
        Para J<-1 Hasta 3 Con Paso 1 Hacer
            escribir "", A[I,J]  Sin Saltar
        Fin Para
        escribir " ";
    Fin Para
   
   
FinAlgoritmo


COMPLICACIONES
Las complicaciones que se tuvieron fue en la parte del orden de las variables y constantes ya que se utilizo la condicion de dimensiones y para.

APRENDIZAJE
Lo que se aprendio fue que cada vez debemos buscar mejores soluciones que nos llevan a resolver un problema.

MEJORAS
Las mejoras que se vieron es que cada vez se va aprendiendo mejores condiciones en diferentes lenguajes

CONCLUSION
siempre busca la manera mas simplificada o sencilla para resolver los problemas que se presenten dia a dia.

ejercicio 9 tablas de multiplicar

Cristian Mateo Pataquiva Bello

101   diurno  ING SISTEMAS

NOMBRE : TABLAS DE MULTIPLICAR


OBJETIVO:

practicar:

entradas
salidas
variables- asignacion
simples y cmputadoras
operadores logicos
operadores aritmeticos
conocer DFD PSI , pseudocodigo

DESARROLLO
este ejrcicio para hacerlo fue diferente y ala vez practico ya que se empezo a emplear contadores y acumuladores para que asi nos den las tablas de multiplicar

EJERCICIO
leer tm res;
    con<-1
    mientras (con<=10) Hacer
        escribir res=tm*con
        escribir tm ,"*", con ,"=", res;
        con <- con +1
      
      
    FinMientras
   
FinAlgoritmo

 COMPLICACIONES
Las complicaciones que se tuvieron fue en la parte del orden de las variables y constantes y tambien los contadores y acumuladores ya que el idioma que utiliza el computador es un poco diferente al nuestro ( claro que en partes es un poco igual ) pero aun asi se debe saber que se debe escribir para que el programa ejecute y no de errores.
 

APRENDIZAJE
Lo que se aprendio fue que cada vez debemos buscar mejores soluciones que nos llevan a resolver un problema.

MEJORAS
Las mejoras que se vieron es que cada vez se va aprendiendo mejores condiciones en diferentes parametros

CONCLUSION
todo lo que aprendas servira de alguna manera para tu vida.

ejercicio 8 serie numerica

Cristian Mateo Pataquiva Bello

101   diurno  ING SISTEMAS

NOMBRE : SERIE NUMERICA

OBJETIVO:

practicar:
condicionales multiples
condicionales anidados
selección múltiple
 escrituras
variables
salidas del sistema
variables-asignacion
simples y computadoras
operadores logicos: y o
operadores aritmeticos +* % = > <
conocer DFD PSINT
pseudocodigo

DESARROLLO
en esta practica fue un poco diferente ala anterior ya que me empezaron a utilizar condicionales mas serios para que el programa o algoritmo funcione perfectamente y ala vez es muy bueno aprender cada vez mas por medio de practicas que por este medio se aprende de una manera mas sencilla.

EJERCICIO
Algoritmo serie_numerica
    wrt=0
    mientras wtr<6 Hacer
        escribir menu de opciones
        escribir "1: numeros pares"
        escribir "2: numeros impares"
        escribir "3: numeros primos"
        escribir "4: numeros fibunacci"
        escribir "5: numeros factoriales"
        escribir "6: salir"
        escribir "elija una opcion para habilitar el menu"
        leer wtr
        segun wtr hacer

EJERCICIO 1 NUMEROS PARES

            1: escribir"numeros pares"
                an=0
                mientras an < 3 hacer
                    escribir "menu opciones"
                    escribir "1: incremento";
                    escribir "2: decremento";
                    escribir "3: salir";
                    escribir "dijite las opciones para asi habilitar el menu"
                    leer an
                    segun an hacer
                        1: escribir "incremento";
                            leer inc;
                            escribir "digite valor inicial"
                            leer VI;
                            escribir "digite valor final"
                            leer VF;
                            si (VI < VF ) entonces
                              
                                c=VI
                                mientras c<=VF hacer
                                    escribir c
                                    c=c+inc
                                  
                                  
                                FinMientras
                            sino
                                escribir "no se puede"
                              
                              
                            FinSi
                          
                        2: escribir "decremento"
                            leer DEC;
                            escribir "valor inicial"
                            escribir "digite valor inicial"
                            leer VI;
                            escribir "digite valor final"
                            leer VF;
                            si (VI > VF ) entonces
                              
                                c=VI
                                mientras c>=VF hacer
                                    escribir c
                                    c=c-DEC
                                  
                                  
                                FinMientras
                            sino
                                escribir "no se puede"
                              
                              
                            FinSi
                          
                        3: escribir "salir"      
                          
                    FinSegun
                FinMientras

EJERCICIO 2  NUMEROS IMPARES

            2: escribir "numeros impares"
              
                adv =0
                mientras abv<2 hacer
                    escribir "menu de opciones"
                    escribir "1:numeros impares"
                    escribir "2:salir"
                    escribir " elija una opcion para asi habilitar el menu"
                    leer abv
                    segun abv hacer
                        1: escribir "numeros impares"
                            agh=0
                            mientras agh<3 Hacer
                                escribir "menu de opciones"
                                escribir "1:incremento"
                                escribir "2:decremento"
                                escribir "3:salir"
                                leer agh
                                segun agh hacer
                                    1: escribir "incremento"
                                        Para i<-1000 Hasta 2000 Con Paso 2 Hacer
                                            escribir" el valor es", i
                                          
                                          
                                        Fin Para
                                    2: escribir "decremento"
                                        Para i<-8000 Hasta 7000 Con Paso -2 Hacer
                                            escribir" el valor es", i
                                          
                                          
                                        Fin Para
                                    3: escribir "salir"
                                      
                                      
                                FinSegun
                              
                            FinMientras
                        2: escribir "salir"  
                    FinSegun
                  
                FinMientras

EJERCICIO 3 NUMEROS PRIMOS

            3: escribir "numeros primos"
                dfh=0
                mientras dfh<2 hacer
                    escribir "menu de opciones"
                    escribir "1: numeros primos"
                    escribir "2: salir"
                    escribir "digite un numero para asi habilitar el menu"
                    leer dfh
                    segun dfh hacer
                        1:escribir "numeros pirmos"
                            d<- 1;
                            mientras d <= 100 Hacer
                                g <-1;
                                i <-0;
                                mientras g<=d Hacer
                                    si d % g = 0 Entonces
                                        i<- i + 1 ;
                                    FinSi
                                    g<- g+1;
                                  
                                FinMientras
                                si i = 2 entonces
                                    escribir d;
                                FinSi
                                d<- d+1;
                            FinMientras
                          
                          
                        2: escribir "salir"
                    FinSegun
                FinMientras

 EJERCICIO 4 NUMEROS FIBONACCI

            4: escribir "numeros fibonnacci"

                bhn=0
                mientras bhn<2 Hacer
                    escribir "menu de opciones";
                    escribir "1 numeros fibonacci";
                    escribir "2 salir";
                    escribir "escriba las opciones para habilitar el menu";
                    leer bhn
                    segun bhn hacer
                        1:escribir "nuemros fibonacci"
                            abc=0
                            mientras abc<3 Hacer
                                escribir "menu de opciones"
                                escribir "1 incremento"
                                escribir "2 decremento"
                                escribir "3 salir"
                                escribir "escriba cualquiera de las 3 opciones para habilitar el menu"
                                leer abc
                                segun abc hacer
                                    1: escribir " incremento"
                                        a<-0;
                                        b<-1;
                                        escribir "escriba el numero n que desee para que imprima la serie"
                                        numero<-0
                                        leer numero
                                      
                                        Para I<-0 Hasta numero  Con Paso 1 Hacer
                                            escribir a;
                                            R<- a+b;
                                            b<-a
                                            a<-R
                                        Fin Para
                                    2: escribir "decremento"
                                        a<-0;
                                        b<-(-1);
                                        escribir "escriba el numero negativo que desee para que imprima la serie"
                                        numero<-0
                                        leer numero
                                      
                                        Para I<-0 Hasta numero  Con Paso -1 Hacer
                                            escribir a;
                                            R<- a+b;
                                            b<-a
                                            a<-R
                                        Fin Para
                                    3: escribir "salir"  
                                FinSegun
                              
                            FinMientras
                        2:escribir "salir"  
                          
                    FinSegun
                FinMientras

EJERCICIO 5 NUMEROS FACTORIALES

            5: escribir "numero factoriales"
                gjh=0
                mientras gjh<2 hacer
                    escribir "menu de opciones"
                    escribir "1:numeros factoriales"
                    escribir "2:salir"
                    escribir "digite un numero para asi desplegar el menu"
                    leer gjh
                    segun gjh hacer
                        1: escribir "numeros factoriales"
                            escribir " escriba un numero"
                            leer bn
                            onm<-1
                          
                            si bn >=0 Entonces
                                Para I<-1 Hasta bn Con Paso 1 Hacer
                                    onm <-onm*I;
                                  
                                Fin Para
                                escribir " elfactorial es:" , onm;
                              
                            sino
                                escribir "no es factorial"
                              
                              
                            FinSi
                        2: escribir "salir"  
                    FinSegun
                FinMientras
            6: escribir "salir"
              
        FinSegun
    FinMientras
   
FinAlgoritmo

COMPLICACIONES
Las complicaciones que se tuvieron fue en la parte del orden de las variables y constantes ya que el idioma que utiliza el computador es un poco diferente al nuestro ( claro que en partes es un poco igual ) pero aun asi se debe saber que se debe escribir para que el programa ejecute y no de errores.
  adeamas de esto se me dificulto un poco ya que toco todo acomodarlo en varios menus de opciones
y ademas toma tiempo para acomodarlo para que asi se ejecute todo perfectamente

APRENDIZAJE
Lo que se aprendio fue que cada vez debemos buscar mejores soluciones que nos llevan a resolver un problema.

MEJORAS
Las mejoras que se vieron es que cada vez se va aprendiendo mejores condiciones en diferentes variables

CONCLUSION
siempre busca la manera mas simplificada o sencilla para resolver los problemas que se presenten dia a dia.

WEBGRAFIA
https://www.youtube.com/watch?v=znSLNECyKz8&t=127s
https://www.youtube.com/watch?v=NxBsz0unGbs&t=612s
https://www.youtube.com/watch?v=1Dnzy1uMfzM
https://www.youtube.com/watch?v=QigX_NaYXkU


lunes, 17 de abril de 2017

ejercicio 7 horoscopo

Cristian Mateo Pataquiva Bello

101   diurno  ING SISTEMAS

NOMBRE : HOROSCOPO

OBJETIVO:

practicar:

entradas
salidas
variables- asignacion
simples y cmputadoras
operadores logicos
operadores aritmeticos
conocer DFD PSI , pseudocodigo

DESARROLLO:

fue muy bonito ya que por medio de programas  y/o aplicaciones se puede ir mas a fondo del computador y poder practicar algoritmos sencillos o mas complejos que ayudaran a resolver problemas que se planteen o que se vean cada dia y que esta sea la base para cada vez ser mas practicos y mas experimentados frente a estos temas y que todo se vea o se haga de una manera mas sencilla.

EJERCICIO
escribir "tu fecha de nacimiento el dia y el numero del mes y te dire como te ira este año 2017"
                            leer A1,A2
                            si A1>=21 Y A2=3 o A1<=20 y A2=4 entonces
                                escribir "tu signo es aries ++++++++++++. mira aries tienes que hacer un esfuerzo para salir de tu propio mundo y hallar el punto de encuentro o de armonia con los demas. de hecho tienes una gran oportunidad para enovar tues relaciones personales, empezando por las mas estrechas, como puede ser pareja o alli donde tengas importantes vinculos. es tiempo de hallar nuevos estimulos o recuperar ilusiones. si sabes aprovechar la ocasion sera un gran momento para crear sinergias , participar en actividades sociales firmar contratos y crescer en compañia o precisamente merced a las mismas. pero tambien sera un año que puede cambiar tu estatus legal de modo que te conviene contar con un buen asesoramiento ante cualquier paso que vallas a dar. sabes escuchar,negociar y consesuar seran las claves de este año. no obstante tampoco es cuestion de rendirse a cualquier propuesta ni de hacer promesas."  
                               
                            FinSi
                            si A1>=21 Y A2=4 O A1<=20 y A2=5 Entonces
                                escribir "tu signo es tauro ++++++++++++. mira tauro estas ante un año de cambios en tu situacion laboral y en todo cuanto tenga que ver con las obligaciones de tu vida cotidiana. es el momento de aprovechar neuvas oprtunidades y de revisar como puedes mejorar tus condiciones. una etapa apropiada para negociar aumentos salariales, un puesto mas apropiado o efectuar un reciclaje en tus conocimientos y habilidades que te serviran para el futuro. incluso el momento de crear empresa o emprender una actividad alternativa por cuenta propia. en cualquier caso, te conviene pensar en positivo y poner toda la ilusion en crecer en todo cuanto tenga que ver con el trabajo y la economia. ademas, sera un buen año paa ganar en calidad de vida. es tiempo de marcarte nuevas directrices o planteamientos respecto ala nutricion, la actividad fisica y el descanso. bien sabes al fin y al ccabo, perteneces a uno de los signos fijos, de esos que una vez tienen una idea, no la cambian facilmente, lo dificil que es cambiar de habitos."
                            FinSi
                            si A1>=21 Y A2=5 o A1<=20 y A2=6 entonces
                                escribir "tu signo es geminis +++++++++. mira geminis preparate para un año de altos contrastes. por un lado es tiempo de desarrollar la creatividad, la intuicion y la fuerza personal. una etapa muy apropada para potenciar todos tus talentos o descubrir otros,pero,en cualquier caso, favorable para el crecimiento personal, el acierto y la sensacion de plenitud. toda una corriente positiva que puedes aprovechar para efectuar grandes conquistas, ya sea en el ambito de los sentimientos, la empresa, los deportes, el intelecto incluso para tener experiencias sexuales fuera de lo comun. ademas, sera un año clave para la descendencia, por ejemplo, para dar un giro ala educacion de los hijos.  por otro lado, en cambio, sigues cn tensos aspectos planetarios que ya arrastras desde hace tiempo y que te obligan a tener mucha paciencia en tus relaciones personales o a vivir enormes presiones o compromisos. elige bien con que tipo de personas quieres relacionarte pueden condicionar tu vida como nunca antes."
                            FinSi
                            si A1>=21 Y A2=6 o A1<=20 y A2=7 entonces
                                escribir "tu signo es cancer +++++++++. mira cancer este año sera tiempo de implantar una nueva filosofia de la familia, el hogar y la vida intima. es la ocasion perfecta para pensar donde y como quieres vivir, sobre el tipo de vivienda o sobre los derechos y deberes de cada miembro de la familia. aprovecha para cambiar la decoracion de tu casa, pintarla a tu gusto o diseñar un estilo de vida, que podria dar un interesante giro. tambien sera un gran año para hacer viajes inolvidables en familia.  si nembargo no debes olvidarte de cuestiones que este año tambien seran esenciales, como los ciudadanos que necesitas y que no admiten dilacion alguna. es hora de aplicarte con disciplina y total determinacion a una serie de habitos ya que, de los contrario, podria exigirtelos tu cuerpo."
                            FinSi
                            si A1>=21 Y A2=7 o A1<=21 y A2=8 entonces
                                escribir "tu signo es leo ++++++++. mira leo abrete a la renovacion de tu comunicacion y tus conocimientos. tienes un gran año por delante para crecer es esas areas, para modificar de forma positiva el como te relacionas con los demas y la forma de manejar tus conocimientos o sacar partido a los mismos. un año de resultados. buena etapa para hacer interesantes viajes o descubrir nuevos lugares, pero tambien para aprender a ver cosas y todo cuanto te rodea de otro modo. tiempo de nuevos aprendizajes en tambien sera un año dado a cambios de vehiculos,telefonos,ordenadores o todo cuanto tenga relacion con el mundo de la comunicacion. por otra parte, no debes perder de vista que atraviesas una larga etapa decisiva para tu capacidad de regenerarte y asumir compromisos hacia ti mismo. enfocate en la propia superacion personal y en ver como puedes reinventarte o ser mas creativo. es tiempo de renovar tus ilusiones por la vida."
                            FinSi
                            si A1>=22 Y A2=8 o A1<=22 y A2=9 entonces
                                escribir "tu signo es virgo +++++++. mira virgo una doble tendencia se perfila este año. por un lado, sera una gran oprtunidad para descubrir nuevas fuentes de recursos, materiales o no. podrias ganar mas dinero, potenciar algunos de tus valores, elijas tus prioridades y te entes en ellas, porque este año puedes experimentar un crecimiento extraordinario. por otro lado,seguira un influjo que ya viene desde hace tiempo, de grandes responsabilidades en la vida familiar o intima. estas como en una especie de carrera de fondo en la que debes armart de paciencia. es facil que predominen los obstaculos,retrasos,problemas,o frialdade. pero es momento estilo de vida. solo asi podras construir las nuevas bases que necesitas. "
                            FinSi
                            si A1>=23 Y A2=9 o A1<=22 y A2=10 entonces
                                escribir "tu signo es libra ++++++++. mira libra  eres el signo estrella del 2017. el paso de jupite, el planeta de la fortuna, pasa por tu signo, asi que es hora de aprovechar las nuevas oprtunidades que te ofrezca la vida. un año ideal para renovar las nuevas oprtunidades que te ofresca la vida. un año ideal para renova tu filosofia vital,tus conocimientos,creencias, etc. tu psicologia podra beneficiearse de este favorable transito planetario, pero tambien las circunstancias te pueden sonreir. por ejemplo, habra mas responsabilidad de grandes viajes, empesar una nueva etapa profesional,una nueva relacion amorosa... es tiempo de descubrir nuevos alicientes.   "
                            FinSi
                            si A1>=23 Y A2=10 o A1<=22 y A2=11 entonces
                                escribir "tu signo es escorpio +++++. mira escorpio al menos durante la primera mitad del año aun sera tiempo de poner orden en tu vida. procura hacer limpieza, tanto en un sentido material como emocional. Es momento de cerrar capitulos y saber escoger que debe quedar atras en tu vida, sean habitos, elaciones, objetivos.. pero tambien es una etapa de intropeccion y autoexploracion, enfocadas tanto al autoconocimiento y el desarrollo espiritual como hacia la sanacion. Buena etapa ,por tanto,para dejar atras malos habitos o para introducirte en terapias. por otra parte no debes perder de vista que la economia es el puunto en el que aun debes poner los cinco sentidos. hac tiempo que se esta producinedo un gran cambio de situacion y estructuras sobre tus recursos. y aun te queda mucho para terminar de perfilar las nuevas estructuras en este sentido. "
                            FinSi
                            si A1>=23 Y A2=11 o A1<=20 y A2=12 entonces
                                escribir "tu signo es sagitario ++++ mira sagitario saturno sigue pasando por tu signo, pero este sera el ultimo año. el planeta de los anillos te visita una vez cada treinta años, pero esa visita dura algo mas de dos años. sus influjis no son faciles porque marca una etapa de austeridad que se traduce en limitaciones, retrasos y pesadas cargas de todo tipo. un periodo de obligada reestructuracion de todos los recursos y nuevos planteamientos de vida. Con este planeta todo suele volverse mas pesado, mas gris, incluso las relaciones personales, donde es facil que se imponga la visiion critica o distante. sin embargo, no es cuestion de arrojar la toalla, porque sus influjos suponen una dura prueba para ver hasta donde llega la capacidad de resistencia y determinacion para concretar nuevas bases ya sea en el ambito profesional familiar economico de salud etc"
                            FinSi
                            si A1>=21 Y A2=12 o A1<=19 y A2=1 entonces
                                escribir "tu signo es capricornio +++ mira capricornio es tiempo de ampliar tus expectativas o tus aspiraciones. nuevas oportunidades para crecer en el ambito profesional y social se presentaran este año, pero deberas tomar desiciones para ver hacia donde quieres encaminar tus pasos. es hora de reflexionar sobre como juegas tu papel en el mundo y sobre tu imagen social, no te conviene mantener la rutina, sino explorar posibilidades de crecer y atreverte a pensar en algo mas. Buena ocasion para negociar mejoras profesionales, empezar un nuevo ciclo y hasta de descubrir nuevas vocaciones. aunque sera facil que necesites aprender cosas nuevas para dar ese salto o que debas viajar. pero no te centres unicamente en los objetivos o intereses profesionales porque te conviene prestar atencion ala salud. te vendrian bien momentos de desconexion o terapias destinadas a recuperar tus energias y a poner fin a problemas de tipo cronico. de lo contrario, el cuerpo podria darte alguna señal de agotamiento"
                            FinSi
                            si A1>=20 Y A2=1 o A1<=18 y A2=2 entonces
                                escribir "tu signo es acuario  ++++++ mira acuario atrevete a pensar a lo grande, porque estas ante un año que puede estar marcado por la inspiracion. una racha de crecimiento intelectual y espiritual puede llenarte de nuevos alicientes. sera un año favorable para hacer viajes inolvidables, escribir un libro, estudiar idiomas o adquirir nuevos conocimientos y cierto toque cosmopolita. confia en tus ideas y pon a tu cerebro a tu servicio, que estara encantado de que le des marcha y aprender cosas. amplia tus puntos de vista o tus horizontes. tu filosofia de vida podia estar cambiando, y es hora de centrarte en grndes objetivos. sin embargo, sera convenienteque gestiones bien todo cuanto tenga que ver con asuntos legales y burocracias, porque tendras que regularizar muchas coasa o hacer numerosos tramites.protege tus derechos. A partir de octubre empezara una interesante etapa de nuevas oportunidades para mejorar tu situacion profesional y social. protege tus derechos. "
                            FinSi
                            si A1>=19 Y A2=2 o A1<=20 y A2=3 entonces
                                escribir "tu signo es piscis ++++++++ mira piscis atraviesas una larga etapa de grandes rsponsabilidades que te obligan a complejas tomas de desicion. y eso continuara este año. es momento de abordar la vida con seriedad y madurez, con sentido del deber. ademas, necesitaras mucha perseverancia, paciencia y determinacion. Nada de rendirse ni de hundirse de lamentos. piensa que atraviesas una carrera de fondo que requiere esfuerzo y una importante toma de conciencia o de sentido de la realidad. tu destino profesional, tu imagen y hasta y hasta tu salud pueden estar en juego. es hora de saber pasar pagina a determinadas cosas y de escoger bien en que centras tus energias, porque ahora toca trabajar dura para crear nuevas estructuras para tu futuro."
                            FinSi
                        2: escribir "salir"   
                    FinSegun
                finmientras   
COMPLICACIONES

Al comienzo fue un poco complicado ya que se empezaba a utilizar el programa y se empezaba a experimentar y a ver como se implementaba cada signo zodiacal y ademas tocaba consultar mucho lo que era la fecha de cada uno de los signos y lo que decia de cada uno estonces requeria de tiempo.
Otro problemas fue empezar a escribir los comando y hacer el cuadro que quedara muy bien y que el mismo programa lo ejcutara perfectamente.

APRENDIZAJE

es buen aprendizaje ya que este programa es muy completo para la solucion de problemas por medio de algoritmos.

CONCLUSION

siempre hay que buscar la solucion ante problemas dificiles pero que esa solucion sea bastante practica. y si al comienzo es complicado no se preocupen que los frutos se recojen de una manera gratificante.

WEBGRAFIA
https://www.youtube.com/watch?v=U6F_CYte53s

ejercicio 6 fases lunares

Cristian Mateo Pataquiva Bello

101   diurno  ING SISTEMAS

NOMBRE :FASES  LUNARES

OBJETIVO:

practicar:

entradas
salidas
variables- asignacion
simples y cmputadoras
operadores logicos
operadores aritmeticos
conocer DFD PSI , pseudocodigo

DESARROLLO:

fue muy bonito ya que por medio de programas  y/o aplicaciones se puede ir mas a fondo del computador y poder practicar algoritmos sencillos o mas complejos que ayudaran a resolver problemas que se planteen o que se vean cada dia y que esta sea la base para cada vez ser mas practicos y mas experimentados frente a estos temas y que todo se vea o se haga de una manera mas sencilla.

EJERCICIO
escribir "digita el dia y el mes y te dire que tipo de luna se vera ";
                          ac=0
                          mientras ac < 13 hacer
                              escribir "menu opciones"
                              escribir "1:enero"
                              escribir "2:febrero"
                              escribir "3:marzo"
                              escribir "4:abril"
                              escribir "5:mayo"
                              escribir "6:junio"
                              escribir "7:julio"
                              escribir "8:agosto"
                              escribir "9:septiembre"
                              escribir "10:octubre"
                              escribir "11:noviembre"
                              escribir "12:diciembre"
                              escribir "dijite el numero de mes"
                              leer ac
                              segun ac hacer
                                  1: escribir "enero"
                                      escribir "dijita el dia del mes escojido"
                                      leer az
                                      si az>= 1 y az <= 4 Entonces
                                         
                                          escribir "luna nueva"
                                      FinSi
                                      si az>= 5 y az <= 11 Entonces
                                          escribir "cuarto creciente"
                                      FinSi
                                      si az>= 12 y az <= 18 Entonces
                                          escribir "luna llena"
                                      FinSi
                                      si az>= 19 y az <= 26 Entonces
                                          escribir "cuarto menguante"
                                         
                                      FinSi
                                      si az>= 27 y az <= 31 Entonces
                                          escribir "luna nueva"
                                         
                                      FinSi
                                  2: escribir "febrero"
                                      escribir "dijita el dia del mes escojido"
                                      leer fe
                                      si fe>=1 y fe<=2 Entonces
                                          escribir "luna nueva"
                                         
                                      FinSi
                                      si fe>=3 y fe<=9 Entonces
                                          escribir "cuarto creciente"
                                         
                                      FinSi
                                      si fe>=10 y fe<=17 Entonces
                                          escribir "luna llena"
                                         
                                      FinSi
                                      si fe>=18 y fe<=25 Entonces
                                          escribir "cuarto menguante"
                                         
                                      FinSi
                                      si fe>=26 y fe<=28 Entonces
                                          escribir "luna nueva"
                                         
                                      FinSi
                                     
                                  3: escribir "marzo"
                                      escribir "dijita el dia del mes escojido"
                                      leer ma
                                     
                                      si ma>=1 y ma<=4 Entonces
                                          escribir "luna nueva"
                                         
                                      FinSi
                                      si ma>=5 y ma<=11 Entonces
                                          escribir "cuarto creciente"
                                         
                                      FinSi
                                      si ma>=12 y ma<=19 Entonces
                                          escribir "luna llena"
                                         
                                      FinSi
                                      si ma>=20 y ma<=26 Entonces
                                          escribir "cuarto menguante"
                                         
                                      FinSi   
                                      si ma>=27 y ma<=31 Entonces
                                          escribir "luna nueva"
                                         
                                      FinSi   
                                     
                                  4: escribir "abril"
                                      escribir "dijita el dia del mes escojido"
                                      leer abr
                                     
                                      si abr>=1 y abr<=2 Entonces
                                          escribir "luna nueva"
                                         
                                      FinSi
                                      si abr>=3 y abr<=10 Entonces
                                          escribir "cuarto creciente"
                                         
                                      FinSi
                                      si abr>=11 y abr<=18 Entonces
                                          escribir "luna llena"
                                         
                                      FinSi
                                      si abr>=19 y abr<=25 Entonces
                                          escribir "cuarto menguante"
                                         
                                      FinSi
                                      si abr>=26 y abr<=30 Entonces
                                          escribir "luna nueva"
                                         
                                      FinSi
                                  5: escribir "mayo"
                                      escribir "dijita el dia del mes escojido"
                                      leer may
                                     
                                      si may=1 Entonces
                                          escribir "luna nueva"
                                         
                                      FinSi
                                      si may>=2 y may<=9 Entonces
                                          escribir "cuarto creciente"
                                         
                                      FinSi
                                      si may>=10 y may<=17 Entonces
                                          escribir "luna llena"
                                         
                                      FinSi
                                      si may>=18 y may<=24 Entonces
                                          escribir "cuarto menguante"
                                         
                                      FinSi
                                      si may>=25 y may<=31 Entonces
                                          escribir "cuarto menguante"
                                         
                                      FinSi
                                  6: escribir "junio"
                                      escribir "dijita el dia del mes escojido"
                                      leer jun
                                     
                                      si jun>=1 y jun<=8 Entonces
                                          escribir "cuarto creciente"
                                         
                                      FinSi
                                      si jun>=9 y jun<=17 Entonces
                                          escribir "luna llena"
                                         
                                      FinSi
                                      si jun>=18 y jun<=22 Entonces
                                          escribir "cuarto menguante"
                                         
                                      FinSi
                                      si jun>=23 y jun<=29 Entonces
                                          escribir "luna nueva"
                                         
                                      FinSi
                                      si jun=30 entonces
                                          escribir "luna nueva"
                                         
                                      FinSi
                                  7: escribir "julio"
                                      escribir "dijita el dia del mes escojido"
                                      leer jul
                                     
                                      si jul>=1 y jul<=7 Entonces
                                          escribir "cuarto creciente"
                                         
                                      FinSi
                                      si jul>=8 y jul<=15 Entonces
                                          escribir "luna llena"
                                         
                                      FinSi
                                      si jul>=16 y jul<=22 Entonces
                                          escribir "cuarto menguante"
                                         
                                      FinSi
                                      si jul>=23 y jul<=29 Entonces
                                          escribir "luna nueva"
                                         
                                      FinSi
                                      si jul=30 Entonces
                                          escribir "cuarto creciente"
                                         
                                      FinSi
                                  8: escribir "agosto"
                                      escribir "dijita el dia del mes escojido"
                                      leer ago
                                     
                                      si ago>=1 y ago<=6 Entonces
                                          escribir "cuarto creciente"
                                         
                                      FinSi
                                      si ago>=7 y ago<=13 Entonces
                                          escribir "luna llena"
                                         
                                      FinSi
                                      si ago>=14 y ago<=20 Entonces
                                          escribir "cuarto menguante"
                                         
                                      FinSi
                                      si ago>=21 y ago<=28 Entonces
                                          escribir "luna nueva"
                                         
                                      FinSi
                                      si ago=30  Entonces
                                          escribir "cuarto creciente"
                                         
                                      FinSi
                                  9: escribir "septiembre"
                                      escribir "dijita el dia del mes escojido"
                                      leer sept
                                     
                                      si sept>=1 y sept<=5 Entonces
                                          escribir "cuarto creciente"
                                         
                                      FinSi
                                      si sept>=6 y sept<=12 Entonces
                                          escribir "cuarto creciente"
                                         
                                      FinSi
                                      si sept>=13 y sept<=19 Entonces
                                          escribir "cuarto creciente"
                                         
                                      FinSi
                                      si sept>=20 y sept<=26 Entonces
                                          escribir "cuarto creciente"
                                         
                                      FinSi
                                      si sept>=27 y sept<=30 Entonces
                                          escribir "cuarto creciente"
                                         
                                      FinSi
                                     
                                  10: escribir "octubre"
                                      escribir "dijita el dia del mes escojido"
                                      leer oct
                                     
                                      si oct>=1 y oct<=4 Entonces
                                          escribir "cuarto creciente"
                                         
                                      FinSi
                                      si oct>=5 y oct<=11 Entonces
                                          escribir "luna llena"
                                         
                                      FinSi
                                      si oct>=12 y oct<=18 Entonces
                                          escribir "cuarto menguante"
                                         
                                      FinSi
                                      si oct>=19 y oct<=26 Entonces
                                          escribir "luna nueva"
                                         
                                      FinSi
                                      si oct>=27 y oct<=31 Entonces
                                          escribir "cuarto creciente"
                                         
                                      FinSi
                                  11: escribir "noviembre"
                                      escribir "dijita el dia del mes escojido"
                                      leer nov
                                     
                                      si nov>=1 y nov<=3 Entonces
                                          escribir "cuarto creciente"
                                         
                                      FinSi
                                      si nov>=4 y nov<=9 Entonces
                                          escribir "luna llena"
                                         
                                      FinSi
                                      si nov>=10 y nov<=17 Entonces
                                          escribir "cuarto menguante"
                                         
                                      FinSi
                                     
                                      si nov>=18 y nov<=25 Entonces
                                          escribir "luna nueva"
                                         
                                      FinSi
                                      si nov>=26 y nov<=30 Entonces
                                          escribir "cuarto creciente"
                                         
                                      FinSi
                                  12: escribir "diciembre"
                                      escribir "dijita el dia del mes escojido"
                                      leer dic
                                     
                                      si dic>=1 y dic<=2 Entonces
                                          escribir "cuarto creciente"
                                         
                                      FinSi
                                      si dic>=3 y dic<=9 Entonces
                                          escribir "luna llena"
                                         
                                      FinSi
                                      si dic>=10 y dic<=17 Entonces
                                          escribir "cuarto menguante"
                                         
                                      FinSi
                                      si dic>=18 y dic<=25 Entonces
                                      escribir "luna nueva"
                                         
                                      FinSi   
                                      si dic>=26 y dic<=31 Entonces
                                          escribir "cuarto creciente"
                                         
                                      FinSi   
                              FinSegun
                             
                          Finmientras
                        2: escribir "salir" 
                  FinSegun
                   
                FinMientras

 
COMPLICACIONES

Al comienzo fue un poco complicado ya que se empezaba a utilizar el programa y se empezaba a experimentar y a ver como se implementaba cada funcion o comando que se mostraba en el programa.
Otro problemas fue empezar a escribir los comando y hacer el cuadro que quedara muy bien y que el mismo programa lo ejcutara perfectamente.

APRENDIZAJE

es buen aprendizaje ya que este programa es muy completo para la solucion de problemas por medio de algoritmos.

CONCLUSION

siempre hay que buscar la solucion ante problemas dificiles pero que esa solucion sea bastante practica.