conceptos fundamentales de programacion

30
INFORMATICA Conceptos Fundamentales de Programación Manuel Cruz Diego Pico John Triana Manuel Cruz

Upload: juceboper

Post on 10-Dec-2015

215 views

Category:

Documents


0 download

DESCRIPTION

Programacion

TRANSCRIPT

Page 1: Conceptos Fundamentales de Programacion

INFORMATICAConceptos Fundamentales de Programación

Manuel CruzDiego PicoJohn Triana

Manuel Cruz

Page 2: Conceptos Fundamentales de Programacion

Variable

• Las Variables son la Columna Vertebral de cualquier Programa, por consiguiente son la Columna Vertebral de Cualquier Lenguaje de Programación.

• Una variable es una posición de memoria con un nombre que puede guardar distintos valores.

Page 3: Conceptos Fundamentales de Programacion

Diferentes Tipos de Variables

• Las Variables se pueden dividir, según el tipo de dato:

• Dato Lógico • Dato Entero• Dato Coma Flotante• Dato Carácter• Dato Cadena

Page 4: Conceptos Fundamentales de Programacion

TipoBytes Ocupados

en MemoriaNombre

Numero Valores

Byte 1 Byte 2^8Short 2 Entero Corto 2^16

int 4 Entero 2^32long 8 Entero Largo 2^64float 4 Real Simple precision 2^32

double 8 Real Doble precision 2^64

Page 5: Conceptos Fundamentales de Programacion

Funciones• En programación, una función es un grupo de

instrucciones con un objetivo en particular y que se ejecuta al ser llamada. Una función puede llamarse múltiples veces e incluso llamarse a sí misma (función recurrente). Las funciones pueden recibir datos desde afuera al ser llamadas a través de los parámetros y deben entregar un resultado. Se diferencian de los procedimientos porque estos no devuelven un resultado.

Page 6: Conceptos Fundamentales de Programacion

• Ejemplo de Función Básica: nombre función () { secuencia de sentencias }Una sentencia especifica una acción a llevar a cabo por el programa.Las sentencias son las partes del programa que realizan las operaciones. Las sentencias se encuentran dentro de las funciones.

Page 7: Conceptos Fundamentales de Programacion

En programación, una sentencia es una línea de código en algún lenguaje. Un programa está constituido por múltiples sentencias de programación, lo que es llamado código fuente. Un algoritmo de programación está constituido por una o más sentencias de programación. Las sentencias de programación suelen tener algún carácter que determina su final, por lo general es un punto y coma (;) o un punto final (.).

Page 8: Conceptos Fundamentales de Programacion

En los lenguajes de programación las sentencias están numeradas, de esta manera, si existe algún error de sintaxis (o alguna advertencia), el compilador entrega un mensaje con el número de sentencia donde fue encontrado. Una sentencia de programación tiene una sintaxis y una semántica. La sintaxis está determinada por el lenguaje de programación y, si existe algún error, el compilador suele detectarlo.

Page 9: Conceptos Fundamentales de Programacion

Operadores

• Son elementos que relacionan de forma diferente, los valores de una o mas variables y/o constantes. Es decir, los operadores nos permiten manipular valores.

Tipos de Operadores

AritméticosRelacionalesLógicos

Page 10: Conceptos Fundamentales de Programacion

• Operadores Aritméticos:

Los operadores aritméticos permiten la realización de operaciones matemáticas con los valores (variables y constantes).

Los operadores aritméticos pueden ser utilizados con tipos de datos enteros o reales. Si ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real.

Page 11: Conceptos Fundamentales de Programacion

• Operadores Aritméticos + Suma - Resta * Multiplicación / División mod Modulo (residuo de la división entera)

7+2=9 30/2=15 7+2*5=17

Page 12: Conceptos Fundamentales de Programacion

• Operadores Relacionales:

Se utilizan para establecer una relación entre dos valores. Luego compara estos valores entre si y esta comparación produce un resultado de certeza o falsedad (verdadero o falso). Los operadores relacionales comparan valores del mismo tipo (numéricos o cadenas). Estos tienen el mismo nivel de prioridad en su evaluación. Los operadores relaciónales tiene menor prioridad que los aritméticos.

Page 13: Conceptos Fundamentales de Programacion

• Tipos de operadores Relacionales• > Mayor que• < Menor que• > = Mayor o igual que• < = Menor o igual que• < > Diferente• = Igual

si a=3 b=4 c=5 a + b>c Verdadero

Page 14: Conceptos Fundamentales de Programacion

• Operadores Lógicos: Estos operadores se utilizan para establecer relaciones entre valores lógicos. Estos valores pueden ser resultado de una expresión relacional.

Tipos de operadores Lógicos And Y Or O Not Negación

Page 15: Conceptos Fundamentales de Programacion

Operando 1 Operador Operando 2 ResultadoFALSO AND FALSO FALSOFALSO AND VERDADERO FALSO

VERDADERO AND FALSO FALSOVERDADERO AND VERDADERO VERDADERO

Operando 1 Operador Operando 2 ResultadoFALSO OR FALSO FALSOFALSO OR VERDADERO VERDADERO

VERDADERO OR FALSO VERDADEROVERDADERO OR VERDADERO VERDADERO

Page 16: Conceptos Fundamentales de Programacion

Sintaxis y Semántica• La sintaxis de un lenguaje de programación está

relacionada con la forma de los programas, por ejemplo, como es que las expresiones, comandos, declaraciones, etc. son puestos juntos en un programa.

• La semántica de un lenguaje de programación está relacionada con el significado de los programas; por ejemplo, cómo ellos se comportarán cuando se ejecutan en una computadora.

Page 17: Conceptos Fundamentales de Programacion

• La sintaxis de un lenguaje influye en cómo los programas son escritos por el programador, leídos por otro programador y traducidos por el computador. La semántica de un lenguaje determina como los programas son compuestos por el programador, entendidos por otros programadores e interpretados por el computador. La sintaxis es importante; pero la semántica es más importante aún.

Page 18: Conceptos Fundamentales de Programacion

Corrección

• Como podemos saber si un Programa de Software es Correcto, una forma sencilla es verificar que el programa es correcto para la obtención de resultados que ya conocemos.

• Pero para probar que es Correcto en general debemos analizar el programa en general lo cual implica estas tres razones.

Page 19: Conceptos Fundamentales de Programacion

• 1.Necesitamos un modelo matemático de las operaciones del lenguaje de programación, para saber que es lo que debe hacer. Este modelo es llamado la semántica del lenguaje de programación.

• 2.Necesitamos definir que queremos que haga el programa, usualmente esta es la definición matemática, de las entradas que necesita el programa y los resultados que calcula, esto es llamado las especificaciones del programa.

Page 20: Conceptos Fundamentales de Programacion

• 3.Usar técnicas matemáticas, para, realizar razonamiento acerca del programa, debemos demostrar que el programa cumple con las especificaciones.

Page 21: Conceptos Fundamentales de Programacion

Programación de Bajo Nivel• La programación de nivel bajo es cuando un sistema en

realidad le asigna una tarea a un procesador que está listo para trabajar. En otras palabras, en este tipo de programación, un sistema le asigna un componente específico o un procesador interno a una tarea específica en base a su nivel de prioridad, el ancho de banda necesario y el disponible. La programación de bajo nivel determina qué tareas serán entregadas y en qué orden. Estas tareas ya han sido aprobadas para trabajar, así que el nivel de programación bajo es más detallista que los otros niveles.

Page 22: Conceptos Fundamentales de Programacion

Programación de Nivel Intermedio• La programación de nivel medio no aplica a todos

los sistemas operativos. Determina si algunas tareas o pedidos deben ser colocados temporalmente en una memoria secundaria del sistema y ser quitadas de la memoria principal hasta que ésta tenga el ancho de banda suficiente para realizar dicha tarea o pedido. Este tipo de programación colocará la tarea u objeto nuevamente en la memoria principal del sistema para llevarla a cabo en el momento adecuado.

Page 23: Conceptos Fundamentales de Programacion

Programación de Alto Nivel• La programación de alto nivel es cuando un sistema de

computadora escoge qué trabajos, tareas o pedidos procesar. En este modelo, las tareas o pedidos son priorizados y programados para completar en base a la cantidad máxima de trabajo o tareas que el sistema puede manejar de una sola vez. Las tareas para las que el sistema no tiene el ancho de banda suficiente para realizar son programadas para más adelante, cuando las otras tareas estén completas y liberen el ancho de banda necesario para las tareas específicas. La programación de alto nivel también se llama algunas veces "programación a largo plazo".

Page 24: Conceptos Fundamentales de Programacion

Programación de Alto Orden

• La programación de alto orden, es la capacidad de utilizar funciones como valores, así, que se pueden pasar funciones como argumentos de otras funciones, y las funciones pueden ser el valor de retorno de otras funciones.

• Este estilo de programación se utiliza sobre todo en la programación funcional , pero también puede ser muy útil en la programación orientada a objetos.

Page 25: Conceptos Fundamentales de Programacion

• Un buen ejemplo de esto es, el lenguaje de scripts de Ruby , que combina todas las ventajas de la programación orientada a objetos pura y programación de alto orden.

• Otros ejemplos de lenguajes de programación que soportan esta característica son C#, Java, Perl, Phyton, Prolog.

Page 26: Conceptos Fundamentales de Programacion

• Ejemplo Código Alto Orden JavaScript

function element(tag) { this.stag='<'+tag+'>'; this.etag='</'+tag.replace(/s.*/,'')+'>'; var me=this; this.wrap=function(x) { return me.stag+x+me.etag; }} P=new element('P');// this still works:document.write(P.wrap('This is a paragraph.'));// and now this works too:document.write(arr.reduce(P.wrap));

Page 27: Conceptos Fundamentales de Programacion

Concurrencia o Computación Concurrente

• Es la simultaneidad en la ejecución de múltiples tareas interactivas. Estas tareas pueden ser un conjunto de procesos o hilos de ejecución creados por un único programa. Las tareas se pueden ejecutar en una sola unidad central de proceso (multiprogramación), en varios procesadores o en una red de computadores distribuidos. La programación concurrente está relacionada con la programación paralela, pero enfatiza más la interacción entre tareas.

Page 28: Conceptos Fundamentales de Programacion

Estado o Estado Explicito

• Es la característica de las funciones para disponer de una memoria variable en función del tiempo y de los procesos en ejecución, para saber cuantas veces dicha función ha sido ejecutada.

Page 29: Conceptos Fundamentales de Programacion

Algoritmo No Determinístico• Es la característica que posee un programa que

combina la computación concurrente con el estado explicito.

• Es decir el programa mientras se encuentra en ejecución puede decidir diferentes alternativas de ejecución del código, flujo del programa en determinados puntos.

• un algoritmo no determinista es un algoritmo que con la misma entrada ofrece muchos posibles resultados. No se puede saber de antemano cuál será el resultado de la ejecución de un algoritmo no determinista

Page 30: Conceptos Fundamentales de Programacion

• los algoritmos no deterministas emplean modelos de computación tales como la Máquina de Turing probabilística, que no son deterministas. Se considera entonces que los algoritmos no deterministas son un caso especial.