1 of 98

Introducción a la programación

2 of 98

��Lenguajes de programación

3 of 98

Lenguajes de programación

    • Lenguaje máquina.
    • Traductores.
      • Ensambladores y microensambladores.
      • Lenguajes de alto nivel: compiladores, intérpretes.
      • Traductores/Compiladores cruzados, emuladores.
    • Fases de ejecución de un lenguaje de alto nivel.

4 of 98

Lenguajes de programación

    • Lenguaje máquina.
    • Traductores.
      • Ensambladores y microensambladores.
      • Lenguajes de alto nivel: compiladores, intérpretes.
      • Traductores/Compiladores cruzados, emuladores.
    • Fases de ejecución de un lenguaje de alto nivel.

5 of 98

Lenguaje máquina

Lenguaje de máquina es el sistema de códigos directamente interpretable por un circuito microprogramable, como el microprocesador de una computadora o el microcontrolador de un autómata . 

Este lenguaje está compuesto por un conjunto de instrucciones que determinan acciones a ser tomadas por la máquina. 

Un programa consiste en una cadena de estas instrucciones de lenguaje de máquina (más los datos).

El lenguaje de máquina es específico de cada máquina o arquitectura de la máquina, aunque el conjunto de instrucciones disponibles pueda ser similar entre ellas.

6 of 98

Lenguajes de programación

    • Lenguaje máquina.
    • Traductores.
      • Ensambladores y microensambladores.
      • Lenguajes de alto nivel: compiladores, intérpretes.
      • Traductores/Compiladores cruzados, emuladores.
    • Fases de ejecución de un lenguaje de alto nivel.

7 of 98

Ensambladores y microensambladores.

    • El ensamblador (del inglés assembler) se encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a código máquina, ejecutable directamente por la máquina para la que se ha generado. 
    • El propósito para el que se crearon este tipo de aplicaciones es la de facilitar la escritura de programas, ya que escribir directamente en código binario, que es el único código entendible por la computadora, es en la práctica imposible. 
    • La evolución de los lenguajes de programación a partir del lenguaje ensamblador originó también la evolución de este programa ensamblador hacia lo que se conoce como programa compilador.

8 of 98

Ensambladores y microensambladores.

    • Microensamblador es un ensamblador especializado en la creación de microprogramas, los cuales son los que indican al intérprete de instrucciones de la CPU lo que debe hacer.

9 of 98

Lenguajes de programación

    • Lenguaje máquina.
    • Traductores.
      • Ensambladores y microensambladores.
      • Lenguajes de alto nivel: compiladores, intérpretes.
      • Traductores/Compiladores cruzados, emuladores.
    • Fases de ejecución de un lenguaje de alto nivel.

10 of 98

Compiladores

Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de máquina). 

De esta manera un programador puede diseñar un programa en un lenguaje mucho más cercano a como piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora.

En las primeras épocas de la informática, el software de los compiladores era considerado como uno de los más complejos existentes.

Los primeros compiladores se realizaron programándolos directamente en lenguaje máquina o en ensamblador.

11 of 98

Tipos de compiladores

Los compiladores se puede dividir en varias categorías:

    • Compiladores cruzados: generan código para un sistema distinto del que están funcionando.
    • Compiladores optimizadores: realizan cambios en el código para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original.
    • Compiladores de una sola pasada: generan el código máquina a partir de una única lectura del código fuente.
    • Compiladores de varias pasadas: necesitan leer el código fuente varias veces antes de poder producir el código máquina.
    • Compiladores JIT (Just In Time): forman parte de un intérprete y compilan partes del código según se necesitan.

12 of 98

Intérpretes

Es un programa informático capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. 

Los intérpretes se diferencian de los compiladores en que mientras estos traducen un programa desde su descripción en un lenguaje de programación al código de máquina del sistema, los intérpretes sólo realizan la traducción a medida que sea necesaria, típicamente, instrucción por instrucción, y normalmente no guardan el resultado de dicha traducción.

13 of 98

Intérpretes

Los programas interpretados suelen ser más lentos que los compilados debido a la necesidad de traducir el programa mientras se ejecuta.

A cambio permiten ofrecer al programa interpretado un entorno no dependiente de la máquina donde se ejecuta el intérprete, sino del propio intérprete (lo que se conoce comúnmente como máquina virtual).

Esto permite que un mísmo código se pueda ejecutar en múltiples configuraciones de hardware.

14 of 98

Intérpretes

Este tipo de programas tienen una amplia implantación en entornos Web en los que es preciso que una misma información sea visualizada de la misma manera en cualquier tipo de dispositivo, desde PCs, Macs, servidores, Tablets, Telefonos móviles, etc, con independencia tanto del Hardware como del Sistema Operativo sobre el que se ejecuten.

De tal manera se puede clasificar a todos los navegadores web como Intérpretes.

15 of 98

Intérpretes

Las aplicaciones Java suelen estar compiladas en un bytecode. 

En tiempo de ejecución, el bytecode es normalmente interpretado a código nativo para la ejecución sobre una Máquina Virtual Java.

De esta forma es suficiente con tener instalada la máquina virtual adecuada al sistema, la cual será la encargada de ejecutar el código.

También usa el sistema de los bytecodes el lenguaje ActionScript usado en las aplicaciones Adobe Flash.

16 of 98

Intérpretes

Listado de lenguajes interpretados:

        • HTML
        • Java
        • Perl
        • PHP
        • Javascript
        • Action Script (Flash)
        • ASP
        • Python
        • Tcl
        • Ruby
        • J#

17 of 98

Lenguajes de programación

    • Lenguaje máquina.
    • Traductores.
      • Ensambladores y microensambladores.
      • Lenguajes de alto nivel: compiladores, intérpretes.
      • Traductores/Compiladores cruzados, emuladores.
    • Fases de ejecución de un lenguaje de alto nivel.

18 of 98

Traductores/Compiladores cruzados

Los compiladores cruzados (cross-compiler) permiten la generación de un código para una máquina distinta a la que se está usando.

Un ejemplo de estos compiladores son los de los sistemas operativos móviles, que permiten crear la aplicación sobre un PC y ejecutar la aplicación sobre un terminal móvil con otro sistema operativo.

Son muy utilizados en los siguientes casos:

    • Crear código para una máquina desde otra u otro sistema operativo distinto.
    • Sistemas con recursos limitados (Sistemas empotrados).
    • Compilar el mismo código fuente para múltiples sistemas operativos.

19 of 98

20 of 98

Traductores/Compiladores cruzados

Ejemplos de estos lenguajes son:

    • Android.
    • IOS.
    • Windows Phone.
    • Cross-mingw Compilador que funciona en Linux y genera código para Microsoft Windows
    • CPCBasic Compilador cruzado que funciona en Windows y genera código para Amtrad CPC

21 of 98

Emuladores

Los emuladores son programas que simulan una máquina o un sistema operativos distinto del instalado, permitiendo ejecutar aplicaciones para creadas para estos.

Se usan para emular Consolas de juegos, Autómatas, etc.

22 of 98

Virtualización

Existe una vertiente en la emulación que puede ser realizada por virtualización, consistente en crear una capa de abstracción, pero ejecutando instrucciones en una máquina del mismo tipo, y da como resultados obtener una computadora dentro de otra. 

Actualmente está en auge el uso de la virtualización para crear servidores configurables, o múltiples servidores virtuales sobre la misma máquina real.

Ejemplos de esto son:

23 of 98

Comparativo Compiladores - Intérpretes

Ventajas de compilar frente a interpretar:�Solo es preciso compilar una vez, posteriormente siempre se ejecuta el mismo código compilado.

En los bucles repetitivos, los intérpretes tienen que traducir las instrucciones tantas veces como se repite, pero el compilador genera un código único para todo el bucle.

Los compiladores permiten una mayor información de errores que los intérpretes, debido a que para crear el ejecutable deben recorrer todo el código. �

24 of 98

Comparativo Compiladores - Intérpretes

Ventajas del intérprete frente al compilador:

Los intérpretes necesitan menos memoria que los compiladores.

Permiten interactuar con mayor facilidad con el código fuente durante el desarrollo de la aplicación.

25 of 98

Lenguajes de programación

    • Lenguaje máquina.
    • Traductores.
      • Ensambladores y microensambladores.
      • Lenguajes de alto nivel: compiladores, intérpretes.
      • Traductores cruzados, emuladores.
    • Fases de ejecución de un lenguaje de alto nivel.

26 of 98

Fases de ejecución de un lenguaje de alto nivel.

El proceso de compilación se compone internamente de varias etapas o fases:

Análisis léxico

Se lee el programa fuente de izquierda a derecha y se agrupa en componentes léxicos (tokens), que son secuencias de caracteres que tienen un significado. 

Todos los espacios en blanco, líneas en blanco, comentarios y demás información innecesaria se elimina del programa fuente. 

Se comprueba que los símbolos del lenguaje (palabras clave, operadores,...) se han escrito correctamente.

27 of 98

Fases de ejecución de un lenguaje de alto nivel.

Análisis sintáctico

Los caracteres o componentes léxicos se agrupan jerárquicamente en frases gramaticales que el compilador utiliza para sintetizar la salida. 

Se comprueba si lo obtenido de la fase anterior es sintácticamente correcto (obedece a la gramática del lenguaje)

28 of 98

Fases de ejecución de un lenguaje de alto nivel.

Análisis semántico

Se revisa el programa fuente para tratar de encontrar errores semánticos y reúne la información sobre los tipos para la fase posterior de generación de código. 

Se utiliza la estructura jerárquica determinada por la fase de análisis sintáctico para identificar los operadores y operandos de expresiones y proposiciones.

29 of 98

Fases de ejecución de un lenguaje de alto nivel.

Mediante la verificación de tipos, el compilador verifica si cada operador tiene operandos permitidos por la especificación del lenguaje fuente. 

Por ejemplo, las definiciones de muchos lenguajes de programación requieren que el compilador indique un error cada vez que se use un número real como índice de una matriz. Sin embargo, la especificación del lenguaje puede imponer restricciones a los operandos, por ejemplo, cuando un operador aritmético binario se aplica a un número entero y a un número real. Revisa que los arreglos tengan definido el tamaño correcto.

30 of 98

Fases de ejecución de un lenguaje de alto nivel.

Fase de síntesis

Consiste en generar el código objeto equivalente al programa fuente. 

Sólo se genera código objeto cuando el programa fuente está libre de errores de análisis, lo cual no quiere decir que el programa se ejecute correctamente, ya que un programa puede tener errores de concepto o expresiones mal calculadas. 

Por lo general el código objeto es código de máquina relocalizable o código ensamblador. 

31 of 98

Fases de ejecución de un lenguaje de alto nivel.

Generación de código intermedio

Después de los análisis sintáctico y semántico, algunos compiladores generan una representación intermedia explícita del programa fuente. 

Esta representación intermedia debe tener dos propiedades importantes; debe ser fácil de producir y fácil de traducir al programa objeto.

32 of 98

Fases de ejecución de un lenguaje de alto nivel.

Optimización de código

Consiste en mejorar el código intermedio, de modo que resulte un código máquina más rápido de ejecutar. 

Hay mucha variación en la cantidad de optimización de código que ejecutan los distintos compiladores. 

En los que hacen mucha optimización, llamados "compiladores optimizadores", una parte significativa del tiempo del compilador se ocupa en esta fase. 

Sin embargo, hay optimizaciones sencillas que mejoran sensiblemente el tiempo de ejecución del programa objeto sin retardar demasiado la compilación.

33 of 98

Fases de ejecución de un lenguaje de alto nivel.

Tras haber obtenido el código objeto, el enlazador genera el código ejecutable.

En Windows este fichero ejecutable suele tener extensión *.exe.

34 of 98

HTML

35 of 98

C++

36 of 98

JAVA

// Hello.java

import javax.swing.JApplet;

import java.awt.Graphics;

public class Hello extends JApplet {

public void paintComponent(final Graphics g) {

g.drawString("Hello, world!", 65, 95);

}

}

37 of 98

PHP

38 of 98

PYTHON

39 of 98

Estructura general de un programa

40 of 98

ELEMENTOS Y CONCEPTOS FUNDAMENTALES

Desde el punto de vista informático, el elemento físico utilizado para el tratamiento de la información es el computador, computadora u ordenador, que puede ser definido de la siguiente manera: 

Es una máquina compuesta de elementos físicos, en su mayoría de origen electrónico, capaz de realizar una gran variedad de trabajos a gran velocidad y con gran precisión, siempre que se le den las instrucciones adecuadas.

El conjunto de órdenes que se dan a una computadora para realizar un proceso determinado se denomina programa, mientras que el conjunto de uno o varios programas más la documentación correspondiente para realizar un determinado trabajo, se denomina aplicación informática.

41 of 98

ELEMENTOS Y CONCEPTOS FUNDAMENTALES

Al conjunto de operaciones que se realiza sobre una información se le denomina tratamiento de la información. 

Estas operaciones siguen una división lógica que se representa en el siguiente esquema:

42 of 98

ELEMENTOS Y CONCEPTOS FUNDAMENTALES

En términos generales se denomina entrada al conjunto de operaciones cuya misión es tomar los datos del exterior y enviarlos a la computadora; para ello en ocasiones es necesario realizar operaciones de depuración o validación de los mismos (eliminar espacios, comprobar que el tipo de datos es adecuado, comprobar códigos de error en dni,etc.).

Estos datos deben quedar en la memoria de la computadora para su posterior tratamiento.

 

43 of 98

ELEMENTOS Y CONCEPTOS FUNDAMENTALES

A las operaciones que tratan los datos de entrada para obtener los resultados se le llama proceso o algoritmo.

Salida son las operaciones que proporcionan los resultados de un proceso. 

Se engloban en la salida también aquellas operaciones que dan forma a los resultados y los distribuyen adecuadamente (añadir separadores decimales o de millares, maquetar salida dni, etc.).

 

44 of 98

ELEMENTOS Y CONCEPTOS FUNDAMENTALES

El algoritmo necesario para la resolución de un problema queda definido cuando una aplicación informática es analizada.

La automatización de un problema para que pueda ser desarrollado por una computadora implica un proceso como el siguiente:

 

45 of 98

CICLO DE VIDA DE UNA APLICACION INFORMATICA

Una aplicación informática se compone de uno o varios programas interrelacionados que tienen por objeto la realización de una determinada tarea.

El ciclo de vida de una aplicación informática es el proceso que se sigue desde el planteamiento de un problema hasta que se tiene una solución instalada en la computadora, y en funcionamiento por los usuarios finales mientras sea de utilidad

 

46 of 98

47 of 98

CICLO DE VIDA DE UNA APLICACION INFORMATICA

DISEÑO DEL PROGRAMA

 

Fase de análisis: Consiste en el examen y descripción detallada de los siguientes aspectos relativos al problema:

-          Equipo a utilizar (computador, periféricos, soportes, material auxiliar, etc.).

-          Personal informático.

-          Estudio de los datos de entrada (INPUT)

-          Estudio de los datos de salida (OUTPUT)

-          Relación entre la salida y la entrada.

-          Descomposición del problema en módulos.

El resultado de esta fase se denomina especificación del problema.

 

48 of 98

CICLO DE VIDA DE UNA APLICACION INFORMATICA

DISEÑO DEL PROGRAMA

 

Fase de programación: 

Se diseña el algoritmo del programa.

Se debe abordar en forma sistemática, aplicando explícitamente un conjunto de técnicas, como programación estructura y diseño descendente.

El resultado es el algoritmo o descripción del conjunto de acciones que deberán ser realizadas por el computador.

Para su representación se utilizan diferentes notaciones, como ordinogramas, pseudocódigo, etc.

 

49 of 98

CICLO DE VIDA DE UNA APLICACION INFORMATICA

DISEÑO DEL PROGRAMA

 

Fase de codificación: 

Se pasa el algoritmo creado en la fase anterior a un lenguaje de programación concreto. 

Al resultado se le denomina programa.

#include <stdio.h>

int main()

{

printf("Hola mundo");

return 0;

}

50 of 98

CICLO DE VIDA DE UNA APLICACION INFORMATICA

INSTALACION Y EXPLOTACION DE PROGRAMA

 

Fase de edición:

Escritura del programa fuente a partir de las hojas de codificación en la memoria del computador, grabando en algún soporte permanente.

Se realiza con la ayuda de un programa del sistema denominada editor.

 

51 of 98

CICLO DE VIDA DE UNA APLICACION INFORMATICA

Fase de compilación:

Traducción del programa fuente a lenguaje de máquina cuyo resultado es el programa objeto. Para ello se dispone de programas compiladores o intérpretes, que, además, comprueban la correcta sintaxis de programa.

Fase de montaje:

En los programas compilados es necesario añadir al programa objeto algunas rutinas del sistema o algunos subprogramas externos que se hayan compilados separadamente. De ello se encarga el programa montador (linker)

  

52 of 98

CICLO DE VIDA DE UNA APLICACION INFORMATICA

Fase de ejecución:

Consiste en ejecutar el programa sucesivas veces con diferentes datos de prueba para asegurar su correcto funcionamiento.

 

Fase de explotación y mantenimiento:

La explotación consiste en e uso continuo y habitual por parte de os usuarios de la aplicación mientras tenga utilidad.

Paralelamente a la explotación de una aplicación se realiza el mantenimiento de la misma, consistente en la comprobación periódica de su buen funcionamiento.

 

53 of 98

ERRORES

54 of 98

ERRORES

Según el momento  fase en que se detectan, los errores se clasifican de la siguiente manera:

Errores de compilación: Los errores en tiempo de compilación o sintácticos, corresponden al incumplimiento de las reglas sintácticas del lenguaje, por ejemplo una palabra reservada del lenguaje mal escrita, una instrucción incompleta, etc.

Estos errores son los más fáciles de corregir, ya que son detectados por el compilador, el cual dará información sobe el lugar donde está y la naturaleza de cada uno de ellos mediante un mensaje de error.

 

55 of 98

ERRORES

Errores de ejecución:

Se deben generalmente a operaciones no permitidas, como dividir por cero, leer un dato no numérico en una variable numérica.

Se detectan porque se produce una parada anormal del programa durante su ejecución y se dice entonces que el programa se ha caído o que ha sido abortado por el sistema.

Son más difíciles de detectar  corregir que os errores sintácticos, ya que ocurren o no.

 

56 of 98

ERRORES

Errores de lógica:

Corresponden a la obtención por el programa de resultados que no son correctos, y la única manera de detectarlos es realizando un numero suficiente de ejecuciones de prueba con una gama lo más amplia posible de juegos de datos de prueba, comparando los datos producidos por el programa con los obtenidos a mano para esos mismos datos.

Son los más difíciles de corregir, no sólo por a dificultad para detectarlos, sino porque se deben a la propia concepción y diseño del programa.

 

57 of 98

ERRORES

Errores de especificación:

Es posiblemente el peor tipo de error y el más costoso de corregir.

Se deben a la realización de unas especificaciones incorrectas motivadas por una mala comunicación entre el programador y quien plantea en problema.

Se detectan normalmente cuando ya ha concluido e diseño e instalación del programa, por lo que su corrección puede suponer la repetición de gran parte del trabajo realizado.

 

58 of 98

CALIDAD DE LOS PROGRAMAS

59 of 98

CALIDAD DE LOS PROGRAMAS

Para un determinado problema se pueden construir diferentes algoritmos de resolución o programas. Las características generales que debe reunir un programa son las siguientes:

    • Legibilidad: Ha de ser claro y sencillo, de tal forma que facilite su lectura y comprensión.

    • Fiabilidad: Ha de ser capaz de recuperarse frente a errores o usos inadecuados.

60 of 98

CALIDAD DE LOS PROGRAMAS

    • Portabilidad: Si diseño debe permitir la codificación en diferentes lenguajes de programación, así como su instalación en diferentes sistemas.

    • Modificabilidad: Ha de facilitar su mantenimiento, esto es, las modificaciones y actualizaciones necesarias para adaptarlo a una nueva situación.

    • Eficiencia: Se deben aprovechar al máximo los recursos de la computadora, minimizando la memoria utilizada y el tiempo de proceso o ejecución, siempre que no sea a costa de los requisitos anteriores.

 

61 of 98

ESTRUCTURA GENERAL DE UN PROGRAMA

 

Un programa puede considerarse como una secuencia lógica de acciones (instrucciones) que manipulan un conjunto de objetos (datos) para obtener unos resultados que serán la solución al problema que resuelve dicho programa.

62 of 98

ESTRUCTURA GENERAL DE UN PROGRAMA

 

Todo programa, en general contiene dos bloques bien diferenciados para la descripción de los dos aspectos anteriormente citados:

    • Bloque de declaraciones. En él se especifican todos los objetos que utiliza el programa (constantes, variables, tablas, registros, archivos, etc.) indicando las características de estos. Este bloque se encuentra localizado siempre por delante del comienzo de las acciones.

    • Bloque de instrucciones. Constituido por el conjunto de operaciones que se han de realizar para la obtención de los resultados deseados.

 

63 of 98

PARTES PRINCIPALES DE UN PROGRAMA

Las partes principales de un programa están relacionadas con sus dos bloques ya mencionados.

Dentro del bloque de instrucciones podemos diferenciar tres partes fundamentales, como se muestra en la siguiente figura:

 

64 of 98

PARTES PRINCIPALES DE UN PROGRAMA

Entrada de Datos: La constituyen todas las instrucciones que toman los datos de entrada desde un dispositivo externo y los almacena en la memoria principal para que puedan ser procesados.

Proceso o algoritmo: Está formado por las instrucciones que modifican los objetos a partir de su estado inicial (datos de entrada) hasta el estado final (resultados) dejando los objetos que lo contiene disponibles en la memoria principal.

Salida de resultados: Conjunto de instrucciones que toman los datos finales (resultado) de la memoria principal y los envían a los dispositivos externos.

65 of 98

CLASIFICACION DE LAS INSTRUCCIONES

Según la función que desempeñan dentro de un programa, las instrucciones se clasifican de la siguiente manera:

Instrucciones de declaración:

Su misión es anunciar la utilización de objetos en un programa indicando que identificador, tipo y otras características corresponden a cada uno de ellos.

66 of 98

CLASIFICACION DE LAS INSTRUCCIONES

Instrucciones primitivas:

Son aquellas que ejecuta el procesador de modo inmediato. 

Es decir, no dependen de otra cosa que de su propia aparición en el programa para ser ejecutadas. 

Las instrucciones primitivas pueden ser de entrada, de asignación o de salida.

    • Instrucción de entrada: Su misión es tomar uno o varios objetos desde un dispositivo de entrada y almacenarlos en la memoria central en los objetos cuyos identificadores aparecen en la propia instrucción. Si estos objetos tuviesen algún valor previo, éste se perdería.
    • Instrucción de asignación: Es la que nos permite realizar cálculos evaluando una expresión y depositando su valor final en un objeto o realizar movimiento de datos de un objeto a otro.
    • Instrucción de salida: Su misión consiste en enviar datos a un dispositivo externo, bien tomándolos de objetos depositados en la memoria o definidos de alguna forma en la propia instrucción.

67 of 98

CLASIFICACION DE LAS INSTRUCCIONES

Instrucciones de control:

 

Son instrucciones que no realizan trabajo efectivo alguno salvo la evaluación de expresiones, generalmente lógicas, con el objetivo de controlar la ejecución de otras instrucciones o alterar el orden de ejecución normal de las instrucciones de un programa.

Existen tres grandes grupos de instrucciones de control:

    • Instrucciones alternativas: Son aquellas que controlan la ejecución de uno o varios bloques de instrucciones dependiendo del cumplimiento o no de alguna condición o del valor final de una expresión. Existen tres modelos típicos de instrucciones alternativas:

68 of 98

VARIABLES AUXILIARES DE UN PROGRAMA

Son objetos que utiliza un programa y por la función que realizan dentro del mismo toman un nombre especial, modelando su funcionamiento debido a su frecuente utilización.

Contadores: Es un objeto que se utiliza para contar cualquier evento que pueda ocurrir dentro de un programa. Se utilizan realizando sobre ellos dos operaciones básicas:

    • Inicialización: Todo contador se inicializa en 0 o un valor inicial si se desea realizar otro tipo de cuenta. CONTA = 0
    • Incremento: Cada vez que aparece el evento a contar se ha de incrementar el contador en 1 u otro valor si se realiza otro tipo de cuenta. CONTA = CONTA + 1
    • Acumuladores: Son objetos de un programa para acumular elementos sucesivos con una misma operación. En general se utilizan para acumular sumas y productos, sin descartar otros posibles tipos de acumuladores. Al igual que los contadores, para utilizarlos hay que realizar sobre ellos las operaciones de inicialización y acumulación.

69 of 98

Algoritmos y Pseudocódigo

70 of 98

Pseudocódigo

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

71 of 98

  • Características y partes
    • Las principales características de este lenguaje son:
    • Se puede ejecutar en un ordenador
    • Es una forma de representación sencilla de utilizar y de manipular.
    • Facilita el paso del programa al lenguaje de programación.
    • Es independiente del lenguaje de programación que se vaya a utilizar.
    • Es un método que facilita la programación y solución al algoritmo del programa.
  • Todo documento en pseudocódigo debe permitir la descripción de:
    • Instrucciones primitivas.
    • Instrucciones de proceso.
    • Instrucciones de control.
    • Instrucciones compuestas.
    • Instrucciones de descripción.

72 of 98

Estructura deseable a seguir en su realización:�

  • Cabecera.
    • Programa.
    • Modulo.
    • Tipos de datos.
    • Constantes.
    • Variables.
  • Cuerpo.
    • Inicio.
    • Instrucciones.
    • Fin.

73 of 98

  • Diagramas estructurados (Nassi-Schneiderman) ��El diagrama estructurado N-S también conocido como diagrama de chapin es como un diagrama de flujo en el que se omiten las flechas de unión y las cajas son contiguas. Las acciones sucesivas se pueden escribir en cajas sucesivas y como en los diagramas de flujo, se pueden escribir diferentes acciones en una caja. Un algoritmo se represente en la siguiente forma: ��

74 of 98

Imprimir numero mayor

  • 1.      leer (NumeroA)
  • 2.      leer (NumeroB)
  • 3.      Si (NumeroA < NumeroB)
  • 4.      imprimir ("El mayor es:", NumeroB)
  • 5.      si-no
  • 6.      imprimir ("El mayor es:", NumeroA)
  • 7.      fin-si

75 of 98

Estructuras selectivas�

76 of 98

Selectiva doble (alternativa)�

77 of 98

Selectiva múltiple�

78 of 98

Selectiva múltiple-Casos

79 of 98

Bucle mientras

80 of 98

Bucle repetir

81 of 98

Bucle para

Bucle para cada

82 of 98

El anidamiento

83 of 98

Reglas para dibujar un diagrama de flujo.�

Los Diagramas de flujo se dibujan generalmente usando algunos símbolos estándares.

84 of 98

FreeDFD permite crear fácilmente diagramas de flujo y ejecutarlos.

http://code.google.com/p/freedfd/downloads/list

85 of 98

Videos

86 of 98

Ejemplo

87 of 98

Reparar un PC

88 of 98

Reparar un PC v2

89 of 98

Diagrama de flujo que encuentra la suma de los primeros 50 números naturales

90 of 98

Pseudocódigo

Ejemplos

91 of 98

Ejemplos Pseudocódigo

Leer de teclado un número decimal, y mostrar por pantalla la parte entera.

INICIO

NUMERO=0,0; PE=0;

LEER A

PE = PARTEENTERA NUMERO

MOSTRAR "La parte entera del número introducido es: " PE

FIN

92 of 98

Ejemplos Pseudocódigo

Leer de teclado un número decimal, y mostrar por pantalla la parte entera y la parte decimal por separado.

INICIO

NUMERO = 0,0; PE=0; PD=0,0;

LEER NUMERO

PE = PARTEENTERA NUMERO

PD = PARTEDECIMAL NUMERO

MOSTRAR "La parte entera es: " PE

MOSTRAR "La parte decimal es: " PD

FIN

93 of 98

Ejemplos Pseudocódigo

Leer de teclado dos números enteros mayores de cero (no hace falta comprobarlo), y mostrar un mensaje por pantalla indicando si son divisibles o no.

INICIO

A=0; B=0; RES=0;

LEER A, B

RES = RESTO A / B

SI RES > 0

    MOSTRAR "Los dos números no son divisibles"

SINO

    MOSTRAR "Los dos números son divisibles"

FIN SI

FIN

94 of 98

Ejemplos Pseudocódigo

Leer de teclado dos números enteros mayores de cero (no hace falta comprobarlo), y mostrar un mensaje por pantalla indicando si son divisibles o no.

INICIO

A=0; B=0; RES=0; DIVISIBLE="";

LEER A, B

RES = RESTO A / B

SI RES > 0

    DIVISIBLE = "Los dos números no son divisibles"

SINO

    DIVISIBLE = "Los dos números son divisibles"

FIN SI

MOSTRAR DIVISIBLE

FIN

95 of 98

Ejemplos Pseudocódigo

Ejercicio 2006 - Nombre alumno

Leer de teclado enteros mayores de cero (no hace falta comprobarlo), y mostrar un mensaje por pantalla indicando si es par.

INICIO

A=0; RES=0;

LEER A

RES = RESTO A / 2

SI RES > 0

    MOSTRAR "El número es impar"

SINO

    MOSTRAR "El número es par"

FIN SI

FIN

96 of 98

Ejemplos Pseudocódigo

Leer de teclado un número entero mayores de cero (no hace falta comprobarlo), y mostrar por pantalla el siguiente número.

Ej: Nos dan el 8 y mostramos el 9.

INICIO

A=0; 

LEER A

A = A + 1

MOSTRAR "El siguiente número es: " A

FIN

97 of 98

Ejemplos Pseudocódigo

Leer de teclado un número entero (no hace falta comprobarlo), y mostrar por pantalla si es positivo o negativo.

Se asume que el cero es positivo.

Ej: Nos dan el -1 y mostramos "El valor es negativo".

INICIO

A=0; 

LEER A

SI A < 0

    MOSTRAR "El número introducido es NEGATIVO"

SINO

    MOSTRAR "El número introducido es POSITIVO"    

FIN SI

FIN

98 of 98