Clase Aburrida 01 de Lp

21
SENTENCIAS DE ENTRADA Y SALIDA EN FORTRAN 90 PARA INGRESAR DATOS A UN PROGRAMA A TRAVES DEL TECLADO SE DEBE UTILIZAR LA SENTENCIA NO EJECUTABLE !READ*,VAR1,VARI2,VARI3... EJEMPLO: READ*,X esta sentencia va a leer un valor que se va a a lmacenar en la variable de nombre x SENTENCIA DE VALORES EN LA ´PANTALLA DEL MONITOR SE UTILIZA LA SENTENCIA PRINT*,VAR1,VAR2,VAR3... SI SE QUIERE MOSTRAR MENSAJES ESTAS DEBEN ESTAR CERRADAS ENTRE COMILLAS PRINT*,"MENSAJES" Y SI QUEREMOS MOSTRAR MENSAJES Y VARIABLES LA SINTAXIS SERIA: PRINT*,"MENSAJES...",VARI1,VAR2,...VARN el asterisco de las dos sentencias nos indica formato libre(respecto a los valores numericos). !SENTENCIA DE DECLARACION DE VARIABLES ASOCIADAS A TIPOS DE DATOS QUE MANEJA EL FORTRAN. fortran maneja 5 tipos de datos: reales, enteros, complejos, logicos, caracteres. Y PARA ASOCIARLA A NOMBRES DE VARIABLES QUE SE VA A UTILIZAR EN LOS PROGRAMAS SE DEBE UTILIZAR LAS SENTENCIAS NO EJECUTABLES: REAL PARA VARIABLES DE VA A ALMACENAR VALORES NUMERICOS DE TIPO REAL INTEGER PARA VARIABLES QUE VA ALMACENAR VALORES NUMERICOS DE TIPO ENTERO COMPLEX PARA VARIABLES QUE VAN ALMACENAR VALORES NUMERICOS COMPLEJOS(5,3) LOGICAL PARA VARIABLES QUE VAN ALMACENAR UN VALOR LOGICO, true.o.false. CHARACTER, SI LAS VARIABLES VAN ALMACENAR VALORES DE TIPO CARACTER O CADENA DE CARACTERES. EJEMPLOS:

description

curso de lp informacion teorioca practico

Transcript of Clase Aburrida 01 de Lp

Page 1: Clase Aburrida 01 de Lp

SENTENCIAS DE ENTRADA Y SALIDA EN FORTRAN 90 PARA INGRESAR DATOS A UN PROGRAMA A TRAVES DEL TECLADO SE DEBE UTILIZARLA SENTENCIA NO EJECUTABLE!READ*,VAR1,VARI2,VARI3...EJEMPLO:READ*,Xesta sentencia va a leer un valor que se va a a lmacenar en la variable de nombre xSENTENCIA DE VALORES EN LA ´PANTALLA DEL MONITOR SE UTILIZA LA SENTENCIAPRINT*,VAR1,VAR2,VAR3...SI SE QUIERE MOSTRAR MENSAJES ESTAS DEBEN ESTAR CERRADAS ENTRE COMILLASPRINT*,"MENSAJES"

Y SI QUEREMOS MOSTRAR MENSAJES Y VARIABLES LA SINTAXIS SERIA:PRINT*,"MENSAJES...",VARI1,VAR2,...VARNel asterisco de las dos sentencias nos indica formato libre(respecto a los valores numericos).

!SENTENCIA DE DECLARACION DE VARIABLES ASOCIADAS A TIPOS DE DATOS QUE MANEJA EL FORTRAN.

fortran maneja 5 tipos de datos:reales, enteros, complejos, logicos, caracteres.Y PARA ASOCIARLA A NOMBRES DE VARIABLES QUE SE VA A UTILIZAR EN LOS PROGRAMAS SE DEBE UTILIZAR LASSENTENCIAS NO EJECUTABLES:

REAL PARA VARIABLES DE VA A ALMACENAR VALORES NUMERICOS DE TIPO REALINTEGER PARA VARIABLES QUE VA ALMACENAR VALORES NUMERICOS DE TIPO ENTEROCOMPLEX PARA VARIABLES QUE VAN ALMACENAR VALORES NUMERICOS COMPLEJOS(5,3)LOGICAL PARA VARIABLES QUE VAN ALMACENAR UN VALOR LOGICO, true.o.false.CHARACTER, SI LAS VARIABLES VAN ALMACENAR VALORES DE TIPO CARACTER O CADENA DE CARACTERES.

EJEMPLOS:

REAL::X,YINTEGER::M,N,TOTALCOMPLEX::Z,Z1,Z2LOGICAL::VARONCHARACTER(LEN=1)::TT !INDICA QUE VA A SELECIONAR UN SOLO CARACTERCHARACTER(LEN=15)::NOMBRE !INDICA QUE NOMBRE VA A ALMACENAR 15 CARACTERESSENTENCIAS ASOCIADAS A LA ESTRUCTURA DE DECISIONES USANDO FORTRAN.

PARA LA DECISION SIMPLE:IF(CONDICION)THENSENTENCIA “A” ¡SI ES VERDAD SE EJECUTA CON EL ROJOEND IF

Page 2: Clase Aburrida 01 de Lp

PARA LA DECISION DOBLE:IF(CONDICION) THENSENTENCIA “A”ELSESENTENCIA “B” ¡SI ES FALSO SE EJECUTA CELESTEEND IF

- PARA LAS SENTENCIAS MULTILPLES O ANIDADAS EN FORTRAN SE ESCRIBE DE DOS FORMAS

SENTENCIA “a”ELSE IF(CONDICION2)THENSENTENCIA “b”ELSE IF(CONDICION3)THEN SENTENCIA”c” END IF END IFEND IF

LAS SENTENCIAS QUE SE PUDE UTILIZAR PARA LA ESTRUCTURA DE DECISIONES ANIDADAS EN LA SELECION DE FORTRAN LA SINTAXIS ES LA SIGUIENTE:SELECT CASE(OPCION)CASE(LISTA1) SENTENCIA “a” CASE(LISTA2) SENTENCIA “b” CASE(LISTA3) SENTENCIA”c”……CASE DEFAULT ¡OPCIONALSENTENCIA”xxx”END SELECT LA VARIABLE OPCIONAL Y LISTA1….LISTAnSON DE TIPO ENTERO O DE CARACTERES !EJEMPLO DE LA DECISION SIMPLEPROGRAM USO_DESICIONINTEGER::X,YPRINT*,"INGRESE EL VALOR DE X"READ*,XIF (X>0) THENY=X**2PRINT*,"VALOR DE Y=", YEND IFPRINT*,"SALGO AUNQUE NO QUIERAS"END PROGRAM USO_DESICIONEJEMPLO2

Page 3: Clase Aburrida 01 de Lp

!DESICION DOBLEPROGRAM IF_DOBLEINTEGER::XPRINT*,"INGRESE UN VALOR DE TIPO ENTERO"READ*,XIF (X>0) THEN PRINT*,"VALOR INGRESADO ES POSITIVO"ELSE PRINT*,"VALOR INGRESADO ES NEGATIVO"END IFEND PROGRAM IF_DOBLEOPERADORES MATEMATICOS+SUMA, -RETA, *MULTIPLICXACION, /DIVISION, **POTENCIACIONOPERADOR DE AGRUPACION: ()OPERADOR DE ASIGNACION: =OPERDADORES DE RELACION:>, >=, <, <=, ==, /=OPERADORES LOGICOS.AND. Y LOGICO.OR. O LOGICO.NOT. NO LOGICO

Se tiene 4 especificaciones de un alumno del curso de lp, obtener su promedio y según el rango especificado mostrar el siguiente mensaje:N1, N2, N3, N4; TOTAL=n1+n2+n3+n4; promedio=total/4Promedio esta entre 0 y 6entonces “superjalado”Promedio esta entre 6 y 10 entonces “cuarentena”Promedio esta entre 10 y 15 entonces “regularon”Promedio entre 15 y 20 entonces “tiburón”!N1 N2 N3 N4!Promedio esta entre 0 y 6 entonces "superjalado"!Promedio esta entre 6 y 10 entonces "cuarentena"!Promedio esta entre 10 y 15 entonces "regularon"!Promedio entre 15 y 20 entonces "tiburón"

PROGRAM DESICIONES_ANIDADASINTEGER::N1,N2,N3,N4,TOTAL (integer=numero entero)REAL::PROM !PROMEDIO (real=verdadero)PRINT*,"INGRESE 4 NOTAS" (print=impresion)READ*,N1,N2,N3,N4 (read=leer)TOTAL=N1+N2+N3+N4PROM=TOTAL/4.IF (PROM>=0 .AND. PROM<6) THEN (if=si, then=entonces) PRINT*,"SUPERJALADO", PROM (print=impresion)ELSE (else=ademas) IF (PROM>=6 .AND. PROM<10) THEN (if=si, then=entonces) PRINT*,"CUARENTENA",PROM (print=impresion)

Page 4: Clase Aburrida 01 de Lp

ELSE (else= ademas) IF (PROM>=10 .AND. PROM<15) THEN (if=si, then=entonces)

PRINT*,"REGULARON",PROM (print=impresion) ELSE (else=ademas)

IF (PROM>=15 .AND. PROM<=20) THEN (if=si then=entonces) PRINT*,"TIBURON",PROM (print=entonces) END IF (end if= final si)

END IF (end if= final si) END IF (end if= final si) END IF (end if= final si) END PROGRAM DESICIONES_ANIDADASEJEMPLO DE SETENCIA DE SELECION DE LA SENTENCIA DE SELECCIÓN:ELABORAR UN PROGRAMA QUE PRESENTE UN MENU DE OPCIONES DE TAL FORMA QUE SE SELECCIONA UNA Y SOLO UNA PARA QUE REALICE UNA OPERACIÓN DETERMINADAMENU DE CALCULO

1. Área del circulo2. Área del cuadrado3. Área del trapecio4. Área del triangulo<<seleccione una opción>>

PROGRAM SELECCIONINTEGER::OPCIONREAL::R,L,BMAY,BMEN,ALTURAREAL::AREAREAL,PARAMETER::PI=3.1416 !CONSTANTE TIPO REALPRINT*,"MENU DE CALCULO"PRINT*,"_ _ _ _ _ _"PRINT*,"1. Área del circulo"PRINT*,"2. Área del cuadrado"PRINT*,"3. Área del trapecio"PRINT*,"4. Área del triangulo"PRINT*,"<<seleccione una opción>>"READ*,OPCION !1,2,3 O 4SELECT CASE(OPCION)CASE(1)PRINT*,"AREA DEL CIRCULO"PRINT*,"INGRESE EL VALOR DEL RADIO"READ*,RAREA=PI*R**2PRINT*,"VALOR DEL AREA=", AREA

CASE(2)PRINT*,"AREA DEL CUADRADO"PRINT*,"INGRESE EL LADO"READ*,LAREA=L**2

Page 5: Clase Aburrida 01 de Lp

PRINT*,"VALOR DEL AREA=", AREA

CASE(3)PRINT*,"AREA DEL TRAPECIO"PRINT*,"INGRESE BASE MAYOR Y MENOR"READ*,BMAY,BMENPRINT*,"INGRESE ALTURA"READ*,ALTURAAREA=((BMAY+BMEN)/2)*ALTURAPRINT*,"VALOR DEL AREA=", AREA

CASE(4)PRINT*,"AREA DEL TRIANGULO"PRINT*,"INGRESE BASE"READ*,BMAYPRINT*,"INGRESE ALTURA"READ*,ALTURAAREA=(BMAY*ALTURA)/2PRINT*,"VALOR DEL AREA=", AREA

END SELECTEND PROGRAM SELECCION

POR PREGUNTAR AL PROFESOR:! Se tiene 4 especificaciones de un alumno del curso de lp, obtener su promedio y según el rango especificado mostrar el siguiente mensaje:!N1, N2, N3, N4; TOTAL=n1+n2+n3+n4; promedio=total/4!Promedio esta entre 0 y 6entonces "superjalado"!Promedio esta entre 6 y 10 entonces "cuarentena"!Promedio esta entre 10 y 15 entonces "regularon"!Promedio entre 15 y 20 entonces "tiburón"!N1 N2 N3 N4!Promedio esta entre 0 y 6 entonces "superjalado"!Promedio esta entre 6 y 10 entonces "cuarentena"!Promedio esta entre 10 y 15 entonces "regularon"!Promedio entre 15 y 20 entonces "tiburón"program DESICIONES_ANIDADASinteger::N1,N2,N3,N4,totalreal::prom !promedioprint*,"ingrese 4 notas"read*,n1,n2,n3,n4total=n1+n2+n3+n4prom=total/4 if(prom>=0.and.prom<6) then

Page 6: Clase Aburrida 01 de Lp

print*,"superjalado",prom else if(prom>=6.and.prom<10) then print*,"cuarentena",prom else if(prom>=10.and.prom<15) then print*,"regularon",prom else if(prom>=15.and.prm<=20) then print*,"tiburon",prom end if end if end if end ifEnd program DESICIONES_ANIDADAS

SEGUNDA SUPER CLASE 1 ELABORAR EN UN PROGRAMA QUE DETERMINE SI LAS COORDENADAS DE UN PUNTO P(X,Y) ESTA DENTRO DE UN CIRCULO CON CENTRO EN EL ORIGEN. SABIENDO QUE EL RADIO DEL CIRCULO ES IGUAL A 9 METROS.LA ECUACION DEL CIRCULO ES X2+Y2=R2

DATOS DE ENTRADA:X=Y=ALGORITMO DE SOLUCIONLEERX,Y

SOLUCIONPROGRAM PUNTO_CIRCULO!DECLARACION DE VARIABLESREAL::X,Y !COORDENADAS DEL PUNTOREAL,PARAMETER::R=9 !R ES UNA CONSTANTE DE TIPO REALREAL::D !VARIABLE AUXILIAR!PROGRAMA PRINCIPALPRINT*,"INGRESE COORDENADAS DEL PUNTO"READ*,X,Y !PARA INGRESAR VALORES POR EL TECLADOD=SQRT(X**2+Y**2)

!UTILIZANDO LA SENTENCIA DE DOBLE DESICION

IF(D<=R) THEN PRINT*,"EL PUNTO ESTA DENRO DEL CIRCULO"ELSE PRINT*,"EL PUNTO NO ESTA DENTRO DEL CIRCULO"END IF!FINAL FISICO DEL PROGRAMAEND PROGRAM PUNTO_CIRCULO

MODIFICAR EL PROGRAMA

Page 7: Clase Aburrida 01 de Lp

PROGRAM PUNTO_CIRCULO!DECLARACION DE VARIABLESREAL::X,Y !COORDENADAS DEL PUNTOREAL,PARAMETER::R=9 !R ES UNA CONSTANTE DE TIPO REALREAL::D !VARIABLE AUXILIAR!PROGRAMA PRINCIPALPRINT*,"INGRESE COORDENADAS DEL PUNTO"READ*,X,Y !PARA INGRESAR VALORES POR EL TECLADOD=SQRT(X**2+Y**2)

!UTILIZANDO LA SENTENCIA DE DOBLE DESICION

IF(D<=R.AND.R/=0) THEN !/=DIFERENTE PRINT*,"EL PUNTO ESTA DENTRO DEL CIRCULO"ELSE IF(D>R)THEN PRINT*,"EL PUNTO NO ESTA DENTRO DEL CIRCULO" ELSE IF(D==0)THEN PRINT*,"EL PUNTO ESTA EN EL ORIGEN DEL CIRCULO" END IF END IFEND IF!FINAL FISICO DEL PROGRAMAEND PROGRAM PUNTO_CIRCULO

USO DEL (IF) LOGICOESTA SENTENCIA SE EJECUTA UNA CONDICION Y SE EJECUTA SI ES VERDADERA, NO USA LA PALABRA THEN,ELSE,END IF SINTAXISIF(CONDICION) SENTENCIA EJECUTABLEEJEMPLO:X=3IF(X>0)PRINT*,”ES POSITIVO”……!1 ELABORAR EN UN PROGRAMA QUE DETERMINE SI LAS COORDENADAS! DE UN PUNTO P(X,Y) ESTA DENTRO DE UN CIRCULO! CON CENTRO EN EL ORIGEN. SABIENDO QUE EL RADIO! DEL CIRCULO ES IGUAL A 9 METROS.!LA ECUACION DEL CIRCULO ES X2+Y2=R2PROGRAM PUNTO_CIRCULO!DECLARACION DE VARIABLESREAL::X,Y !COORDENADAS DEL PUNTOREAL,PARAMETER::R=9 !R ES UNA CONSTANTE DE TIPO REALREAL::D !VARIABLE AUXILIAR!PROGRAMA PRINCIPALPRINT*,"INGRESE COORDENADAS DEL PUNTO"READ*,X,Y !PARA INGRESAR VALORES POR EL TECLADOD=SQRT(X**2+Y**2)

!UTILIZANDO LA SENTENCIA DE DOBLE DESICION

Page 8: Clase Aburrida 01 de Lp

IF(D<=R.AND.R/=0)PRINT*,"EL PUNTO ESTA DENTRO DEL CIRCULO"

IF(D>R)PRINT*,"EL PUNTO NO ESTA DENTRO DEL CIRCULO"

IF(D==0)PRINT*,"EL PUNTO ESTA EN EL ORIGEN DEL CIRCULO"

!FINAL FISICO DEL PROGRAMAEND PROGRAM PUNTO_CIRCULO

PROBLEMAELABORAR UN PROGRAMA QUE PERMITA EL INGRESO DE UNA LETRA DE TECLADO Y

DETECTE SI ES VOCAL CASO CONTRARIO ES UNA CONSONANTEA,E,I,O,U ENTONCES ES UNA VOCALDOS FORMAS:USANDO IF ANIDADOS O LA SENTENCIA DE SELECCIÓN MULTIPLE(SELECT CASE).program detecta_vocalcharacter(len=1)::vocalprint*,"ingrese una letra del teclado"read*,vocalSELECT CASE(vocal)CASE('a','A')print*,"es una vocal",vocalCASE('e','E')print*,"es una vocal",vocalCASE('i','I')print*,"es una vocal",vocalCASE('o','O')print*,"es una vocal",vocalCASE('u','U')print*,"es una vocal",vocalCASE DEFAULTprint*,"es una consonante",vocalEND SELECTEND PROGRAM DETECTA_VOCAL

SENTENCIAS PARA CICLOS DE REPETICIONCuando se necesita que una sentencia o un grupo de sentencias se repita, en programación existe la orden de repetición controlada por el programador y la orden de repetición controlada por una condiciónS=1+2+3+4+5+6+7+…1000 Primera repeticiónS1=1+2Segunda repetición

Page 9: Clase Aburrida 01 de Lp

S2=s1+3Tercera repeticiónS3=s2+4Cuarta repeticiónS4=s3+5Quinta repeticiónS5=s4+6Sexta repeticionS6=s5+7**S=s6Donde S es la suma total de los números del 1 al 7Ciclo de fortran 90Sintaxis:Do vc=vi,vf,lnc Sentencia(s)End DoVc=variable de control de tipo enteroVi= valor inicial del proceso repetitivoVf=valor final del proceso repetitivoInc=variable contador generalmente se incrementa de 1 en 1EJEMPLO:Do m=1,5,1 !m tiene que ser de tipo enteroPrint*,mEnd DoOtro ejemploDo i=1,4X=2*iPrint*,I,xEnd DoEJEMPLO!elabore un programa que determine!la suma total de 1+2+3+4+5+6+,,,,+10!utilizando ciclo Do o ciclo "Do explicito"PROGRAM SUMA_SERIEINTEGER::TOTAL !INTEGER=NUMERO ENTEROINTEGER::I !VARIABLE DE CONTROL PARA EL CICLO DOTOTAL=0 !TOTAL VARIABLE INICIALIZADADO I=1,10,1

Page 10: Clase Aburrida 01 de Lp

TOTAL=TOTAL+IPRINT*,TOTAL ¡ SALE TODAS LAS SUMASEND DOPRINT*,"LA SUMA TOTAL DE LA SERIE",TOTALEND PROGRAM SUMA_SERIE

!PROCESO MANUAL!PARA I=1! TOTAL=0+1----> TOTAL=1!PARA I=2! TOTAL=1+2--> TOTAL=3!PARA I=3! TOTAL=3+3--> TOTAL=6!PARA I=4! TOTAL=6+4--> TOTAL=10!PARA I=5! TOTAL=10+5--> TOTAL=15!PARA I=6! TOTAL=15+6--> TOTAL=21!PARA I=7! TOTAL=21+7--> TOTAL=28!PARA I=8! TOTAL=28+8--> TOTAL=36!PARA I=9! TOTAL=36+9--> TOTAL=45!PARA I=10! TOTAL=45+10--> TOTAL=55!PARA I=11 SALE DEL CICLO DE REPETICION

MODIFIQUE EL PROGRAMA ANTERIOR PARA VISUALIZAR LAS SUMAS PARCIALES DE LA SUMA

EJERCICIO:ELABORAR UN PROGRAMA QUE PERMITA EL INGRESO DE UN VALOR DE TIPO ENTERO EL CUAL INDICARA LA CANTIDAD DE VECES QUE SE REPITE

EL BUCLE DE SENTENCIAS. LUEGO SOLICITARA QUE INGRESE VALORES POR TECLADO Y PRESENTE EL TOTAL DE LOS VALORES INGRESADOS. USAR UN VALOR NEGATIVO DE TIPO ENTERO PARA QUE FINALICE EL

CICLO REPETITIVO Y TERMINE LA EJECUCION DEL PROGRAMAN=100 este valor indicara que se va a repetir 100vecesIngresar 5Total=0+5Ingresar 10Total=5+10=15Ingresar=200

Page 11: Clase Aburrida 01 de Lp

Total=15+200=215Ingresar=-1Termino y salgo del programa pero visualizo el valor de 215program suma_serie_1integer::N !valor de repeticioninteger::i !variable de control de repeticioninteger::xinteger::totaltotal=0print*,"ingrese el total de repeticiones"read*,N do i=1,N,1 print*,"ingrese valor" read*,x total=total+x if(x<0)then print*,total-x stop !finaliza el proceso de ejecucion end if end doend program suma_serie_1

Tarea:Ejercicio 1 : !sumar x=88, y=3.5, z=-5.2program sumaread*,A,B,CD=A+B+Cwrite(*,*)Dstopend program suma!llos valores de x,y,z son: !x=88, y=3.5, z=-5.2program ejemplo2 real::x,y,zreal::totalprint*,"insertar valor de x"read*,xprint*,"insertar valor de y"read*,yprint*,"insertar valor de z"read*,z

Page 12: Clase Aburrida 01 de Lp

total=(2*y)+3*(x-y)print*,"resultado del total=",totalend program ejemplo2

program ejemplo3real::x,yreal::totalprint*,"ingrese el valor de x"read*,xprint*,"ingrese el valor de y"read*,ytotal=x/yprint*,"resultado del total=",totalend program ejemplo3program ejemplo4real::x,y,zreal::totalprint*,"ingrese el valor de x"read*,xprint*,"ingrese el valor de y"read*,yprint*,"ingrese el valor de z"read*,ztotal=x/(y+z)print*,"resultado del total=",totalend program ejemplo4

program ejemplo5real::x,y,zreal::totalprint*,"ingrese el valor de x"read*,xprint*,"ingrese el valor de y"read*,yprint*,"ingrese el valor de z"read*,ztotal=(x/y)+zprint*,"resultado del total=",totalend program ejemplo5PROGRAM EJEMPLO6REAL::X,YREAL::TOTALPRINT*,"INGRESE EL VALOR DE X"READ*,XPRINT*,"INGRESE EL VALOR DE Y"READ*,YTOTAL=2*X/3*YPRINT*,"RESULTADO DEL TOTAL=",TOTAL

Page 13: Clase Aburrida 01 de Lp

END PROGRAM EJEMPLO6

EJERCICIOS PARA UTI.LIZAR LA SENTENCIA DO ESTRUCTURADOLA SINTAXIS DE ESTA SENTENCIA:DO VC=VI,VF,INCBLOQUE DE SENTENCIASEND DOVC=VARIABLE DE TIPO ENTEROVi=ES UN VALOR INICIAL DE TIPO ENTERO, GENERALMENTE ES 1(PRIMERA REPETICON)Vf=ES UN VALOR FINAL DE TIPO ENTERO (INDICA EL TOTAL DE REPETICIONES)INC=INCREMENTO O CONTADOR, GENERALMENTE ES DE 1 EN 1TIPOS DE DATOS EXPLICITOS E IMPLICITOS ASOCIADOS A NOMBRES DE VARIABLES.ESTO SE DA PRINCIPALMENTE PARA LOS DATOS NUMERICOS.

LOS DATOS EXPLICITOS ASOCIADOS A NOMBRES DE VARIABLES SON AQUELLAS QUE SE DECLARAN EN LA ZONA DE DECLARACION DE VARIABLES ACOMPAÑADAS DE LAS SENTENCIAS: REAL, INTEGER, DOUBLE PRECISSION

PROGRAM CALCULO_AREAINTEGER::b,h ¡VARIABLE DE TIPO EXPLICITOINTEGER::AREA---

LOS DATOS NUMERICOS ASOCIADOS A VARIABLES SE PUEDEN UTILIZAR EN FORMA IMPLICITA.LOS NOMBRES DE VARIABLES QUE EMPIECEN CON LA LETRA:a;b;d;e;f;g;h;o;p;q………z SE CONSIDERAN VARIABLES DE TIPO REAL.

EJEMPLOPROGRAM CALCULOPRINT*,”INGRESE DATO 1”READ*,X ¡X SERA UNA VARIABLE DE TIPO REAL

Y LOS NOMBRES DE VARIABLES QUE EMPIECEN CON LA LETRA: i;j;k;l;m;n ESTAN ASOCIADAS A DATOS DE TIPO ENTERO

EJEMPLO 2PROGRAM CALCULO

PRINT*,”INGRESE DATO 1”READ*,X !X=2,3

PRINT*,”INGRESE DATO 2”READ*,Y !Y=1.2

I=X+YPRINT*,”SUMA=”,I

END PROGRAM CALCULO

LA SENTENCIA IMPLICIT NONE! EJEMPLO 2

PROGRAM CALCULOIMPLICIT NONE

REAL::X,Y,IPRINT*,"INGRESE DATO 1"

Page 14: Clase Aburrida 01 de Lp

READ*,X !X=2,3PRINT*,"INGRESE DATO 2"

READ*,Y !Y=1.2I=X+Y

PRINT*,"SUMA=",IEND PROGRAM CALCULO

1._ ELALOBRAR EN UN PROGRAMA FORTRAN QUE PERMITA VISUALIZAR LA SIGUIENTE TABLA DE VALORES.x x24 165 256 367 498 649 81UTILIZANDO LA SENTENCIA DO EXPLICITO

PROGRAM TABLAIMPLICIT NONE

INTEGER::X,XCUADINTEGER::I !VARIABLE DE CONTROL DO

PRINT*," X X2"DO I=4,9,1

X=IXCUAD=X**2

PRINT*,"X,XCUAD"END DO

END PROGRAM TABLA¡PARA DETERMINAR CUANTAS VECES SE REPITE EL PROCESO

¡n=vf-vi+1¡n=9-4+1=6

EJERCICIO:SE TIENE LA SIGUIENTE EXPRESION MATEMATICA:B=A2 +3.0A -2.3/A+4.1SABIENDO QUE A VARIA DESDE 1.25 HASTA 3.0 CON INCREMENTO DE 0.25

ELABORE UN PROGRAMA QUE VISIALICE LOS VALORES DE A Y B EN FORMA DE TABLA DE DATOS.A B1.251.501.75 ***2.00 ***2.25 ***...3.00

Page 15: Clase Aburrida 01 de Lp

PROGRAM TABLAIMPLICIT NONE

REAL::A,BREAL::I !VARIABLE DE CONTROL DO

PRINT*," A B"A=1.0 !VARIABLE INICIALIZADA

DO I=1,8,1A=I+0.25 !VARIABLE CONTADOR

B=A**2+3.0*A-2.3/A+4.2 !VARIABLE NORMAL SIMPLEPRINT*,A,B

END DOEND PROGRAM TABLA

EJERCICIO 3ELABORAR UN PROGRAMA QUE DETERMINE LA SUMA TOTAL DE LA SIGUIENTE SERIE;S=12+22+32+42+52+62+72 Y TAMBIEN CALCULE EL PROMEDIO DE LA SUMA DE ESTOS NUMEROS.

PROGRAM SERIE_CUADRADOIMPLICIT NONEINTEGER::S,M !M VARIABLE AUXILIARINTEGER::iREAL::PROM !PROMEDIOS=0DO i=1,7 M=i S=S+M**2 !S ES VARIABLE ACUMULADOREND DOPRINT*,"LA SUMA TOTAL",SPROM=S/REAL(i-1)PRINT*,"PROMEDIO DE LA SERIE",PROMEND PROGRAM SERIE_CUADRADO

ELOBORE UN PROGRAMA QUE TABULE LA FUNCION USANDO SENTENCIA DO ESTRUCTURADOF(X)=X2+3X+16/X2-4PARA X=-5,-4,-3,-2,-1,0,1,2,3,…,10TABLAX F(X)PROGRAM TABULACIONIMPLICIT NONEINTEGER::iREAL::x,FDXDO i=-5,10,1X=iIF (X**2-4==0)THENELSEFDX=(X**3+3*X+16)/(X**2-4)PRINT*,X,FDXEND IFEND DOEND PROGRAM TABULACION

Page 16: Clase Aburrida 01 de Lp

CICLO DE REPETICION ANIDADOSEXISTEN PROBLEMAS EN EL CUAL UNA FUNCION PUEDE DEPENDER DE DOS O MAS VARIABLES f(x,y,z) Y CADA VARIABLE SE VEA AFECTADO, PARA EVALUAR DICHAS FUNCIONES SE UTILIZAN CICLOS DE REPETICION ANIDADOS.SINTAXIS EN FORTRAN DO vc1=vi1, vf1, inc1 DO vc2=vi2, vf2, inc2 SENTENCIA(S) END DO END DOLA REGLA DE EJECUCION ES LA SIGUIENTE:POR CADA REPETICION DEL CICLO DO EXTERNO, SE EJECUTA TODAS LAS REPETICIONES DEL CICLO DO INTERNO

EJEMPLO:DO i=1,3,1 DO j=2,4,1 PRINT*,I,J END DOEND DOPARA i=1 (PRIMERA REPETICION) j→2,3 Y 41 21 31 4PARA i=2(LA SEGUNDA REPETICION) j→2,3 Y 4 2 2 2 3 2 4PARA i=3 (TERCERA REPETICION) j→2,3 Y 4 3 2 3 3 3 4PROGRAM CICLO_ANIDADOIMPLICIT NONEINTEGER::i,jDO i=1,3,1 DO j=2,4,1 PRINT*,I,J END DOEND DOEND PROGRAM CICLO_ANIDADO

EJERCICO 04TABULE LA SIGUIENTE FUNCION USANDO LA SENTENCIA DO PARA CONTROLAR EL PROCESO ITERATIVEF(x,y)=(x2-Y2)/(X2+Y2)PARA x=0,1,2,3,4,5; E y=3,5,7,9,11,13,15 PARA CADA VALOR DE xLA SALIDAX Y f(x,y)

Page 17: Clase Aburrida 01 de Lp

0 3 ***0 5 ***0 7 ***0 9 ***0 11 **0 13 ***0 15 ***1 3 ***1 5 ****

1 7 ***PROGRAM CICLO_ANIDADOIMPLICIT NONEINTEGER::i,jREAL::X,Y,FDXYDO i=1,6X=i-1 DO j=3,15,2 Y=j FDXY=(X**2-Y**2)/(X**2+Y**2) PRINT*,X,Y,FDXY END DOEND DOEND PROGRAM CICLO_ANIDADO

CICLO DE REPETICION CONDICIONALLA SENTENCIA DO WHILELA SINTAXIS

DO WHILE (CONDICION) SENTENCIAS(S)END DO

PARA QUE SE REALIZE EL CICLO REPETITIVO LA CONDICION DEBE SER VERDADERA, Y PARA SALIR DEL PROCESO LA CONDICION DEBERA SER FALSA

S=S=0DO WHILE (i<=5)S=S+1I=i+1END DOEJECUCION MANUALS=0I=1 1<=S VERDAD S=0+1 →S=1 I=1+1 →i=22<=5 VERDADS=1+2 →S=3 I=2+1 →i=33<=5 VERDADS=3+3 →S=6

Page 18: Clase Aburrida 01 de Lp

I=3+1 →i=44<=5 VERDADS=6+14→S=10 I=4+1 →i=55<=5 VERDADS=10+5 →S=15 I=15+1 →i=66<=5 FALSO TERMINA EL CICLO DE REPETICION