Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Programacion: pseint, raptor, dev c++, Apuntes de Tecnologías de la Información y la Comunicación

conocimientos base de programación

Tipo: Apuntes

2020/2021
En oferta
30 Puntos
Discount

Oferta a tiempo limitado


Subido el 28/04/2021

victor-reyes-30
victor-reyes-30 🇲🇽

1 documento

1 / 58

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Victor Hugo Reyes Sosa
25190007
25IT121
Trabajo final
Cuadernillo
Análisis y diseño de
algoritmos
Teresa Ávila Gómez
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
Discount

En oferta

Vista previa parcial del texto

¡Descarga Programacion: pseint, raptor, dev c++ y más Apuntes en PDF de Tecnologías de la Información y la Comunicación solo en Docsity!

Victor Hugo Reyes Sosa

25IT

Trabajo final

Cuadernillo

Análisis y diseño de

algoritmos

Teresa Ávila Gómez

Es el proceso de tomar un algoritmo y codificarlo en una notación, un lenguaje de programación, de modo que pueda ser ejecutado por una computadora. Aunque existen muchos lenguajes de programación y muchos tipos diferentes de computadoras, el primer paso es la necesidad de tener una solución. Sin un algoritmo no puede haber un programa.

Conjunto de reglas que, aplicada sistemáticamente a unos datos de entrada apropiados, resuelven un problema en un numero finito de pasos elementales. Es una serie de instrucciones sencillas que se llevan a cabo para solventar un problema. Entrada Proceso Salida

El diagrama de flujo o también diagrama de actividades es una manera de representar gráficamente un algoritmo o un proceso de alguna naturaleza, a través de una serie de pasos estructurados y vinculados que permiten su revisión como un todo. La representación gráfica de estos procesos emplea, en los diagramas de flujo, una serie determinada de figuras geométricas que representan cada paso puntual del proceso que está siendo evaluado. Símbolo de Inicio / Final El símbolo de terminación marca el punto inicial o final del sistema. Por lo general, contiene la palabra "Inicio" o "Fin". Símbolo de Acción o Proceso Un rectángulo solo puede representar un solo paso dentro de un proceso ("agregar dos tazas de harina"), o un subproceso completo ("hacer pan") dentro de un proceso más grande. Símbolo del Documento Impreso Un documento o informe impreso. Símbolo de Multidocumento Representa multidocumento en el proceso. Símbolo de Decisión o Ramificación Un punto de decisión o ramificación. Las líneas que representan diferentes decisiones surgen de diferentes puntos del diamante. Símbolo de Entrada / Salida Representa el material o la información que entra o sale del sistema, como una orden del cliente (entrada) o un producto (salida).

Símbolo de Entrada Manual Representa un paso en el que se pide al usuario que introduzca la información manualmente. Símbolo de Preparación Representa un ajuste a otro paso en el proceso. Símbolo del Conector Indica que el flujo continúa donde se ha colocado un símbolo idéntico (que contiene la misma letra). O Símbolo Indica que el flujo del proceso continúa en más de dos ramas. Símbolo de Unión de Invocación Indica un punto en el diagrama de flujo en el que múltiples ramificaciones convergen de nuevo en un solo proceso. Símbolo de Fusión Indica un paso en el que dos o más sublistas o subprocesos se convierten en uno. Símbolo de Intercalar Indica un paso que ordena información en un formato estándar. Símbolo de Ordenar Indica un paso que organiza una lista de elementos en una secuencia o establece según algunos criterios predeterminados.

Es una forma de escribir programas de ordenador (programación de computadora) de manera clara. Para ello utiliza únicamente tres estructuras: secuencia, selección e iteración; siendo innecesario el uso de la instrucción o instrucciones de transferencia incondicional (GOTO, EXIT FUNCTION, EXIT SUB o múltiples RETURN). Es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora, utilizando únicamente subrutinas y tres estructuras: secuencia, selección (if y switch) e iteración (bucles for y while), considerando innecesario y contraproducente el uso de la instrucción de transferencia incondicional (GOTO), que podría conducir a "código espagueti", que es mucho más difícil de seguir y de mantener, y era la causa de muchos errores de programación. La programación estructurada es un paradigma de programación basado en utilizar funciones o subrutinas, y únicamente tres estructuras de control:

  • secuencia: ejecución de una sentencia tras otra.
  • selección o condicional: ejecución de una sentencia o conjunto de sentencias, según el valor de una variable booleana.
  • iteración (ciclo o bucle): ejecución de una sentencia o conjunto de sentencias, mientras una variable booleana sea verdadera. Este paradigma se fundamente en el teorema correspondiente, que establece que toda función computable puede ser implementada en un lenguaje de programación que combine sólo estas tres estructuras lógicas o de control. La estructura de secuencia es la que se da naturalmente en el lenguaje, ya que por defecto las sentencias son ejecutadas en el orden en que aparecen escritas en el programa. Para las estructuras condicionales o de selección, Python dispone de la sentencia if, que puede combinarse con sentencias elif y/o else. Para los bucles o iteraciones existen las estructuras while y for. Entre las ventajas de la programación estructurada sobre el modelo anterior (hoy llamado despectivamente código espagueti), cabe citar las siguientes:
  • Los programas son más fáciles de entender, pueden ser leídos de forma secuencial y no hay necesidad de tener que rastrear saltos de líneas (GOTO) dentro de los bloques de código para intentar entender la lógica interna.
  • La estructura de los programas es clara, puesto que las sentencias están más ligadas o relacionadas entre sí.
  • Se optimiza el esfuerzo en las fases de pruebas y depuración. El seguimiento de los fallos o errores del programa (debugging), y con él su detección y corrección, se facilita enormemente.
  • Se reducen los costos de mantenimiento. Análogamente a la depuración, durante la fase de mantenimiento, modificar o extender los programas resulta más fácil.
  • Los programas son más sencillos y rápidos de confeccionar.
  • Se incrementa el rendimiento de los programadores.

Es un lenguaje orientado a la implementación de Sistemas Operativos, es apreciado por la eficiencia del código que produce y es el lenguaje de programación más popular para crear software de sistemas, aunque también se utiliza para crear aplicaciones. Se trata de un lenguaje de tipos de datos estáticos, débilmente tipificado, de medio nivel, pero con muchas características de bajo nivel. Dispone de las estructuras típicas de los lenguajes de alto nivel, pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar código en ensamblador con código C o acceder directamente a memoria o dispositivos periféricos. Antes de proceder a explicar los identificadores en C, es necesario resaltar que C es un lenguaje sensible al contexto, a diferencia por ejemplo de Pascal, por lo cual, C diferencia entre mayúsculas y minúsculas, y por tanto, diferencia entre una palabra escrita total o parcialmente en mayúsculas y otra escrita completamente en minúsculas.

Un intérprete es un software que recibe un programa en lenguaje de alto nivel, lo analiza y lo ejecuta. Para analizar el programa completo, va traduciendo sentencias de código y ejecutándolas si están bien, así hasta completar el programa origen. Los intérpretes informáticos, al contrario que los compiladores, no generan un fichero ejecutable u otro programa equivalente en otro lenguaje, por lo que cada vez que se ejecuta el programa original debe pasar por la fase de análisis. Esto hace de los intérpretes más lentos que los compiladores, donde las fases de análisis y ejecución son independientes, por lo que solo se compila una vez y se ejecuta cuantas veces se quiera. UnderC. Proyecto desarrollado por Steve Donovan bajo licencia GNU LGPL (GNU Library General Public License). Es un sistema C++ interactivo en el que las sentencias son evaluadas inmediatamente, lo que permite al usuario tener una respuesta instantánea. Creo que puede ser muy útil para el desarrollo rápido de pequeños prototipos y para enseñanza/aprendizaje de C++. Existen versiones para Windows y Linux. Link de descarga: http://home.mweb.co.za/ CINT. Disponible para multitud de plataformas, incluyendo las "Ventanas" de MS y Linux. Este intérprete C/C++, desarrollado por Masaharu Goto, facilita como el anterior el desarrollo rápido de aplicaciones y prototipos. Ofrece un entorno de depuración similar a GDB (el depurador de GNU). También comparte con el anterior la posibilidad de cargar y descargar DLLs en "runtime", lo que puede ser muy útil para determinadas tareas. Por ejemplo, a la hora de investigar y comprobar los "servicios" de Windows. Existe una versión binaria para Windows, aunque pueden descargarse también las fuentes. Link de descarga: http://root.cern.ch The ROOT System. Se trata de un intérprete desarrollado en el Laboratorio Europeo de Física de Partículas CERN ("European Particle Physics Laboratory" Visítalo aquí→ http://www.cern.ch ) para satisfacer sus necesidades de análisis masivo de datos numéricos. nbsp; El resultado "an ideal environment to introduce physicists quickly to the new world of Objects and C++", está orientado al análisis numérico, aunque puede ser utilizado para cualquier otra aplicación. Esta plataforma utiliza la anterior (CINT) de forma embebida para ejecutar scripts C++ y líneas de comando, así como soporte de runtime (RTTI). También puede ser utilizada para aprender C++, y aunque se basa en un intérprete, en caso de que la velocidad de proceso sea un punto para considerar. Tiene la importante característica de poder utilizar rutinas precompiladas, con lo que se consigue aunar las bondades de un intérprete y de un compilador. Existen versiones binarias para multitud de plataformas, incluyendo las últimas versiones Windows y Linux. Link de descarga: http://root.cern.ch

Es una herramienta para asistir a un estudiante en sus primeros pasos en programación. Mediante un simple e intuitivo pseudolenguaje en español (complementado con un editor de diagramas de flujo), le permite centrar su atención en los conceptos fundamentales de la algoritmia computacional, minimizando las dificultades propias de un lenguaje y proporcionando un entorno de trabajo con numerosas ayudas y recursos didácticos. PSeInt está pensado para asistir a los estudiantes que se inician en la construcción de programas o algoritmos computacionales. El pseudocódigo se suele utilizar como primer contacto para introducir conceptos básicos como el uso de estructuras de control, expresiones, variables, etc., sin tener que lidiar con las particularidades de la sintaxis de un lenguaje real. Este software pretende facilitarle al principiante la tarea de escribir algoritmos en este pseudolenguaje presentando un conjunto de ayudas y asistencias, y brindarle además algunas herramientas adicionales que le ayuden a encontrar errores y comprender la lógica de los algoritmos.

  • Presenta herramientas de edición para escribir algoritmos en pseudocodigo en español
  • Autocompletado
  • Ayudas Emergentes
  • Plantillas de Comandos
  • Coloreado de Sintaxis
  • Resaltado de bloques lógicos
  • Indentado Inteligente
  • Listados de funciones, operadores y variables
  • Permite generar y editar el diagrama de flujo del algoritmo
  • Puede trabajar con diagramas clásicos y de Nassi-Shneiderman
  • Permite la edición simultánea de múltiples algoritmos
  • El pseudolenguaje utilizado es configurable

Barra de menús : puede mostrar u ocultar la barra de herramientas (la barra se ubica justo debajo de la barra de menús y contiene iconos de accesos rápidos a las acciones más utilizadas) mediante el ítem mostrar barra de herramientas del menú configurar. Panel de comandos : le permite introducir acciones o estructuras de control en su algoritmo mediante un clic. Se ubica por defecto en la parte izquierda de la ventana y al seleccionar una de sus primitivas introduce en el código del proceso actual la plantilla de esta. Visite el siguiente link si su equipo es GNU/Linux: http://pseint.sourceforge.net/index.php?page=descargas.php&os=lnx Visite el siguiente link si su equipo usa Windows: http://pseint.sourceforge.net/index.php?page=descargas.php&os=w Visite el siguiente link si su equipo usa macOS: http://pseint.sourceforge.net/index.php?page=descargas.php&os=mac Si quieres saber mas del entorno de Pseint visita el siguiente link: https://kesquivel.files.wordpress. com/2011/08/guialab_1_descripc ionpseint1.pdf Raptor es una aplicación que nos permite programar mediante diagramas de control de flujo. Requiere una Sintaxis mínima y nos permite ir visualizando los algoritmos y llevar un control. Raptor solamente se encuentra disponible para Windows xp en adelante (funciona hasta en Windows 8) y es gratuito. Raptor es un programa para Windows que permite crear pseudocódigo empleando diagramas de flujo, de esta manera podremos resolver problemas sencillos y revisar procedimientos. Al iniciar el programa existen dos pantallas: La pantalla más grande es en donde se va realizando el proceso y en la pantalla chica cuando se tiene realizado el programa y se corre nos va apareciendo el proceso ya realizado.

Espacio de trabajo : donde crearemos nuestros programas a partir de los símbolos. Símbolos : son los objetos que nos ayudaran a construir nuestro diagrama. Barra de menús : es donde se encuentran todas las opciones que podemos aplicar, enseguida veremos cada una de esas opciones. Botones de acceso rápido : esta barra de herramientas cuenta con las funciones que con más frecuencia podemos utilizar. Si tienes Windows ve al siguiente link de descarga: https://raptorflowchart.softonic.com/ Barra de menús Símbolos Espacio de trabajo Botones de acceso rápido

Dev-C++ es un compilador y entorno de desarrollo para el lenguaje C/C++. Se trata de una aplicación de código abierto, que ofrece todo tipo de facilidades para desarrollar grandes proyectos en C++. La aplicación presenta resaltado de sintaxis, depurador, una utilidad para crear instalaciones de nuestros programas, docenas de librerías y ficheros de ejemplo, etc. Como opciones extra, Dev-C++ incluye múltiples idiomas (incluido el español), explorador de clases y variables, plantillas, facilidad para instalar librerías adicionales, etc. Todo esto sólo es una pequeña parte de las posibilidades que se pueden encontrar en Dev-C++, un entorno de programación verdaderamente recomendable para desarrolladores de cualquier nivel. Entre otras ventajas desde el punto de vista técnico se puede señalar, que permite importar los proyectos realizados anteriormente en MS Visual C++, se puede exportar código fuente o proyectos a HTML o RTF para subir códigos a páginas Web y compartirlos, se pueden insertar marcadores en el editor para desplazarse en el código rápidamente, cada usuario puede crear su propia sintaxis coloreada, se puede configurar el menú insertar para colocar los fragmentos de código que mas uno utilice, permite insertar nuevos compiladores para compilar códigos fuente, tiene una potente característica de autocompletar texto que permite aumentar la productividad al sugerir los comandos disponibles en el contexto en que uno se encuentra programando, tiene un explorador de clases que muestra las clases, miembros y funciones y por otro lado la información relevante al archivo mostrado en el editor, se pueden añadir carpetas personales en el explorador de clases para encontrar lo que se busca en los grande proyectos, se puede guardar un proyecto como una plantilla de esta forma se puede comenzar a programar con una base en función a sus necesidades. Primeros pasos para comenzar a programar con este entorno: Menú y barra de herramientas : todas las opciones están en el menú, la barra de herramientas contiene accesos rápidos (atajos) a las funciones. Área de navegación : proyecto, clases, depurar. Área de trabajo : edición de los archivos abiertos. Menús y barra de herramientas Área de navegación Área de trabajo

Visita el siguiente link si quieres descargar el programa: https://sourceforge.net/projects/orwelldevcpp/

Las entradas son todos aquellos insumos que se requieren para el adecuado procesamiento de los datos y que se definirán como variables, teniendo en cuenta el tipo de dato que puede representar. Vamos a hacer algo un poco más complejo: vamos a sumar dos números que no estén prefijados dentro del programa, sino que deberá teclear el usuario. Para eso, usaremos la orden "Leer", que nos permite obtener un dato que el usuario teclee y dejarlo guardado para utilizarlo después. Deberemos dar un nombre temporal a estos datos que leemos del usuario. Parece razonable que el primer número que teclee el usuario se llame algo como "primerNumero", y el segundo sea algo como "segundoNumero". El resultado que queremos obtener será la suma de ese primer número y ese segundo número, así que nuestro programa podría quedar así:

El resultado de este programa debería ser algo como (dependiendo de los datos que se introduzcan): Esas dos palabras, "primerNumero" y "segundoNumero" representan a números que no tienen un valor prefijado. Eso es lo que llamaremos "variables". En las variantes de pseudocódigo que emplean en muchas universidades y centros de estudio (ya habíamos avisado de que no existe ningún estándar totalmente asentado) debemos "declarar las variables" antes de usarlas: decir qué tipo de dato es el que querremos representar con ese nombre.