fundamentos programacion

Post on 29-Jun-2015

832 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Autor: Pablo PereiraAño: 2009

TRANSCRIPT

Estrella ceroEstrella cero

Tópicos tratados and stuffTópicos tratados and stuff

Fundamentos de la Fundamentos de la programación programación

Temas a tratarTemas a tratar

Veremos:Veremos: SoftwareSoftware Lenguajes de programaciónLenguajes de programación Resolución de problemas usando la PCResolución de problemas usando la PC Entorno de programaciónEntorno de programación Estructuras básicasEstructuras básicas Procedimientos y funcionesProcedimientos y funciones Visibilidad de variablesVisibilidad de variables BibliotecasBibliotecas ArraysArrays Estilo de programacionEstilo de programacion

SoftwareSoftware

Software: Conjunto de operaciones a Software: Conjunto de operaciones a realizar por el hardware, especificadas en realizar por el hardware, especificadas en una lista y con un orden.una lista y con un orden.

Software de sistema: Necesario para que Software de sistema: Necesario para que la máquina funcione y pueda ejecutar el la máquina funcione y pueda ejecutar el software de aplicación.software de aplicación.

Software de aplicación: Realización de Software de aplicación: Realización de tareas concretas que son útiles para tareas concretas que son útiles para ciertos usuarios.ciertos usuarios.

Lenguajes de programaciónLenguajes de programación

Se utilizan para escribir programas de Se utilizan para escribir programas de computadoras que puedan ser entendidos computadoras que puedan ser entendidos e interpretados correctamente por la e interpretados correctamente por la máquina.máquina.

Clasificables en 3 grupos: Lenguaje de Clasificables en 3 grupos: Lenguaje de máquina, lenguaje de bajo nivel, lenguaje máquina, lenguaje de bajo nivel, lenguaje de alto nivel.de alto nivel.

Lenguaje de máquinaLenguaje de máquina

Conjunto de instrucciones entendibles Conjunto de instrucciones entendibles directamente para la máquina, pero sin directamente para la máquina, pero sin sentido inmediato para el ser humano.sentido inmediato para el ser humano.

Ejemplo: Programación directa en Ejemplo: Programación directa en lenguaje binario:lenguaje binario:

““0110 1001 1010 10110110 1001 1010 1011””

Lenguaje de bajo nivelLenguaje de bajo nivel

Proveen un juego de instrucciones un poco más Proveen un juego de instrucciones un poco más comprensibles para el ser humanocomprensibles para el ser humano

Ejemplo: Lenguaje ensamblador:Ejemplo: Lenguaje ensamblador:

““ADD M, N, P”ADD M, N, P”

““Sume el número en la posición M al de la Sume el número en la posición M al de la posición N y escríbalo en la posición P”.posición N y escríbalo en la posición P”.

Requiere una fase de traducción a lenguaje Requiere una fase de traducción a lenguaje máquinamáquina

Lenguajes de alto nivelLenguajes de alto nivel

Utilizan instrucciones redactadas en forma Utilizan instrucciones redactadas en forma similar al lenguaje humano ordinariosimilar al lenguaje humano ordinario

No dependen de la máquina en la que se No dependen de la máquina en la que se está trabajando.está trabajando.

Requieren ser traducidos a lenguaje de Requieren ser traducidos a lenguaje de máquina para funcionar (Compilación)máquina para funcionar (Compilación)

Divididos en grupos: Orientado a objetos, Divididos en grupos: Orientado a objetos, estructurados, declarativos, funcionales, estructurados, declarativos, funcionales, imperativos, etc.imperativos, etc.

Resolución de problemas con la Resolución de problemas con la PC: Pasos a seguirPC: Pasos a seguir

Analizar el problemaAnalizar el problemaDiseñar el algoritmo solución (pseudo Diseñar el algoritmo solución (pseudo

código)código)Codificación (al lenguaje más apropiado o Codificación (al lenguaje más apropiado o

mejor manejado)mejor manejado)Compilación y ejecuciónCompilación y ejecuciónVerificaciónVerificaciónDepuraciónDepuración

Entornos de programaciónEntornos de programación

Llamados IDESLlamados IDES Incluye: Editor, compilador, depurador y Incluye: Editor, compilador, depurador y

ayuda en linea (idealmente)ayuda en linea (idealmente)Ejemplos: Dev C++ o Turbo C++ para Ejemplos: Dev C++ o Turbo C++ para

C/C++. Netbeans para JAVA, etc.C/C++. Netbeans para JAVA, etc.

Estructuras básicas: De controlEstructuras básicas: De control

El orden de ejecución de un programa es El orden de ejecución de un programa es determinado por el orden de las determinado por el orden de las sentencias.sentencias.

Las estructuras permiten alterar el orden Las estructuras permiten alterar el orden de ejecución para acomodarlo a las de ejecución para acomodarlo a las necesidades del usuarionecesidades del usuario

Tipos básicos:Tipos básicos:De repetición o iteraciónDe repetición o iteraciónDe selecciónDe selección

Estructuras de IteraciónEstructuras de Iteración

Ejecutan un conjunto de sentencias Ejecutan un conjunto de sentencias repetidamente un número determinado de repetidamente un número determinado de veces, o evaluando hasta que se cumpla veces, o evaluando hasta que se cumpla una determinada condiciónuna determinada condición

El conjunto de sentencias es denominado El conjunto de sentencias es denominado “Bucle”“Bucle”

Cada repetición del bucle se llama Cada repetición del bucle se llama “iteración”“iteración”

Estructuras de Iteración: EjemploEstructuras de Iteración: Ejemplo

While (i == a)While (i == a){{i = i*2;i = i*2;printf(“Show me your moves”);printf(“Show me your moves”);}}

For(i=0; i == a; i=i*2)For(i=0; i == a; i=i*2){{Spin_Violently();Spin_Violently();}}

Estructuras de SelecciónEstructuras de Selección

Dirigen el flujo del programa hacia un Dirigen el flujo del programa hacia un determinado “camino” según la evaluación determinado “camino” según la evaluación de ciertos factoresde ciertos factores

Ejemplo de la vida real: “En caso de Ejemplo de la vida real: “En caso de emergencia, rompa el vidrio”. Significa que emergencia, rompa el vidrio”. Significa que el usuario no debe romper el vidrio a el usuario no debe romper el vidrio a menos que haya una emergencia.menos que haya una emergencia.

Estructuras de selección: EjemploEstructuras de selección: Ejemplo

If (a == 5)If (a == 5)

{{

printf (“a es igual a 5”);printf (“a es igual a 5”);

}}

elseelse

{{

printf (“a no es igual a 5”);printf (“a no es igual a 5”);

Procedimientos y funcionesProcedimientos y funciones

Descomposición en sub programas: Estrategia Descomposición en sub programas: Estrategia para resolver problemas demasiado para resolver problemas demasiado complicados (Divide y vencerás)complicados (Divide y vencerás)

Subprogramas implementados a través de Subprogramas implementados a través de funcionesfunciones Compuestas por un grupo de sentenciasCompuestas por un grupo de sentencias Se les asigna un nombreSe les asigna un nombre Pueden invocarse entre si utilizando ese nombrePueden invocarse entre si utilizando ese nombre Constituyen una unidad del programaConstituyen una unidad del programa

Procedimientos y funcionesProcedimientos y funciones

Se comunican con su invocador a través de Se comunican con su invocador a través de parámetros [funcion(int A, int B))parámetros [funcion(int A, int B))

Parámetros: Medio para pasar información Parámetros: Medio para pasar información implementados a través de variables con valor.implementados a través de variables con valor.

Tipos de parámetros:Tipos de parámetros: De entrada: Valor proporcionado por el invocador De entrada: Valor proporcionado por el invocador

(ejemplode arriba)(ejemplode arriba) De salida: valor previamente calculado por la función De salida: valor previamente calculado por la función

y devuelta por el programa [Return (b)]y devuelta por el programa [Return (b)]

Procedimientos y funcionesProcedimientos y funciones

Ventajas:Ventajas:Facilita el diseño descendiente y modularFacilita el diseño descendiente y modularPromueven neutralización del códigoPromueven neutralización del códigoFacilita la división de tareasFacilita la división de tareasComprobables por separadoComprobables por separadoEncapsulables en bibliotecas dependientes Encapsulables en bibliotecas dependientes

(TADs)(TADs)

Visibilidad de variablesVisibilidad de variables

Variable Global: Editable por todo el Variable Global: Editable por todo el programa, tanto main como funciones. programa, tanto main como funciones. Valor desechado al terminar el programa Valor desechado al terminar el programa principalprincipal

Variable Local: Editable solo por la función Variable Local: Editable solo por la función en que fue creada. Valor desechado al en que fue creada. Valor desechado al terminar dicho subprogram, y válido solo terminar dicho subprogram, y válido solo para ese subprograma.para ese subprograma.

Bibliotecas:Bibliotecas:

Archivo independiente que contiene un Archivo independiente que contiene un conjunto de subprogramasconjunto de subprogramas

Pueden ser incluidas y referenciadas en el Pueden ser incluidas y referenciadas en el desarrollo de múltiples programasdesarrollo de múltiples programas

Facilitan la modularización de un Facilitan la modularización de un programaprograma

Arrays (arreglos)Arrays (arreglos)

Almacenan datos del mismo tipo en Almacenan datos del mismo tipo en direcciones de memoria contiguas.direcciones de memoria contiguas.

Pueden tener una o más dimensiones Pueden tener una o más dimensiones (unidimensionales o multidimensionales)(unidimensionales o multidimensionales)

Numero de datos limitado y predefinidoNumero de datos limitado y predefinido

Estilo de programaciónEstilo de programación

Característica importante del programadorCaracterística importante del programadorUn buen estilo permite una fácil Un buen estilo permite una fácil

comprensión del programa, para comprensión del programa, para eventualmente mejorarlo o modificarloeventualmente mejorarlo o modificarlo

Puntos a tener en cuenta:Puntos a tener en cuenta:ComentariosComentariosVariables con nombre significativoVariables con nombre significativoEspacios y líneas en blancoEspacios y líneas en blancoValidación con datos de pruebaValidación con datos de prueba

top related