Está en la página 1de 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. Tipo sumatoria.- Se incrementa ya sea negativa o positivamente sumando


Algn valor constante y se puede representar por el smbolo
2. 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

*Se cruzan los ciclos

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 = valor y/o variable2, valor y/o variable3,
expresin lgica).

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: 5.8) Ejemplo:
Real, Dimensin (5,5):: matriz =0 FORALL (I =1,n:, j =1 : m, matriz (i,j) / 0.)
: Matriz (i,j)= 1./ matriz (i,j)
FORALL ( i= 1:5) End FORALL
Matriz = 0.75 Nota: En este ltimo ejemplo se excluyen
End FORALL 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) 0
k = 5/9(0f-32)+273.15 0
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 Variable Tamao Tipo


(caracteres)
Matricula Mat 8 Entero
Nombre Nomb 30 Alfanumrico
Especialidad Esp 3 Real
Nota1 Mate 6 Real con 3
fracciones (incluye
punto)

Nota2 Fin 6 Real con 3


fracciones (incluye
punto)
Nota3 Fsica 6 Real con 3
fracciones (incluye
punto)
Nota4 Quim 6 Real con 3
fracciones (incluye
punto)
*(promedio Prom 6 Real con 3
alumno) fracciones (incluye
punto)
*(promedio grupo) Pg 6 Real con 3
fracciones (incluye
punto)

*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 (Recuerde el ejemplo resuelto de factorial)


i=1 (2n-1)!

Teta 3 Teta 5 Teta 7


La frmula quedar: Seno _ Teta = +
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.

N
Prmc = 1
N X
I
2
I

90

También podría gustarte