Conceptos Basicos y Metodologia de La Programacion

33
Conceptos Básicos y metodología de la Programación

Transcript of Conceptos Basicos y Metodologia de La Programacion

Conceptos Básicos y metodología de la Programación

Computadora• Máquina capaz de

aceptar datos de entrada, procesarlos y entregar resultados de salida de información.

• Una computadora es una máquina de procesamiento de información.

• Los ordenadores sirven para la gestión de datos, almacenan grandes cantidades de datos e información y permite recuperarlos y enviarlos a gran velocidad.

Software• Conjunto de programas que le indican a la

computadora qué hacer y cómo operar para generar los resultados esperados.

Dato e Información• Un dato es aquella representación de una entidad

y que es susceptible de tratamiento ya sea de un programa o proceso informático.

• La información es un mensaje válido para un receptor o resultado del procedimiento de datos.

• En el momento en que un dato se transmite y se le añade un contexto, se convierte en información.

Tipos de Datos• NÚMEROS:• ENTEROS: Número entero desde un valor negativo alto hasta

un valor positivo alto. Este puede ser short o long dependiendo del tamaño del número.

• FLOAT: Números con pocos decimales.

• Double: Números con muchos decimales.

• LÓGICO: Verdadero y falso.

• CARÁCTER: Almacenan información alfa-numérica.

¿Qué es un programa?• La unión de una

secuencia de instrucciones que una computadora puede interpretar y ejecutar y un conjunto de estructuras de datos que almacenan la información sobre la que la operan las instrucciones.

Para programar se requiere de:• Fundamentos generales de

programación.• Lógica para entender,

conceptualizar y solucionar el problema.

• Conocimiento de cualquier lenguaje de programación.

Lenguaje de programación• Es una técnica de

comunicación estilizada que se utiliza para controlar el comportamiento de una maquina (usualmente una computadora).

• Permite al programador especificar de manera precisa sobre que datos debe operar una computadora.

Los principales lenguajes utilizados son:• Lenguaje Máquina

• Lenguaje de bajo nivel o ensamblador

• Lenguajes de alto nivel

Lenguaje Máquina• Es un lenguaje que puede ser interpretado

directamente por los circuitos internos de la máquina.

• Está basado en instrucciones compuestas por sentencias de ceros y unos.

• Ventajas:• 1)No requiere

traducción, la máquina lo interpreta.

• 2)Opera directamente con la máquina.

• 3)Puede ser eficiente con el manejo de los recursos.

• Desventajas:• 1)Difícil de

aprender, implementar y mantener.

• 2)Es único y particular para cada procesador

Lenguaje de Bajo Nivel o Ensamblador• Es un lenguaje fuente para codificar sentencias

simbólicas.• Un ensamblador convierte cada instrucción en

instrucciones de lenguaje de máquina.

• Ventajas:• 1)No es tan

complicado como el lenguaje máquina.

• 2)Eficiente en el manejo de recursos.

• Desventajas:• 1)Cada procesador

tiene su propio juego de instrucciones en ensamblador.

• 2)Dependencia total por la máquina lo que impide la transportabilidad de los programas.

• 3)Debe ser traducido-ensamblado.

Lenguaje de Alto Nivel• Es un lenguaje orientado al problema o

procedimiento.• Son los más cercanos al lenguaje humano.• Ejemplos: COBOL,PL/I, FORTRAN, orientado a

objetos.

• Ventajas:• 1)Son

independientes del procesador.

• 2)Son más fáciles de aprender, implementar y mantener.

• 3)Tiene un carácter genérico.

• Ventajas:• 1)Menos

eficiente en el manejo de recursos.

• 2)Requiere un proceso de traducción.

Metodología de la Programación• Análisis del Problema• Diseño de los algoritmos• Codificación del programa• Compilación• Verificación/Depuración• Documentación

Análisis del Problema

Diseño de los Algoritmo• Conjunto preescrito de operaciones (reglas o

instrucciones) bien• definidas para resolver un problema en un número

finito de pasos• Un algoritmo: Finito (Resultado en el tiempo), Definido

(No puede ser ambiguo), Preciso (ejecución paso a paso).

• El diseño del algoritmo es bastante independiente del lenguaje de programación (sí depende del enfoque)

• Definir paso a paso con detalle• Diseño descendente o modular:División del problema en subproblemas

Diagrama de Flujos

Simbología del Diagrama de Flujo

Pseudocódigo• Se trata de un lenguaje imitación del de un

ordenador.• No está estandarizado.• Cada programador tiene el propio.• Mezcla de lenguaje natural, símbolos, términos y

características de varios lenguajes de programación.

Codificación del Programa

Escribir el algoritmo en un lenguaje de programación.• Permite ser leído y ejecutado por el ordenador.Tipos de lenguajes:• De bajo nivel (dependen de la máquina sobre la

que se ejecuta):Lenguaje Máquina (escritura en binario)• Ensambladores: (escritura simbólica)

De alto nivel (no dependen de la máquina):• Imperativos:

• Estructurados:• FORTRAN• C• Pascal

• Orientado a Objetos:

• Java• C++• Ada 95

Declarativos:• LISP/PROLOG

• La salida de la fase de codificación son los programas fuente (que todavía no se pueden ejecutar directamente sobre el ordenador).

• Un programa se compone de un conjunto de instrucciones que indican las operaciones elementales a ejecutar y la manera en que se encadenan.

Compilación• Salvo que el programa se escriba directamente en

lenguaje máquina (muy improbable) siempre debe existir un traductor.

• La fase de compilación y enlace permite leer el programa escrito en lenguaje de alto nivel y traducirlo a lenguaje maquina.

Fases de un Compilador

Verificación/Depuración• Errores en tiempo de ejecución- División por cero, apertura de ficheros inexistentes,...• Errores lógicos (los más difíciles de detectar)- Resultados incorrectos• Optimización del algoritmo.

Documentación• Se genera a lo largo de todas la fases.• Debe permitir acceder al programa a una persona

distinta al programador.• Interna:- Código de programa fuente- Comentarios• Externa:- Especificación de requisitos- Listado de programa fuente- Explicación de los algoritmos (CLARO y CONCISO)- Diagramas de flujo o pseudocódigo.- Especificación de datos, formatos de pantalla,...