Introducción a FORTRAN

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

Download "Introducción a FORTRAN"

Transcripción

1 Introducción a FORTRAN Miguel Alcubierre Instituto de Ciencias Nucleares, UNAM Abril 2005 Índice 1. Introducción 3 2. Compilar y correr programas en FORTRAN 4 3. Elementos básicos de un programa en FORTRAN 5 4. Constantes y variables Tipos de datos Declaración de variables Conversión entre tipos Operaciones en FORTRAN 9 6. Arreglos Arreglos de tamaño fijo Asignación dinámica de memoria Funciones intrínsecas Control de flujo del programa Loops IF Control lógico de loops

2 9. Entrada y salida de datos (input/output) Unidades de entrada y salida Formato de entrada y salida Subprogramas Funciones Subrutinas Módulos

3 1. Introducción En este curso se presenta una breve introducción a FORTRAN 90, el lenguaje de programación de más amplio uso en el cómputo científico. El nombre FORTRAN proviene de FORmula TRANslator (traductor de fórmulas), y fue desarrollado originalmente por IBM en 1954, con el objetivo de poder escribir programas de cómputo científico en un lenguaje de alto nivel en vez de tener que recurrir a lenguaje de máquina o ensamblador. En 1958 se presentó una segunda versión y varias compañías comenzaron a desarrollar compiladores independientes a IBM para usar el lenguaje en otras máquinas. El primer estandard de FORTRAN se introdujo en 1962 y se llamó FORTRAN IV. En 1966 se presentó el primer estandard ANSI (American National Standards Institute), que se conoció como FORTRAN 66. El segundo estandard ANSI, con muchas mejoras, se introdujo en 1977 (FORTRAN 77), y se convirtió en el estandard utilizado por la comunidad científica por muchos años. Incluso a la fecha es común encontrar muchos programas escritos en FORTRAN 77. FORTRAN 77 tenía una serie de desventajas. Entre ellas una estructura muy rígida adaptada al uso de tarjetas perforadas ( forma fija ), que requería que ciertas columnas tuvieran usos específicos. Además, no permitía un uso dinámico de la memoria y no permitía realizar operaciones entre arreglos de números. Para mejorar esta situación, en 1990 se presentó un tercer estandard ANSI conocido como FORTRAN 90, que contenía muchas nuevas características y permitía una programación más estructurada. Una serie de cambios menores se presentaron en 1995 (FORTRAN 95), y actualmente se trabaja en un nuevo estandard ANSI (FORTRAN 2003). El día de hoy la mayor parte de los programas en FORTRAN siguen el estandard de FORTRAN 90, pero aún existe un número importante de aplicaciones de FORTRAN 77. FORTRAN esta específicamente diseñado para el cómputo científico, y no es particularmente bueno para otro tipo de aplicaciones (control, administración, manejo de documentos, etc). Para estas aplicaciones otros lenguajes somo C, JAVA o PERL son más adecuados. En la actualidad, la mayor parte del cómputo científico de alto rendimiento a nivel internacional se lleva a cabo en FORTRAN (FORTRAN esta muy lejos de ser obsoleto), aunque los lenguajes C y C++ han ganando cierta popularidad recientemente. Parafraseando a Mark Twain: Las noticias de la muerte de FORTRAN han sido enormemente exageradas. 3

4 2. Compilar y correr programas en FORTRAN Los programas en FORTRAN se escriben en un editor de texto cualquiera (vi, emacs, etcétera). Normalmente, el nombre del archivo debe llevar como sufijo.f, o.f90. A este archivo se le llama el código fuente. Una vez escrito el programa, este debe compilarse, es decir, debe ser leído por un programa llamado compilador que lo traduce a lenguaje de máquina y produce un nuevo archivo con el programa ejecutable. Algunos lenguajes de programación no usan un compilador, sino un intérprete (por ejemplo BASIC y PERL). La diferencia es que un interprete traduce y ejecuta linea por linea, sin nunca crear un archivo ejecutable. Un interprete es más transparente de usar, pero mucho más lento. FORTRAN funciona siempre con un compilador. Hay muchos compiladores diferentes, con diversas opciones al compilar (por ejemplo, algunos prefieren el sufijo.f y otros el sufijo.f90). Existe un compilador gratuito de FORTRAN 90 para Linux de producido por INTEL que puede bajarse de la red. La manera estandard de compilar un programa en FORTRAN es abrir una terminal, ir al directorio que contiene el programa, y escribir: f90 nombre1.f90 donde nombre1.f90 es el nombre del programa. Es importante notar que el comando f90 puede variar de nombre, por ejemplo el compilador de INTEL usa el comando ifc o ifortran. Pero siempre es posible hacer un alias. Al compilar el programa se obtiene un ejecutable que tiene por default el nombre a.out. Esto puede cambiarse haciendo: f90 nombre1.f90 -o nombre2 La opción -o le dice al compilador que el ejecutable debe llamarse nombre2. Para correr el programa se escribe simplemente./nombre2 donde se usa./ para indicar a Unix que debe buscar el ejecutable en el directorio local. Para programas que están contenidos en varios archivos, hay una etapa más. El compilador primero genera archivos objeto con sufijo.o que contienen la traducción a lenguaje de máquina de cada archivo individual. Después se hace una liga (link) entre los diversos archivos objeto para construir el ejecutable. 4

5 3. Elementos básicos de un programa en FORTRAN Un programa en FORTRAN tiene los siguientes elementos básicos: Nombre del programa. El nombre del programa es en realidad opcional, pero es muy buena idea tenerlo. Declaraciones de variables utilizadas en el programa. Cuerpo del programa. Comandos a ejecutar en el código. Los comandos se ejecutan en orden de aparición. El programa siempre debe terminar con el comando END. Subprogramas. El cuerpo del programa puede llamar a subprogramas que realicen tareas específicas. Es buena práctica de programación separar un programa en bloques y poner cada bloque en diferentes subprogramas. De hecho, para programas largos es buena idea tener cada subprograma en archivos separados. La estructura de un comando en FORTRAN 90 tiene las siguientes propiedades: Los comandos se escriben en lineas de a lo más 132 caracteres (aunque algunos compiladores aceptan lineas más largas). Espacios en blanco al principio de una linea se ignoran. Esto ayuda a mejorar visualmente la estructura del programa. Hay que recordar que no solo la máquina va a leer el programa, sino también seres humanos (por lo menos el autor), por lo que una estructura visualmente clara en importante. Un signo & al final de una linea indica que el comando continua en la linea siguiente. Todo lo que siga de un signo! se considera un comentario y es ignorado por el compilador. Los comentarios son para las personas, no para la máquina. Hacen más fácil de entender el programa para personas que no lo escribieron, y sirven incluso para que el autor sepa lo que hace el programa si lo vuelve a ver tiempo después. Es posible poner varios comandos en una linea separándolos con punto y coma. Importante: FORTRAN no distingue entre mayúsculas y minúsculas en un programa, también ignora más de un espacio en blanco y lineas en blanco. Que se use es cuestión de estilo personal. 5

6 Ejemplo: Programa nada. program nada! Este programa no hace nada. end program nada La primera línea dice como se llama el programa. La segunda linea es un comentario y el compilador la ignora. La última linea dice que el programa ha terminado. Ejemplo: Programa hola. program hola! Ahora vamos a saludar al mundo, hola mundo!! Aqui es donde saludamos end program hola Lo nuevo aquí es la linea:, hola mundo!. La instrucción indica imprimir en la salida estandard (es decir, la pantalla). Lo que se va a imprimir debe colocarse entre comillas después de una coma. Nótese como hay un comentario al final de la linea que el compilador simplemente ignora. 4. Constantes y variables Los programas en FORTRAN manejan datos de dos tipos: constantes y variables. Las constantes tienen un valor fijo, mientras que las variables se identifican con nombres y pueden cambiar de valor durante al ejecución del programa. Constantes y variables deben tener tipos específicos que indican al programa como almacenarlas y manejarlas Tipos de datos Los tipos de datos permitidos son los siguientes: 6

7 logical integer real Las variables lógicas solo pueden tener dos valores:.true. (verdadero) y.false. (falso). Valores enteros guardados en 4 bytes. Se indican como números sin punto decimal: 1, 2, -3, 25, etc. Valores reales guardados en 4 bytes y con 8 cifras significativas. Se indican con punto decimal, y de ser necesario el exponente de la potencia de 10 después de una E: 1., , 6.25E-10, etc. double Valores reales de doble precisión guardados en 8 bytes y con 16 cifras significativas, también se denotan por real(8). Se indican con punto decimal y el exponente de la potencia de 10 después de una D: 1.D0, D0, 6.25D-10, etc. Son muy útiles en cálculos numéricos largos, donde los errores de redondeo pueden hacer que las últimas 4 o 5 cifras significativas de un número real sean basura. quadruple Valores reales de cuádruple precisión guardados en 16 bytes y con 32 cifras significativas, también se denotan por real(16). Se indican con punto decimal y el exponente de la potencia de 10 después de una Q: 1.Q0, Q0, 6.25Q-10, etc. complex character Dos valores reales formando un par y que en operaciones matemáticas se tratan como la parte real e imaginaria de un número complejo: (1.,-2.), (1.0E0,-2.0E0). También existen versiones de doble y cuádruple precisión. Variables que corresponden a cadenas de caracteres. Al declarar una variable de este tipo se debe especificar cuantos caracteres puede tener. Estas variables deben estar contenidas en comillas: hola, abcdfe, Me llamo Luis, 128.3, etc Declaración de variables Las variables utilizadas en un programa FORTRAN deben declararse como uno de los tipos mencionados en la sección anterior. Por compatibilidad con versiones viejas de FORTRAN, se asume que aquellas variables que no han sido declaradas tienen un tipo implícito de acuerdo a la siguiente regla: variables cuyos nombres empiezan con {i,j,k,l,m,n} se asumen enteras, y todas las demás se asumen reales. El uso de declaraciones implícitas 7

8 es indeseable, pues hace más difícil detectar posibles errores de tecleo. Para evitar usar declaraciones implícitas se debe poner al principio de las declaraciones la linea: implicit none Ejemplo: Programa valores. program valores implicit none logical flag integer i real a character(30) texto i = 1 a = 2.5 texto = Estas son las variables:, texto, flag,i,a end program valores El programa anterior primero declara que no hay variables implícitas, luego declara una variable lógica, una entera, una real y una cadena de caracteres. Luego les asigna valores y las imprime a la pantalla. Nótese el uso de comillas para la variable de tipo character, y como se ha declarado como de 30 caracteres (suficientes para contener la frase Estas son las variables ). También es importante señalar el uso del operador =. Este operador no significa igual, sino que significa asignar, y sirve para asignar valores a variables Conversión entre tipos En FORTRAN es muy importante declarar las variables correctamente. Muchos errores comunes están relacionados con utilizar tipos equivocados de variables. Por ejemplo, 8

9 en operaciones entre números reales debe evitarse el utilizar variables enteras ya que fácilmente se obtendrán valores equivocados. Supongamos que se han declarado las variables i y j como enteras, y la variable x como real, y queremos calcular: x = i / j Si tenemos i=10 y j=4 el resultado será 2 y no 2.5 como uno podría esperar. Esto se debe a que la división entre números enteros siempre se considera un entero. Para evitar este tipo de errores es importante convertir un tipo de variables a otras. Esto puede lograrse con los comandos: int(),nint(,real(),dble(). Los comandos real() y dble() convierten la cantidad entre paréntesis a una variable real o de doble precisión, respectivamente. Los comandos int() y nint() convierten la cantidad entre paréntesis a un número entero, la diferencia está en que int() simplemente trunca el número, mientras que nint() lo reduce al entero más cercano. Ejemplo: Programa convertir. program convertir, 10/4, 10.0/4.0, real(10)/real(4), real(10/4), dble(10)/dble(4), int(10.7), nint(10.7), int(-3.7), nint(-3.7) end program convertir 5. Operaciones en FORTRAN Las operaciones aritméticas en FORTRAN involucran los siguientes operadores: = Asignación. Es muy importante recalcar que este operador NO significa igualdad. En FORTRAN, tiene sentido escribir lineas que algebraica- 9

10 mente son absurdas como por ejemplo: a = a + 1 Esto significa tomar la variable a, sumarle 1, y asignar el resultado de nuevo a la variable a. + Suma ( ). - Resta ( ). * Multiplicación (2.0* ). / División (2.0/ ). ** Exponenciación (2.0** ). Las operaciones se realizan en el siguiente orden: 1. Términos entre paréntesis, comenzando por los de más adentro. 2. Exponenciación. 3. Multiplicación y división de izquierda a derecha. 4. Sumas y restas de izquierda a derecha. IMPORTANTE: Igual que cuando uno hace operaciones a mano, es mucho más difícil dividir que multiplicar, por lo que resulta mucho más lento. A FORTRAN le toma mucho más tiempo calcular 5.0/2.0 que calcular 5.0*0.5. Siempre que sea posible se deben evitar las divisiones para tener un código más eficiente. 6. Arreglos FORTRAN puede almacenar en memoria vectores y matrices utilizando variables llamadas arreglos que contienen muchos elementos. Los arreglos pueden ser de cualquiera de los tipos aceptados por FORTRAN. 10

11 6.1. Arreglos de tamaño fijo La manera más directa de declarar un arreglo es dando su tamaño desde el principio. Por ejemplo, para declarar un vector de 3 componentes y una matriz de 4 por 5 se escribe: real, dimension(3) :: v real, dimension(4,5) :: m Es posible declarar arreglos con un número arbitrario de dimensiones. Por ejemplo, un arreglo de 4 índices cuyos valores van de 1 a 2 se declara como: real, dimension(2,2,2,2) :: R También se puede dar explícitamente el rango permitido para los índices: real, dimension(0:8), v1 real, dimension(2:5), v2 Esto declara al vector v1 con índices que van de 0 a 8, y al vector v2 con índices que van de 2 a 5. Existe una abreviación de la declaración de arreglos. Por ejemplo, los arreglos v,m,r de los ejemplos anteriores se pueden también declarar como: real :: v(3), m(4,5), R(2,2,2,2) Para referirse a un miembro específico del arreglo, se utilizan expresiones del tipo: a = v(1) + m(1,1) + R(1,2,1,2) Es posible también realizar operaciones con arreglos completos a la vez (esto no era posible en FORTRAN 77). Por ejemplo, si a,b,c son arreglos con las mismas dimensiones, podemos escribir: a = b+c a = b*c a = b**2 La primera operación suma uno a uno los elementos de los arreglos b y c y los coloca 11

12 en los elementos correspondientes de a. La segunda operación hace lo mismo, pero multiplicando los elementos de b y c (Ojo: esto NO es una multiplicación de matrices, sino una multiplicación elemento a elemento). La última operación eleva cada elemento de b al cuadrado y los asigna al elemento correspondiente de a. Para este tipo de operaciones es muy importante que los arreglos involucrados tengan las mismas dimensiones, o habrá un error. Ejemplo: Programa arreglos. program arreglos implicit none! Declarar vectores. real, dimension(3) :: v1,v2!declarar matrices. real, dimension (0:1,0:1) :: a,b,c! Dar componentes de v1. v1(1) = 1.0 v1(2) = 2.0 v1(3) = 3.0! Dar v2 de golpe. v2 = 4.0! Dar componentes de b. b(0,0) = 1.0 b(0,1) = 2.0 b(1,0) = 3.0 b(1,1) =

13 ! Dar la matriz c de golpe. c = 2.0! Definir a como la division de b entre c. a = b/c! Imprimir v1 completo., Vector v1:, v1! Imprimir v2 componente a componente., Vector v2:, v2(1),v2(2),v2(3)! Imprimir componente c(0,0)., Componente c(0,0):, c(0,0)! Imprimir componente b(1,1)., Componente b(1,1):, b(1,1)! Imprimir a completo., Matriz a completa:, a 13

14 end program arreglos En el ejemplo anterior se muestran declaraciones y operaciones con arreglos. Nótese que al imprimir es posible imprimir componentes individuales, o arreglos completos. En este último caso el arreglo se escribe recorriendo primero los índices de la izquierda y luego los de la derecha (al revés de lo que uno esperaría normalmente). Otro punto a notar es el comando sin nada que le siga, esto hace que FORTRAN imprima una linea en blanco Asignación dinámica de memoria En algunas ocasiones resulta útil declarar un arreglo sin asignarlo un número fijo de componentes desde el principio, y solo asignarlas después (debido por ejemplo a que se leen datos del exterior, ver sección 9). Para hacer esto, los arreglos se pueden declarar como: real, allocatable, dimension (:) :: v real, allocatable, dimension (:,:) :: m Antes de realizar cualquier operación con un arreglo de este tipo se le debe asignar memoria de la siguiente forma: allocate(v(3),m(4,5)) Al terminar los cálculos es posible eliminar esta memoria con el comando: deallocate(v,m) Esto es particularmente útil en códigos largos que utilizan mucha memoria, o en casos donde el tamaño de los arreglos depende ya sea de valores externos o de que se cumplan ciertas condiciones en el código. 7. Funciones intrínsecas FORTRAN cuenta con una serie de funciones matemáticas pre-definidas llamadas funciones intrínsecas. Una lista de algunas de ellas (no todas) es: sqrt(x) Raíz cuadrada de x. 14

15 abs(x) Valor absoluto de x. sin(x) Seno de x. cos(x) Coseno de x. tan(x) Tangente de x. asin(x) Arco-seno de x. acos(x) Arco-coseno de x. atan(x) Arco-tangente de x. exp(x) Exponencial de x (e x ). alog(x) Logaritmo natural de x. alog10(x) Logaritmo en base 10 de x. max(x,y) Máximo entre x y y. min(x,y) Mínimo entre x y y IMPORTANTE: Las funciones trigonométricas se usan siempre en radianes, y no en grados. Ejemplo: Programa intrínsecas. program intrinsecas implicit none real pi! Imprimir seno y coseno de cero., Seno y coseno de 0, sin(0.0),cos(0.0) 15

16 ! Ahora a calcular pi. Recuerden que cos(pi) = -1. pi = acos(-1.0), El valor de pi es, pi! Ya tenemos pi, ahora calcular su seno, coseno y tangente, Seno, coseno y tangente de pi, sin(pi),cos(pi),tan(pi)! Cual es la raiz cuadrada de 2?, Raiz de 2, sqrt(2.0) end program intrinsecas Cosas por notar en este ejemplo son las siguientes: FORTRAN no conoce el valor de π. En general no es buena idea definir este valor directamente, es mejor calcularlo usando funciones trigonométricas inversas para obtener mayor precisión. Nótese también que al correr este programa, el seno y la tangente de π no dan cero sino números de orden Esto es debido al error de redondeo en la última cifra significativa de los números reales. Si utilizamos doble precisión, el error será del orden Cuando uno realiza muchas operaciones numéricas, el error de redondeo se propaga y puede contaminar varias cifras decimales. Por ello es buena idea usar doble precisión para cálculos numéricos complejos. 8. Control de flujo del programa En general, un programa FORTRAN ejecuta las comandos en el orden en el que se escribieron, uno a la vez. Sin embargo, frecuentemente hay situaciones en las que esto es demasiado simple para lo que uno quiere hacer. A veces es necesario repetir una misma operación muchas veces con ligeras variaciones, y otras veces hay operaciones que solo 16

17 deben realizarse si se cumple alguna condición. Para este tipo de situaciones existen los llamados comandos de control del programa y que caen en dos tipos básicos: loops y condicionales Loops Un loop es un conjunto de instrucciones que deben realizarse muchas veces y tiene la forma estandard: do i=start,end,increment comando 1 comando 2 comando 3... end do Todos los comandos que están contenidos entre la linea do i=... y la linea end do se repiten varias veces, dependiendo de los valores de start,end,increment que deben ser enteros. la primera vez, la variable i toma el valor start. Al terminar, el valor de i se incrementa en increment, si el valor final es mayor que end el loop ya no se ejecuta de nuevo y el programa continua en el comando que siga después de end do, de lo contrario se vuelven a ejecutar los comandos dentro del loop hasta que se obtenga i>end. Nota: El indentar los comandos dentro del loop no es necesario (FORTRAN ignora los espacios extra), pero es una buena idea pues hace más fácil identificar visualmente donde comienza y termina el loop. Ejemplo: Programa fibonacci. program fibonacci! Este programa calcula los numeros de la serie! de fibonacci hasta nmax. implicit none integer i,nmax 17

18 integer jnew,jold,aux! Poner un limite. nmax = 10! Inicializar (jnew,jold). jnew = 1; jold = 1! Iniciar loop. do i=1,nmax! Imprimir elemento i de la serie., Elemento,i, de la serie de Fibonacci:, jnew! Calcular nuevo elemento de la serie. end do aux = jnew jnew = jnew + jold jold = aux end program fibonacci 8.2. IF En ocasiones uno desea que una parte del programa solo sea ejecutada si cierta condición específica se satisface. Esto se logra utilizando los condicionales, que en FORTRAN se controlan con el comando IF. La estructura de este comando es la siguiente: if (expresión lógica) then 18

19 comando 1 comando 2 else comando 3 comando 4 end if Al ejecutar esto, el programa verifica si la expresión lógica entre paréntesis después del if es verdadera. De serlo, se ejecutan los comandos siguientes. De ser falsa, se ejecutan los comandos después del else (nótese que el [else] es opcional). La expresión lógica puede utilizar cualquiera de los siguientes operadores lógicos: == Igualdad: if (i==3) then. Una versión equivalente de este operador (que de hecho es la única válida en FORTRAN 77) es.eq.: if (i.eq.3) then. > Mayor que: if (i>3) then. Una versión equivalente de este operador (que de hecho es la única válida en FORTRAN 77) es.gt.: if (i.gt.3) then. >= Mayor o igual: if (i>=3) then. Una versión equivalente de este operador (que de hecho es la única válida en FORTRAN 77) es.ge.: if (i.ge.3) then. < Menor que: if (i>3) then. Una versión equivalente de este operador (que de hecho es la única válida en FORTRAN 77) es.lt.: if (i.lt.3) then. <= Menor o igual: if (i<=3) then. Una versión equivalente de este operador (que de hecho es la única válida en FORTRAN 77) es.le.: if (i.le.3) then. /= No igual: if (i/=3) then. Una versión equivalente de este operador (que de hecho es la única válida en FORTRAN 77) es.ne.: if (i.ne.3) then..not..or. Negación lógica: if (.not.flag) then, donde flag ha sido declarada como una variable lógica. O lógico: if ((i==3).or.(i==5)) then. 19

20 .and. Y lógico: if ((i==3).and.(j==5)) then. El comando if puede simplificarse si solo hay un comando en su interior: if (i==3) comando Este comando indica que si se cumple la condición el comando indicado debe ejecutarse. También es posible tener muchas alternativas en un condicional: if (expresión lógica 1) then comando 1 else if (expresión lógica 2) comando 2 else if (expresión lógica 3) comando 3 else comando 4 end if Ejemplo: Programa condicional. program condicional implicit none! Declaramos una variable logica y una entera. logical flag integer i! Dejar un espacio para que se vea menos feo.! Contar de 1 a 20. do i=1,20 20

21 ! Estamos abajo de 10? if (i<=9) then, No hemos llegado al 10, vamos en, i! Estamos justo en 10? else if (i==10) then, Vamos justo en 10! Estamos abajo de 16? else if (i<16) then, Ya nos pasamos del 10, vamos en, i! Nada de lo anterior. else, Ya pasamos del 15, vamos en, i end if! En caso de estar en 13 avisar. if (i==13), Por cierto, ahora vamos en 13! Definir la variable logica "flag". Sera verdadera! si no estamos en 19. flag = (i /= 19)! Ahora avisar siempre que "flag" sea falsa. end do if (.not.flag), Y ahora estamos en 19! Adios 21

22 , Hey, ya acabamos! end program condicional 8.3. Control lógico de loops Es posible utilizar condiciones lógicas para controlar un loop. Esto se logra utilizando el comando do while(): do while(expresión lógica) comando 1 comando 2... end do En este caso no se cuenta con una variable entera como en el caso estandard, sino que el loop se ejecuta una y otra vez mientras la expresión lógica sea verdadera. El loop se detiene una vez que dicha expresión es falsa. Por ejemplo, el siguiente código actúa de la misma forma que un loop estandard de 1 a 10: i = 1 do while (i <=10) i = i + 1 end do CUIDADO: Con este tipo de loops se corre el riesgo de caer en un ciclo eterno, donde la condición lógica nunca deja de satisfacerse y la máquina sigue ejecutando el loop para siempre. Cuando se trabaja en una terminal uno nota esto fácilmente si el código continua mucho tiempo más del que esperábamos sin hacer aparentemente nada. En ese caso siempre se puede detener al código tecleando [CTRL C]. Pero cuando uno esta corriendo en una cola en una super-computadora se corre el riesgo de terminarse la cuota que debería haber durado un año de una sola vez, y peor aún, los encargados del sistema pueden decidir retirar los privilegios de trabajar en esa máquina ante semejante desperdicio de recursos de cómputo y falta de cuidado. 22

23 9. Entrada y salida de datos (input/output) En la mayoría de los códigos científicos es necesario dar datos desde fuera y sacar datos hacia afuera. Por default, la entrada de datos es desde el teclado y la salida es a la pantalla. La entrada y salida de datos se manejan con los comandos: read(,) write(,) Ambos comandos tienen dos argumentos, el primero de los cuales indica la unidad de entrada o salida, y el segundo el formato en el que están los datos. La versión mas simple es: read(*,*) write(*,*) Aquí, el primer asterisco indica entrada o salida estandard (teclado y pantalla respectivamente), y el segundo formato libre. El comando write(*,*) puede substituirse por la forma equivalente seguido de una coma. Ejemplo: Programa fulano. program fulano! Declarar variables. implicit none character(20) nombre! Preguntar como te llamas. write(*,*) Como te llamas?! Leer respuesta desde el teclado. 23

24 read(*,*) nombre! Saludar. write(*,*) Hola, nombre end program fulano 9.1. Unidades de entrada y salida Además de utilizar el teclado y la pantalla, los datos también pueden leerse o enviarse a un archivo. Para ello debe primero abrirse el archivo con elopen que debe tener al menos dos argumentos (puede tener varios más). El primer argumento es la unidad a la que se asigna la salida o entrada de datos, que debe ser un numero entero (comúnmente se usa 10). El segundo argumento es el nombre del archivo entre comillas (con su PATH completo si no esta en el mismo directorio que el ejecutable). Al terminar de leer o escribir se debe cerrar el archivo con el comando close cuyo único argumento es el número de la unidad. Ejemplo: Programa archivos. Para este ejemplo es necesario crear primero un archivo de datos llamado entrada.dat que contenga solo una linea con: juan,25,masculino. program archivos! Declarar variables. implicit none integer edad character(20) nombre,sexo! Abrir archivo de entrada. open(10,file= entrada.dat )! Leer datos. 24

25 read (10,*) nombre,edad,sexo! Cerrar achivo. close(10)! Abrir archivo de salida. open(11,file= salida.dat )! Escribir datos. write(11,*) Me llamo,nombre write(11,*) Tengo,edad, anios write(11,*) Mi sexo es,sexo! Cerrar archivo. close(11) end program archivos 9.2. Formato de entrada y salida En ocasiones se requiere que los datos de entrada o salida estén en un formato muy específico. El control del formato se lleva a cabo en el segundo argumento del los comandos open y close. Existen dos posibilidades: Para formatos sencillos, el formato se coloca simplemente el formato entre comillas y paréntesis dentro del segundo argumento, mientras que para formatos más complicados se coloca un número entero que identifica la linea donde está el formato. Por ejemplo, las dos opciones siguientes son equivalentes: read(10, (i4) ) m read(10,100) m 100 format(i4) En ambos casos se indica al código que debe leer un número entero de a lo más 4 dígitos de longitud i4. La ventaja del segundo método es que se puede usar el mismo 25

26 formato en más de un comando: read(10,100) i read(10,100) j read(10,100) k 100 format(i4) Los diferentes opciones de formato son: Tipo sintaxis ejemplo datos descripción integer niw 2i4 1234, -12 n es el número de enteros por leer y w el número total de caracteres contando el signo. real nfw.d 2f , n es el de reales por leer, w es el número total de caracteres incluyendo el punto decimal y el signo, y d es el número de cifras después del punto. n es el de palabras por leer y w character naw 2a6 abcdef, qwerty el número de caracteres en cada palabra. espacios nx 2x n es el número total de espacios. en blanco por leer Ejemplo: Programa seno. program seno! Declarar variables. implicit none integer i real x,s,pi! Calcular pi. pi = acos(-1.0) 26

27 ! Abrir archivo de salida. open(10,file= seno.dat )! Loop desde 0 hasta 2*pi en 100 pasos. do i=0,100! Calcular x entre 0 y 2*pi, y su seno. x = 2.0*pi*real(i)/100.0 s = sin(x)! Escribir al archivo. end do write(10, (2f10.4) ) x,s! Cerrar archivo. close(10) end program seno 10. Subprogramas En muchas ocasiones existen tareas que se deben realizar muchas veces durante la ejecución de un código, por lo que resulta conveniente que sean subprogramas en si mismos. La existencia de subprogramas también hace que un código sea más modular, y permite que diferentes personas programes diferentes partes de un mismo código. Los diversos subprogramas pueden ser parte de un mismo archivo, o estar en archivos separados que se unen durante el proceso de compilación. Si están en un mismo archivo, deben aparecer después de la linea que termina el programa principal. En FORTRAN 90 hay tres tipos básicos de subprogramas: funciones, subrutinas y módulos. Consideraremos cada uno de ellos por separado. 27

28 10.1. Funciones Así como existen funciones intrínsecas en FORTRAN (sin, cos, etc.), también es posible definir funciones nuevas de una o más variables. El objetivo de una función es obtener un número a partir de los argumentos. Al igual que el programa principal, una función comienza por su nombre function nombre. Al final de la función deben aparecer los comandos return seguido de end function nombre, esto regresa el control al programa principal. La función es una unidad autónoma, por lo que debe declarar todas las variables que utiliza, incluyendo el nombre de la función y los argumentos. Es muy importante que los argumentos de la función sean del mismo tipo cuando se llama la función y en la función misma, de otra forma habrá errores al ejecutar el código. El nombre de la función debe declarase en el programa principal y cualquier subprograma que la llame. Ejemplo: Programa distancia.! Programa principal. program distancia! Declarar variables. implicit none integer i,j real x,y,r real radio! Abrir archivo de salida. open(10,file= radio.dat )! Loop en dos dimensiones. do i=1,10 do j=1,10! Coordenadas en el plano. 28

29 x = real(i) y = real(j)! Calcular distancia al origen llamado a funcion "radio". r = radio(x,y)! Escribir a archivo. end do end do write(10, (3f10.3) ) x,y,r! Cerrar archivo. close(10) end program distancia! Funcion "radio". function radio(x,y)! Declarar variables. implicit none real radio,x,y! Calcular distancia al origen. radio = sqrt(x**2 + y**2)! Terminar funcion. 29

30 return end function radio Subrutinas Una subrutina es similar a una función, pero más complicada, de la que no solo se espera un número, sino toda una secuencia de operaciones que pueden requerir regresar muchos números al programa principal (o ninguno). Las subrutinas se llaman usando el comando call nombre. Igual que las funciones, las subrutinas comienzan por su nombre subroutine nombre y terminar con los comandos return y end subroutine nombre. También son unidades autónomas que deben declarar todas las variables que utilizan, incluyendo a sus argumentos. A diferencia de las funciones, el nombre de una subrutina no tiene un tipo (el nombre de las funciones si tiene un tipo pues corresponde al valor de regreso). Una característica importante de las subrutinas es que cuando se pasa un arreglo como uno de sus argumentos, no es necesario dar el tamaño. Se puede pasar el tamaño como un argumento, digamos N, y simplemente declarar el arreglo como real, dimension(n) :: nombre. Algo similar sucede con los variable de tipo character que se pueden declarar con dimensión indeterminada usando * cuando son parte de los argumentos de la subrutina, de manera que heredan el tamaño que tenían el en programa que llamo a la subrutina. Ejemplo: Programa rutinas.! Programa rutinas program rutinas! Declarar variables. implicit none integer i,j,n real radio real, dimension(10,10) :: r,x,y! Abrir archivo de salida. open(10,file= radio.dat ) 30

31 ! Loop en dos dimensiones. N = 10 do i=1,n do j=1,n! Coordenadas en el plano. x(i,j) = real(i) y(i,j) = real(j)! Calcular distancia al origen llamado a funcion "radio". end do end do r(i,j) = radio(x(i,j),y(i,j))! Llamar subrutina "escribir". call escribir(n,r,x,y)! Cerrar archivo. close(10) end program rutinas! Funcion "radio". function radio(x,y)! Declarar variables. implicit none 31

32 real radio,x,y! Calcular distancia al origen. radio = sqrt(x**2 + y**2)! Terminar funcion. return end function radio! Subrutina "escribir". subroutine escribir(n,r,x,y)! Declarar variables y arreglos. implicit none integer i,j,n real, dimension(n,n) :: r,x,y! Abrir archivo. open(10,file= distancia2.dat )! Loop de dos dimensiones para escribir a archivo. do i=1,n do j=1,n write(10, (3f10.3) ) x(i,j),y(i,j),r(i,j) end do end do! Cerrar archivo. 32

33 close(10)! Terminar subrutina. return end subroutine escribir Módulos El último tipo de subprogramas son los módulos que solo existen a partir de FORTRAN 90. Los módulos sirven para declarar variables que se usan en muchos subprogramas, o para agrupar muchos subprogramas en una sola unidad. Los módulos comienzan por su nombre module nombre y terminan con end module nombre (en los módulos no se utiliza el comando return). A diferencia de las funciones y subrutinas, si el módulo está en el mismo archivo que el programa principal, debe estar antes que este. Cualquier subprograma que haga uso del módulo debe hacerlo mediante el comando use nombre inmediatamente después del nombre del subprograma. El uso más común de los módulos es para declarar variables que van a ser utilizadas por muchos subprogramas. Ejemplo: Programa usamodulos! Modulo "constantes". module constantes! Declarar parametros. implicit none real, parameter :: pi= , ee= ! Termina modulo. end module constantes! Programa principal 33

34 program usamodulos! Usar modulo "constantes". use constantes! Declarar variables. implicit none real radio,area real ee2! Definir radio y calcular area y ee2. radio = 10.0 area = pi*radio**2 ee2 = ee**2! Escribir resultados a pantalla., El area de un circulo de radio,radio, es,area, El cuadrado el numero de Euler es,ee2! Termina programa. end program usamodulos 34

Capítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas

Capítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas Capítulo 4 Vectores y matrices En FORTRAN se puede utilizar un tipo especial de variable que sirve, en particular, para almacenar vectores y matrices. De esta forma, se utiliza un sólo nombre para referirse

Más detalles

2.1.- EJEMPLO DE UN PROGRAMA FORTRAN

2.1.- EJEMPLO DE UN PROGRAMA FORTRAN 2.1.- EJEMPLO DE UN PROGRAMA FORTRAN Con el presente apartado comenzaremos a conocer cómo se escribe un programa en lenguaje FORTRAN bajo el entorno de programación FORTRAN. En primer lugar conozcamos

Más detalles

Creación de Funciones de Conducción

Creación de Funciones de Conducción Creación de Funciones de Conducción Requerimientos Para el desarrollo de esta actividad se requiere que: Contemos con un robot BoeBot armado con placa Arduino. Repetición En estos momentos habremos notado

Más detalles

Ejemplos de conversión de reales a enteros

Ejemplos de conversión de reales a enteros Ejemplos de conversión de reales a enteros Con el siguiente programa se pueden apreciar las diferencias entre las cuatro funciones para convertir de reales a enteros: program convertir_real_a_entero print

Más detalles

Modulo 1 El lenguaje Java

Modulo 1 El lenguaje Java Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto

Más detalles

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Unidad I Sistemas numéricos 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS.

Más detalles

SISTEMAS DE NUMERACIÓN. Sistema decimal

SISTEMAS DE NUMERACIÓN. Sistema decimal SISTEMAS DE NUMERACIÓN Sistema decimal Desde antiguo el Hombre ha ideado sistemas para numerar objetos, algunos sistemas primitivos han llegado hasta nuestros días, tal es el caso de los "números romanos",

Más detalles

Sobre la lectura y escritura de datos en FORTRAN.

Sobre la lectura y escritura de datos en FORTRAN. Sobre la lectura y escritura de datos en FORTRAN. 1. Las sentencias READ /WRITE Uno de los elementos básicos de la programación e cualquier lenguaje es la lectura y/o escritura de datos. En el lenguaje

Más detalles

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL OBJETIVO Mejorar el nivel de comprensión y el manejo de las destrezas del estudiante para utilizar formulas en Microsoft Excel 2010. 1) DEFINICIÓN Una fórmula de Excel es un código especial que introducimos

Más detalles

Preliminares. Tipos de variables y Expresiones

Preliminares. Tipos de variables y Expresiones Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un

Más detalles

Sintaxis y Convenciones de Java. M. en C. Erika Vilches

Sintaxis y Convenciones de Java. M. en C. Erika Vilches Sintaxis y Convenciones de Java M. en C. Erika Vilches Estructura del Código en Java Hay una clase en un archivo fuente Hay métodos en una clase Hay enunciados en un método Anatomía de una Clase Cuando

Más detalles

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016! INFORMÁTICA Práctica4. ProgramaciónbásicaenC. GradoenIngenieríaenElectrónicayAutomáticaIndustrial Curso2015H2016 v2.1(18.09.2015) A continuación figuran una serie de ejercicios propuestos, agrupados por

Más detalles

Introducción a la Programación en MATLAB

Introducción a la Programación en MATLAB Introducción a la Programación en MATLAB La programación en MATLAB se realiza básicamente sobre archivos M, o M-Files. Se los denomina de esta forma debido a su extensión.m. Estos archivos son simple archivos

Más detalles

UNIDAD 1. LOS NÚMEROS ENTEROS.

UNIDAD 1. LOS NÚMEROS ENTEROS. UNIDAD 1. LOS NÚMEROS ENTEROS. Al final deberás haber aprendido... Interpretar y expresar números enteros. Representar números enteros en la recta numérica. Comparar y ordenar números enteros. Realizar

Más detalles

Matemática de redes Representación binaria de datos Bits y bytes

Matemática de redes Representación binaria de datos Bits y bytes Matemática de redes Representación binaria de datos Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS. Los computadores sólo pueden entender

Más detalles

CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS

CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS 4.1 Antecedentes históricos El lenguaje de programación BASIC (Beginner's All purpose Symbolic Instruction Code)

Más detalles

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor.

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor. Sesión 03: Lenguajes web del servidor Competencias a Conseguir: - Conocer el entorno de trabajo a nivel de servidores web. - Instalación del localhost (Servidor Local). - Repaso general de PHP y ejercicios

Más detalles

Ecuaciones de primer grado con dos incógnitas

Ecuaciones de primer grado con dos incógnitas Ecuaciones de primer grado con dos incógnitas Si decimos: "las edades de mis padres suman 120 años", podemos expresar esta frase algebraicamente de la siguiente forma: Entonces, Denominamos x a la edad

Más detalles

Tutorial Básico de vbscript

Tutorial Básico de vbscript Tutorial Básico de vbscript Bueno, primero aclarar que este tutorial, pretende explicar de manera básica las distintas instrucciones aplicadas en visual basic script (vbs de aquí en más), para que así

Más detalles

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse. TABLA DE DECISION La tabla de decisión es una herramienta que sintetiza procesos en los cuales se dan un conjunto de condiciones y un conjunto de acciones a tomar según el valor que toman las condiciones.

Más detalles

La ventana de Microsoft Excel

La ventana de Microsoft Excel Actividad N 1 Conceptos básicos de Planilla de Cálculo La ventana del Microsoft Excel y sus partes. Movimiento del cursor. Tipos de datos. Metodología de trabajo con planillas. La ventana de Microsoft

Más detalles

by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true

by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true I. FUNDAMENTOS 3. Representación de la información Introducción a la Informática Curso de Acceso a la Universidad

Más detalles

UNIDADES DE ALMACENAMIENTO DE DATOS

UNIDADES DE ALMACENAMIENTO DE DATOS 1.2 MATÉMATICAS DE REDES 1.2.1 REPRESENTACIÓN BINARIA DE DATOS Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS. Los computadores sólo

Más detalles

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso 2013-2014. v1.0 (05.03.

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso 2013-2014. v1.0 (05.03. INFORMÁTICA Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial Curso 2013-2014 v1.0 (05.03.14) A continuación figuran una serie de ejercicios propuestos, agrupados

Más detalles

Cifras significativas e incertidumbre en las mediciones

Cifras significativas e incertidumbre en las mediciones Unidades de medición Cifras significativas e incertidumbre en las mediciones Todas las mediciones constan de una unidad que nos indica lo que fue medido y un número que indica cuántas de esas unidades

Más detalles

promedio = nint((notas(1) + notas(2) + notas(3) + & notas(4) + notas(5) + notas(6)) / 6.0) print *, 'Su promedio es', promedio

promedio = nint((notas(1) + notas(2) + notas(3) + & notas(4) + notas(5) + notas(6)) / 6.0) print *, 'Su promedio es', promedio Arreglos Un arreglo es un tipo de datos que contiene varios elementos de un mismo tipo. Cada elemento tiene asociado un índice, y puede ser tratado como si fuera una variable. La cantidad de elementos

Más detalles

Introducción a PHP. * No es necesario declarar previamente las variables.

Introducción a PHP. * No es necesario declarar previamente las variables. Introducción a PHP La programación de sitios web cada día está más orientada al desarrollo de páginas dinámicas y aplicaciones, o sea sitios donde el usuario pueda interactuar con la web. Dentro de los

Más detalles

Lección 4: Suma y resta de números racionales

Lección 4: Suma y resta de números racionales GUÍA DE MATEMÁTICAS II Lección : Suma y resta de números racionales En esta lección recordaremos cómo sumar y restar números racionales. Como los racionales pueden estar representados como fracción o decimal,

Más detalles

Funciones y subrutinas

Funciones y subrutinas Funciones y subrutinas Introducción En lecciones anteriores se ha descrito el concepto de diseño descente; esta técnica permite desarrollar algoritmos que resuelvan un problema mediante un proceso de reamiento

Más detalles

TRADUCTORES, COMPILADORES E INTÉRPRETES. EJERCICIOS TEMA 5, 6, 7 y 8.

TRADUCTORES, COMPILADORES E INTÉRPRETES. EJERCICIOS TEMA 5, 6, 7 y 8. TRADUCTORES, COMPILADORES E INTÉRPRETES. EJERCICIOS TEMA 5, 6, 7 y 8. 1.) (HOLUB). Escribir un traductor que reconozca definiciones de C siguiendo el estilo antiguo, tal como: prueba(uno, dos, tres, cuatro,

Más detalles

TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA

TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA Programa: Algoritmo (secuencia no ambigua, finita y ordenada de instrucciones para la resolución de un determinado problema) traducido

Más detalles

PROCEDIMIENTOS Y FUNCIONES DE LA PROGRAMACIÓN (VISUAL BASIC)

PROCEDIMIENTOS Y FUNCIONES DE LA PROGRAMACIÓN (VISUAL BASIC) PROCEDIMIENTOS Y FUNCIONES DE LA PROGRAMACIÓN (VISUAL BASIC) REPASO (CLASES Y OBJETOS): Un objeto es una combinación de código y datos que puede tratarse como una unidad. Un objeto puede ser una porción

Más detalles

Tema 7: Programación con Matlab

Tema 7: Programación con Matlab Tema 7: Programación con Matlab 1. Introducción Matlab puede utilizarse como un lenguaje de programación que incluye todos los elementos necesarios. Añade la gran ventaja de poder incorporar a los programas

Más detalles

Matrices equivalentes. El método de Gauss

Matrices equivalentes. El método de Gauss Matrices equivalentes. El método de Gauss Dada una matriz A cualquiera decimos que B es equivalente a A si podemos transformar A en B mediante una combinación de las siguientes operaciones: Multiplicar

Más detalles

Los sistemas de numeración se clasifican en: posicionales y no posicionales.

Los sistemas de numeración se clasifican en: posicionales y no posicionales. SISTEMAS NUMERICOS Un sistema numérico es un conjunto de números que se relacionan para expresar la relación existente entre la cantidad y la unidad. Debido a que un número es un símbolo, podemos encontrar

Más detalles

CURSO 2010-2011 TECNOLOGÍA TECNOLOGÍA 4º ESO TEMA 5: Lógica binaria. Tecnología 4º ESO Tema 5: Lógica binaria Página 1

CURSO 2010-2011 TECNOLOGÍA TECNOLOGÍA 4º ESO TEMA 5: Lógica binaria. Tecnología 4º ESO Tema 5: Lógica binaria Página 1 Tecnología 4º ESO Tema 5: Lógica binaria Página 1 4º ESO TEMA 5: Lógica binaria Tecnología 4º ESO Tema 5: Lógica binaria Página 2 Índice de contenido 1. Señales analógicas y digitales...3 2. Código binario,

Más detalles

MATERIAL 2 EXCEL 2007

MATERIAL 2 EXCEL 2007 INTRODUCCIÓN A EXCEL 2007 MATERIAL 2 EXCEL 2007 Excel 2007 es una planilla de cálculo, un programa que permite manejar datos de diferente tipo, realizar cálculos, hacer gráficos y tablas; una herramienta

Más detalles

TUTORIAL DE PHP. M. en C. Erika Vilches. Parte 2. http://www.erikavilches.com

TUTORIAL DE PHP. M. en C. Erika Vilches. Parte 2. http://www.erikavilches.com TUTORIAL DE PHP M. en C. Erika Vilches Parte 2 http://www.erikavilches.com Enunciados Condicionales Inicia con la palabra clave if seguida de una condición entre paréntesis $number = 5; if ($number < 10)

Más detalles

Centro de Capacitación en Informática

Centro de Capacitación en Informática Fórmulas y Funciones Las fórmulas constituyen el núcleo de cualquier hoja de cálculo, y por tanto de Excel. Mediante fórmulas, se llevan a cabo todos los cálculos que se necesitan en una hoja de cálculo.

Más detalles

21/02/2012. Agenda. Unidad Central de Procesamiento (CPU)

21/02/2012. Agenda. Unidad Central de Procesamiento (CPU) Agenda 0 Tipos de datos 0 Sistemas numéricos 0 Conversión de bases 0 Números racionales o Decimales 0 Representación en signo-magnitud 0 Representación en complemento Unidad Central de Procesamiento (CPU)

Más detalles

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle:

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle: PL/SQL (Procedural Language/Structured Query Language) PL/SQL es el lenguaje de programación que proporciona Oracle para extender el SQL estándar con otro tipo de instrucciones y elementos propios de los

Más detalles

❷ Aritmética Binaria Entera

❷ Aritmética Binaria Entera ❷ Una de las principales aplicaciones de la electrónica digital es el diseño de dispositivos capaces de efectuar cálculos aritméticos, ya sea como principal objetivo (calculadoras, computadoras, máquinas

Más detalles

Algoritmos y Diagramas de Flujo 2

Algoritmos y Diagramas de Flujo 2 Algoritmos y Diagramas de Flujo 2 Programación Java NetBeans 7.0 RPC Contenido 2.1 Algoritmo...1 Fase de creación de un algoritmo...1 Herramientas de un algoritmo...2 2.2 Diagrama de Flujo...2 Símbolos

Más detalles

Curso de PHP con MySQL Gratis

Curso de PHP con MySQL Gratis Curso de PHP con MySQL Gratis Introducción Este mini curso o mini tutorial de PHP le ayudará a realizar cualquier sistema para que pueda insertar uno o varios registros a una base de datos con MySQL, este

Más detalles

Academia técnica de computación A.T.C.

Academia técnica de computación A.T.C. Academia técnica de computación A.T.C. Free Pascal (FPC) El Free Pascal es un compilador Pascal portable, libre y de código abierto, que representa una alternativa a los productos comerciales Turbo Pascal

Más detalles

TEMA 2: Representación de la Información en las computadoras

TEMA 2: Representación de la Información en las computadoras TEMA 2: Representación de la Información en las computadoras Introducción Una computadora es una máquina que procesa información y ejecuta programas. Para que la computadora ejecute un programa, es necesario

Más detalles

CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de

CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de cualquier modelo en el software Algor. La preparación de un modelo,

Más detalles

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

Más detalles

Matrices Invertibles y Elementos de Álgebra Matricial

Matrices Invertibles y Elementos de Álgebra Matricial Matrices Invertibles y Elementos de Álgebra Matricial Departamento de Matemáticas, CCIR/ITESM 12 de enero de 2011 Índice 91 Introducción 1 92 Transpuesta 1 93 Propiedades de la transpuesta 2 94 Matrices

Más detalles

Herramientas computacionales para la matemática MATLAB: Funciones definidas por el usuario (parte II)

Herramientas computacionales para la matemática MATLAB: Funciones definidas por el usuario (parte II) Herramientas computacionales para la matemática MATLAB: Funciones definidas por el usuario (parte II) Verónica Borja Macías Mayo 2012 1 La línea H1 y las líneas de texto de ayuda La línea H1 y las líneas

Más detalles

Guía de uso del Cloud Datacenter de acens

Guía de uso del Cloud Datacenter de acens guíasdeuso Guía de uso del Cloud Datacenter de Calle San Rafael, 14 28108 Alcobendas (Madrid) 902 90 10 20 www..com Introducción Un Data Center o centro de datos físico es un espacio utilizado para alojar

Más detalles

Los números racionales

Los números racionales Los números racionales Los números racionales Los números fraccionarios o fracciones permiten representar aquellas situaciones en las que se obtiene o se debe una parte de un objeto. Todas las fracciones

Más detalles

CAPITULO V. SIMULACION DEL SISTEMA 5.1 DISEÑO DEL MODELO

CAPITULO V. SIMULACION DEL SISTEMA 5.1 DISEÑO DEL MODELO CAPITULO V. SIMULACION DEL SISTEMA 5.1 DISEÑO DEL MODELO En base a las variables mencionadas anteriormente se describirán las relaciones que existen entre cada una de ellas, y como se afectan. Dichas variables

Más detalles

INTRODUCCION A LA PROGRAMACION DE PLC

INTRODUCCION A LA PROGRAMACION DE PLC INTRODUCCION A LA PROGRAMACION DE PLC Esta guía se utilizará para estudiar la estructura general de programación de um PLC Instrucciones y Programas Una instrucción u orden de trabajo consta de dos partes

Más detalles

Práctica 1ª: Introducción a Matlab. 1er curso de Ingeniería Industrial: Ingeniería de Control

Práctica 1ª: Introducción a Matlab. 1er curso de Ingeniería Industrial: Ingeniería de Control 1er curso de Ingeniería Industrial: Ingeniería de Control Práctica 1ª: Introducción a Matlab Departamento de Ingeniería electrónica, Telecomunicación y Automática. Área de Ingeniería de Sistemas y Automática

Más detalles

Llamamos potencia a todo producto de factores iguales. Por ejemplo: 3 4 = 3 3 3 3

Llamamos potencia a todo producto de factores iguales. Por ejemplo: 3 4 = 3 3 3 3 1. NÚMEROS NATURALES POTENCIAS DE UN NÚMERO NATURAL Llamamos potencia a todo producto de factores iguales. Por ejemplo: 3 4 = 3 3 3 3 El factor que se repite es la base, y el número de veces que se repite

Más detalles

Introducción a la Firma Electrónica en MIDAS

Introducción a la Firma Electrónica en MIDAS Introducción a la Firma Electrónica en MIDAS Firma Digital Introducción. El Módulo para la Integración de Documentos y Acceso a los Sistemas(MIDAS) emplea la firma digital como método de aseguramiento

Más detalles

1. Visualización de datos con Octave

1. Visualización de datos con Octave 1. Visualización de datos con Octave Versión final 1.0-19 agosto 2002 Octave es un poderoso software de cálculo numérico. En este documento explicamos un subconjunto realmente pequeño de sus comandos,

Más detalles

Curso PHP Módulo 1 R-Luis

Curso PHP Módulo 1 R-Luis Lenguaje PHP Introducción Archivos HTML y PHP: Crear un archivo php es tan sencillo como cambiarle la extensión a un archivo html, por ejemplo podemos pasar de index.html a index.php sin ningún inconveniente.

Más detalles

Conciliación bancaria en CheqPAQ Cargado de estado de cuenta

Conciliación bancaria en CheqPAQ Cargado de estado de cuenta Conciliación bancaria en CheqPAQ Cargado de estado de cuenta Introducción Con la finalidad de mantenerte informado respecto a todos los cambios y mejoras de los productos de CONTPAQ i, ponemos a tu disposición

Más detalles

EJERCICIOS DE PROGRAMACIÓN RELACIÓN VII (EJERCICIOS DE REPASO)

EJERCICIOS DE PROGRAMACIÓN RELACIÓN VII (EJERCICIOS DE REPASO) EJERCICIOS DE PROGRAMACIÓN RELACIÓN VII (EJERCICIOS DE REPASO) Luis José Sánchez 1. Realiza un programa que sume los 100 números siguientes a un número entero y positivo introducido por teclado. Se debe

Más detalles

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda: Apuntes de ACCESS Campos de Búsqueda: Los campos de búsqueda permiten seleccionar el valor de un campo de una lista desplegable en lugar de tener que escribirlos. El usuario sólo tiene que elegir un valor

Más detalles

DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO

DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO I. SISTEMAS NUMÉRICOS DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO LIC. LEYDY ROXANA ZEPEDA RUIZ SEPTIEMBRE DICIEMBRE 2011 Ocosingo, Chis. 1.1Sistemas numéricos. Los números son los mismos en todos

Más detalles

En términos generales, un foro es un espacio de debate donde pueden expresarse ideas o comentarios sobre uno o varios temas.

En términos generales, un foro es un espacio de debate donde pueden expresarse ideas o comentarios sobre uno o varios temas. 1 de 18 Inicio Qué es un foro En términos generales, un foro es un espacio de debate donde pueden expresarse ideas o comentarios sobre uno o varios temas. En el campus virtual, el foro es una herramienta

Más detalles

Operaciones con polinomios

Operaciones con polinomios Operaciones con polinomios Los polinomios son una generalización de nuestro sistema de numeración. Cuando escribimos un número, por ejemplo, 2 354, queremos decir: 2 354 = 2 000 + 300 + 50 + 4 = 2)1 000)

Más detalles

3 ESTRUCTURAS DE CONTROL REPETITIVAS. BUCLES

3 ESTRUCTURAS DE CONTROL REPETITIVAS. BUCLES 3 ESTRUCTURAS DE CONTROL REPETITIVAS. BUCLES 3.1 Estructuras de repetición Una estructura de repetición, también llamada lazo o bucle, hace posible la ejecución repetida de secciones específicas de código.

Más detalles

Divisibilidad y números primos

Divisibilidad y números primos Divisibilidad y números primos Divisibilidad En muchos problemas es necesario saber si el reparto de varios elementos en diferentes grupos se puede hacer equitativamente, es decir, si el número de elementos

Más detalles

Tutorial de Subneteo Clase A, B, C - Ejercicios de Subnetting CCNA 1

Tutorial de Subneteo Clase A, B, C - Ejercicios de Subnetting CCNA 1 Tutorial de Subneteo Clase A, B, C - Ejercicios de Subnetting CCNA 1 La función del Subneteo o Subnetting es dividir una red IP física en subredes lógicas (redes más pequeñas) para que cada una de estas

Más detalles

QUÉ ES LA RENTABILIDAD Y CÓMO MEDIRLA. La rentabilidad mide la eficiencia con la cual una empresa utiliza sus recursos financieros.

QUÉ ES LA RENTABILIDAD Y CÓMO MEDIRLA. La rentabilidad mide la eficiencia con la cual una empresa utiliza sus recursos financieros. QUÉ ES LA RENTABILIDAD Y CÓMO MEDIRLA La rentabilidad mide la eficiencia con la cual una empresa utiliza sus recursos financieros. Qué significa esto? Decir que una empresa es eficiente es decir que no

Más detalles

Fórmulas y funciones

Fórmulas y funciones Fórmulas y funciones Uso de fórmulas Las fórmulas son el corazón y el alma de la hoja de cálculo. Si no las necesitáramos sería lo mismo que trabajáramos en un procesador de textos. Excel 2007 ofrece un

Más detalles

SISTEMAS NUMERICOS CAMILO ANDREY NEIRA IBAÑEZ UNINSANGIL INTRODUCTORIO A LA INGENIERIA LOGICA Y PROGRAMACION

SISTEMAS NUMERICOS CAMILO ANDREY NEIRA IBAÑEZ UNINSANGIL INTRODUCTORIO A LA INGENIERIA LOGICA Y PROGRAMACION SISTEMAS NUMERICOS CAMILO ANDREY NEIRA IBAÑEZ UNINSANGIL INTRODUCTORIO A LA INGENIERIA LOGICA Y PROGRAMACION CHIQUINQUIRA (BOYACA) 2015 1 CONTENIDO Pág. QUE ES UN SISTEMA BINARIO. 3 CORTA HISTORIA DE LOS

Más detalles

Programa diseñado y creado por 2014 - Art-Tronic Promotora Audiovisual, S.L.

Programa diseñado y creado por 2014 - Art-Tronic Promotora Audiovisual, S.L. Manual de Usuario Programa diseñado y creado por Contenido 1. Acceso al programa... 3 2. Opciones del programa... 3 3. Inicio... 4 4. Empresa... 4 4.2. Impuestos... 5 4.3. Series de facturación... 5 4.4.

Más detalles

NÚMEROS NATURALES Y NÚMEROS ENTEROS

NÚMEROS NATURALES Y NÚMEROS ENTEROS NÚMEROS NATURALES Y NÚMEROS ENTEROS Los números naturales surgen como respuesta a la necesidad de nuestros antepasados de contar los elementos de un conjunto (por ejemplo los animales de un rebaño) y de

Más detalles

TALLER #5 ACCESS CONSULTAS. objeto Consulta en la vista lateral izquierda de la ventana Base de datos. Aparece esta ventana.

TALLER #5 ACCESS CONSULTAS. objeto Consulta en la vista lateral izquierda de la ventana Base de datos. Aparece esta ventana. TALLER #5 ACCESS CONSULTAS Las consultas son los objetos de una base de datos que permiten recuperar datos de una tabla, modificarlos e incluso almacenar el resultado en otra tabla. TIPOS DE CONSULTAS

Más detalles

Sesión 8 Sensor de Ultrasonido

Sesión 8 Sensor de Ultrasonido Sesión 8 Sensor de Ultrasonido FIG. 16.1 - ANIMALES ULTRASÓNICOS. FUENTE: [1] Qué aprenderemos en esta sesión? Recordemos Para esta sesión, necesitaremos un aporte de la sesión pasada, ya que, así como

Más detalles

Contenido. Samayra Niebles Velasquez chamayra@hotmail.com www.insser.net

Contenido. Samayra Niebles Velasquez chamayra@hotmail.com www.insser.net Contenido MACROS EN MS EXCEL... 1 Objetos, propiedades y métodos... 1 Propiedades... 1 Métodos.... 1 Editor de Visual Basic.... 2 Insertar un nuevo módulo.... 2 Insertar un procedimiento.... 2 Ejecutar

Más detalles

Introducción al Cálculo Simbólico a través de Maple

Introducción al Cálculo Simbólico a través de Maple 1 inn-edu.com ricardo.villafana@gmail.com Introducción al Cálculo Simbólico a través de Maple A manera de introducción, podemos decir que los lenguajes computacionales de cálculo simbólico son aquellos

Más detalles

Gestión de Oportunidades

Gestión de Oportunidades Gestión de Oportunidades Bizagi Suite Gestión de Oportunidades 1 Tabla de Contenido CRM Gestión de Oportunidades de Negocio... 4 Elementos del Proceso... 5 Registrar Oportunidad... 5 Habilitar Alarma y

Más detalles

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD Fecha última revisión: Diciembre 2010 Tareas Programadas TAREAS PROGRAMADAS... 3 LAS TAREAS PROGRAMADAS EN GOTELGEST.NET... 4 A) DAR DE ALTA UN USUARIO...

Más detalles

Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos.

Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos. Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos. Qué es PHP? PHP (Hypertext Preprocessor). Es un lenguaje de programación: De código

Más detalles

Comenzando con MATLAB

Comenzando con MATLAB ÁLGEBRA LINEAL INGENIERÍA INFORMÁTICA Curso 08/09 PRÁCTICA 1 Comenzando con MATLAB 1 Funcionamiento de Matlab MATLAB es un sistema interactivo basado en matrices para cálculos científicos y de ingeniería.

Más detalles

Informática Bioingeniería

Informática Bioingeniería Informática Bioingeniería Representación Números Negativos En matemáticas, los números negativos en cualquier base se representan del modo habitual, precediéndolos con un signo. Sin embargo, en una computadora,

Más detalles

Operación Microsoft Access 97

Operación Microsoft Access 97 Trabajar con Controles Características de los controles Un control es un objeto gráfico, como por ejemplo un cuadro de texto, un botón de comando o un rectángulo que se coloca en un formulario o informe

Más detalles

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo. CONSULTAS CON SQL 1. Qué es SQL? Debido a la diversidad de lenguajes y de bases de datos existentes, la manera de comunicar entre unos y otras sería realmente complicada a gestionar de no ser por la existencia

Más detalles

MACROS. Automatizar tareas a través del uso de las macros.

MACROS. Automatizar tareas a través del uso de las macros. OBJETIVOS MACROS Definiciones Automatizar tareas a través del uso de las macros. Grabar Ejecutar Manipular macros. Tipos de Macros en Excel Introducción Las operaciones tradicionales que se pueden realizar

Más detalles

Se guardan en archivos con extencion c y los cabezales con extension h

Se guardan en archivos con extencion c y los cabezales con extension h Se guardan en archivos con extencion c y los cabezales con extension h Tipos de Variables: Tipo Tamaño(bytes) Limite inferior Limite superior char 1 -- -- unsigned char 1 0 255 short int 2-32768 +32767

Más detalles

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases. BASES Y DIMENSIÓN Definición: Base. Se llama base de un espacio (o subespacio) vectorial a un sistema generador de dicho espacio o subespacio, que sea a la vez linealmente independiente. β Propiedades

Más detalles

E 1 E 2 E 2 E 3 E 4 E 5 2E 4

E 1 E 2 E 2 E 3 E 4 E 5 2E 4 Problemas resueltos de Espacios Vectoriales: 1- Para cada uno de los conjuntos de vectores que se dan a continuación estudia si son linealmente independientes, sistema generador o base: a) (2, 1, 1, 1),

Más detalles

Apéndice 5 Manual de usuario de ColeXión. ColeXión 1.0. Manual de usuario

Apéndice 5 Manual de usuario de ColeXión. ColeXión 1.0. Manual de usuario Apéndice 5 Manual de usuario de ColeXión ColeXión 1.0 Manual de usuario Índice 1. Qué es ColeXión?... 2 2. Requerimientos del sistema... 3 3. Instalación de ColeXión... 3 4. Creación de un nuevo esquema...

Más detalles

15 CORREO WEB CORREO WEB

15 CORREO WEB CORREO WEB CORREO WEB Anteriormente Hemos visto cómo funciona el correo electrónico, y cómo necesitábamos tener un programa cliente (Outlook Express) para gestionar los mensajes de correo electrónico. Sin embargo,

Más detalles

Naturaleza binaria. Conversión decimal a binario

Naturaleza binaria. Conversión decimal a binario Naturaleza binaria En los circuitos digitales sólo hay 2 voltajes. Esto significa que al utilizar 2 estados lógicos se puede asociar cada uno con un nivel de tensión, así se puede codificar cualquier número,

Más detalles

Carrito de Compras. Esta opción dentro de Jazz la podremos utilizar como cualquier otro carrito de compras de una página de Internet.

Carrito de Compras. Esta opción dentro de Jazz la podremos utilizar como cualquier otro carrito de compras de una página de Internet. Carrito de Compras Esta opción dentro de Jazz la podremos utilizar como cualquier otro carrito de compras de una página de Internet. La forma de utilizar el Carrito de Compras es desde los comprobantes

Más detalles

BASES DE DATOS - Microsoft ACCESS 2007-

BASES DE DATOS - Microsoft ACCESS 2007- BASES DE DATOS - Microsoft ACCESS 2007- Una base de datos es un archivo estructurado de datos que nos permite almacenarlos, modificarlos, ordenarlos, generar informes etc., de manera rápida. Un listín

Más detalles

Figura 1 Abrir nueva hoja de cálculo

Figura 1 Abrir nueva hoja de cálculo 1. DISEÑO DE UNA HOJA Para abrir una hoja de cálculo existente en el espacio de trabajo del usuario, debe ir al menú Archivo > Abrir, o bien desde el botón Abrir archivo de la barra de herramientas, o

Más detalles

Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 2007 Aritmética binaria

Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 2007 Aritmética binaria Oliverio J. Santana Jaria 3. Aritmética tica binaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 2007 Para Los La en conocer muchos aritmética comprender otros binaria tipos

Más detalles

PRÁCTICAS DE GESTIÓN GANADERA:

PRÁCTICAS DE GESTIÓN GANADERA: PRÁCTICAS DE GESTIÓN GANADERA: MANEJO DE HOJA DE CÁCULO (EXCEL) 1. INTRODUCCIÓN AL MANEJO DE EXCEL La pantalla del programa consta de una barra de herramientas principal y de una amplia cuadrícula compuesta

Más detalles

Unidad 1 Sistemas de numeración Binario, Decimal, Hexadecimal

Unidad 1 Sistemas de numeración Binario, Decimal, Hexadecimal Unidad 1 Sistemas de numeración Binario, Decimal, Hexadecimal Artículo adaptado del artículo de Wikipedia Sistema Binario en su versión del 20 de marzo de 2014, por varios autores bajo la Licencia de Documentación

Más detalles

SISTEMAS DE NUMERACIÓN. Sistema de numeración decimal: 5 10 2 2 10 1 8 10 0 =528 8 10 3 2 10 2 4 10 1 5 10 0 9 10 1 7 10 2 =8245,97

SISTEMAS DE NUMERACIÓN. Sistema de numeración decimal: 5 10 2 2 10 1 8 10 0 =528 8 10 3 2 10 2 4 10 1 5 10 0 9 10 1 7 10 2 =8245,97 SISTEMAS DE NUMERACIÓN Un sistema de numeración es un conjunto de símbolos y reglas que permiten representar datos numéricos. La norma principal en un sistema de numeración posicional es que un mismo símbolo

Más detalles

Capítulo 9. Archivos de sintaxis

Capítulo 9. Archivos de sintaxis Capítulo 9 Archivos de sintaxis El SPSS permite generar y editar archivos de texto con sintaxis SPSS, es decir, archivos de texto con instrucciones de programación en un lenguaje propio del SPSS. Esta

Más detalles