Anda di halaman 1dari 10

Captulo V CICLOS

(CICLOS: DO WHILE EXIT CONTADOR)

Resultados Del Aprendizaje:

El alumno conocer la forma sencilla de elaborar ciclos

Contenido De la Seccin:
Ciclos IFs Vs. Ciclos Do s Estructura del ciclo Do Diferentes Formatos del Do Do salida (do exit) Do hasta (do- (expresin)) Do mientras (do- while) For All

Pregunta Gua:
Que ventaja presentan los ciclos DO vs los IF?

81

Ciclos IFs (Transferencia condicional lgica) Cuando en un problema la solucin es del tipo recurrente ( que es necesario hacer varias veces un proceso), se dice que es un proceso cclico. Veremos primero como se soluciona a travs de los estatutos IF-GOTO (que como ya anteriormente comentamos estn en desuso), bien nos sirven para comprender el uso de la estructura del DO. A manera de ejemplo se presenta lo siguiente: 5.1) problema: Se desea desplegar la serie numrica de uno a cien.
PROGRAM CICLO_IF IMPLICIT NONE INTEGER:: NUMERO NUMERO = 1 100 IF(NUMERO <=100)Then WRITE (*,*) NUMERO ELSE NUMERO= NUMER + 1 END IF GOTO 100 END PROGRAM CICLO_IF

La parte enmarcada muestra el ciclo

En este programa podemos apreciar: 1. La variable nmero es de modo entero 2. Un conjunto de instrucciones enmarcados en lnea punteada, stas son las que se estructurarn para formar un solo estatuto conocido como Do

82

Ciclo Do exit Formato : [etiqueta] DO Rango de instrucciones incluyendo IF Exit End DO Nota: En el If la instruccin contendr una variable de modo entero, y tipo carcter o lgico. Es importante aclarar que cuando en un formato de instruccin aparece algo entre parntesis cuadrados [ ]. Significa que puede ir o no ir; es decir es opcional y cuando algo no tiene parntesis ni nada, significa que as debe ser y cuando algo aparece entre parntesis redondos ( ), significa que su contenido debe de ir. En esta primera etapa el ciclo do hacia uso de el estatuto If y se elimin la instruccin goto por estar en desuso, veamos esto a travs de un ejemplo. 5.2) Problema. Se desea obtener la serie de nmero pares comprendidos entre cero y cien.
PROGRAM PARES IMPLICIT NONE INTEGER :: NUM_PAR =0 DO IF (NUM_PAR> 100 )THEN EXIT ELSE WRITE(*,*)NUM_PAR NUM_PAR = NUM_PAR +2 END IF END DO END PROGRAM PARES

La parte enmarcada muestra el ciclo

Ciclo DO (hasta que) Este es el ciclo donde ya formalmente se sustituyen tanto el GO TO como el IF THEN en un solo estatuto de la forma [etiqueta1:] DO (expresion1= constante1), variable2.]

La etiqueta identifica a el ciclo y es opcional Do significa orden de hacer un ciclo. Expresin 1 es una expresin de modo entero, la cual indica el valor con el cual se inciar el ciclo. Variable1 constante1 es la variable que contendr el valor entero hasta el cual se terminar el ciclo. Pudiendo ser el valor constante en vez de variable.

83

Variable2 constante2 es el valor con el cual se incrementar cada vez que el ciclo efectu una vuelta completa y puede ser omitido si el incremento es de uno en uno. Es importante resaltar que los incrementos podrn ser tanto positivos como negativos.

Nota: Habr ocasiones que queramos conocer cuantas vueltas da el ciclo. Bueno para ello es suficiente con aplicar una sencilla frmula: Nmero Ciclos valor final del ciclo valor inicial del ciclo + incremento Incremento En este tipo de ciclos apreciamos ms claramente los incrementos que pueden ser de dos tipos: 1. 2. Tipo sumatoria.- Se incrementa ya sea negativa o positivamente sumando Algn valor constante y se puede representar por el smbolo Tipo productoria.- Aqu los incrementos son en base a productos y se Representan por .

De esta manera cada vez que un problema incrementos de sumatoria y/o productoria, sabremos que su solucin se facilita mediante este tipo de ciclos. En un ciclo Do los rangos de un ciclo terminan con el end do y no podrn ser cerrados si contienen uno o ms ciclos dentro sin cerrar. Grficamente tenemos

A
*Se cruzan los ciclos

A NOTA: Habr que recordar que sta ltima regla solamente opera cuando los ciclos DO se encuentran etiquetados Veamos un ejemplo para ilustrar lo anterior

84

5.3) Ejemplo: Se desea desplegar los nmeros nones comprendidos entre Treinta y nueve y ochenta.
PROGRAM DO_INCREMENTAR IMPLICIT NONE INTEGER:: NON CICLO_ NON: DO NON = 39,80 WRITE (*,*) NON NON= NON+2 END DO CICLO_NON END PROGRAM DO_INCREMENTAR

RANGO DEL CICLO

Aqu podemos apreciar El rango del ciclo consta de dos instrucciones solamente. Se omite el valor incremental por ser de uno en uno. 5.4) Incrementos de dos en dos.
PROGRAM DO_INCREMENTAR2 IMPLICIT NONE INTEGER:: NON CICLO_ NON: DO NON = 39,80,2 WRITE (*,*) NON END DO CICLO_NON END PROGRAM DO_INCREMENTAR2

RANGO DEL CICLO

85

Ahora se aprecia: El rango del ciclo solo tiene una instruccin write El estatuto absorbe el incremento de dos en dos. Ciclo Do-while (mientras) Este ciclo trabaja en forma inversa al el do hasta, el do hasta, termina su ciclo hasta que llega a determinado valor, en vez del do while que se encuentra dando ciclos mientras no llegue a satisfacer la expresin lgica, y su formato es: [etiqueta:] DO While (expresin lgica) --------- rango de el ciclo Enddo while 5.5) Ejemplo: Se desea leer y desplegar la matrcula y nombre de los alumnos, mientras la matrcula sea diferente de cero
PROGRAM AQUITAS IMPLICIT NONE INTEGER :: MATR CHARACTER (LEN=30)::NOM READ (*,1O) MAT, NOM 10 FORMAT (I8, A30) TAS:DO WHILE MATRICULA<> 0 WRITE (*,29)MATR, NOM 29 FORMAT (5X,I8,5X, A30) END DO WHILE TAS END PROGRAM AQUITAS

86

5.6) Ejemplo de aplicacin con incrementos productorios. Se desea obtener el factorial de un nmero N donde: Si: n > 0 n! = n * ( n 1 ) * ( n 2 ) * ........... Si: n = 0 n!= 1
PROGRAM FACTORIAL IMPLICIT NONE INTEGER :: NFAC, N ,I READ (*,100) N 100 FORMAT (I2) NFAC=1 DO I = 1, N NFAC= N FAC *I END DO WRITE (*,200) NFAC 200 FORMAT (5X,17) END PROGRAM FACTORIAL

El estatuto FOR ALL (para todos) Forma: (Nombre:) FOR ALL (variable1 = expresin lgica). valor y/o variable2, valor y/o variable3,

Nombre: Esta es una etiqueta que identifica el ciclo, puede ser opcional. FOR ALL: Estatuto que significa elaborar un ciclo para todos aquellos valores que satisfagan la expresin que solicita a continuacin: Variable1: Es la variable de tipo entero con el cual se identifica el contador del ciclo. Valor/Variable2: Es el valor y/o variable y/o expresin matemtica de tipo entero que contiene el punto donde se inicia el ciclo. Valor/Variable3: Es el valor y/o variable y/o expresin matemtica que contiene hasta donde es el lmite de veces que se efectuar el ciclo.

87

5.7) Ejemplo: Real, Dimensin (5,5):: matriz =0 : FORALL ( i= 1:5) Matriz = 0.75 End FORALL

5.8) Ejemplo: FORALL (I =1,n:, j =1 : m, matriz (i,j) / 0.) Matriz (i,j)= 1./ matriz (i,j) End FORALL Nota: En este ltimo ejemplo se excluyen
los valores iguales a cero para evitar dividir entre cero y se llegue a indeterminar.

Evidencia integradora
5.1.- Explique grficamente como se estructura un ciclo Do_incrementador. 5.2.-Qu ventajas proporcionan los ciclos Do vs. los ciclo If Then? 5.3.-De que modo deben de ser declaradas las variables de un Do_incrementador? 5.4.-Cul es la ltima instruccin de todo ciclo Do? 5.5.-Cules son las tres formas clsicas del Do? 5.6.-Se puede hacer que en vez de que el contador incremente, se decremente? 5.7.-Cundo se usa el comando Exit en un Do? 5.8.-Pueden anidarse los ciclos Do? 5.9.-Al estar anidados varios Dos, cual ciclo se cierra primero? 5.10.-Cundo conviene hacer uso de cada tipo de ciclo? ** Haciendo uso de todos y cada uno de los pasos para una programacin exitosa solucione los problemas enumerados: 5.11.- Un programa que lea n valores temperatura en grados Celsius y la convierta a grados Fahrenheit, kelvin y ranking si las frmulas fueran:
0

f = 9/5(0c+32)

k = 5/9(0f-32)+273.15

r= 3000k

5.12.-Haciendo uso de los operadores relacionales, localice el valor mayor entre tres nmeros ledos. Para n ciclos. 5.13.-Elabore un programa que lea n valores de l de tal forma que calcule el rea de dichos cuadrados. 5.14.-Un submarino amarillo viaj por las turbulentas aguas del ro Chuvscar, durante n ocasiones, y en cada ocasin su distancia viajada fue distinta y se ley en millas marinas, se desea conocer el equivalente en millas terrestres, yardas y metros.(milla marina = 1852.9m = 2025 yardas, milla terrestre = 1609.3m = 1760 yardas) 5.15.- En una piscina de clavados con 10m de profundidad mxima; una serie de n competidores se lanzan y cada uno llega a distinta profundidad

88

(p); se desea saber cual es la presin mxima que se sometieron, si la alberca tenia una temperatura de 16.6 grados centgrados.( a esa temperatura un centmetro de mercurio = 0.01358 kilogramos/ cm 2 = 13.58 cms de agua). Suponga la profundidad p en cms. 5.16.- Una flotilla de camiones llevan diferentes pesos de carga medida en kilogramos, al cruzar la frontera, la aduana solicita el equivalente en toneladas largas, cortas y en libras. Elabore un programa, si la flotilla consta de x camiones (tonelada corta = 2000 lbs = 807.2 kg y la tonelada larga = 2240lbs = 1.0161 tns = 1016kg), Para n ocasiones. 5.17.- Los buques petroleros llevan combustible de Tampico a Inglaterra, se cargan con medidas en litros y al llegar le solicitan el equivalente en Bushel. Cada buque lleva una carga n y son c buques (bushel = 2150.42 pulgadas cbicas x 352379 = Hectolitro = 100 lts ) 5.18.- Disee un programa que lea y despliegue lo ledo y el promedio de cada alumno y el promedio general de todos los alumnos si se tiene: Datos Matricula Nombre Especialidad Nota1 Variable Mat Nomb Esp Mate Tamao (caracteres) 8 30 3 6 Tipo Entero Alfanumrico Real Real con 3 fracciones (incluye punto) Real con 3 fracciones (incluye punto) Real con 3 fracciones (incluye punto) Real con 3 fracciones (incluye punto) Real con 3 fracciones (incluye punto) Real con 3 fracciones (incluye punto)

Nota2

Fin

Nota3 Nota4 *(promedio alumno) *(promedio grupo)

Fsica Quim Prom Pg

6 6 6 6

*Estos promedios se calculan dentro del programa.

89

5.19.-Haga un programa que calcule el valor de ngulo expresado en radianes, para la funcin seno lo cual es una serie infinita, se calculan solo 5 trminos.
n

Seno = (-1)n-1 2n-1 (2n-1)! i=1

(Recuerde el ejemplo resuelto de factorial)

La frmula quedar: Seno _ Teta =

Teta 3 Teta 5 Teta 7 + 3! 5! 7!

5.20.-Suponga que se desea calcular el promedio de las races medias cuadrticas de un modelo estocstico si se dan n valores y xi observaciones.

Prmc =

1 N

X
I

2 I

90

Anda mungkin juga menyukai