Download Programa - IHMC Public Cmaps (3)
Document related concepts
Transcript
PRINCIPIOS DE PROGRAMACION VLADIMIR RAFAEL ARNEDO POMARES “LA PROGRAMACION Y LOS LENGUAJES DE PROGRAMCION” Universidad de Cartagena Centro Regional de Educación a Distancia CREAD Programa Ingeniería de sistemas DEFINICION DE ALGORITMO Es una secuencia ordenada de pasos que conducen a la solución de un problema dado. Ejemplo de algoritmo: Algoritmo cada_mañana: Abrir los ojos. Levantarme de la cama. Pasar al baño Darme una ducha. Vestirme. Desayunar. Salir al trabajo. CARACTERISCAS Y PARTES DE UN ALGORITMO Características: PRECISO. DEFINIDO. FINITO. Partes: ENTRADA. PROCESO. SALIDA. LENGUAJES DE PROGRAMACION Los algoritmos se convierten en un conjunto de sentencias e instrucciones entendibles por la maquina mediante los lenguajes de programación. CLASIFICACION: Lenguajes Maquina: Codificación Binaria. (1110110001) Lenguajes Ensamblador o de bajo Nivel: Nemotécnicos. ADD 5,7 Lenguajes de Alto nivel: Uso de Compiladores e interpretes. Lenguajes de Cuarta Generación: Lenguaje natural. Extract all clientes Where Saldo more than $500.000 Lenguajes de quinta Generación: Desarrollo visual. Interfaces graficas avanzadas. Orientados a IDE. ¿Qué papeles desempeñan los Lenguajes de Programación? Según Joyanes (2003), FORTRAN se empleaba para cómputo científico, el lenguaje más utilizado en cuanto a negocios eran escritos en COBOL, las aplicaciones militares en JOVIAL y las militares incrustadas en ADA, pero de todos los lenguajes que habían en los años 1960 ya no queda ninguno pues con las evoluciones que han adquirido han ido descartando lenguajes de difícil manejo. Traductores de lenguaje de programación Intérpretes: Es un traductor que toma un programa fuente, lo traduce y a continuación lo ejecuta Compiladores: Es aquel programa que traduce un programa en lenguaje de alto nivel. Fases de compilación; proceso por el cual el programa fuente es transformado a programa ejecutable COMPILADOR Inicio Modificación Programa Fuente Editar Programa Fuente Compilar el Programa Existen errores en la compilación Programa Enlazador Programa Ejecutable Ejecución Fases de compilación LENGUAJES DE PROGRAMACION OTROS LENGUAJES DE PROGRAMACION ABAP ABC ActionScript Afnix ASP ASP.NET AWK B BCPL Befunge Boo C++ C# Caml Clipper CLIPS CLU CORAL D Delphi DIV CORAL D Delphi DIV Dylan Eiffel Erlang Ensamblador Extended ML Euphoria Fénix Flow -Matic Gambas GML GRAFCET FP Haskell Icon Inform INTERCAL ISWIM J Java JavaScript Joy KWC LADDER Letra Lexico Lingo Lua MAGIC Mainsail Mesa Miranda ML Modula Modula-3 Natural NetREXX Oberon Object REXX Objective -C Ocaml Occam Oz Parlog Perl PHP Plankalkül PostScript PowerBuilder Prolog Python Rapid REXX RPN RPG Ruby Sail Sather Scheme Seed7 Self Sh Simula Smalltalk Snobol SPARK Squeak SR Standard ML TI-Basic TCL VBA Visual Basic Visual C++ Visual DialogScript Seed7 Self Sh Simula Smalltalk CASO ESPECIAL JAVA Unix, Linux, Solaris, Windows, Mac DATOS DEFINICION DATO: Es una representación simbólica ya sea numérica o alfabética de un atributo o característica de una entidad. Los programas los utilizan para realizar las operaciones respectivas generando la información requerida por el usuario. TIPOS DE DATOS ESTATICOS SIMPLES Enteros Reales Carácter Booleanos ESTRUCTURADO S Array Cadena Registro Archivo DINAMICOS Pilas Colas Listas Árboles DATOS SIMPLES TIPO TAMAÑO CHAR 1 Byte INT 2 Bytes FLOAT 4 Bytes DOUBLE 8 Bytes DATOS ESTRUCTURADOS SON AQUELLOS QUE ESTAN FORMADOS POR UN CONJUNTO DE DATOS SIMPLES. SU TAMAÑO ES INMODIFICABLE DURANTE LA EJECUCION DEL PROGRAMA. Ej. Dato de tipo Array (Arreglo) Edades[5] 32 27 41 52 25 DATOS DINAMICOS SON QUELLOS QUE DURANTE EL TRANSCURSO DE EJECUCION DEL PROGRAMA PUEDEN MODIFICAR SU TAMAÑO DE ACUERDO A LAS NECESIDADES DEL USUARIO. Ej. Dato de tipo LISTA. edades[3] 35 21 29 edades[4] 35 21 29 42 OPERADORES ARITMETICOS CONDICIONALES • + Suma •- Resta •* Multiplicación • ^ Potenciación •/ Division real •DIV Division entera •MOD Residuo p V V F F q V F V F ALFANUMERICOS • + ó . Concatenar cadenas • < Menor que •= Igual •> Mayor que •<= Menor o igual que •>= Mayor o igual que •<> ó != Diferente p AND q V F F F P V V F F q V F V F p OR q V V V F LOGICOS • OR o •AND y •NOT Negación P NOT p V F F V PRIORIDAD DE OPERANDOS Paréntesis (Empezando por los mas internos). Potencias. Divisiones y Productos. Sumas y Restas. Concatenación. Condicionales. Lógicos. Ej. Producto mayor prioridad X= 5+7*3 X= 26 CONSTANTES Y VARIABLES Los Datos pueden ser Constantes o Variables. Un dato constante es aquel que permanece sin cambios durante toda la ejecución del programa. Ej. ‘M’, -5, 23, “mensaje” Una variable es un elemento que cambia de estado o valor durante la ejecución de un programa. Cuando se crea una variable la maquina reserva espacio en la memoria RAM para almacenar el valor que tomara en un instante dado la variable. La variables están compuestas de: Un identificador o nombre de la variable y el tipo de dato que almacena la variable. Ej. Edad : entero Edad En Java: int Edad = 30; RAM 30 EXPRESIONES Expresiones aritméticas: 5 * 7 4 ^2 3 + (8 - 6) 7 – 2 / 5 Expresiones lógicas: (A – 2) > (B – 4) (A=8)AND(B=8) DFD’s (Diagramas de Flujo de Datos) DFD: Es un diagrama que utiliza símbolos estándares el cual representan los pasos del algoritmo, unidos por flechas llamadas líneas de flujo que indican la secuencia en que se deben ejecutar cada una de las instrucciones. PSEUDOCODIGO Es un lenguaje de especificación de algoritmos que se aproxima al lenguaje natural usado por el ser humano. Ej. //Algoritmo que calcula área triangulo -> esto es un comentario Var real: base,altura,area -> las variables a usar Inicio //Lectura de los datos de entrada Leer (base) Leer (altura) //calcular area area <- base * altura / 2 //Presentar resultado en pantalla Escribir (area) Fin TIPOS DE INSTRUCCIONES Instrucciones de INICIO / FIN Instrucciones de seleccion. Instrucciones condicionales. Instrucciones repetitivas. INSTRUCCIONES DE SELECCION PSEUDOCODIGO //Algoritmo que calcula área triangulo -> esto es un comentario Var real: base,altura,area -> las variables a usar Inicio //Lectura de los datos de entrada Leer (base) Leer (altura) //calcular area area <- base * altura / 2 //Presentar resultado en pantalla Escribir (area) Fin LECTURA VISUAL BASIC . NET Module Ejercicio Sub main( ) Dim base As Decimal ‘ declaro variables Dim altura As Decimal Dim area As Decimal Console.Write(“Digite la Base:”) ‘capturo datos base = Console.Readline Console.Write(“Digite la altura:”) altura = Console.Readline area = base * altura Console.Write(“El area del triagulo es: {0}”,area) end sub End Module JAVA import java.io.*; public class Area{ public static void main (String [] args) { InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader (isr); try { System.out.print(“Digite Base : "); float base = Integer.parseInt(br.readLine()); System.out.print(“Digite Altura : "); float altura = Integer.parseInt(br.readLine()); float area=base * altura; System.out.println (“El área es: “+ area); } catch (Exception e) { e.printStackTrace(); } ASIGNACION ESCRITURA } } INSTRUCCIONES CONDICIONALES Se ejecutan de acuerdo a un criterio de evaluación. SE CLASIFICAN EN: 1. 2. 3. CONDICIONAL SIMPLE CONDICIONAL DOBLE CONDICIONAL MULTIPLE CONDICIONAL SIMPLE PSEUDOCODIGO Inicio //CONDICION si condición = verdadera entonces ejecutar (P1) fin si Fin NO VISUAL BASIC .NET If condicion then ejecutar (P1) SI condición end if P1 JAVA If ( condición ) { ejecutar (P1); } CONDICIONAL DOBLE PSEUDOCODIGO Inicio //CONDICION si condición = verdadera entonces ejecutar (P1) si no ejecutar (P2) fin si NO Fin SI condición P2 P1 VISUAL BASIC .NET If condicion then ejecutar (P1) else ejecutar (P2) end if } JAVA If ( condición ) { ejecutar (P1); } else { ejecutar (P2): } CONDICIONAL MULTIPLE PSEUDOCODIGO Inicio según_sea ( selección ) hacer 1: ejecutar (P1) 2: ejecutar (P2) 3: ejecutar (P3) n: ejecutar (Pn) si no ejecutar (por defecto) fin según_sea 1 3 VISUAL BASIC .NET Select Case opcion Case 1: ejecutar (P1) Case 2: ejecutar (P2) Case 3: ejecutar (P3) Case n: ejecutar (Pn) Case else ’si no se cumple ninguna de las expresiones end select Fin selección JAVA n 2 P1 P2 P3 switch ( selección ) { case 1: ejecutar (P1); break; case 2: ejecutar (P2) break; case 3: ejecutar (P3) break; case n: ejecutar (Pn) break; default: ejecutar (por defecto); Pn } INSTRUCCION REPETITIVA MIENTRAS inicio PSEUDOCODIGO Inicio mientras condición = verdadera haga ejecutar (P) fin mientras Fin VISUAL BASIC .NET MQ condición While condicion = verdadera ejecutar (P) end while P JAVA cierre FIN While (condicion = verdadera) { ejecutar (P); } INSTRUCCION REPETITIVA PARA PSEUDOCODIGO Inicio inicio para A1 hasta 10 de 1 en 1 haga ejecutar (P) fin para Fin PARA A1, 10, 1 VISUAL BASIC .NET For A = 1 To 10 Step 1 ejecutar (P) Next P JAVA cierre FIN for (A=1;A<10;A++){ ejecutar (P); } Para: A inicia desde 1, hasta que tome el valor de 10 y se incremente de uno en uno. ANIDAMIENTO DE ESTRUCTURAS PSEUDOCODIGO Inicio //CONDICION si condición = verdadera entonces ejecutar (P1) si no si condicion2 = verdadera entonces ejecutar (P2) si no ejecutar (P3) fin si fin si JAVA If ( condición ) { ejecutar (P1); } else { if (condición 1) { ejecutar (P2); } else{ ejecutar (P3); } Fin } ANIDAMIENTO DE ESTRUCTURAS PSEUDOCODIGO Inicio para A1 hasta 10 de 1 en 1 haga ejecutar (P) para B1 hasta 10 de 3 en 3 haga ejecutar (P) fin para fin para Fin JAVA for (A=1;A<10;A++){ ejecutar (P); for (B=1;B<10;B+=3){ ejecutar (P); } } CONTADORES ACUMULADORES Los procesos repetitivos requieren contar los sucesos y acciones internas, una forma de hacerlo es mediante un contador. Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante en cada repetición. La forma en que se construye un contador es la siguiente: Mientras A < 10 haga AA+1 fin mientras Un acumulador o totalizador es una variable cuya función es almacenar cantidades resultantes de operaciones sucesivas. Realiza la misma función que un contador con la diferencia de que el incremento o decremento es variable en lugar de constante. nuevo_saldo 0 //Este es el acumulador Mientras A < 10 haga AA+1 Leer (saldo) nuevo_saldo nuevo_saldo + saldo fin mientras Recomendaciones: Se recomienda el estudio y práctica de los diseños de Lenguajes de Programación pues a través de ellos podremos ejercitarnos y realizar eficaces algoritmos. Investigar los Lenguajes de Programación de tal manera que tengamos la habilidad de poder escoger el mejor lenguaje de programación de acuerdo a lo que queramos realizar. Conclusiones: Los Lenguajes de Programación son muy complicados de definir pero si sabemos que con ellos podemos desarrollar muchas cosas pues para cada dominio como las Matemáticas, Aplicaciones Militares e incluso el Juego como muchas otras ya que existen lenguajes específicamente para cada uno de ellos. Promover la utilización de los lenguajes de programación de tal manera que obtengamos la habilidad de utilización, elección y diseño de estos lenguajes.