4.1.- EXPRESIONES LOGICAS

Electromagnetismo & FORTRAN 4.1.- Capítulo 4 EXPRESIONES LOGICAS Una expresión lógica únicamente puede tomar dos valores que son : .true. o .false

7 downloads 103 Views 149KB Size

Recommend Stories


TEMA 7. FAMILIAS LOGICAS INTEGRADAS
TEMA 7. FAMILIAS LOGICAS INTEGRADAS http://www.tech-faq.com/wp-content/uploads/images/integrated-circuit-layout.jpg IEEE 125 Aniversary: http://www.

Puertas logicas. Buffer triestado
Puertas logicas Puerta AND Puerta AND Puerta NAND Puerta NAND Puerta OR Puerta OR Puerta NOR Puerta NOR Puerta O exclusiva Puerta O exclusiv

41
RUBRO CODIGO DESCRIPCION MEDIDAS BAZAR Y COCINA 25405 TENEDOR 19.3CM 19.3CM BAZAR Y COCINA 35936 DELANTAL DE COCINA DE TELA LISO 55*70CM B

:41
Foro Ahorristas - www.ahorristas.es - el club de los ahorradores Generado: 3 August, 2016, 05:15 LOS CATALANES TENDRAN SU PROPIA IDENTIDAD EN EL CODI

Story Transcript

Electromagnetismo & FORTRAN

4.1.-

Capítulo 4

EXPRESIONES LOGICAS

Una expresión lógica únicamente puede tomar dos valores que son : .true. o .false. Este tipo de expresiones permiten crear estructuras de control dentro del programa FORTRAN que dependiendo de los valores obtenidos por la expresión se bifurcan y recorren caminos alternativos. A la hora de construir una expresión lógica FORTRAN cuenta con una serie de operadores lógicos que se aplican siempre entre dos elementos del mismo tipo, bien numéricos o bien tipo carácter. Una vez construida la expresión esta únicamente puede tomar dos valores cierto o falso. Los operadores en FORTRAN son los siguientes:

OPERADOR .EQ. .NE. .LT. .LE. .GT. .GE.

SIGNIFICADO Igual que ( = ) No igual que ( ≠ ) Menor que (< ) Menor o igual que (≤ ) Mayor que (> ) Mayor o igual que ( ≥ )

Ejemplo Supongamos que una variable real A posee un valor de 5.6 y otra variable real B posee un valor de 7.8, la siguiente tabla muestra los valores de lógicos para una serie de expresiones lógicas: EXPRESION (A .gt. 50.0) (A .ge. B) (A.ne.B)

VALOR .false. .false. .true.

Por otro lado, hay otro tipo de operadores lógicos que son utilizados únicamente entre expresiones lógicas, en concreto .NOT. opera sobre una sola expresión lógica y el resto sobre dos. La siguiente tabla muestra este tipo de operadores y sus significado.

OPERADOR .NOT. .AND. .OR. .XOR. .EQV. .NEQV.

SIGNIFICADO Cambia el valor de la expresión lógica a su opuesto Cierto únicamente si ambas expresiones lógicas son ciertas Cierto si una de las expresiones es cierta Cierto únicamente si una de las expresiones lógicas es cierto Cierto si ambas expresiones tiene el mismo valor Cierto si ambas expresiones no tienen el mismo valor

Ejemplo Supongamos dos variables con valores A=2.0 y B=10.0, entonces: .not. (a .lt. b) (a .ne. b) .and. (a .lt. b) (a .lt. b) .or. (a .gt. b) (a .ne. b) .xor. (a .lt. b) (a .lt. b) .eqv. (a .gt. b) (a .lt. b) .neqv. (a .gt. b)

.false. .true. (ambas expresiones lógicas son ciertas) .true. (una de las expresiones lógicas es cierta) .true. (ambas expresiones son ciertas) .false. (los resultados de las expresiones no son iguales) .true. (los resultados de las expresiones no son iguales)

Grupo de Electromagnetismo

1

Electromagnetismo & FORTRAN

Capítulo 4

Cuando en una misma expresión lógica compuesta existen varios operadores la prioridad de mayor a menor es: 1. 2. 3. 4. 5. 6. 7.

Paréntesis Operadores aritméticos (**, *, /, +, -) Operadores lógicos (.lt. , .gt. , .eq. , .ne. , .le. , .ge.) .not. .and. .or. .eqv. and .neqv.

Cuando en una misma expresión existen operadores de la misma prioridad las operaciones se realizaran recorriendo la expresión de izquierda a derecha.

4.2.-

ESTRUCTURAS DE CONTROL

Una vez vistas las posibilidades que ofrecen la conjunción de expresiones lógicas, así como su funcionamiento podemos introducir las estructuras de control . Este tipo de estructuras son fundamentales en el desarrollo de un programa FORTRAN y permiten implementar bifurcaciones operacionales que son indispensables en la mayoría de los programas. La sentencia FORTRAN que permite este tipo de estructuras es la sentencia IF (lógico) la cual tiene una estructura como la que se muestra a continuación: IF (expresión lógica) THEN Sentencias nº 1 ejecutadas cuando expresión logica=.true. ELSE Sentencias nº 2 ejecutadas cuando expresión logica=.false. ENDIF En caso de no existir o no ser necesarias las sentencias nº 2, la sentencia ELSE no es de uso obligado. En ese caso el Bloque IF queda del siguiente modo: IF (expresión lógica) THEN Sentencias nº 1 ejecutadas cuando expresión logica=.true. ENDIF Ejemplo: Programa que lee dos números y nos dice por pantalla cual de ellos es el mayor.

P

R

O

G

R

A

M

I

M

P

L

I

C

I

T

R

E

A

L

A

,

B

P

R

I

N

T

*

,

´

D

R

E

A

D

*

,

A

P

R

I

N

T

*

,

´

R

E

A

D

*

,

B

I

F

(

A

.

G

E

P

R

I

N

T

*

E

L

S

E

P

R

I

N

T

*

Grupo de Electromagnetismo

M

A

Y

O

R

N

O

N

E

A

M

E

A

´

D

A

M

E

B

´

.

B

)

T

H

,

´

A

E

S

M

A

Y

O

R

´

,

´

B

E

S

M

A

Y

O

R

´

E

N

2

Electromagnetismo & FORTRAN E

N

D

E

N

D

I

Capítulo 4

F

Obsérvese que el programa responderá que A es mayor, cuando A=B, lo que no es muy correcto. Analizando el problema observamos que deberíamos haber tenido en cuenta el caso. Para ello podemos incluir otra sentencia IF del siguiente modo:

P

R

O

G

R

A

M

I

M

P

L

I

C

I

T

R

E

A

L

A

,

B

P

R

I

N

T

*

,

´

D

R

E

A

D

*

,

A

P

R

I

N

T

*

,

´

R

E

A

D

*

,

B

I

F

(

A

.

E

Q

P

R

I

N

T

L

S

E

I

F

(

A

P

R

I

L

S

E

P

R

E

N

E

N

D

E

N

D

E

E

M

A

Y

O

R

N

O

N

E

A

M

E

A

´

D

A

M

E

B

´

.

B

)

T

H

E

*

,

´

A

=

B

´

.

G

E

.

B

)

T

H

E

N

T

*

,

´

A

E

S

M

A

Y

O

R

´

I

N

T

*

,

´

B

E

S

M

A

Y

O

R

´

D

I

F

I

F

N

N

De la modificación anterior es preciso observar detenidamente dos cuestiones: a) Al existir dos sentencia IF, su anidamiento debe respetarse. Esto significa que las sentencias ELSE y ENDIF del segundo IF nunca deberán se escritas con posterioridad a las sentencia ELSE y ENDIF de del primer IF. ANIDAMIENTO CORRECTO

ANIDAMIENTO INCORRECTO

IF (expresión lógica) THEN IF (expresión lógica) THEN Sentencias FORTRAN ELSE Sentencias FORTRAN ENDIF ELSE Sentencias FORTRAN ENDIF

IF (expresión lógica) THEN IF (expresión lógica) THEN Sentencias FORTRAN ELSE Sentencias FORTRAN ELSE ENDIF Sentencias FORTRAN ENDIF

b) Al aumentar el numero de sentencia anidadas es muy conveniente para una correcta comprensión y lectura del programa aplicar tabulaciones hacia la derecha para cada bloque IF, con el fin de que cada bloque quede alineado verticalmente y separado de los demás bloques. Grupo de Electromagnetismo

3

Electromagnetismo & FORTRAN

Capítulo 4

Dentro de la estructura IF existe una variante permitida en la que no es necesario poner las sentencia ELSE y ENDIF, su estructura es: IF (expresión lógica) Sentencia ejecutable que se aplicará cuando expresión logica=.true. Ejemplo Programa que lea un carácter y si es la letra S escribe la palabra YES, sino que no escriba nada

P

R

O

G

R

A

M

C

U

A

D

R

I

M

P

L

I

C

I

T

C

H

A

R

A

C

T

E

R

*

1

P

R

I

N

T

*

,

´

D

A

M

E

R

E

A

D

*

,

A

I

F

(

A

.

E

Q

.

´

S

´

)

E

N

D

A

D

N

O

N

E

U

N

A

R

I

N

O

A

P

T

L

E

T

R

A

´

*

,

´

Y

E

S

´

Al introducir por teclado un carácter que será leído por la sentencia READ*,A este deberá ser introducido entrecomillado, es decir : 'S' . Por ultimo, dentro de la construcción de varios bloques IF entrelazados se establece una nueva forma que responde a la siguiente estructura: IF (expresión lógica 1) THEN Sentencias nº 1 ejecutadas cuando expresión lógica 1 = .true. ELSE IF (expresión lógica 2) THEN Sentencias nº 2 ejecutadas cuando expresión lógica 2 = .true. ELSE IF (expresión lógica 3) THEN Sentencias nº 3 ejecutadas cuando expresión lógica 2 = .true. ....................................... ....................................... ....................................... ELSE IF (expresión lógica N) THEN Sentencias nº N ejecutadas cuando expresión lógica N = .true. ELSE Sentencias nº N+1 ejecutadas cuando expresión lógica 1 = .false. ENDIF De manera gráfica puede explicarse fácilmente la estructura anterior como se puede ver a continuación:

Grupo de Electromagnetismo

4

Electromagnetismo & FORTRAN

Capítulo 4

condicion logica 1

.false.

.true.

condicion logica 2

sentencias nº 1

.false. .true. condicion logica 3

sentencias nº 2 .true.

.false.

sentencias nº 3 condicion logica N .false. .true. sentencias nº N sentencias nº N+1

EJERCICIO 4.1 •

Realizar un programa que lea un numero por pantalla y comunique al usuario si es par o impar.

EJERCICIO 4.2 •

Realizar un programa que lea un valor entero comprendido entre 1 y 5 y presente por pantalla la vocal a,e,i,o,u en función del numero leído. El programa deberá advertir al usuario en caso de que el valor introducido no este en el intervalo [1,5].

EJERCICIO 4.3 •

Realizar un programa que lea una letra del abecedario y diga al usuario si se trata de una vocal o no.

EJERCICIO 4.4 •

Programar la ecuación de 2º grado Ax2 + B x + C = 0, con la capacidad de dar como resultado las raíces complejas.

EJERCICIO 4.5 •

Realizar un programa que calcule el modulo y el argumento de un numero complejo (a+bi), poniendo especial cuidado en la ubicación del argumento resultante en el cuadrante correcto.

Grupo de Electromagnetismo

5

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.