Programación imperativa. Algoritmos y Estructuras de Datos I. Ciclos

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Programación imperativa. Algoritmos y Estructuras de Datos I. Ciclos"

Transcripción

1 Programación imperativa Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Programación imperativa - clase 6 Ciclos y arreglos Entidad fundamental: variables Corresponden a posiciones de memoria (RAM). Cambian expĺıcitamente de valor a lo largo de la ejecución de un programa. Tres instrucciones: asignación (y llamadas a funciones), condicional, ciclo Un programa es una lista de instrucciones, que se ejecutan una tras otra. La semántica de un programa se define mediante la composición de la semántica de las instrucciones por transformación de estados. 1 2 Programación imperativa Ciclos Aunque muchos lenguajes imperativos permiten implementar funciones recursivas, el mecanismo fundamental de cómputo no es la recursión. cuerpo del ciclo; B: expresión booleana del lenguaje de programación. Se la llama guarda. {cuerpo de ciclo: es un bloque de instrucciones entre llaves. Se repite mientras valga la guarda B, cero o más veces. La ejecución del ciclo termina si y solo si el ciclo se repite una cantidad finita de veces. Esto ocurre si y solo si la guarda B llega a ser falsa. Si el ciclo termina, el estado resultante es el estado posterior a la última instrucción del cuerpo del ciclo. 3 4

2 Ejemplo de un ciclo Correctitud de un ciclo respecto de una especificación problema fact(x : Int) = r : Int{ requiere x 0 asegura r == [1..x] En funcional: fact :: Int -> Int fact 0 = 1 fact i i>0 = i * (fact (i-1)) En imperativo: int fact (int x) { int f = 1; int i = 1; while (i x) { f = f * i; i = i + 1; return f; 5 Introducimos en el lenguaje de especificación P C : precondición del ciclo Q C : postcondición del ciclo B: guarda donde B corresponde a la guarda B del lenguaje de programación. int g(int x) {... // estado antesdelciclo // vale P C cuerpo del ciclo (una o más instrucciones); // estado despuesdelciclo // vale Q C... 6 Correctitud de un ciclo Invariante P C : precondición del ciclo, Q C : postcondición del ciclo, B: guarda I: invariante int g (int x) {... // estado antesdelciclo // vale P C // implica I // estado antes // vale B I cuerpo del ciclo (una o más instrucciones) // estado despues // implica I // vale I B; implica Q C... 7 Expresión booleana del lenguaje de especificación que se mantiene verdadera en los estados antes, durante y después de la ejecución de un ciclo. es análogo a la hipótesis inductiva que usamos para demostrar la correctitud de un programa recursivo en programación funcional. conviene darlo al escribir el ciclo porque expresa la idea del ciclo. no hay forma algorítmica de encontrarlo 8

3 Un ejemplo problema sumat(x : Int) = r : Int{ requiere x 0 asegura r == [0..x] En funcional: sumat :: Int -> Int sumat 0 = 0 sumat i = i + (sumat (i-1)) En imperativo: int sumat (int x) { int s = 0, i =x; while (i 0) { 9 Ejemplo sumat(int x) int sumat (int x) { int s = 0, i = x; while (i > 0) { // estado a // estado b Estados para x == 4 s@a i@a s@b i@b (i@a..x] i@a (i@b..x] i@b En estado a y b se cumple 0 i x y s == (i..x] (pero no en el medio) Cuando i == 0, la ejecución del ciclo termina. 10 Ejemplo sumat(int x) Transformación de estados dentro del ciclo int sumat (int x) { int s = 0; i = x; //vale P C : s == 0 i == x while (i > 0) { //estado e2 //estado e3 //vale Q C : i == 0 s == (0..x] //vale result == [0..x] La x no cambia porque es de entrada y no aparece en modifica ni en local. //vale B: i >0 //vale I : 0 i x s == (i..x] //estado e2 //vale i = i@e1 s == s@e1 + i@e1 //estado e3 //vale i == i@e2 1 s == s@e2 //implica i == i@e1 1 s == s@e1 + i@e1 porque i@e2 == i@e1 y s@e2 == s@e1 + i@e1. //implica 0 i x porque 0 < i@e1 x y i@e3 == i@e1 1 //implica s == (i..x] porque s@e1 == (i@e1..x] y s@e3 == s@e2 == s@e1 + i@e1 == (i@e1..x] + i@e1 == (i@e1 1..x] == (i@e3..x] 11 12

4 Terminación y correctitud de un ciclo respecto de una especificación Cómo demostramos que el ciclo termina? //vale P C ; //invariante I ; cuerpo //vale Q C ; Un ciclo termina si después de una cantidad finita de iteraciones se cumple la negación de la guarda. Un ciclo es correcto respecto a la especificación si comenzando su ejecución en un estado que cumple P C el ciclo termina en un estado que cumple Q C. Acotamos superiormente la cantidad de iteraciones restantes del ciclo mediante una expresión variante (v) Es una expresión del lenguaje de especificación, de tipo Int definida a partir de las variables del programa debe decrecer estrictamente en cada iteración //estado e; //vale B I ; cuerpo //vale v < v@e; Damos una cota (c) (valor entero fijo, por ejemplo 0 o 8) tal que si es alcanzado por la expresión variante, está garantizado que la ejecución alcanza un estado donde vale la negación de la guarda, y por lo tanto sale del ciclo Ejemplo de expresión variante Ejemplo de demostración de expresión variante decreciente. int sumat (int x) { int s = 0; i = x; //vale P C : s == 0 i == x while (i > 0) { //vale Q C : i == 0 s == (0..x] //vale result == [0..x] La expresión variante es un indicador de la distancia a la terminación del ciclo. //variante v : i, cota 0 Recordemos el programa sumat y la transformación de estados //variante v : i //vale B I //implica 0 < i x s == (i0..x] //estado e2 //vale i s == s@e1 + e@1 //estado e3 //vale i == i@e2 1 s == s@e2 Debemos ver que la expresión variante v : i es decreciente. Es decir, debemos ver que v@e1 > v@e3. Pero esto es inmediato, porque v@e1 == i@e1 y v@e3 == i@3 == i@e2 1 == i@e

5 Teorema de terminación Observaciones sobre terminación Sea I el invariante de un ciclo con guarda B, v una expresión variante v (expresión entera decreciente) y c una cota tal que (I v c) B. Entonces el ciclo termina. Demostración. Sea v j el valor que toma v en el estado que resulta de ejecutar el cuerpo del ciclo por j-ésima vez. Dado que v es de tipo Int, para todo j, v j Int. Como v es estrictamente decreciente, v 1 > v 2 > v 3 >..., existe un k tal que v k c. Dado que (I v c) B, en el estado alcanzado luego de k iteraciones vale B. Por lo tanto el ciclo termina. Qué pasaría si v fuese de tipo Float? Funcionaría esta demostración? Sea el siguiente programa: int dec1(int x) { while (x > 0) x = x 1; return x; Supongamos P c : x 0. I : x 0 v = x es estrictamente decreciente, cota c = 0. Dado que B : x > 0, se cumple v c B y por simple cálculo proposicional, (I v c) B. Es decir, no fue necesario usar el invariante I Observaciones sobre terminación Expresión variante y cota int dec2(int x) { while (x!= 0) x = x 1; return x; Supongamos P c : x 0 I : x 0 v = x, cota c = 0. Dado que B : not(x == 0), (I v c) B Notemos que en este caso sí necesitamos usar I ya que x 0 x == 0 pero (x 0 x 0) x == 0. Sea v una función variante y sea c su cota asociada. v = v c es una función variante con cota asociada 0. Sin pérdida de generalidad, podemos suponer siempre una función variante y cota asociada 0. v es estrictamente decreciente en las sucesivas iteraciones del ciclo. En cada iteración decrece en 1 o más unidades. Por lo tanto el valor de la expresión variante no necesariamente mide la cantidad de iteraciones (restantes) de la ejecución del ciclo

6 Teorema de correctitud de un ciclo Teorema del Invariante Sea P C, Q C, I, B, v la especificación de un ciclo que termina. Si se cumplen las relaciones de fuerza P C I y (I B) Q C entonces el ciclo es correcto con respecto a su especificación. Demostración. Debemos ver que para variables que satisfagan P C, el estado alcanzado cuando el ciclo termina satisface Q C. //vale P C ; //vale I B; cuerpo //vale I ; //estado e2 //vale Q C ; Supongamos que las variables en el estado e1 satisfacen P C como P C I, entonces en el estado e1 se cumple I. Supongamos que el ciclo ejecuta 0 o más veces. Por definición de invariante en cada iteración, el invariante se restablece. Por hipótesis, el ciclo termina y en el estado e2 vale B. Además, en el estado e2 vale I. Como (I B) Q C entonces en el estado e2 vale Q C. 21 Sea cuerpo un ciclo con guarda B, precondición P C y poscondición Q C. Sea I un predicado booleano, v una expresión variante, c una cota, y sean los estados e1 y e2 así: cuerpo //estado e2 Si valen: 1. P C I 2. (I B) Q C 3. el invariante se preserva en la ejecución del cuerpo, i.e. si I B vale en el estado e1 entonces I vale en el estado e2 4. v es decreciente, i.e. v@e1 > v@e2 5. (I v c) B entonces para cualquier valor de las variables del programa que haga verdadera P C, el ciclo termina y hace verdadera Q C, es decir, el ciclo es correcto para su especificación (P C, Q C ). Demostración. Inmediata del Teorema de Terminación (p. 17) y el Teorema de Correctitud (p. 21). 22 Cuales de los 5 puntos entran en el primer parcial? Retomamos ejemplo sumat Teoema del Invariante. Sea cuerpo un ciclo con guarda B, precondición P C y poscondición Q C. Sea I un predicado booleano, v una expresión variante, c una cota. Si valen: 1. P C I problema sumat(x : Int) = r : Int{ requiere P : x 0 asegura r == [0..x] 2. (I B) Q C 3. el invariante se preserva en la ejecución del cuerpo, i.e. si I B vale en el estado e1 entonces I vale en el estado e2 4. v es decreciente, i.e. v@e1 > v@e2 5. (I v c) B entonces para cualquier valor de las variables del programa que haga verdadera P C, el ciclo termina y hace verdadera Q C, es decir, el ciclo es correcto para su especificación (P C, Q C ). 1. P C I //vale P C : s == 0 i == x Supongamos que vale P C y veamos que vale I 1. i == x implica i x. 2. x 0 implica i s == 0 y i == x implica (i..x] == (x..x] == 0 == s. Los puntos 1,2 y 5 se demuestran usando lógica proposicional exclusivamente. Por lo tanto, (i == x s == 0) (0 i x s == (i..x]). Los puntos 3 y 4 quedan para después del primer parcial

7 Retomamos ejemplo sumat Retomamos ejemplo sumat 2. (I B) Q C // invariante I : 0 i x s == (i..x] // B : (i > 0) //vale Q C : i == 0 s == (0..x] Supongamos que vale I B y veamos que vale cada parte de Q C. Por I sabemos que 0 i. Por B sabemos i 0. Entonces, i == 0. Por I sabemos s == (i..x], y recién mostramos que i == 0, luego s == (0..x]. 5. (I v c) B //v c : i 0 // (B) : (i > 0) Supongamos que vale I (v c). Debemos ver que vale B. Esto es inmediato ya que (v c) == i 0 == B Arreglos Arreglos versus listas Secuencias de una cantidad fija de variables del mismo tipo. Se declaran con un nombre, un tamaño y un tipo. Ejemplo: int a[10]; // arreglo de 10 elementos enteros int a[]={0,1,2,3,4,5,6,7,8,9; //Inicializado Nos referimos a los elementos a través del nombre del arreglo y un índice, entre corchetes, que va de 0 a la dimensión menos uno: a[0], a[1],..., a[9] //acceso aleatorio Una referencia a una posición fuera del rango (usualmente) da error (en tiempo de ejecución). El tamaño y el tipo de un arreglo se mantienen invariantes a lo largo de la ejecución. Ambos son secuencias de elementos de un tipo dado. En el lenguaje de especificación tratamos a ambos con listas por comprensión. Longitud Los arreglos tienen longitud fija; las listas, no. Acceso Los elementos de un arreglo se acceden de manera directa, e independiente de los demás. a[i] accede al elemento en posición i-ésima del arreglo. Tiene dirección de memoria propia, y por lo tanto se le puede asignar un valor. Los elementos de una lista se acceden secuencialmente, empezando por la cabeza. Para acceder al i-ésimo elemento de una lista, hay que obtener i veces la cola y luego la cabeza

8 Arreglos en C++ Leyendo un arreglo Los arreglos en C++ son referencias. problema sumarray(a : [Int], tam : Int) = res : Int{ requiere P: tam == a ; asegura Q: res == a[0.. a ); No hay forma de averiguar su tamaño una vez que fueron creados; el programa tiene que encargarse de almacenarlo de alguna forma. Al ser pasados como argumentos, en la declaración de un parámetro no se indica su tamaño. Cuando se usan como argumentos de funciones en C y C++, pasan automáticamente como referencia ( no por copia!). 29 int sumarray(int a[], int tam){ int j = 0; int s = 0; // Pc: j == 0 s == a[0..j) while (j <tam) { // invariante 0 j tam s == a[0..j) // variante tam j; s = s + a[j]; j++; // Q c : s == a[0.. a ) // vale Q: res == a[0.. a ); 30 Inicialización de arreglos Modificando un arreglo problema init (a : [Int], x : Int, n : Int){ requiere n == a n > 0; modifica a; asegura todos([a[j] == x, j [0..n)]); asegura todos([a[j] == x, j [0..n)]); void init (int a[], int x, int n) { int i = 0; // vale P c : i == 0 while (i < n) { a[i]=x; i = i + 1; // invariante I: 0 i n todos([a[j] == x, j [0..i)]) // variantev : n i // vale Q c : i == n todos([a[j] == x, j [0..i)]) problema ceroporuno(a : [Int], tam : Int){ requiere tam == a ; modifica a; asegura a == [if i == 0 then 1 else i i pre(a)[0..tam)]; void ceroporuno(int a[], int tam) { int j = 0; // vale P c : j == 0 while (j < tam) { // invariante a[0..j) == [if i == 0 then 1 else i i pre(a)[0..j)]; // 0 j tam a[j..tam) == pre(a)[j..tam) // variante tam j; if (a[j] == 0) a[j] = 1; j++; 31 32

Arreglos. Algoritmos y Estructuras de Datos I. Arreglos en C++ Arreglos y listas

Arreglos. Algoritmos y Estructuras de Datos I. Arreglos en C++ Arreglos y listas Arreglos Algoritmos y Estructuras de Datos I Primer cuatrimestre 2007 Teórica de imperativo 3 Algoritmos de búsqueda secuencias de una cantidad fija de variables del mismo tipo se declaran con un nombre,,

Más detalles

Esquema. Condicionales. Ejemplo de condicional. Demostración. P { if (B) uno else dos } Q. P { while (B) cuerpo } Q

Esquema. Condicionales. Ejemplo de condicional. Demostración. P { if (B) uno else dos } Q. P { while (B) cuerpo } Q Esquema Teórica Imperativo 2 Estructuras de control Instrucción de asignación P{v=e Q // estado 1; vale P: true v:=e; // vale Q: v == e@1 && para toda vi: vi == vi@1 Instrucciones de Control de Flujo P

Más detalles

Complejidad computacional. Algoritmos y Estructuras de Datos I. Complejidad computacional. Notación O grande

Complejidad computacional. Algoritmos y Estructuras de Datos I. Complejidad computacional. Notación O grande Complejidad computacional Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Algoritmos - clase 10 Introducción a la complejidad computacional y

Más detalles

Pasaje de argumentos en lenguajes de programación. Algoritmos y Estructuras de Datos I

Pasaje de argumentos en lenguajes de programación. Algoritmos y Estructuras de Datos I Pasaje de argumentos en lenguajes de programación Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Programación imperativa - clase 5 Pasaje de

Más detalles

Especificación de programas. Algoritmos y Estructuras de Datos I. Correctitud de ciclos

Especificación de programas. Algoritmos y Estructuras de Datos I. Correctitud de ciclos Especificación de programas Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Simulacro Coloquio Final - clase 1 Sean dos programas, cada uno recibe

Más detalles

Verificación de programas. Algoritmos y Estructuras de Datos I. Semánticas formales: Primer cuatrimestre de 2016

Verificación de programas. Algoritmos y Estructuras de Datos I. Semánticas formales: Primer cuatrimestre de 2016 Verificación de programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2016 Departamento de Computación - FCEyN - UBA Programación imperativa - clase 14 Verificación automática de programas

Más detalles

Programación imperativa. Algoritmos y Estructuras de Datos I. Lenguaje C. Segundo cuatrimestre de 2014

Programación imperativa. Algoritmos y Estructuras de Datos I. Lenguaje C. Segundo cuatrimestre de 2014 Programación imperativa Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Programación imperativa - clase 4 Modelo de cómputo: Un programa consta

Más detalles

Lenguajes de programación. Algoritmos y Estructuras de Datos I. Lenguajes compilados. Lenguajes compilados

Lenguajes de programación. Algoritmos y Estructuras de Datos I. Lenguajes compilados. Lenguajes compilados Lenguajes de programación Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Teórica - clase 3 Introducción a la programación imperativa Las computadoras

Más detalles

Ordenamiento de un arreglo. Algoritmos y Estructuras de Datos I. Demostración. Cota inferior de complejidad tiempo para sorting

Ordenamiento de un arreglo. Algoritmos y Estructuras de Datos I. Demostración. Cota inferior de complejidad tiempo para sorting Ordenamiento de un arreglo Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Algoritmos - clase 12 Algoritmos de ordenamiento, segunda parte Tenemos

Más detalles

Paradigmas de lenguajes de programación. Introducción a la programación imperativa. Lenguaje C. Programación imperativa

Paradigmas de lenguajes de programación. Introducción a la programación imperativa. Lenguaje C. Programación imperativa Paradigmas de lenguajes de programación Introducción a la programación imperativa Algoritmos y Estructuras de Datos I Paradigma: Definición del modo en el que se especifica el cómputo (que luego es implementado

Más detalles

Ordenamiento de un arreglo. Algoritmos y Estructuras de Datos I. Algoritmo downsort. Upsort vs downsort

Ordenamiento de un arreglo. Algoritmos y Estructuras de Datos I. Algoritmo downsort. Upsort vs downsort Ordenamiento de un arreglo Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Programación imperativa - clase 8 Algoritmos de ordenamiento II Tenemos

Más detalles

Algoritmos de Búsqueda

Algoritmos de Búsqueda Introducción a la Computación Algoritmos de Búsqueda Esteban E. Mocskos (emocskos@dc.uba.ar) Facultad de Ciencias Exactas y Naturales, UBA CONICET 11/10/2017 E. Mocskos (UBA CONICET) Algoritmos de Búsqueda

Más detalles

Introducción a la computación. Charlie

Introducción a la computación. Charlie Introducción a la computación Charlie Estado Se denomina estado en un modelo de cómputo a un punto en la ejecución de un programa en dicho modelo. En el modelo de Von Neumann esto responde al valor de

Más detalles

Lenguaje de programación S (Davis/Sigal/Weyuker) Lógica y Computabilidad. Ejemplo 1. Ejemplo 2

Lenguaje de programación S (Davis/Sigal/Weyuker) Lógica y Computabilidad. Ejemplo 1. Ejemplo 2 Lógica y Computabilidad Verano 2011 Departamento de Computación - FCEyN - UBA Computabilidad - clase 4 Lenguaje S, estado, descripción instantánea, cómputo, funciones parciales computables, minimización

Más detalles

Introducción a la Computación

Introducción a la Computación Introducción a la Computación Primer Cuatrimestre de 2012 Corrección de Algoritmos 1 Especificación, algoritmo y programa Especificación de un problema: Qué problema tenemos? Lenguaje formal (ej. lógica

Más detalles

Bloque 1. Conceptos y técnicas básicas en programación

Bloque 1. Conceptos y técnicas básicas en programación Bloque 1. Conceptos y técnicas básicas en programación 1. Introducción 2. Datos y expresiones. Especificación de algoritmos 3. Estructuras algorítmicas básicas 4. Iteración y recursión 5. Iteración y recursión

Más detalles

Algoritmos y programas. Algoritmos y Estructuras de Datos I

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ás detalles

ESTRUCTURAS DE CONTROL

ESTRUCTURAS DE CONTROL ESTRUCTURAS DE CONTROL En lenguajes de programación, las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa. Con las estructuras de control se puede: De

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java II... 6 Estructuras de control... 7 Estructuras de selección... 8 Sentencia if... 9 Sentencia if - else... 12 Operador condicional...

Más detalles

Pruebas de Validez (Correctness) de Algorithmos.

Pruebas de Validez (Correctness) de Algorithmos. Pruebas de Validez (Correctness) de Algorithmos. Jonatan Gómez 11th September 2004 1 Introducción Uno de los aspectos mas importantes en el desarrollo de programas para computador es determinar cuando

Más detalles

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN - Introducción - Sintaxis - Semántica básica - Tipos de datos - Expresiones y enunciados - Procedimientos y ambientes - Tipos abstractos de datos y módulos

Más detalles

Funciones recursivas

Funciones recursivas Introducción a la Computación Funciones recursivas Esteban E. Mocskos (emocskos@dc.uba.ar) Facultad de Ciencias Exactas y Naturales, UBA CONICET 13/09/2017 E. Mocskos (UBA CONICET) Funciones Recursivas

Más detalles

El lenguaje P. Lógica y Computabilidad ( ) símbolos p. Verano convenciones. Lógica Proposicional - clase 1

El lenguaje P. Lógica y Computabilidad ( ) símbolos p. Verano convenciones. Lógica Proposicional - clase 1 Lógica y Computabilidad Verano 2011 Departamento de Computación - FCEyN - UBA Lógica Proposicional - clase 1 Lenguaje de lógica proposicional, semántica, tautología, consecuencia semántica, conjunto satisfacible,

Más detalles

Tema 06: Recursividad

Tema 06: Recursividad Tema 06: Recursividad M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Recursión Recursividad Programación

Más detalles

Lección 3 Sentencias de control

Lección 3 Sentencias de control 3.1. INTRODUCCIÓN - Hasta aquí: ejecución secuencial de los programas. - Aquí vamos a ver: Lección 3 Sentencias de control Sentencias de control Sentencias condicionales: if- y switch-case Sirven para

Más detalles

Complejidad de algoritmos recursivos

Complejidad de algoritmos recursivos Tema 3. Complejidad de algoritmos recursivos 1. INTRODUCCIÓN... 1 CLASIFICACIÓN DE FUNCIONES RECURSIVAS... 1 DISEÑO DE FUNCIONES RECURSIVAS... 2 2. VENTAJAS E INCONVENIENTES DE LA RECURSIVIDAD... 4 3.

Más detalles

Operadores de comparación

Operadores de comparación Operadores de comparación Los operadores de comparación en C son: Igual (==) Distinto (!=) Mayor (>) y Mayor o igual (>=) Menor (

Más detalles

Estructuras de Control

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

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Introducción Práctica de Programación Java Antonio Rivero Cuesta Sesión III La Sintaxis de Java II... 6 Estructuras de Control... 7 Estructuras de Selección... 8 Sentencia

Más detalles

Algoritmos Iterativos de Búsqueda y Ordenación y sus tiempos

Algoritmos Iterativos de Búsqueda y Ordenación y sus tiempos Estructura de Datos y Algoritmos Algoritmos Iterativos de Búsqueda y Ordenación y sus tiempos 1. Algorimos de ordenación Discutiremos el problema de ordenar un array de elementos. A los efectos de simplificar

Más detalles

Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica

Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica Tema 2: Desarrollo de Algoritmos E.E. de Algorítmica Temas a tratar Identificadores Variables Constantes Tipos de Datos Separadores Operadores Aritméticos Unarios Relacionales y Condicionales Nivel de

Más detalles

Introducción al análisis de algoritmos

Introducción al análisis de algoritmos Estructura de Datos y Algoritmos Introducción al análisis de algoritmos 1. Eficiencia en tiempo de Ejecución Cuando resolvemos un problema nos vemos frecuentemente enfrentando una elección de programas,

Más detalles

Introducción a C++ y Code::Blocks

Introducción a C++ y Code::Blocks Introducción a C++ y Práctica Imperativo Clase 1 Luis Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 28 de mayo de 2010 Menu de esta Tarde Funcional Vs. Imperativo (Intérprete

Más detalles

Algoritmo de Euclides

Algoritmo de Euclides Algoritmo de Euclides Melanie Sclar Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires AED III Melanie Sclar (UBA) Algoritmo de Euclides AED III 1 / 21 Ejercicio 2.8 de la práctica Ejercicio

Más detalles

Clases e instancias. Algoritmos y Estructuras de Datos I. Clases e instancias. memoria dinámica.

Clases e instancias. Algoritmos y Estructuras de Datos I. Clases e instancias. memoria dinámica. Algoritmos Estructuras de Datos I Primer cuatrimestre de 2014 Departamento de Computación - FCEN - UBA Programación imperativa - clase 10 Memoria dinámica listas enlazadas Clases e instancias El paquete

Más detalles

LENGUAJES Y COMPILADORES

LENGUAJES Y COMPILADORES LENGUAJES Y COMPILADORES Repaso. La clase pasada presentamos el lenguaje imperativo simple y dimos las ecuaciones para casi todas las construcciones del lenguaje. En efecto, teníamos que [ ] Σ

Más detalles

Java para programadores

Java para programadores Java para programadores Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) montenegro@fdi.ucm.es Contenidos Variables. Tipos

Más detalles

Programación Estructurada. Sesión 4:Estructuras de control

Programación Estructurada. Sesión 4:Estructuras de control Programación Estructurada Sesión 4:Estructuras de control Contextualización En la sesión anterior vimos las estructuras condicionales, mediante éstas somos capaces de elegir qué expresiones usaremos, pero

Más detalles

ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.

ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid. ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid. Indíce Algoritmo Elementos de un algoritmo: Variables, Constantes, Expresiones Datos: Definición y

Más detalles

Bloque II. Elementos del lenguaje de programación Java

Bloque II. Elementos del lenguaje de programación Java Bloque II. Elementos del lenguaje de programación Java 1.Introducción a los lenguajes de programación 2. Estructura de un programa 3. Datos y expresiones simples 4. Instrucciones de control 5. Entrada/salida

Más detalles

Tipos de datos en S. Lógica y Computabilidad. Codificación de variables y etiquetas de S. Codificación de programas en S

Tipos de datos en S. Lógica y Computabilidad. Codificación de variables y etiquetas de S. Codificación de programas en S Tipos de datos en S Lógica y Computabilidad Verano 2011 Departamento de Computación - FCEyN - UBA Computabilidad - clase 5 Codificación de programas, Halting problem, diagonalización, tesis de Church,

Más detalles

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples Desarrollo de aplicaciones en Java Generación de código fuente Compilación Ejecución Elementos de aplicaciones simples EII147-01-02 Introducción a las tecnologías de información Escuela de Ingeniería Industrial

Más detalles

Introducción al lenguaje C

Introducción al lenguaje C Introducción al lenguaje C Programación 2 Profesorado de Informática CeRP del Suroeste, Colonia, Uruguay 15 de marzo de 2016 Programación 2 Introducción al lenguaje C 15 de marzo de 2016 1 / 34 Objetivos

Más detalles

Módulo. = Asignación = = Comp. de igualdad!= Com. de desigualdad <= Comp. menor o igual >= Comp. mayor o igual AND lógico OR lógica.

Módulo. = Asignación = = Comp. de igualdad!= Com. de desigualdad <= Comp. menor o igual >= Comp. mayor o igual AND lógico OR lógica. EQUIVALENCIAS BÁSICAS ENTRE PASCAL Y C A continuación se presentan algunas equivalencias básicas entre estos lenguajes de programación : Operadores en lenguaje C: Operador Descripción % Módulo = Asignación

Más detalles

Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos

Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos 1! 1. Algoritmos recursivos " 1.1 Algoritmos recursivos. Recursión simple " 1.2 Algoritmos con vuelta atrás y ejemplos! 2. Complejidad de

Más detalles

Estructura repetitiva while

Estructura repetitiva while Estructura repetitiva while Hasta ahora hemos empleado estructuras SECUENCIALES y CONDICIONALES. Existe otro tipo de estructuras tan importantes como las anteriores que son las estructuras REPETITIVAS.

Más detalles

Tipos de Datos de python (2ª parte):

Tipos de Datos de python (2ª parte): Tipos de Datos de python (2ª parte): Enteriormente hemos visto algunos de los tipos de datos que maneja python. Vimos: int, float, chr, str, bool También vimos como convertir datos a cada uno de estos

Más detalles

Programación II Recursividad Dr. Mario Rossainz López

Programación II Recursividad Dr. Mario Rossainz López 5. RECURSIVIDAD 5.1. Introducción La recursividad es una técnica en la que una función o método se hace llamadas a sí misma en el proceso de la realización de sus tareas. La recursividad da al programador

Más detalles

Lenguajes de Programación Programación funcional

Lenguajes de Programación Programación funcional Lenguajes de Programación Programación funcional Roberto Bonvallet Departamento de Informática Universidad Técnica Federico Santa María Concepto de función En el paradigma imperativo: Una función es una

Más detalles

Análisis de algoritmos. Recursividad

Análisis de algoritmos. Recursividad Análisis de algoritmos Recursividad 1 Matrushka La Matrushka es una artesanía tradicional rusa. Es una muñeca de madera que contiene otra muñeca más pequeña dentro de sí. Ésta muñeca, también contiene

Más detalles

Operadores aritméticos

Operadores aritméticos Bloque 3.2 Operadores aritméticos Suma : x + y Resta : x y Multiplicación : x * y División : x / y Módulo : x % y (resto de la división Si los operandos son enteros tipo del resultado

Más detalles

Para entender la recursividad primero tenemos que entender la recursividad

Para entender la recursividad primero tenemos que entender la recursividad Para entender la recursividad primero tenemos que entender la recursividad Funcional Clase 1 Matias Reparaz, Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 20 de Septiembre

Más detalles

Operadores de comparación

Operadores de comparación Operadores de comparación Los operadores de comparación en C son: Igual (==) Distinto (!=) Mayor (>) y Mayor o igual (>=) Menor (

Más detalles

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina Unidad II: Fundamentos de la Programación Estructurada Algoritmo, Estructuras y Programación I Ing. Marglorie Colina Estructura General de un Programa Zona de ficheros de cabecera de las librerías Zona

Más detalles

ANEXO XVII DE LA RESOLUCION N

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:

Más detalles

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 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

Más detalles

Multiplicación de matrices simétricas

Multiplicación de matrices simétricas Multiplicación de matrices simétricas La traspuesta de una matriz A n n es definida como una matriz A T n n tal que A T [i, j] =A[j, i] paracadai, j 2{1,...,n} Además, una matriz A es simétrica si A =

Más detalles

PHP: Lenguaje de programación

PHP: Lenguaje de programación Francisco J. Martín Mateos Carmen Graciani Diaz Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Tipos de datos Enteros Con base decimal: 45, -43 Con base octal: 043, -054

Más detalles

Ciclos. Recordando Estructuras de Control Básicas: SELECCIÓN (condición) SECUENCIAL

Ciclos. Recordando Estructuras de Control Básicas: SELECCIÓN (condición) SECUENCIAL Ciclos Fundamentos de Programación Recordando Estructuras de Control Básicas: Una secuencia es una serie de estatutos que se ejecutan uno después de otro. Selección (condición) ejecuta diferentes estatutos

Más detalles

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos Algoritmos y Estructuras de Datos I 1 cuatrimestre de 009 Departamento de Computación - FCEyN - UBA Programación funcional - clase Tipos algebraicos Tipos algebraicos y abstractos ya vimos los tipos básicos

Más detalles

PROGRAMACIÓN UNIDADES

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

Más detalles

Bloque 1. Conceptos y técnicas básicas en programación

Bloque 1. Conceptos y técnicas básicas en programación Bloque 1. Conceptos y técnicas básicas en programación 1. Introducción 2. Datos y expresiones. Especificación de algoritmos 3. Estructuras algorítmicas básicas 4. Iteración y recursión 5. Iteración y recursión

Más detalles

Búsqueda Binaria. Universidad de Buenos Aires. Universidad Nacional del Comahue. Training Camp 2017

Búsqueda Binaria. Universidad de Buenos Aires. Universidad Nacional del Comahue. Training Camp 2017 Búsqueda Binaria Leopoldo Taravilse 1 Juan Cruz Piñero 2 1 Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires 2 Facultad de Informática Universidad Nacional del Comahue Training Camp

Más detalles

Programación Estructurada

Programación Estructurada Programación Estructurada Técnica de programación que consiste en construir programas de fácil comprensión. Es mucho más sencillo entender la codificación del programa, que se habrá hecho en diferentes

Más detalles

Tema 2. El lenguaje JAVA

Tema 2. El lenguaje JAVA Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias

Más detalles

Introducción a Haskell. Cecilia Manzino

Introducción a Haskell. Cecilia Manzino Paradigmas de programación Un paradigma de programación representa un estilo particular o filosofía para la construcción del software. Los más comunes dan lugar a los siguientes tipos de programación:

Más detalles

Asignación de Memoria (Allocation) Algoritmos y Estructuras de Datos I. Asignación de Dinámica de Memoria

Asignación de Memoria (Allocation) Algoritmos y Estructuras de Datos I. Asignación de Dinámica de Memoria Asignación de Memoria (Allocation) Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Programación imperativa - clase 14 Memoria dinámica y listas

Más detalles

Programación Orientada Objetos. Estructuras de control if, If else, switch

Programación Orientada Objetos. Estructuras de control if, If else, switch Programación Orientada Objetos Estructuras de control if, If else, switch Estructuras de control Las estructuras condicionales controlan si una sentencia o bloque de sentencias se ejecutan, en función

Más detalles

1. Programas y funciones computables

1. Programas y funciones computables Computabilidad 1 Índice 1. Programas y funciones computables 3 1.1. El lenguaje S........................................... 3 1.2. Programas de S......................................... 3 1.3. Macros...............................................

Más detalles

Tema 6 Control de Flujo

Tema 6 Control de Flujo Tema 6 Control de Flujo Contenidos 1. Secuencia de Instrucciones. 2. Sentencias Condicionales. if switch 3. Estructuras de Repetición. while for do while ( break / continue ) 2 1. Secuencia de Instrucciones

Más detalles

Estructuras de Datos Lineales y Arborescentes

Estructuras de Datos Lineales y Arborescentes 1/1 Estructuras de Datos Lineales y Arborescentes Josefina Sierra Santibáñez 25 de marzo de 2017 2/1 Estructuras de Datos Lineales y Arborescentes En este tema se utilizan estructuras de datos genéricas

Más detalles

Apunte Laboratorio ALPI - El lenguaje de programación Pascal

Apunte Laboratorio ALPI - El lenguaje de programación Pascal Apunte Laboratorio ALPI - El lenguaje de programación Pascal 1 2 ÍNDICE GENERAL Índice 1. Estructura de un Programa en Pascal 3 2. Sintaxis de Pascal 4 2.1. Uso de mayúsculas.....................................

Más detalles

Conceptos de Programación Intérprete PYTHON

Conceptos de Programación Intérprete PYTHON Introducción a la Computación Conceptos de Programación Intérprete PYTHON M. E. Buemi (mebuemi@dc.uba.ar) Facultad de Ciencias Exactas y Naturales, 23/03/2016 Outline Programar Python Programación imperativa

Más detalles

Sentencias de control. Condiciones

Sentencias de control. Condiciones Sentencias de control Condiciones Son las preguntas básicas a las que se puede responder sí o no Para implementar el control del flujo, son muy útiles unas expresiones que permiten comparar dos variables

Más detalles

Especificación Clase 2

Especificación Clase 2 Especificación Clase 2 Lenguaje de especificación Departamento de Computación, FCEyN, Universidad de Buenos Aires. 27 de marzo del 2015 Menú del día Especificación Repaso del lenguaje de especificación

Más detalles

SESIÓN DE EJERCICIOS E1

SESIÓN DE EJERCICIOS E1 SESIÓN DE EJERCICIOS E1 Primera parte: ejercicios test Ejercicio 1 Qué definición de constantes es la correcta en lenguaje C? a) #define N=25; b) #define N 25 c) int N=25; d) int N 25 Ejercicio 2 La expresión

Más detalles

Funcionamiento de las computadoras

Funcionamiento de las computadoras Funcionamiento de las computadoras Introducción a las ciencias de la computación Antonio López Jaimes UNIVERSIDAD AUTÓNOMA METROPOLITANA UNIDAD IZTAPALAPA Plan de la presentación El modelo de von Neuman

Más detalles

Estructuras de control

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

Más detalles

Definiciones recursivas Lógica 2017

Definiciones recursivas Lógica 2017 Definiciones recursivas Lógica 2017 Instituto de Computación 7 de marzo Instituto de Computación (InCo) Definiciones recursivas Curso 2017 1 / 1 Recursión Dado un conjunto inductivo, sabemos exactamente

Más detalles

5. ESTRUCTURAS DE REPETICIÓN

5. ESTRUCTURAS DE REPETICIÓN 5. ESTRUCTURAS DE REPETICIÓN Las estructuras de repetición, permiten la ejecución de una lista o secuencia de instrucciones () en varias ocasiones. El número de veces que el bloque

Más detalles

TAD CONJUNTOS Y MULTICONJUNTOS

TAD CONJUNTOS Y MULTICONJUNTOS TAD CONJUNTOS Y MULTICONJUNTOS INTRODUCCIÓN Qué es un conjunto? Un conjunto en matemática es una colección de objetos. Los objetos no mantienen ninguna relación aparente entre ellos y tampoco están obligados

Más detalles

fundamentos de programación (unidad 4) programación estructurada en Java

fundamentos de programación (unidad 4) programación estructurada en Java fundamentos de programación (unidad 4) programación estructurada en Java Para ver una copia completa de la licencia, acudir a la dirección http://creativecommons.org/licenses/by-nc-sa/2.5/es/legalcode.es

Más detalles

Tema 4.- Recursión e iteración

Tema 4.- Recursión e iteración 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

Más detalles

RESEÑA DE LENGUAJE C

RESEÑA DE LENGUAJE C RESEÑA DE LENGUAJE C VARIABLES La función main. Es el punto de entrada al programa. void main(void) Aquí escribo mi programa Tipos de datos. Char. El char es una variable de 1 byte. Almacena números enteros.

Más detalles

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;) Tags Fundamentos PHP La Sintaxis de PHP se deriva de muchos lenguajes de programación principalmente de C pero Perl también ha tenido mucha influencia en esta sintaxis Con las últimas incorporaciones agregadas,

Más detalles

Estructuras de Control (y su forma en Python y en C) Clase 5 Introducción a la Computación Patricia Borensztejn

Estructuras de Control (y su forma en Python y en C) Clase 5 Introducción a la Computación Patricia Borensztejn Estructuras de Control (y su forma en Python y en C) Clase 5 Introducción a la Computación Patricia Borensztejn Estructuras de Control En el modelo de ejecución secuencial que vimos, el procesador repite:

Más detalles

Listas y Recursión. Taller de Álgebra I. Primer Cuatrimestre de 2015

Listas y Recursión. Taller de Álgebra I. Primer Cuatrimestre de 2015 Listas y Recursión Taller de Álgebra I Primer Cuatrimestre de 2015 Un nuevo tipo: Listas Tipo Lista Las listas pueden contener elementos de cualquier tipo (incluso listas) [1] :: [Integer] [1, 2] :: [Integer]

Más detalles

Problemas fáciles, difíciles e imposibles

Problemas fáciles, difíciles e imposibles Problemas fáciles, difíciles e imposibles La computadora lo resuelve todo? Santiago Figueira Departamento de Computación FCEyN, UBA Semana de la Computación 2015 1 Qué son los métodos efectivos? Intuitivamente

Más detalles

Objetivos de la práctica: - Trabajar las estructuras de control repetitivas en la realización de programas.

Objetivos de la práctica: - Trabajar las estructuras de control repetitivas en la realización de programas. Objetivos de la práctica: - Trabajar las estructuras de control repetitivas en la realización de programas. Sentencias de Control repetitivas (o bucles) Al igual que las estructuras selectivas, el bucle

Más detalles

Mientras (expresión lógica) Instrucciones a repetir mientras la expresión lógica es verdadera Fin Mientras

Mientras (expresión lógica) Instrucciones a repetir mientras la expresión lógica es verdadera Fin Mientras Clase teórica 7 Algoritmos en C Página 1 de 5 INSTRUCCIÓN WHILE Una forma más general que el FOR para realizar iteraciones es el WHILE (mientras), el cual permite repetir una serie de instrucciones mientras

Más detalles

Informática. JavaScript: Lenguaje de programación. Fco J. Martín Mateos Carmen Graciani

Informática. JavaScript: Lenguaje de programación. Fco J. Martín Mateos Carmen Graciani Informática JavaScript: Lenguaje de programación Fco J. Martín Mateos Carmen Graciani Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Literales Enteros Con base decimal:

Más detalles

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III Lenguaje C 1 Puntos previos Los códigos fuentes generados en C requieren ser compilados

Más detalles

REPASO ARRAYS O ARREGLOS UNIDIMENSIONALES EN JAVA. EJEMPLOS DE CÓDIGO. (CU00903C)

REPASO ARRAYS O ARREGLOS UNIDIMENSIONALES EN JAVA. EJEMPLOS DE CÓDIGO. (CU00903C) APRENDERAPROGRAMAR.COM REPASO ARRAYS O ARREGLOS UNIDIMENSIONALES EN JAVA. EJEMPLOS DE CÓDIGO. (CU00903C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado I Fecha revisión: 2039 Resumen:

Más detalles

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 1: Recursividad. Prof. Montserrat Serrano Montero

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 1: Recursividad. Prof. Montserrat Serrano Montero Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 1: Recursividad Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Ejemplos recursivos Recursividad

Más detalles

Introducción rápida a la programación (estructurada ) con C++

Introducción rápida a la programación (estructurada ) con C++ Introducción rápida a la programación (estructurada ) con C++ A B No A? Si B A Los Bloques pueden ser una línea de código o un modulo (función o subrutina) que pueden estar contenido en otro archivo de

Más detalles

Es la estructura que permite ejecutar los comandos solamente si se cumple una determinada condición. La sintaxis más usual:

Es la estructura que permite ejecutar los comandos solamente si se cumple una determinada condición. La sintaxis más usual: Más scripts de Shell Además de las herramientas para manejo de variables que se explicaron anteriormente, el shell nos permite utilizar herramientas para manejo de ciclos y para estructuras condicionales,

Más detalles

Algoritmos y Programación Orientada a Objetos I. Contenedoras de tamaño fijo

Algoritmos y Programación Orientada a Objetos I. Contenedoras de tamaño fijo Algoritmos y Programación Orientada a Objetos I Contenedoras de tamaño fijo Agenda Motivación Contenedoras de tamaño fijo Instrucciones repetitivas Agenda Motivación Contenedoras de tamaño fijo Instrucciones

Más detalles

Estructura de datos y Programación

Estructura de datos y Programación Estructura de datos y Programación Tema: Conceptos Básicos- Estructuras de control - Arreglos Ing. Analia Méndez Ing. Raquel Zarco Año: 2012 ELEMENTOS DE UN PROGRAMA EN JAVA El programa Java consta de

Más detalles

Esquemas repetitivos en Fortran 90. Esquemas repetitivos en Fortran 90. Esquemas repetitivos en Fortran 90. Tipos de Esquema

Esquemas repetitivos en Fortran 90. Esquemas repetitivos en Fortran 90. Esquemas repetitivos en Fortran 90. Tipos de Esquema Los esquemas repetitivos permiten implementar iteraciones del lenguaje algorítmico (mientras, repetir, para, hasta). Podemos dividir los esquemas según: - Se conozcan el número de iteraciones a priori,

Más detalles

Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz

Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz Vectores Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz Tipos de Datos: Simples: son las unidades mínimas para almacenar un valor, ejemplo: enteros, caracteres, reales.

Más detalles