Dr. Carlos A. Coello Coello Departamento de Computación CINVESTAV IPN
|
|
- José María Ojeda Castro
- hace 6 años
- Vistas:
Transcripción
1 Dr. Carlos A. Coello Coello Departamento de Computación CINVESTAV IPN
2 Sentencia para Casos Es muy común al escribir programas, el descomponer un problema en dos o más subproblemas. Esto es, un problema se suele dividir en casos que se manejan de manera distinta. Por ejemplo, en el registro variante que vimos antes para los aviones, podríamos dividir un vuelo en tres casos, de acuerdo a su estatus: inair, onground o atterminal. Esto se maneja con la sentencia case de Pascal.
3 Sentencia para Casos Otros lenguajes tienen mecanismos similares para manejar estos casos. Vimos, por ejemplo, el caso de FORTRAN, que usa el GOTO calculado. Por ejemplo: GOTO (100, 250, 250, 400), I S 1... GOTO S GOTO S resto del programa... En este caso, si I=1, se ejecuta la sentencia S 1, si I=2 o 3, se ejecuta la sentencia S 23 y si I=4, se ejecuta la sentencia S 4.
4 Sentencia para Casos Esto es muy eficiente porque el GOTO calculado se compila como una tabla de saltos. Sin embargo, esta sintaxis no es fácil de interpretar y el flujo de control no resulta del todo obvio. Esto viola el Principio Estructural. Principio Estructural La estructura estática del programa debiera corresponder, de manera simple, con la estructura dinámica de los cálculos correspondientes.
5 Sentencia para Casos Varios lenguajes de programación han intentado proporcionar alternativas más estructuradas al GOTO calculado de FORTRAN y al switch de Algol, que vimos anteriormente. Estas estructuras se suelen basar en el if then else, que descompone un problema en dos casos, dependiendo de la condición. A este tipo de sentencias se les denomina de casos (case) y usualmente lucen como se muestra en el acetato siguiente.
6 Sentencia para Casos case <expresión> of <sentencia>, <sentencia>, <sentencia> end case;
7 Sentencia para Casos Esto se interpreta de la manera siguiente: Si el valor de la <expresión> es 1, entonces se ejecuta la primera <sentencia>; si es 2, se ejecuta la segunda <sentencia> y así sucesivamente. Al igual que la sentencia if then else, la sentencia case tiene una sola entrada desde la sentencia anterior y una sola salida hacia la sentencia siguiente.
8 Sentencia para Casos Nótese, sin embargo, que este constructor tiene algunos problemas. El primero de ellos se relaciona con la escalabilidad. Si tenemos muchos casos (p.ej., tener 50 o 100 casos no es inusual en programas comerciales), resultará difícil para el usuario entender qué sentencias corresponden a cada caso. El uso de comentarios puede ayudar, pero a veces los programadores realizan cambios al código sin preocuparse en cambiar los comentarios, lo cual puede conducir a confusiones posteriores.
9 Sentencia para Casos Otro problema es que resulta difícil manejar dos o más casos con el mismo código. Por ejemplo, si quisiéramos usar la sentencia case para implementar los casos que vimos antes con el GOTO calculado, tendríamos: case I of begin... S 1... end, begin... S end, begin... S end, begin... S 4... end end case
10 Sentencia para Casos Nótese que tuvimos que repetir las sentencias S 23 para los casos 2 y 3. Esto viola el Principio de Abstracción y hace al programa más difícil de leer, más difícil de escribir y más difícil de mantener. Como no resulta obvio que el código para los casos 2 y 3 es el mismo, podría ocurrir que se corrige un error en uno de estos dos casos, pero no en el otro. Esto podría resolverse factorizando el código de S 23 y colocándolo en un procedimiento que se invocaría en los casos 2 y 3. Sin embargo, esto complicará el código.
11 Sentencia para Casos Una solución a estos problemas la proporciona la sentencia case con etiquetas, que tiene Pascal y que fue propuesta originalmente por C.A.R. Hoare.
12 Sentencia para Casos La sintaxis de la sentencia case en Pascal es la siguiente: case <expresión> of <etiqueta(s)> : begin...<sentencia>...end; <etiqueta(s)> : begin...<sentencia>...end;... <etiqueta(s)> : begin...<sentencia>...end end
13 Sentencia para Casos Esta sentencia proporciona un mecanismo seguro que está auto documentado (sigue el Principio de Etiquetamiento). Principio de Etiquetamiento Evite secuencias arbitrarias que tengan más de unos pocos elementos de longitud; no requiera que el usuario sepa la posición absoluta de un elemento en una lista. En vez de eso, asocie una etiqueta representativa con cada elemento y permita que los elementos se coloquen en cualquier orden.
14 Sentencia para Casos La sentencia case de Pascal no depende del programador el documentar adecuadamente cada uno de los casos posibles, pues eso se hace con las etiquetas. El ejemplo anterior quedaría de la forma siguiente: case I of 1: begin... S 1... end; 2,3: begin... S end; 4: begin... S 4... end; end
15 Sentencia para Casos La sentencia case de Pascal también es más flexible que su contraparte sin etiquetas. Por ejemplo, permite el uso de etiquetas alfanuméricas para denominar los distintos casos. Por ejemplo: case NextFlight.status of inair:... caso para vuelos en el aire... onground:... caso para vuelos en tierra... atterminal:... caso para vuelos en terminal... end
16 Sentencia para Casos Esto evita al programador el procedimiento (propenso a errores) de tener que mapear manualmente estos casos a valores enteros y documenta cada uno de los casos proporcionados.
17 Sentencia para Casos La sentencia case de Pascal también es muy eficiente. Puesto que el compilador puede determina el tipo de la expresión usada en la sentencia case, sabe los valores posibles que tendrá esta expresión. Por tanto, puede usar esta información para construir una tabla de saltos del tamaño apropiado. Algunos compiladores incluso van más lejos y generan una tabla de saltos, una tabla hash, una búsqueda binaria de una tabla ordenada, una búsqueda secuencial de una tabla lineal o una serie de ifs, dependiendo del número de valores, sus rangos y su agrupamiento.
18 Mecanismos de paso de parámetros Pascal eliminó el paso de parámetros por nombre y sólo permite el paso por valor y el paso por referencia (que reemplaza al paso por nombre de Algol). El propósito del paso por referencia es permitir que un procedimiento modifique los parámetros que se le pasan. En otras palabras, los parámetros los procedimientos de referencia son de salida (o de entrada salida).
19 Mecanismos de paso de parámetros El problema del paso por referencia en FORTRAN era que un procedimiento podía realizar alternaciones de parámetros que no tenían ningún sentido (por ejemplo, podían alterar constantes). Pascal resuelve este problema, porque el programador debe especificar en la declaración de un procedimiento si un parámetro se pasará por valor o por referencia.
20 Mecanismos de paso de parámetros Si un parámetro se pasa por referencia, entonces el compilador se asegura de que el valor donde se almacenará lo que regrese del procedimiento es algo que tiene sentido (o sea, una variable, el elemento de un arreglo o el campo de un registro). Por tanto, este mecanismo es seguro.
21 Mecanismos de paso de parámetros Los parámetros pasados por referencia también son eficientes, porque sólo se pasa la dirección de memoria a los mismos, sin importar su tamaño. En contraste, los parámetros pasados por nombre son costosos, porque debe invocarse una liga simbólica (thunk) cada vez que se usa el parámetro.
22 Mecanismos de paso de parámetros El paso por valor en Pascal es exactamente igual que en Algol: se pasa una copia del parámetro, el cual se usa como una variable local en el procedimiento correspondiente. Este mecanismo se usa para parámetros de entrada, puesto que previene la modificación del valor que se pasa al procedimiento.
23 Mecanismos de paso de parámetros Este mecanismo tiene los mismos problemas de eficiencia que el paso por valor de Algol, puesto que si se pasa un arreglo o cualquier otra estructura de datos grande, ésta tendrá que ser copiada.
24 Mecanismos de paso de parámetros El Reporte de Pascal original no especificaba que los únicos mecanismos de paso de parámetros eran el paso por valor y el paso por referencia. El reporte decía que existían dos mecanismos de paso de parámetros: el paso por referencia y el paso por constante.
25 Mecanismos de paso de parámetros Un parámetro pasado por constante es similar a uno pasado por valor, pues ambos se usan como parámetros de entrada. Sin embargo, el uso de paso por constante es más eficiente que el paso por valor, como veremos a continuación.
26 Mecanismos de paso de parámetros Un parámetro pasado por constante se considera constante en el cuerpo del procedimiento a donde se pasa. Por tanto, no es legal usar el parámetro como el destino de una asignación. También es ilegal usar este valor en cualquier otro contexto donde se use como destino. En otras palabras, el compilador protege la seguridad de los parámetros pasados por constante.
27 Mecanismos de paso de parámetros Puesto que el compilador impide que un parámetro pasado por constante se altere, el compilador puede decidir si pasar el valor del parámetro o su dirección de memoria (lo que resulte más eficiente). Por ejemplo, para valores pequeños, tales como enteros, caracteres y elementos de una enumeración, el compilador puede copiar el valor del parámetro directamente (o sea, lo pasaría por valor).
28 Mecanismos de paso de parámetros Para valores grandes, como un arreglo o un registro de gran tamaño, el compilador sólo pasará la dirección de memoria del parámetro. Esto ahorra tiempo y el espacio extra que se requiere al copiar el parámetro usando el paso por valor. Tampoco hay riesgo de que el parámetro se altere, porque el compilador lo impide.
29 Mecanismos de paso de parámetros Como puede verse, el paso de parámetros por constante tiene la seguridad del paso por valor y la eficiencia del paso por referencia. La pregunta es entonces: por qué se eliminó este mecanismo de paso de parámetros de Pascal? Una posibilidad es que este mecanismo tiene algunos problemas de seguridad, pues permite ciertas formas limitadas de aliasing. Por ejemplo, la misma variable puede ser visible de 2 maneras distintas: como no local y como parámetro.
30 Mecanismos de paso de parámetros Consideremos el siguiente segmento de código: type vector = array [1..100] of real; var A: vector; procedure P (x: vector); begin writeln (x[1]); A[1] := 0; writeln (x[1]); end; begin P(A) end
31 Mecanismos de paso de parámetros En este caso, dentro del procedimiento P, se han usado dos nombres distintos para la misma área de almacenamiento: x y A. Puesto que x es un parámetro pasado por constante, el compilador elegirá pasarlo por referencia (es un arreglo), lo que quiere decir que se pasará la dirección de A a P. Como la asignación que aparece dentro de P modifica el contenido del arreglo, las 2 referencias que se incluyen a x[1] pueden producir valores diferentes, pese a que x[1] no se modificó en ningún momento.
32 Mecanismos de paso de parámetros Desafortunadamente, la alternativa elegida en Pascal (permitir sólo el paso por valor y el paso por referencia), puede motivar a los programadores a pasar algo por referencia simplemente porque es más eficiente (en términos de uso de memoria). Esto pone en peligro la seguridad de los programas y causa confusión entre otras personas que lean el código correspondiente.
33 Mecanismos de paso de parámetros La raíz de este problema es que se confunden dos cuestiones que son ortogonales: 1) La decisión de si un parámetro debe ser usado para entrada o para salida. 2) La decisión de si debe copiarse su valor o pasarse la dirección de su valor.
34 Mecanismos de paso de parámetros Lenguajes modernos como Ada han separado mejor estas decisiones regresando a un mecanismo de paso de parámetros similar al paso por constante.
35 Parámetros Procedurales Para restaurar algo de la flexibilidad perdida al omitir el paso de parámetros por nombre, Pascal permite que se pasen procedimientos y funciones como argumentos a otros procedimientos y funciones.
36 Parámetros Procedurales Por ejemplo, supongamos que necesitamos definir la función difsq (f, x), que calcula para cualquier función real y un número real. O sea:, sin sin Según el Reporte Revisado de Pascal, debemos usar: procedure difsq (function f: real; x: real): real; begin difsq := f(x*x) f( x*x) end;
37 Parámetros Procedurales Este código luce bastante simple. Sin embargo, hay un problema: el método que usa Pascal para especificar que una función se pasará como parámetro introduce un hueco muy importante en la seguridad del lenguaje. Noten que en la definición del procedimiento difsq sólo se especifica que f es una función real. Sin embargo, no se dice nada sobre los parámetros de f (ni cantidad, ni tipos).
38 Parámetros Procedurales Esto hace casi imposible para el compilador el poder determinar si una invocación particular de difsq es legal o no (recordemos que el mismo procedimiento difsq se podría pasar como parámetro a otro procedimiento). Esto motivó que el comité que estandarizó Pascal modificara este mecanismo, de tal forma que se tengan que especificar los argumentos de un procedimiento que se pasa como parámetro.
39 Parámetros Procedurales Para el ejemplo anterior, se debe usar: procedure difsq (function f(y: real): real; x: real): real; begin.... end; Esto permite al compilador el poder efectuar un chequeo completo de tipos, lo cual preserva los tipos fuertes de Pascal. La implementación correcta de difsq se mostrará en clase.
40 Parámetros Procedurales Existen varios costos asociados con la solución que acabamos de ver. Un costo obvio es el incremento que se obtiene en la complejidad del lenguaje. Un costo más sutil es la implicación de que los procedimientos son ciudadanos de primera clase. Puesto que esta solución permite que los procedimientos se pasen como parámetros, el usuario podría pensar que también se pueden usar en las declaraciones de variables.
41 Parámetros Procedurales Si se permitiera que los procedimientos fueran ciudadanos de primera clase, el lenguaje tendría que definir el significado de usar variables procedurales, arreglos procedurales, archivos procedurales, etc. Existen diversos aspectos complejos relacionados con el diseño de un lenguaje de programación y su implementación que se relacionan con estos conceptos. Por otro lado, si el lenguaje no permite todas estas opciones, eso significa que los procedimientos son ciudadanos de segunda clase, lo cual los convierte en excepciones, las cuales ya dijimos que incrementan también la complejidad del lenguaje.
42 Recapitulando Recordemos que el objetivo primordial de Pascal era enseñar a programar. Esto fue lo que condujo a que su diseño enfatizara aspectos tales como la eficiencia, simplicidad y confiabilidad. Pese a sus problemas de diseño, Pascal fue un lenguaje de programación muy exitoso, que se usó para enseñar a programar a varias generaciones de estudiantes universitarios.
43 Implementación de los Lenguajes Estructurados Puesto que la noción de FORTRAN de un registro de activación no es adecuada para lenguajes estructurados tales como Algol y Pascal, debemos reanalizar dichos registros de activación, considerando sus propósitos. Los registros de activación, como su nombre lo indica, llevan el registro del estado de activación de un procedimiento.
44 Implementación de los Lenguajes Estructurados Para conocer el estado de activación de un procedimiento, necesitamos la siguiente información: 1) El código o algoritmo, que forma el cuerpo del procedimiento. 2) El lugar en ese código donde se está ejecutando esta activación del procedimiento. 3) Los valores de todas las variables visibles a esta activación.
45 Implementación de los Lenguajes Estructurados Dado que el código o algoritmo no cambia durante la ejecución del procedimiento, no se tiene que almacenar en el registro de activación. Los otros dos elementos antes mencionados pueden variar durante la ejecución de un programa, por lo cual deben ser parte del registro de activación.
Estructuras de Control
Algorítmica y Lenguajes de Programación Estructuras de Control Estructuras de Control. Introducción Hasta ahora algoritmos han consistido en simples secuencias de instrucciones Existen tareas más complejas
Estructuras de control
Estructuras de control Introducción Los algoritmos vistos hasta el momento han consistido en simples secuencias de instrucciones; sin embargo, existen tareas más complejas que no pueden ser resueltas empleando
2.2 Nombres, Ligado y Ámbito
2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el
Fundamentos de Programación Visual Basic
Pág. N. 1 Fundamentos de Programación Visual Basic Familia: Editorial: Tecnología de información y computación Macro Autor: Ricardo Walter Marcelo Villalobos ISBN: 978-612-304-236-3 N. de páginas: 280
Manual de turbo pascal
Universidad Nacional Experimental De Los Llanos Occidentales Ezequiel Zamora UNELLEZ-Barinas Manual de turbo pascal Bachilleres: Martinez Ninibeth C.I:20.867.002 Mora Yaco C.I:17.205.073 Estructura de
PROGRAMACIÓN UNIDADES
PROGRAMACIÓN Semestre: Segundo Horas: 90 horas Hrs/sem: 4.5 Créditos: 9 Clave: AI-02 DESCRIPCIÓN DE LA ASIGNATURA Al finalizar el curso el alumno tendrá el conocimiento y la capacidad de implementar programas
Tema 2 Conceptos básicos de programación. Fundamentos de Informática
Tema 2 Conceptos básicos de programación Fundamentos de Informática Índice Metodología de la programación Programación estructurada 2 Pasos a seguir para el desarrollo de un programa (fases): Análisis
Módulo 8: Primitivas en Pascal
Módulo 8: Primitivas en Pascal Tecnologías en la Educación Matemática Dr. Carlos Gonzalía DCIC - UNS Técnologías en la educación matemática Dr. Carlos Gonzalía 1 de Copyright Copyright 2010, 2012 M. Capobianco,
INICIACIÓN A LA PROGRAMACIÓN 1ª parte
TEMA 4 INICIACIÓN A LA PROGRAMACIÓN 1ª parte Qué es la programación? La programación es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas computacionales. En la actualidad,
Diseño de compiladores. Organización de memoria. Organización de memoria. Organización de memoria. Zona de código 04/05/2014 ORGANIZACIÓN DE MEMORIA
Diseño de compiladores Gestión de la memoria / Generación de código ORGANIZACIÓN DE MEMORIA Organización de memoria Depende del tipo de lenguaje (declarativos, imperativos), del compilador y del sistema
//Sección de manejo de excepciones. Las rutinas de manejo de errores //aparecen aqui
PL/SQL - Oracle PL/SQL (Procedural Language/SQL) es una extensión de SQL, que agrega ciertas construcciones propias de lenguajes procedimentales, obteniendose como resultado un lenguaje estructural mas
la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación.
ALGORITMOS SECUENCIALES: La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente
SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos
TEMA 2 Diseño de Algoritmos 7 2. DISEÑO DE ALGORITMOS 2.1. Concepto de Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus
FUNDAMENTOS DE INFORMÁTICA
FUNDAMENTOS DE INFORMÁTICA Tema 1 Introducción a la Programación en Visual Basic Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo undamentos de Informática. Departamento de Ingeniería
Fundamentos de Programación. Flujo de Control I: Estructuras selectivas
Fundamentos de Programación Flujo de Control I: Estructuras selectivas El Flujo de Control de un Programa Un algoritmo puede ser construido utilizando combinaciones de tres estructuras de control de flujo
Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO
Control de Flujo Estructuras de Control Experiencia Educativa de Algorítmica 1 Introducción El estilo de como escribimos y analizamos un algoritmo se convierte en una de las principales características
Procesadores de lenguaje Tema 6 La tabla de símbolos
Procesadores de lenguaje Tema 6 La tabla de símbolos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen La tabla de símbolos. Requerimientos de información. Diseño de la tabla de
5. Sentencias selectivas o condicionales
60 A. García-Beltrán y J.M. Arranz 5. Sentencias selectivas o condicionales Objetivos: a) Describir el funcionamiento de las sentencias selectivas o condicionales (if-else y switch) b) Interpretar el resultado
Tema 2 Introducción a la Programación en C.
Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes
Métodos que devuelven valor Dado el siguiente triángulo rectángulo:
Métodos que devuelven valor Dado el siguiente triángulo rectángulo: hipotenusa altura base Para dibujar este triángulo necesitamos los siguientes datos: base y altura La base y la altura, se utilizarán
Estructuras de Control. Secuencia y Selección
Estructuras de Control. Secuencia y Selección InCo - FING Programación 1 InCo - FING Estructuras de Control. Secuencia y Selección Programación 1 1 / 35 Estructuras de control InCo - FING Estructuras de
Modelos de Desarrollo de Programas Y Programación Concurrente Clase N 3
PROGRAMACION FUNCIONAL - Un lenguaje de programación funcional tiene gran flexibilidad, es conciso en su notación y su semántica es sencilla. El inconveniente principal de estos lenguajes ha sido la ineficiencia
2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje.
Modulo 1. Introducción a los lenguajes de programación La solución de problemas mediante en uso de un computador nos lleva a desarrollar programas o aplicaciones, la construcción de estos programas debe
Fundamentos de programación JAVA
Pág. N. 1 Fundamentos de programación JAVA Familia: Editorial: Autor: Computación e informática Macro Ricardo Walter Marcelo Villalobos ISBN: 978-612-304-238-7 N. de páginas: 296 Edición: 2. a 2014 Medida:
Java para no Programadores
Java para no Programadores Programa de Estudio Java para no Programadores Aprende a programar con una de las tecnologías más utilizadas en el mercado de IT. Este curso está orientado a quienes no tienen
Diseño Estructurado de Algoritmos
Diseño Estructurado de Algoritmos 1 Sesión No. 11 Nombre: Estructuras algorítmicas. Tercera parte. Objetivo de la sesión: Al concluir la sesión el estudiante aplicará las estructuras algorítmicas repetitivas
TUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación
TUTORIAL PSEINT Ing. Ronald Rentería Ayquipa Fundamentos de Programación PSEINT Página Oficial: http://pseint.sourceforge.net/ Es un software que interpreta pseudocódigo. Permite la generación de diagramas
Instituto Tecnológico de Celaya
CADENAS DE CARACTERES Hasta ahora se han manejado variables de tipo caracter cuyo valor es un sólo caracter. En algunos casos, sin embargo, es necesario usar variables cuyos valores sean un conjunto (cadena)
UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO
UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO LICENCIATURA EN PRODUCCIÓN INDUSTRIAL. UNIDAD DE APRENDIZAJE: PROGRAMACIÓN Créditos institucionales de la UA: 6 Material visual: Diapositivas Unidad de competencia
2007/ PROGRAMACIÓN. Tipo: TRO Curso: 1 Semestre: AB CREDITOS Totales TA TS AT AP PA OBJETIVOS. 1.-Introducción.
2007/2008 Tipo: TRO Curso: 1 Semestre: AB CREDITOS Totales TA TS AT AP PA OBJETIVOS 1.-Introducción. -Comprender cómo funciona un lenguaje de programación 2. Características del lenguaje C -Entender las
Algoritmos y Programación I
Algoritmos y Programación I ARREGLOS Y ESTRUCTURAS EN C Arreglos Un arreglo o vector es un conjunto de datos del mismo tipo, almacenados de forma contigua (es decir uno al lado del otro) en memoria principal.
1. Cuántas sentencias hay en la secuencia principal del siguiente programa?
1. Cuántas sentencias hay en la secuencia principal del siguiente programa? public class PruebaSwitch { System.out.print ("Opcion: "); case 3: System.out.println ("miércoles "); A. 1. B. 4. C. Más de 10.
APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.
APUNTADORES Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No hay que confundir una dirección de memoria con el contenido
Inicio del programa. Entrada de datos. Proceso de datos. Salida de datos. Fin del programa
PROGRAMACIÓN 10. Prof. Dolores Cuiñas H. Recuerde que estos son apuntes muy simplificados que deberá completar con la bibliografía recomendada APUNTES Nº 4 ESTRUCTURA SECUENCIAL GENERAL La estructura secuencial
FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)
APRENDERAPROGRAMARCOM FUNCIONES PHP: DECLARACIÓN Y LLAMADAS PARÁMETROS, RETURN EJERCICIOS EJEMPLOS RESUELTOS (CU00827B) Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha
Herramientas computacionales para la matemática MATLAB: Funciones definidas por el usuario (parte I)
Herramientas computacionales para la matemática MATLAB: Funciones definidas por el usuario (parte I) Verónica Borja Macías Abril 2012 1 Funciones definidas por el usuario El lenguaje de programación MATLAB
Funciones como Subprogramas en C++
FUNCIONES Cuando es necesario escribir programas complicados para resolver problemas complejos, una práctica común entre los programadores es descomponer el algoritmo (el diagrama de flujo) en varias partes.
DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA
DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA Nombre del Módulo: PROGRAMACIÓN EN JAVASCRIPT Código: CSTI0087 total: 51 Horas Objetivo General: Crear contenido web basado en
Programación Estructurada
Programación Estructurada Código de materia 01 Prof Titular Ing Rafael Brizuela Facultad de tecnología informática UNIVERSIDAD ABIERTA INTERAMERICANA GUÍA DE REPASO CONCEPTUAL PREGUNTAS Unidad 1: Conceptos
1. Computadores y programación
1. Computadores y programación Informática y computadora (RAE) Informática (Ciencia de la computación) Conjunto de conocimientos científicos y técnicos que hacen posible el tratamiento automático de la
Unidad II: Análisis semántico
Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico
La Máquina de Acceso Aleatorio (Random Access Machine)
La Máquina de Acceso Aleatorio (Random Access Machine) Nuestro modelo de cómputo secuencial es la máquina de acceso aleatorio (RAM, Random Access Machine) mostrada en la Figura 2.1, y que consiste de:
Elementos de un programa en C
Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución
Tabla de Símbolos. Programación II Margarita Álvarez
Programación II Margarita Álvarez La tabla de símbolos es una estructura global utilizada por distintos módulos del compilador. Es el principal atributo heredado. Almacena todos los nombres declarados
Unidad V Análisis Semántico. M.C. Juan Carlos Olivares Rojas
Unidad V Análisis Semántico M.C. Juan Carlos Olivares Rojas Agenda 5.1 Analizador semántico 5.2 Verificación de tipos en expresiones. 5.3 Conversión de tipos. 5.4 Acciones agregadas en un analizador sintáctico
Introducción a la programación
Introducción a la programación Conceptos Básicos El objetivo fundamental de éste curso es enseñar a resolver problemas mediante una computadora. El programador de computadoras es antes que nada una persona
INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación
INDICE Prologo XI Capitulo 1. Algoritmos y programas 1.1. Configuraciones de una computadora 1 1.2. Lenguajes de programación 2 1.3. Resolución de problemas 1.3.1. Fase de resolución del problema 3 1.3.1.1.
Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros
Práctica 3. Paso de parámetros entre subrutinas 1. Objetivo de la práctica El objetivo de esta práctica es que el estudiante se familiarice con la programación en ensamblador y el convenio de paso de parámetros
ALGORITMOS, ESTRUCTURAS Y PROGRAMACION
VICERRECTORADO ACADÉMICO DIRECCIÓN DE GESTIÓN, DESARROLLO E INNOVACIÓN CURRICULAR FACULTAD: INGENIERIA ESCUELAS: COMPUTACION - SISTEMA UNIDAD CURRICULAR: ALGORITMOS, ESTRUCTURAS Y PROGRAMACION FECHA DE
1
Curso: BORLAN DELPHI 5 Curso de desarrollo de aplicaciones Windows utilizando el entorno de programación Borland Delphi 5. Se estudian las particularidades del lenguaje Delphi, así como su sintaxis; sus
Ejercicios ejemplo: verificación de algoritmos del valor suma de una sucesión matemática. (CU00238A)
aprenderaprogramar.com Ejercicios ejemplo: verificación de algoritmos del valor suma de una sucesión matemática. (CU00238A) Sección: Cursos Categoría: Curso Bases de la programación Nivel II Fecha revisión:
3.2. Programación estructurada. Principal. Modulo 1 Modulo 2 Modulo 3 Modulo 4. Modulo Modulo Modulo 3 1 Modulo 4 1 Modulo 4 2. Pág.
CAP. 3. PROGRAMACION ESTRUCTURADA 3.1. Técnicas de programación Las herramientas de programación fundamentalmente los diagramas de flujo, son las representaciones gráficas utilizada para el diseño de algoritmos
ASIGNATURA: ESTRUCTURA DE DATOS II
ASIGNATURA: ESTRUCTURA DE DATOS II Cód: 31-206 Régimen cuatrimestral Horas reloj semanales: 4 Horas teóricas: 15 Horas prácticas: 45 Horas totales: 60 Carrera: Sistemas 2016 FUNDAMENTOS: Un tipo de dato
Distribuciones muestrales. Distribución muestral de Medias
Distribuciones muestrales. Distribución muestral de Medias TEORIA DEL MUESTREO Uno de los propósitos de la estadística inferencial es estimar las características poblacionales desconocidas, examinando
Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo
Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten
Taller de Resolución de Problemas Computacionales
Taller de Resolución de Problemas Computacionales Clase1: 27/9 Presentación: Equipo de Trabajo Encuentros Certificación del Taller: Por Asistencia Por Aprobación Sitio Web. Etapas en la Resolución de Problemas
Complejidad computacional (Análisis de Algoritmos)
Definición. Complejidad computacional (Análisis de Algoritmos) Es la rama de las ciencias de la computación que estudia, de manera teórica, la optimización de los recursos requeridos durante la ejecución
Curso de Programación 1
Curso de Programación 1 Plan 97 Búsqueda y Ordenación Métodos de búsqueda Existen aplicaciones en las cuales es necesario consultar si un elemento se encuentra dentro de un array. A continuación veremos
ANEXO XVII DE LA RESOLUCION N
Hoja 1 de 7 UNIVERSIDAD NACIONAL DE CÓRDOBA Facultad de Ciencias Exactas Físicas y Naturales República Argentina Programa de: Código: Informática Carrera: Materia común Res. Nº Plan: Puntos:3.5 Escuela:
TADs en C. Matías Bordese Algoritmos y Estructuras de Datos II - Laboratorio 2013
TADs en C Matías Bordese Algoritmos y Estructuras de Datos II - Laboratorio 2013 1. Objetivos Definición de TADs en C Ocultación de la implementación del TAD Manejo básico de memoria dinámica 2. Usando
Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.
LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan
Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía
Tema 3 SUBRUTINAS ÍNDICE Definición e instrucciones básicas Soporte para el tratamiento de subrutinas (ejecución de la subrutina y gestión del bloque de activación) Interrupciones vs llamadas a procedimiento
Programación MODULAR: Subalgoritmos - funciones y procedimientos
Programación MODULAR: Subalgoritmos - funciones y procedimientos Uno de los métodos fundamentales para resolver un problema es dividirlo en problemas más pequeños, llamados subproblemas. Estos problemas
INDICE Parte 1. Visual Basic Capitulo 1. Qué es Visual Basic? Capitulo 22. Mi Primera Aplicación Capitulo 3. Elementos del lenguaje
INDICE Prólogo XV Parte 1. Visual Basic 1 Capitulo 1. Qué es Visual Basic? 3 Introducción 3 Como crear una aplicación 5 Otras facilidades de Visual Basic 6 Un lenguaje de alto nivel 9 Menús 10 Colores
INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11
Índice INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11 1.1 PROGRAMA Y LENGUAJESDE PROGRAMACIÓN...12 1.1.1 EL LENGUAJE JAVA...13 1.1.2 EL JDK...15 1.1.3 LOS PROGRAMAS EN JAVA...16
UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.
UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. TRUJILLO 1.- Resumen de Prog1 Comentarios es C++ Declaraciones de variables.
Herramientas de Programación. M.C. Juan Carlos Olivares Rojas
Herramientas de Programación M.C. Juan Carlos Olivares Rojas Febrero 2011 Temario Simbología Reglas para la construcción de Diagramas Pseudocódigo Temario Tipos de Datos y Expresiones Estructuras lógicas
Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 4: Ordenación. Prof. Montserrat Serrano Montero
Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 4: Ordenación Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Elección de un método Métodos directos
Algoritmos y programas. Algoritmos y Estructuras de Datos I
Algoritmos y programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2012 Departamento de Computación - FCEyN - UBA Programación funcional - clase 1 Funciones Simples - Recursión - Tipos de
Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo
TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para
LÓGICA DE PROGRAMACIÓN
LÓGICA DE PROGRAMACIÓN Lógica de la Programación Lenguajes de Programación Ing CIP. Mike Joseph Palacios Juárez Clasificación del Software Sistemas Operativos 1. Multitarea 2. Multiusuario 3. Multiproceso
Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González.
Programación Básica Arturo Vega González a.vega@ugto.mx Division de Ciencias e Ingenierías Universidad de Guanajuato Campus León Sesión 5 Universidad de Guanajuato, DCI, Campus León 1 / 31 Universidad
Parte 4: Estructuras de Control
Parte 4: Estructuras de Control Las estructuras de control le permiten controlar el flujo de ejecución del programa. Tenemos dos tipos de estructuras de control: Estructuras de decisión Estructuras de
Estructura de Datos. Arreglos. Experiencia Educativa de Algorítmica ESTRUCTURA DE DATOS - ARREGLOS 1
Estructura de Datos Arreglos Experiencia Educativa de Algorítmica ESTRUCTURA DE DATOS - ARREGLOS 1 Introducción Una estructura de datos es una colección de datos que pueden ser caracterizados por su organización
Introducción a la programación
Introducción a la programación Resolución de Problemas El objetivo principal para que las personas aprendan a programar en algún lenguaje de programación en particular es utilizar el computador como una
: Algorítmica y Estructura de Datos I
FACULTAD POLITÉCNICA DIRECCIÓN ACADÉMICA PROGRAMA DE ESTUDIO I. IDENTIFICACIÓN Carrera : Ingeniería de Sistemas CARGA HORARIA (Horas reloj) Asignatura : Algorítmica y Estructura de Datos I Carga Horaria
Visual Basic y.net: Procedimientos Sub y funciones Function. Parámetros. Organizar programas en módulos. (CU00338A)
aprenderaprogramar.com Visual Basic y.net: Procedimientos Sub y funciones Function. Parámetros. Organizar programas en módulos. (CU00338A) Sección: Cursos Categoría: Curso Visual Basic Nivel I Fecha revisión:
$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos
PROGRAMACIÓN DE SHELL SCRIPTS EN LINUX El shell es un intérprete de órdenes, pero el shell no es solamente eso; los intérpretes de órdenes de Linux son auténticos lenguajes de programación. Como tales,
Lenguajes de Programación
Lenguajes de Programación Dr. Carlos Artemio Coello Coello Tarea No. 1 12 de enero de 2015 Tomaremos el pseudo-código proporcionado en el libro de texto, cuyas instrucciones guardan el formato ilustrado
TEMA 4. ESTRUCTURAS DE CONTROL
M.P. Sesmero, P. de Toledo, F.J. Ordoñez, J. Gómez-Romero, J.A. Iglesias, J.L. Mira Programación TEMA 4. ESTRUCTURAS DE CONTROL Grado en Ingeniería en Tecnologías Industriales Programación CONTENIDOS 4.1.
Programación Estructurada
Programación Estructurada PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 2 Nombre: El lenguaje de programación C Contextualización Una constante en todos los lenguajes de programación (viejos y nuevos) es la implementación
RADIO =? R AREA = : πr 2 < CIRC = : 2 πr
PROGRAMACION BASICA Programar la calculadora corresponde a decirle que presione teclas por sí misma automáticamente. Los programas se pueden ingresar vía RUN SHIFT PRGM (tecla VARS), o bien ingresando
ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF
ESCUELA POLITÉCNICA SUPERIOR GRADO EN DISEÑO IND. INFORMÁTICA CURSO 2012-13 PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF HASTA AHORA... En prácticas anteriores se ha aprendido: La estructura principal de un
Tema II: Metodología para la construcción de programas. Profesora: Nelly García Mora
Tema II: Metodología para la construcción de programas Profesora: Nelly García Mora 1. Metodologías de Programación Metodología de programación: es un conjunto o sistema de métodos, principios y reglas,
Programación. Tema 8: Tablas Hash. Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el????
Programación. Tema : Tablas Hash /Mayo/ Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el???? Tema : Tabla Hash Las tabla hash aparece para conseguir
INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA
APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto
Tema 13: Apuntadores en C
Tema 13: Apuntadores en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Introducción
Universidad de Guanajuato Tronco Común de Ingenierías
Universidad de Guanajuato Tronco Común de Ingenierías Objetivo del Area: Diseñar modelos matemáticos y proponer alternativas de solución a problemas. Programa. AREA: Matemáticas MATERIA: Lenguaje de Programación
Principios de Computadoras II
Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo Qué es una computadora? Una computadora es una máquina digital y sincrónica con capacidad de cálculo numérico y lógico controlada
Laboratorio de MTP-I. Curso 2008-2009 Proyecto: Sistema de reserva y gestión de vuelos Noviembre 2008
Laboratorio de MTP-I. Curso 2008-2009 Proyecto: Sistema de reserva y gestión de vuelos Noviembre 2008 1 OBJETIVO El objetivo del proyecto a implementar es desarrollar un sistema informático de reserva
Resolución de Problemas y Algoritmos Clase 6: Repetición (continuación)
Resolución de Problemas y Algoritmos Clase 6: Repetición (continuación) Dr. http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca,
Guía práctica de estudio 05: Diagramas de flujo
Guía práctica de estudio 05: Diagramas de flujo Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 05: Diagramas de
Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1
Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos
Un. VI. Generador de código intermedio.
Un. VI. Generador de código intermedio. La administración de la memoria se da en esta etapa. Se debe considerar tanto la memoria estática como dinámica, y en esta se utilizan generalmente pilas. Los lenguajes
Formulación del problema de la ruta más corta en programación lineal
Formulación del problema de la ruta más corta en programación lineal En esta sección se describen dos formulaciones de programación lineal para el problema de la ruta más corta. Las formulaciones son generales,
JAVA 7 Los fundamentos del lenguaje Java
Presentación 1. Historia 9 1.1 Por qué Java? 9 1.2 Objetivos del diseño de Java 10 1.3 Auge de Java 11 2. Características de Java 12 2.1 El lenguaje de programación Java 12 2.1.1 Sencillo 13 2.1.2 Orientado
Exterior del algoritmo. Entorno. Usuario. Procesador. Escribir. v1 v2 v3. Leer. <acción> {; <acción>}
Bloque II. 2. Objetos y acciones elementales Bloque II. 2. Objetos y acciones elementales Objetivos: Familiarizarse con conceptos de entorno, objeto y tipo Entender qué significa que un objeto sea de un
ESCUELA DE INFORMÁTICA
TÉCNICO EN SISTEMAS LABORAL SUBMODULO TEMA 1 (Visual Basic for Application) Microsoft VBA (Visual Basic for Applications) es el lenguaje de macros de Microsoft Visual Basic que se utiliza para programar
Tema 3.- Predicados y sentencias condicionales
UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO PROGRAMACIÓN DECLARATIVA INGENIERÍA INFORMÁTICA ESPECIALIDAD DE COMPUTACIÓN CUARTO CURSO PRIMER
Operadores y Expresiones
Operadores y Expresiones Los programas Java constan de datos, sentencias de programas y expresiones. Una expresión es normalmente, una ecuación matemática, tal como 3 * x + 5 * z. En esta expresión, los