DCE0_FundamentosDeProgramacion

32
Estrella 0 - Estrella 0 - Fundamentos de la Fundamentos de la Programación Programación Programa Microsoft Programa Microsoft Desarrollador Cinco Desarrollador Cinco Estrellas Estrellas

description

FUNDAMENTOS DE PROGRAMACION

Transcript of DCE0_FundamentosDeProgramacion

  • Estrella 0 -Fundamentos de la ProgramacinPrograma Microsoft Desarrollador Cinco Estrellas

  • ObjetivoMostrar los fundamentos de la programacin a travs de ejemplos y prcticas utilizadas cotidianamente en el desarrollo de aplicaciones

  • PrerrequisitosEl presente curso asumir conocimientos bsicos deComputadoraDispositivos de Entrada/SalidaOrganizacin Fsica de una computadora (CPU, Memoria)Sistemas Operativos

  • Temas a Tratar (1/2)El Software Lenguajes de programacinResolucin de problemas con computadoraEntorno de programacinTipos de DatosVariables y Constantes SentenciasOperadores y Expresiones

  • Temas a Tratar (2/2)Estructuras Bsicas de Control Procedimientos y FuncionesVisibilidad de variables BibliotecasArraysEl Estilo de Programacin

  • El SoftwareLas operaciones que debe realizar el hardware son especificadas con una lista de instrucciones, llamadas programas o software.Dos grandes grupos de softwareSoftware del SistemaIndispensable para que la mquina funcione y poder escribir programas de aplicacinSoftware de AplicacinRealizan tareas concretas que tienen utilidad para ciertos usuarios

  • Lenguajes de Programacin (1/2)Lenguajes utilizados para escribir programas de computadoras que puedan ser entendidos por ellasSe clasifican en tres grandes categoraslenguajes de mquinainstrucciones directamente entendibles por la computadora (lenguaje binario)lenguajes de bajo nivelProveen un juego de instrucciones ms comprensibles por los humanoslenguajes de alto nivel

  • Lenguajes de Programacin (2/2)

    Lenguajes de alto nivelUtilizan instrucciones escritas con palabras similares a los lenguajes humanosSon independientes de la mquina en la que se ejecutanNecesitan ser traducidos a instrucciones en lenguaje mquina (Compilacin)Existen diversos tiposEstructuradosOrientados a ObjetosDeclarativosFuncionales

  • Resolucin de problemas con computadoraEl proceso de disear un programa es, esencialmente, un proceso creativo.Sin embargo, hay una serie de pasos comunes a seguir:Anlisis del problemaDiseo del algoritmo solucinCodificacinCompilacin y EjecucinVerificacinDepuracinDocumentacin

  • Entorno de ProgramacinTambin conocidos como IDEsHerramienta esencial a la hora de desarrollar softwareIncluyeEditorIntrprete o CompiladorDepuradorAyuda en lnea

  • Tipos de DatosDatos: piezas de informacin con las que un programa trabajaCada dato tiene asociado un nico TipoEl Tipo de Dato determina la naturaleza del conjunto de valores que un dato puede tomarEjemplos:Nmero EnteroNmero RealCadena de CaracteresValor Lgico (Verdadero o Falso)

  • Variables y ConstantesExisten dos grupos principales de datosConstantes: su valor no puede cambiar durante la ejecucin de un programaVariables: su valor puede cambiar durante la ejecucin de un programaAmbas tienen un nombre y un valorAmbas permiten representar mediante un nombre a una posicin de memoria que contiene el valor

  • SentenciasDescriben acciones algortmicas que pueden ser ejecutadasSe clasifican enEjecutables / No ejecutablesSimples / Estructuradas

  • Operadores y Expresiones (1/2)Sirven para procesar variables y constantesUna expresin es un conjunto de datos unidos por operadores que tiene un nico resultadoExpresiones aritmticasEl resultado es un nmeroa = ((2+6) / 8) * 3Expresiones lgicasEl resultado es un valor verdadero o falso(a < 10) y (b > 50)

  • Operadores y Expresiones (2/2)Existen diversos tiposAritmticos: suma, resta, multiplicacin, etc.De relacin: igual, mayor, menor, distinto, etc.Lgicos: and, or, not, etc.

  • Estructuras de ControlEl orden de ejecucin de las sentencias de un programa determina su flujo de controlLas estructuras de control permiten alterar el orden del flujo de controlExisten dos tipos bsicosDe SeleccinDe Repeticin o Iteracin

  • Estructuras de Control Selectivas (1/2)Dirigen el flujo de ejecucin segn el resultado de evaluacin de expresionesIFsi expresion_logicaentonces hacer accin A sino hacer accin Bfin_si

  • Estructuras de Control Selectivas (2/2)CASEsegn_sea selector hacerC11,C12,: sentencia 1 C21,C22,: sentencia 2..[sino sentencia x]fin_segn

  • Estructuras de Control Repetitivas (1/3)Permiten ejecutar un conjunto de sentencias repetidamente una cierta cantidad de veces o hasta que se cumpla una determinada condicinEl conjunto de sentencias se denomina bucleCada repeticin del cuerpo del bucle se denomina iteracin

  • Estructuras de Control Repetitivas (2/3)WHILEmientras condicin hacersentencia/s..fin_mientras

  • Estructuras de Control Repetitivas (3/3)FORdesde variable valor_inicial hasta valor_final hacersentencia/s..fin_desde

  • Procedimientos y Funciones (1/4)Descomposicin en subprogramas: estrategia para resolver problemas complejosLos subprogramas se implementan a travs de procedimientos y funcionesCompuestos por un grupo de sentenciasSe les asigna un nombrePueden invocarse entre s utilizando ese nombreConstituyen una unidad de programa

  • Procedimientos y Funciones (2/4)Los procedimientos y funciones se comunican con su invocador a travs de parmetros.Los parmetros son un medio para pasar informacin, implementados a travs de variables con valor.Tipos de parmetroDe Entrada: su valor es proporcionado por el invocador antes de llamar al subprogramaDe Salida: su valor es calculado dentro de un subprograma y devuelto a su invocador

  • Procedimientos y Funciones (3/4)Ejemplo:Definicinprocedimiento CalcularSuma( parmetro1 entero, parmetro2 entero) devuelve enterodevolver parmetro1 + parmetro2fin_procedimientoInvocacin desde el programa principal u otro subprogramanmero entero a = 2nmero entero b = 3nmero entero c = CalcularSuma(a,b)carcter d = CalcularSuma(a,b) ERROR

  • Procedimientos y Funciones (4/4)Ventajas de utilizar procedimientosFacilita el diseo descendiente y modularPromueven la reutilizacin de cdigoFacilita la divisin de tareasPueden comprobarse individualmentePueden encapsularse en bibliotecas independientes

  • Visibilidad de VariablesVariable Local:Declarada en un subprogramaSlo est disponible durante el funcionamiento del subprogramaSu valor se pierde una vez que el subprograma terminaVariable Global:Declarada en el programa principalEst disponible en el programa principal y en todos los subprogramasSu valor se pierde una vez que el programa principal termina

  • BibliotecasArchivo independiente que contiene un conjunto de subprogramasPueden ser incluidas y referenciadas en el desarrollo de mltiples programasFacilitan la modularizacin de un programaDesarrollo Programa FuenteCompilacin Programa ObjetoLink-Edicin Programa Ejecutable

  • Arrays (Arreglos) (1/3)Son estructuras de datos en las que se almacenan un conjunto de datos finitos del mismo tipoAlmacenan sus elementos en posiciones de memoria contiguasTienen un nico nombre de variable que representa a todos los elementosPermiten acceso directo o aleatorio a sus elementos individualesLos arrays se clasifican en unidimensionales y multidimensionales.

  • Arrays (Arreglos) (2/3)Arrays unidimensionales (Vectores)Nmero finito de elementosTamao FijoElementos HomogneosSe accede a los elementos utilizando el nombre del array y el subndice especficoEjemplo:salarios(3) Reales Nombre del array, de 3 posiciones que contendrn nmero realessalarios[1] = 23,4 Asignacin de un valor al primer elemento del array

  • Arrays (Arreglos) (3/3)Arrays multidimensionalesArrays bidimensionales (Matrices o Tablas)Tienen dos ndices, uno para filas y otro para columnasEjemplo:tabla(3,3) enteros Declaracin de una matriz de 3 por 3tabla [1][1] = 2 Elemento de la primer fila y primer columnatabla [2][3] = 5 Elemento de la segunda fila y la tercer columna

  • El estilo de ProgramacinUna de las caractersticas ms importantes de un buen programadorUn buen estilo facilita la comprensin, correccin y mantenimiento de un programaAlgunos puntos a tener en cuentaComentariosEleccin de nombres significativosIdentacinEspacios y Lneas en BlancoValidacin usando datos de prueba

  • 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

    ******Las operaciones que debe realizar el hardware son especificadas con una lista de instrucciones, llamadas programas, o software. El software se divide en dos grandes grupos:Software del sistema, y Software de aplicaciones.El software del sistema es el conjunto de programas indispensables para que la mquina funcione. Estos programas son, bsicamente, el Sistema Operativo, los editores de texto, los compiladores de lenguajes de programacin y los utilitarios.El sistema operativo dirige las operaciones globales de la computadora, instruye a la computadora para ejecutar otros programas y controla el almacenamiento y recuperacin de archivos de discos duros. Gracias al sistema operativo es posible que el programador pueda introducir y grabar nuevos programas, as como instruir a la computadora para que los ejecute. Ejemplos de sistemas operativos son: Microsoft Windows, MS-DOS, OS/2, Mac OS y UNIX.Los programas que realizan tareas concretas (por ejemplo facturacin, contabilidad, anlisis estadstico, gestin de negocios, etc.) se denominan programas de aplicacin.

    *Los lenguajes utilizados para escribir programas de computadoras que puedan ser entendidos por ellas se denominan Lenguajes de Programacin. stos se clasifican en tres grandes categoras: mquina, bajo nivel (ensamblador, o assembler) y alto nivel. Los lenguajes de mquina son aquellos cuyas instrucciones son directamente entendibles por la computadora, y no necesitan traduccin posterior para que el CPU pueda comprender y ejecutar el programa. La programacin en lenguaje de mquina es difcil, ya que implica escribir directamente en un sistema binario (ceros y unos), por eso se necesitan lenguajes que permitan simplificar ese proceso. Los lenguajes de bajo nivel fueron diseados con ese fin. stos son dependientes de la arquitectura fsica de la computadora y de un conjunto especfico de instrucciones para el CPU, y los programas escritos en ellos deben ser traducidos a lenguaje mquina para poder ser ejecutados. Un lenguaje tpico de bajo nivel es el lenguaje ensamblador (Assembler).*Los lenguajes de programacin de alto nivel son aquellos en los que las instrucciones o sentencias a la computadora son escritas con palabras similares a los lenguajes humanos en general lenguaje ingls lo que facilita la escritura y comprensin por parte del programador. Una propiedad de los lenguajes de alto nivel es que son independientes de la mquina, esto es, las sentencias del programa no dependen del diseo de hardware de una computadora especfica. Los programas escritos en lenguajes de alto nivel, al igual que los escritos en lenguajes de bajo nivel, no son entendibles directamente por la mquina, sino que necesitan ser traducidos a instrucciones en lenguaje mquina que entiendan las computadoras. Los programas que realizan esta traduccin se llaman Compiladores, y los programas escritos en un lenguaje de alto nivel se llaman Programas Fuente. El compilador traduce el Programa Fuente en un programa llamado Programa Objeto. El proceso de traduccin de un programa fuente a un programa objeto se denomina Compilacin.Ejemplos de lenguajes de programacin de alto nivel son: Basic, C, Pascal, C++, Cobol, Fortran, C#, Java y Visual Basic.NET.Existen diversos tipos de lenguajes de programacin de alto nivel, segn su evolucin temporal y el uso que se les quiera dar. Algunos ejemplos de tipos de lenguajes de alto nivel son:Estructurados (Basic, C, Pascal)Orientados a Objetos (C#,Visual Basic.NET, C++, Java)Declarativos (Lisp, Prolog)Funcionales (AML, CAML)*El proceso de resolucin de un problema con una computadora conduce a la escritura de un programa, y a su ejecucin en la misma. Aunque el proceso de disear programas es, esencialmente, un proceso creativo, se pueden considerar una serie de fases o pasos comunes que generalmente deben seguir todos los programadores. Las fases de resolucin de un problema con computadoras son:Anlisis del problemaDiseo del algoritmo solucinCodificacinCompilacin y EjecucinVerificacinDepuracinDocumentacin

    Las dos primeras fases conducen a un diseo detallado escrito en forma de algoritmo. Un algoritmo es un mtodo para resolver un problema mediante una serie de pasos (instrucciones) precisos, definidos y finitos. Durante la tercer etapa (codificacin) se implementa (poner en funcionamiento) el algoritmo en un cdigo escrito en un lenguaje de programacin, reflejando las ideas desarrolladas en la fase de anlisis y diseo.La fase de compilacin y ejecucin traduce y ejecuta el programa. En las fases de verificacin y depuracin el programador busca errores de las etapas anteriores y los elimina. Cuanto ms tiempo se invierta en la fase de anlisis y diseo, menor ser el tiempo necesario para depurar el programa. Por ltimo, debe realizarse la documentacin del mismo.

    Ejemplos de algoritmos son: instrucciones para andar en bicicleta, hacer una receta de cocina, obtener el mximo comn divisor de dos nmeros, etc. Los algoritmos se pueden expresar en frmulas, diagramas de flujo y pseudocdigos.*Un entorno de programacin es un programa que contiene, adems del compilador, utilitarios y herramientas. Estos elementos estn integrados, de modo que pueden llamarse fcilmente unos a otros durante el proceso de programacin. Por este motivo, a los entornos de programacin frecuentemente se los identifica con la sigla IDE (en ingls, Integrated Development Envirnonment, o Entorno de programacin integrado).Un entorno de programacin tpico contiene:Un editor, que proporciona el medio para introducir el texto y los smbolos que constituyen el cdigo fuenteUn intrprete o un compilador, que convierte el cdigo fuente en instrucciones que la computadora puede comprender y ejecutar.Un depurador (o debugger), que ayuda a analizar y corregir errores en tiempo de ejecucin.Ayuda (manuales, tutoriales, ejemplos, etc.) integrada

    El proceso de diseo, codificacin, depuracin y ejecucin de un programa es mucho ms fcil y rpido cuando se utiliza un buen entorno de programacin.Un ejemplo de entorno de programacin es Microsoft Visual Studio 2005.*Las diferencias piezas de informacin con las que un programa trabaja se conocen colectivamente como datos. Todos los datos tienen un tipo asociado con ellos, que determina la naturaleza del conjunto de valores que aquel puede tomar. Por ejemplo, un dato puede ser un simple caracter, tal como B, un valor entero como 35, un nmero real como 1,4142 o una cadena de caracteres como Hola Mundo, entre otras cosas. Una operacin de suma no tiene sentido con caracteres de texto, slo con nmeros. Por consiguiente, si el compilador detecta una operacin de suma de dos caracteres normalmente producir un error. Incluso entre tipos numricos la operacin de suma se almacena de modo distinto, ya que los nmeros enteros y los reales se almacenan de formas distintas en memoria. A menos que el programa conozca los tipos de datos no puede ejecutar correctamente la operacin de suma.La asignacin de tipos a los datos tiene dos objetivos principales:1- Detectar errores de operaciones en los programas durante la fase de codificacin.2- Determinar cmo se ejecutarn las operaciones entre datos.

    A los lenguajes que exigen que todos los datos utilizados deban tener sus tipos declarados explcitamente se los conoce como fuertemente tipados.

    El tipo de un dato puede ser convertido bajo ciertas condiciones a otro tipo. Este mecanismo explcito de conversin de tipos de datos se suele denominar CAST.*Todos los programas necesitan almacenar datos temporalmente para poder procesarlos y generar asi la salida esperada. Estos datos, a grandes rasgos, pueden clasificarse en dos grupos:1 - A un dato cuyo valor no puede cambiar durante la ejecucin de un programa se lo denomina Constante. Las constantes deben ser declaradas antes de su utilizacin y se deben tener un valor ya asignado al momento de la compilacin del programa.2 - Por su parte, los datos de un programa cuyo valor puede cambiar durante la ejecucin del mismo se conocen como Variables. Una variable es, en realidad, una posicin de memoria con nombre (Nombre de la Variable), y que contiene un valor (Valor de la Variable). Las variables se asemejan a cajas o buzones, donde cada una de las cuales tiene un nmero y contiene un valor. Existen tantos tipos de variables como tipos de datos diferentes.

    *Las sentencias describen acciones algortmicas que pueden ser ejecutadas. En general, las sentencias se clasifican en ejecutables (especifican, por ejemplo, operaciones de clculos aritmticos y entradas/salidas de datos) y no ejecutables (no realizan acciones concretas ni afectan a la ejecucin del programa, sino que ayudan a su legibilidad).Cada sentencia ejecutable se traduce por el compilador en una o ms instrucciones de lenguaje mquina, que se copian en el archivo objeto y posteriormente se ejecutan. Las declaraciones, por su parte, describen el propsito y el significado de cada identificador definido por el programador; no se traducen a instrucciones en lenguaje mquina y no aparecen en el archivo objeto.Las sentencias se clasifican, segn su tipo y nmero, en:Sentencias Simples: son sentencias que no contiene ninguna otra sentencia. El ejemplo ms tpico de sentencia simple es la sentencia de asignacin, la cual se utiliza para almacenar un valor en una variable. La operacin de asignacin se suele representar en pseudocdigo con el smbolo , para denotar que el valor situado a su derecha se almacena en la variable situada a la izquierda:Variable Valor En la mayora de los lenguajes, el operador se sustituye por el =. Ej.: a = 2. (ATENCIN: la asignacin slo ser vlida si el valor es vlido para el tipo de dato definido para la variable).Sentencias estructuradas: son sentencias compuestas de otras sentencias que se ejecutan en secuencia, condicionalmente o repetidamente.*Las variables y constantes se pueden procesar utilizando operaciones y funciones adecuadas para sus tipos.Se denomina expresin a un conjunto de variables y / o constantes unidas por operadores.Si en una expresin existe ms de una operacin debe tenerse en cuenta que existen una serie de reglas para definir la prioridad en la que stas se realizarn. Por este motivo es que se suelen utilizar los parntesis para establecer la prioridad de aplicacin de los operandos.*Existen diversos tipos de operadores, por ejemplo:Aritmticos: son apropiados nicamente para tipos numricos. Ejemplos de operadores aritmticos son + , - , * y / , los cuales permiten obtener el resultado de la suma, la resta, la multiplicacin y la divisin de dos datos respectivamente.De relacin: los operadores de relacin ( o relacionales) se utilizan para expresar condiciones y describen una relacin entre dos valores. Ejemplos de operadores relacionales son < (Menor que), > (Mayor que), = (Igual a) y (Distinto a).

    Los operadores aritmticos y los relacionales se utilizan de la siguiente forma: variable o constante operador variable o constante. Por ejemplo: a + b, c/d, a