UF1- Programación estructurada Flashcards
Tema 1 - Introducción a la programación Tema 2 - Estructura de un programa informático Tema 3 - Programación estructurada
Un programa es
- Un conjunto de instrucciones dadas al ordenador en un lenguaje que sólo es entendible por él para comunicarle lo que queremos que haga.
Un algoritmo es
- Una secuencia finita de operaciones que resuelven un determinado problema.
- Un algoritmo es más parecido a una idea, una forma de resolver un problema, mientras que un programa está más relacionado con la realización de una o más tareas por parte de un ordenador.
Un programa debe cumplir una serie de características
> Debe ser FINITO: formado por un conjunto limitado de sentencias.
> Debe ser LEGIBLE: es importante crear códigos limpios y fáciles de leer con tabulaciones y espacios que diferencien las partes del programa.
> Debe ser MODIFICABLE: debe ser sencillo el proceso de actualización o modificación ante nuevas necesidades.
> Debe ser EFICIENTE: debemos creer programas que ocupen poco espacio en memoria y se ejecuten rápidamente.
> Debe ser MODULABLE: debemos realizar algoritmos que se dividan a su vez en sub-algoritmos de forma que se disponga de un grupo principal desde el que llamaremos al resto. Así, incitamos a la reutilización de código.
> Debe ser ESTRUCTURADO: engloba a las características anteriores, ya que un programa estructurado será fácil de leer y modificar, y estará compuesto de subprogramas que permitirán la reutilización de código.
Para representar un algoritmo podemos utilizar 2 herramientas gráficas:
> Los diagramas de flujo
> Y el pseudocódigo
Un diagrama de flujo es
- Una representación gráfica de un proceso. Cada paso del proceso se representa con un símbolo diferente que contiene una breve descripción.
Símbolos estándar del diagrama de flujo
> RECTÁNGULO ESQUINAS REDONDEADAS: Indican inicio o fin de programa.
> RECTÁNGULO: representa una instrucción, un paso a dar o un proceso.
> RECTÁNGULO INCLINADO: Operaciones de entrada/salida de datos.
> ROMBO: Utilizaremos este símbolo si nos encontramos en un punto en el que se realizará una u otra acción en función de una decisión.
> CÍRCULO: conector, permite unir diferentes zonas del diagrama de forma que se redefine el flujo de ejecución hacia otra parte del diagrama.
> RECTÁNGULO, CON BANDAS LATERALES: representa un método o subprograma.
> FLECHAS: indican la dirección de flujo.
Características de los diagramas de flujo
- Deben escribirse de arriba a abajo o de izquierda a derecha.
- Debemos evitar el cruce de líneas, para eso se define la forma de conector. El uso de conectores de producirse cuando no exista otra opción.
- Todas las líneas de flujo deben estar conectadas a algún objeto.
- El texto que se escribe en las formas debe ser escueto y legible.
- Todos los símbolos de decisión deben tener más de una línea de salida, es decir deben indicar que camino seguir en función de la decisión tomada.
Que es el pseudocódigo
- Es la manera de representar las distintas sentencias que va a realizar nuestro algoritmo con un lenguaje cercano al natural. Por tanto es un lenguaje que no se puede ejecutar en una máquina.
Características del pseudocódigo
> Comienza con la palabra algoritmo seguido de su nombre.
> Tenemos la secuencia de instrucciones de este algoritmo.
> Finaliza con la estructura FinAlgoritmo.
> No es necesario la indentación (sangrado) aunque es recomendable.
> No se diferencia entre mayúsculas y minúsculas.
Comunicación de un sistema informático
- En el proceso de programación se comunica a un usuario con una maquina.
Requisitos que deben existir para que pueda haber esa comunicación:
> Los 2 agentes principales, usuario y máquina.
> El canal, por el que se comunica nuestro usuario es el teclado.
> El lenguaje, tanto el receptor como el emisor hablan un lenguaje completamente diferente. Para que la comunicación sea fluida, debemos acercar los lenguajes, tanto de la máquina como del usuario, y así lograr el entendimiento.
Para solventar el problema de la comunicación tenemos lenguajes de programación de 3 tipos:
> ALTO NIVEL: están más cerca del lenguaje que habla el usuario, mientras que los lenguajes
> Nivel MEDIO: toman características de los otros 2, como por ejemplo el lenguaje C.
> BAJO nivel: se acercan más a las estructuras del lenguaje de la máquina.
- Para facilitar el trabajo, implementaremos nuestro código con lenguajes de alto nivel, de modo que necesitaremos un proceso de traducción para convertir el programa escrito en lenguaje máquina.
Características del lenguaje de alto nivel
> Es totalmente independiente de la máquina y por tanto muy portable.
> Muy utilizado en el mercado laboral informático.
> Tanto las modificaciones como las actualizaciones son muy fáciles de realizar.
> Para la tarea de traducción de código necesitamos un compilador y un enlazador con librerías del propio lenguaje de programación elegido.
- Algunos ejemplos de lenguaje de alto nivel son java, php, C#, VB.NET, Python.
Características del lenguaje de bajo nivel
> Está relacionado con las características del hardware.
> Es fácilmente traducible al lenguaje máquina.
> Es totalmente dependiente de la máquina.
- Un ejemplo de lenguaje de bajo nivel es Ensamblador, que trabaja con registros de bajo nivel.
Estructura de un programa informático y sus elementos principales
> las variables
las constantes
y los distintos operadores
- Con todos ellos implementamos el código fuente.
Que son los lenguajes compilados
- Aquellos lenguajes de alto nivel que utilizan un compilador para poder traducirlo al lenguaje de máquina.
- En nuestro caso un programa escrito en C# necesita un compilador de C#. En este supuesto el lenguaje máquina no corresponde al ordenador, sino al de una máquina ficticia llamada máquina virtual. En C# la máquina virtual se denomina CLR (Common Languaje Runtime).
- Esta máquina no existe físicamente sino que es simulada por un ordenador. Podemos instalarla en nuestro ordenador copiando ese programa en nuestro disco duro.
- Gracias a esa máquina podemos ejecutar nuestro programa en cualquier ordenador del mundo.
Que es un lenguaje interpretado
- Es aquel que no genera un programa escrito en una máquina virtual. Efectúa directamente la traducción y ejecución simultáneamente para cada una de las sentencia.
- Un intérprete verifica cada línea del programa cuando se escribe. La ejecución es más lenta debido a esa traducción simultánea.
Comparativa entre C# y Java
- Ambos lenguajes orientados a objetos.
- C# contiene 2 categorías generales de tipos de datos integrados: tipos de valor y tipos de referencia | En Java los argumentos son siempre pasados por valor independientemente del tipo de variable.
- La migración de C# a Java y viceversa, es sencilla porque mantiene una sintaxis muy similar.
- C# está implicado en la plataforma.NET que tiene a su disposición el recolector de basura del CLR (Common languaje runtime o entorno en tiempo de ejecución). | En Java gracias al recolector de basura se elimina la necesidad de la liberación explícita de la memoria.
- En C# todos los tipos derivan una superclase común llamada System Object. A diferencia de Java esta característica también se aplica para los tipos básicos. | Java soporta la sincronización de múltiples hilos de ejecución (multithreading) a nivel de lenguaje.
- C# es un lenguaje compilado | Java es compilado, en la medida en que su código fuente se transforma en un código máquina muy parecido al lenguaje ensamblador.
- En C# se genera un código intermedio llamado MSIL (Microsoft Intermediate Languaje) y luego este código se vuelve a compilar para obtener el formato nativo en la máquina que se va a ejecutar. | Java es interpretado, ya que ese código máquina se puede ejecutar directamente sobre cualquier máquina la cual tenga el intérprete y el sistema de ejecución en tiempo real.
El lenguaje de programación en C# es
- Un lenguaje de alto nivel que pertenece a un lenguaje de alto nivel que pertenece al conjunto de lenguajes de .NET. Luego C# es una evolución de C++ y mucha de la sintaxis está heredada de este lenguaje.
- Con C# podemos crear aplicaciones con un interfaz de texto, que denominamos aplicaciones de consola.
- Una de las ventajas de aprender este lenguaje es que es independiente de la plataforma donde lo ejecutamos (sea Intel o AMD).
- Para desarrollar nuestros programas en C# utilizaremos un IDE. Un entorno de desarrollo integrado (IDE) es un software diseñado para el desarrollo de aplicaciones con un conjunto de herramientas integradas en una interfaz gráfica de usuario (GUI).
Características de C#
> Editor de código fuente: ayuda al programador a escribir el código, resaltando la sintaxis de forma visual y rellenando de forma automática las distintas opciones que nos proporciona el lenguaje.
> Depurador: ayuda al programador a localizar sus errores de código.
> Compilación del código fuente: un código binario entendible por la máquina.
- Para plataformas de Windows, podemos desarrollar con IDE Visual Studio. El proyecto que implementa el desarrollo de .NET en GNU/Linux es el proyecto Mono, concretamente el entorno de desarrollo MonoDevelop.
- Con estos programas vamos a ir generando los diferentes proyectos. Cada vez que creemos un proyecto nuevo, el programa va a generar solo un fichero de código fuente, que es el que va a dar lugar al ejecutable que necesita la aplicación.
- Este fichero que se genera debe tener la extensión cs, ya que es la extensión utilizada por los ficheros en C#.
Para instalar Visual Studio
- Vamos a la página oficial de Microsoft, donde en la parte de downloads tendremos varias opciones. Así descargamos Visual Studio Community que es la versión gratuita.
- Una vez descargado procedemos a la instalación.
- Durante la instalación nos dará a elegir entre una serie de paquetes instalables.
- Nosotros para realizar nuestras aplicaciones de consola añadimos el siguiente paquete: Desarrollo de Escritorio de.NET
Instalación de MonoDevelop
- Para la instalación de este IDE en plataformas como Ubuntu o Debian.
Podemos definir un programa como
- Una secuencia de instrucciones separadas por un punto y coma que se van a ir agrupando en diferentes bloques mediante llaves.
Para crear un proyecto en Visual Studio
- Abrimos nuestro Visual Studio y seleccionamos la opción Crear un proyecto. Posteriormente elegiremos la opción Crear un aplicativo de consola. Nombramos nuestra aplicación con el nombre que queremos y seleccionamos la ruta donde lo guardaremos.
La interfaz de nuestro IDE en Visual Studio estará formado por 3 partes principales
- Esta se abre cuando hayamos configurado los parámetros anteriores.
1. Editor de código: El desarrollador implementará todas las instrucciones necesarias para completar su programa.
2. El Explorador de soluciones: En esta parte de nuestro IDE veremos los archivos generados de nuestro aplicativo.
3. La salida: Nos proporcionará el resultado de si la compilación ha sido correcta o por el contrario si ha habido un error, así también como el porque de ese error.
Cuando creamos un proyecto se crea la siguiente estructura:
using System; namespace MiAplicación { class Program { static void Main(string[] args) { } } }
Clase program
- La estructura que Visual Studio nos crea por defecto es la clase Program.
- Una clase es: una estructura de datos que está compuesta por atributos o variables y métodos o funciones. El método principal se denomina Main.
- De hecho siempre que ejecutemos un programa el primer método que se ejecutará será el Main.
- Este método tiene una serie de argumentos. Estos argumentos son cadenas de caracteres que podemos pasar por líneas de comandos (CMD).
- Nosotros trabajaremos con la Consola de nuestro entorno de desarrollo.
Entrada y salida por pantalla
Para establecer la comunicación entre el usuario y el programa emplearemos
- La clase Console:
> Para la salida por pantalla, podemos utilizar los métodos de esta clase, Write y WriteLine:
a) El método Write() escribe un valor o valores especificados en el flujo de salida estándar, que generalmente será nuestra pantalla.
b) El método WriteLine(), escribe un valor o valores especificados en el flujo de salida estándar, que generalmente será nuestra pantalla y se realiza un salto de línea en nuestra consola.
> Para la entrada de datos del usuario: utilizaremos el método RealLine(). Este método leerá el dato introducido por el usuario y devolverá un dato de tipo cadena (string).
> Otra forma de recoger los datos de entrada del usuario es el método Read(). Este método leerá el dato introducido por el usuario y devolverá un dato de tipo entero (int).
> Asimismo otro método utilizado por la Clase Console es el método ReadKey(). En este caso se obtiene el carácter presionando por el usuario y se muestra esta tecla por pantalla.
> Se pueden consultar online más métodos.
Una variable es
- Una estructura de datos que ocupan un espacio en memoria y pueden variar a lo largo de un programa.
Cuando declaramos una variable
-
Tipos de datos en C#
-
Para definir una variable necesitamos
-
Para identificar una variable y que tenga un identificador válido por el compilador debemos seguir una serie de normas
-
Link con la lista de palabras clave (o identificadores) predefinidos por el compilador
-
Para declarar una variable
-
Asignación de un valor a una variable
-
Podemos dividir las variables en 2 grandes bloques dependiendo del ámbito en el que se encuentren
-
Que son las constantes
-
Donde se definen las constantes:
-