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
Fases de compilación Inicio Editar Programa Fuente Modificación Programa Fuente Editar Programa Fuente Compilar el Programa Existen errores en la compilación Fases de compilación Programa Programa Ejecutable Enlazador Ejecución
LENGUAJES DE PROGRAMACION
OTROS LENGUAJES DE PROGRAMACION 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 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
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 Enteros Reales Carácter Booleanos Array SIMPLES ESTRUCTURADOS Enteros Reales Carácter Booleanos Array Cadena Registro Archivo DINAMICOS Pilas Colas Listas Árboles
DATOS SIMPLES TIPO TAMAÑO CHAR 1 Byte INT 2 Bytes FLOAT 4 Bytes DOUBLE
Ej. Dato de tipo Array (Arreglo) 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] edades[4] 35 21 29 35 21 29 42
OPERADORES V F V F V F + Suma - Resta * Multiplicación ^ Potenciación ARITMETICOS CONDICIONALES ALFANUMERICOS LOGICOS + Suma - Resta * Multiplicación ^ Potenciación / Division real DIV Division entera MOD Residuo < Menor que = Igual > Mayor que <= Menor o igual que >= Mayor o igual que <> ó != Diferente + ó . Concatenar cadenas OR o AND y NOT Negación p q p AND q V F P q p OR q V F P NOT p V F
PRIORIDAD DE OPERANDOS Paréntesis (Empezando por los mas internos). Potencias. Divisiones y Productos. Sumas y Restas. Concatenación. Condicionales. Lógicos. Ej. X= 5+7*3 X= 26 Producto mayor prioridad
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 En Java: int Edad = 30; Edad 30 RAM
EXPRESIONES Expresiones aritméticas: 5 * 7 4 ^2 3 + (8 - 6) 7 – 2 / 5 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 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 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 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(); } } } LECTURA ASIGNACION ESCRITURA
INSTRUCCIONES CONDICIONALES Se ejecutan de acuerdo a un criterio de evaluación. SE CLASIFICAN EN: CONDICIONAL SIMPLE CONDICIONAL DOBLE CONDICIONAL MULTIPLE
CONDICIONAL SIMPLE P1 condición NO SI VISUAL BASIC .NET PSEUDOCODIGO Inicio //CONDICION si condición = verdadera entonces ejecutar (P1) fin si Fin condición NO SI VISUAL BASIC .NET If condicion then ejecutar (P1) end if P1 JAVA If ( condición ) { ejecutar (P1); }
CONDICIONAL DOBLE P2 P1 condición NO SI VISUAL BASIC .NET PSEUDOCODIGO Inicio //CONDICION si condición = verdadera entonces ejecutar (P1) si no ejecutar (P2) fin si Fin condición NO SI VISUAL BASIC .NET If condicion then ejecutar (P1) else ejecutar (P2) end if } P2 P1 JAVA If ( condición ) { ejecutar (P1); } else { ejecutar (P2):
CONDICIONAL MULTIPLE P1 P2 P3 Pn selección 1 3 2 n 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 Fin 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 selección 1 3 JAVA switch ( selección ) { case 1: ejecutar (P1); break; case 2: ejecutar (P2) case 3: ejecutar (P3) case n: ejecutar (Pn) default: ejecutar (por defecto); } 2 n P1 P2 P3 Pn
INSTRUCCION REPETITIVA MIENTRAS PSEUDOCODIGO Inicio mientras condición = verdadera haga ejecutar (P) fin mientras Fin inicio MQ condición VISUAL BASIC .NET While condicion = verdadera ejecutar (P) end while P JAVA While (condicion = verdadera) { ejecutar (P); } cierre FIN
INSTRUCCION REPETITIVA PARA PSEUDOCODIGO Inicio para A1 hasta 10 de 1 en 1 haga ejecutar (P) fin para Fin inicio PARA A1, 10, 1 VISUAL BASIC .NET For A = 1 To 10 Step 1 ejecutar (P) Next P JAVA for (A=1;A<10;A++){ ejecutar (P); } cierre FIN Para: A inicia desde 1, hasta que tome el valor de 10 y se incremente de uno en uno.
ANIDAMIENTO DE ESTRUCTURAS JAVA If ( condición ) { ejecutar (P1); } else { if (condición 1) { ejecutar (P2); else{ ejecutar (P3); PSEUDOCODIGO Inicio //CONDICION si condición = verdadera entonces ejecutar (P1) si no si condicion2 = verdadera entonces ejecutar (P2) ejecutar (P3) fin si 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 fin para Fin JAVA for (A=1;A<10;A++){ ejecutar (P); for (B=1;B<10;B+=3){ }
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 A A + 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 Leer (saldo) nuevo_saldo nuevo_saldo + saldo n programación, se llama acumulador a una variable cuyo valor se incrementa o decrementa en un valor que no tiene por qué ser fijo (en cada iteración de un bucle). Un acumulador suele utilizarse para acumular resultados producidos en las iteraciones de un bucle
Recomendaciones: Conclusiones: 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.