Diferencia entre revisiones de «Usuario:ManuelRomero/CursoJavaUml/programacionAlgoritmica»

De WikiEducator
Saltar a: navegación, buscar
Línea 17: Línea 17:
 
===== Instrucción inicio/fin de bloque =====
 
===== Instrucción inicio/fin de bloque =====
 
Un programa es un bloque que tiene un inicio y un fin. Dentro de este bloque puede haber muchos bloques. Siempre cada bloque empezará y terminará con una instrucción de inicio /fin bloque
 
Un programa es un bloque que tiene un inicio y un fin. Dentro de este bloque puede haber muchos bloques. Siempre cada bloque empezará y terminará con una instrucción de inicio /fin bloque
 
+
<source lang=java>
 
  programa MiPrograma
 
  programa MiPrograma
 
  inicio
 
  inicio
Línea 24: Línea 24:
 
       instruciones
 
       instruciones
 
     fin
 
     fin
 
 
     instrucciones
 
     instrucciones
 
  fin
 
  fin
 
+
</source>
 
En java el bloque inicio y fin está especificado con los caracteres '''{ '''y '''}''' respectivamente
 
En java el bloque inicio y fin está especificado con los caracteres '''{ '''y '''}''' respectivamente
 +
<source lang=java>
 
  cabecera_de_un_bloque
 
  cabecera_de_un_bloque
 
  {
 
  {
Línea 37: Línea 37:
 
   instrucciones
 
   instrucciones
 
  }
 
  }
 
+
</source>
 
Muy importante es la '''indentación''' que es el margen o sangría;Es decir que '''todas '''las instrucciones de un determinado bloque vayan indentadas a un mismo nivel, con el mismo margen. Cada nuevo nivel de bloque aumento la sangría o margen. Si cierro el bloque ''vuelvo al nivel anterior.''
 
Muy importante es la '''indentación''' que es el margen o sangría;Es decir que '''todas '''las instrucciones de un determinado bloque vayan indentadas a un mismo nivel, con el mismo margen. Cada nuevo nivel de bloque aumento la sangría o margen. Si cierro el bloque ''vuelvo al nivel anterior.''
  

Revisión de 01:25 29 mar 2012

Conceptos básicos en la programación



Icon objectives.jpg

Objetivos

  • Analizar brevemente los elementos que internvienen en un programa de alto nivel
  • Englobar el lenguaje de programación orientado a objetos dentro de los diferentes paradigmas de programación
  • Realizar una aproximación a la programación orientada a objetos.




Algunas conceptos previas


  • Tipo de dato conjunto de valores para los cuales hay definidos una serie de operaciones
  • Variable posición de menoria o registro identificado con un nombre (identificador)cuyo contenido va a almacenar un valor de un determinado tipo que puede ser modificado durante la ejecución de un programa
  • Constante poscición de memoria o registro identificado con un nombre cuyo valor no puede ser modificado durante la ejecución de un programa
  • Instruccion operacción que indica al procesador la acción que tiene que realizar, siendo ésta una de las características del procesador su set de instrucciones
  • Estructura de control Establecen el flujo de ejecución de un programa. Es decir las instrucciones se va a establecer dentro del programa. Un programa visto como un conjunto de instrucciones deberá tener unas determinadas estructuras de control que me permitan establecer el flujo de ejecución del mismo. En mayo de 1.966, dos matemáticos 'Bôhm y Jacopini' demostraron que un programa que algorítmicamente tuviera solución puede ser escrito utilizando solamente tres tipos de estructuras de control
  • Sentencias o estructuras de control:
  1. Sentencias secuenciales
  2. Sentencias iterativas o repetitivas
  3. Sentencias selectivas


Estructras de control

Estructura secuencial

Consiste en poner una instrucción detrás de otras. El orden de ejecución es secuncial y en orden (Excepción a esta regla los procesadores fuera de orden e instrucciones independientes).

Instrucciones secuenciales

Instrucción inicio/fin de bloque

Un programa es un bloque que tiene un inicio y un fin. Dentro de este bloque puede haber muchos bloques. Siempre cada bloque empezará y terminará con una instrucción de inicio /fin bloque

 programa MiPrograma
 inicio
     bloque_dentro_de_mi_programa
     inicio
       instruciones
     fin
     instrucciones
 fin

En java el bloque inicio y fin está especificado con los caracteres { y } respectivamente

 cabecera_de_un_bloque
 {
  otro_bloque_B
  { 
   instricciones_bloque_B
  }
  instrucciones
 }

Muy importante es la indentación que es el margen o sangría;Es decir que todas las instrucciones de un determinado bloque vayan indentadas a un mismo nivel, con el mismo margen. Cada nuevo nivel de bloque aumento la sangría o margen. Si cierro el bloque vuelvo al nivel anterior.


(Comment.gif: Algunos lenguajes como Python usan directamente la indentación como inidicador de inicio/fin de bloque)



Lenguaje de programación

Conjunto de lexemas que se combinan siguiente unas reglas de construcción o sintaxis y que tienen un significado definido o semántica que se emplea para expresar un algoritmo codificándolo en dicho lenguaje, constituyendo un programa escrito en un leguaje de alto nivel. dicho programa una máquina computacional no puede ser capaz de ejecutar

El lenguaje va acompañado de uno o varios  programas (compilador o interprete )que es capaz de generar código máquina a partir del programa expresado en este lenguaje
Niveles de lenguajes

En función de la proximidad de compresión del lenguaje al lenguaje humano se puede hablar de tres niveles de lenguajes de programación.

Alto nivel

El lenguaje utiliza lexemas y estructuras sintácticas similares al utilizado en el lenguaje humano

Bajo nivel

El lenguaje es más próximo a la máquina. Aunque se pueden utilizar lexemas como es el caso de ensamblador, éstos tienen una traducción directa al código máquina 0's y 1's

Nivel de lenguaje máquina

Conjunto de 0'1 y 1's que corresponden a códigos binarios que el procesador es capaz de entender y ejecutar

Proceso de transformación
Pasar de código de alto nivel a código máquina. Este proceso puede ser una mera traducción como es el caso de pasar de ensamblador a código máquina
Lenguajes compilados
Lenguajes interpretados
Java un caso especial
lenguaje semicompilado
Para que programar

Ejemplos

Existen diferentes modos de expresar un algoritmo Algoritmo.png

Elementos en un lenguaje de programación

  • Tipo de dato conjunto de valores para los cuales hay definidos una serie de operaciones
  • Variable posición de menoria o registro identificado con un nombre (identificador)cuyo contenido va a almacenar un valor de un determinado tipo que puede ser modificado durante la ejecución de un programa
  • Constante poscición de memoria o registro identificado con un nombre cuyo valor no puede ser modificado durante la ejecución de un programa
  • Instruccion operacción que indica al procesador la acción que tiene que realizar, siendo ésta una de las características del procesador su set de instrucciones
  • Estructura de control Establecen el flujo de ejecución de un programa. Es decir las instrucciones se va a establecer dentro del programa. Un programa visto como un conjunto de instrucciones deberá tener unas determinadas estructuras de control que me permitan establecer el flujo de ejecución del mismo. En mayo de 1.966, dos matemáticos 'Bôhm y Jacopini' demostraron que un programa que algorítmicamente tuviera solución puede ser escrito utilizando solamente tres tipos de estructuras de control
  • Sentencias o estructuras de control:
  1. Sentencias secuenciales
  2. Sentencias iterativas o repetitivas
  3. Sentencias selectivas

Paradigmas de programación

Concepto

Icon qmark.gif

Pregunta

#Paradigma



  • Paradigma de programa es un conjunto de técnicas o filosofías bien definidas que usamos para realizar programación.
  • No quiere decir que un programa siempre siga un paradigma concreto, puede seguir varios.
  • Las implementaciones de programas en alto nivel se realizan usando un lenguaje de programación (o varios) concretos.
  • Un mismo lenguaje se puede usar para diferentes paradigmas
  • Cuando hablamos de paradigmas de la programación intentamos descubrir las diferentes formas de enfocar y desarrollar la programación atendiendo a determinadas reglas


=Paradigma imperativo

Este paradigma presenta dos partes diferenciadas:

  • una estática
  • una dinámica:
  1. Parte estática:
ValoresTipos de datos, variables y constantes. Independientemente de que el lenguaje sea no tipado (C, Modula, Pascal Vs PHP, Python,) o más fuertemente tipado (c), o más débilmente tipado (Basic),
En memoria almacenamos los valores de los datos con los que estamos trabajando dentro del programa. Estos valores los utilizan y modifica la parte dinámica del programa.
  1. Parte dinámica: Procedimientos y funciones
Conjuntos de instrucciones que operan sobre valores y realizan acciones

=Paradigma imperativo

El siguiente ejemplo no completo en su solución (dado que hay dos soluciones y que puede ser que no sean reales sino complejas conjugadas), ilustra como procedemos de forma imperativa usando datos e instrucciones para realizar un programa. PROGRAMA1.png

Paradigma imperativo

  • Modulacion
'DIVIDE Y VENCERAS'
    • Dividir el problema a resolver en partes mas pequeñas o subproblemas.
    • Dar solución a cada una de las partes
    • Unir las soluciones para solucionar el problema inicial
    • Es una filosibía de 'Divides y vencerás
    • Es más fácil resolver un problema sencillo que uno complejo
    • Es efectivo y práctic

Paradigma funcional

Paradigma lógico

Paradigma objeto

Paradigma concurrente