SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
TAREA 04
4-1 ¿Cuáles de las siguientes expresiones son legales en Fortran? Si una expresión es legal, evalúela.
Asuma la secuencia de clasificación ASCII.
a) No es legal en Fortran. La comparación "123 > 'abc'" es ilegal ya que 'abc' es una cadena de caracteres
y 123 es un número entero. Los operadores relacionales solo se pueden usar para comparar valores del
mismo tipo.
b) No es legal en Fortran. "*9478'" es una cadena de caracteres no válida. Para representar un número
en base 10, debe escribirse simplemente como 9478.
c) Es legal en Fortran. ACHAR convierte un código de carácter en su carácter correspondiente, y "//" es
el operador de concatenación de cadenas en Fortran. En este caso, se está concatenando los caracteres
correspondientes a los códigos de caracteres 65, 95 y 72, que son "A", "_" y "H", respectivamente. Por lo
tanto, el resultado de la expresión es la cadena de caracteres "A_H".
d) Es legal en Fortran. ACHAR convierte un código de carácter en su carácter correspondiente y
ACHARINT convierte un carácter en su código de carácter correspondiente. En este caso, se está
sumando el código de carácter correspondiente al carácter "j" y el número entero 5, que es el código de
carácter correspondiente al carácter "o". Por lo tanto, el resultado de la expresión es el código de
carácter correspondiente al carácter "o".
4-2. Escriba las declaraciones de Fortran requeridas para calcular e imprimir los cuadrados de todos los
enteros pares entre 0 y 50.
PROGRAM CUADRADOS_PARES2
IMPLICIT NONE
INTEGER :: I, CUADRADO
DO I = 0, 50, 2
CUADRADO = I**2
PRINT*, CUADRADO
END DO
END PROGRAM CUADRADOS_PARES2
4-3. Escriba un programa Fortran para evaluar la ecuación y(x) = x* — 3x + 2 para todos los valores de x
entre —1 y 3, en pasos de 0,1.
PROGRAM EVALUAR_ECUACION2
IMPLICIT NONE
REAL ::X,Y
DO X = -1.0, 3.0, 0.1
Y = X**2 - 3.0*X + 2.0
PRINT*, "Y(", X, ") = ", Y
END DO
END PROGRAM EVALUAR_ECUACION2
4-4. Escriba los enunciados de Fortran necesarios para calcular y(t) a partir de la ecuación:
PROGRAM CALCULAR_Y2
IMPLICIT NONE
REAL :: X, Y
!LEER EL VALOR DE X
PRINT*, "INGRESE EL VALOR DE X:"
READ*, X
! CALCULAR Y(X)
IF (X >= 0.0) THEN
Y = -3.0*X**2 + 5.0
ELSE
Y = 3.0*X**2 + 5.0
END IF
! IMPRIMIR EL RESULTADO
PRINT*, "Y(", X, ") =", Y
END PROGRAM CALCULAR_Y2
4-9. Examine los siguientes bucles DO iterativos y determine el valor de 1res al final de cada uno de los
bucles, y también el número de veces que se ejecuta cada bucle. Suponga que todas las variables son
números enteros.
(a) El bucle DO itera sobre los valores de index desde -10 hasta 10 en incrementos de 1 y aumenta la
variable ires en 1 en cada iteración. Al final, ires tendrá el valor de 21 y el bucle se ejecuta 21 veces.
(b) El bucle DO anidado itera sobre los valores de index1 desde 1 hasta 20 en incrementos de 5 y luego
sobre los valores de index2 desde index1 hasta 20 en incrementos de 5. Si index1 es menor o igual a 10,
se omite la iteración actual con CYCLE. En cada iteración del bucle interior, se suma index2 a la variable
ires. ires tendrá el valor de 330 y el bucle se ejecuta 12 veces.
(c) El bucle DO anidado itera sobre los valores de index1 desde 10 hasta 4 en decrementos de 2 y luego
sobre los valores de index2 desde 2 hasta index1 en incrementos de 2. Si index2 es mayor que 6, el
bucle interior termina con EXIT. En cada iteración del bucle interior, se suma index2 a la variable ires.
ires tendrá el valor de 64 y el bucle se ejecuta 18 veces.
(d) El bucle DO anidado itera sobre los valores de index1 desde 10 hasta 4 en decrementos de 2 y luego
sobre los valores de index2 desde index1 hasta 2 en decrementos de 2. Si index2 es mayor que 6, el
bucle interior termina con EXIT 100. En cada iteración del bucle interior, se suma index2 a la variable
ires. ires tendrá el valor de 32 y el bucle se ejecuta 10 veces.
4-14. Escriba un programa Fortran para evaluar la función
Para cualquier valor de x especificado por el usuario, donde In es el logaritmo natural (logaritmo en base
e). escriba el programa con bucle, de modo que el programa repita el cálculo para cada valor legal de x
ingresado en el programa. cuando se ingresa un valor ilegal de x, finaliza el programa. (Tenga en cuenta
que los valores de x <= 1 son ilegales, porque el logaritmo natural de un número real negativo no está
definido.
PROGRAM LOGARITMO_NATURAL2
IMPLICIT NONE
REAL :: X, Y
PRINT *, "INGRESE UN VALOR PARA X (X > 0 Y X < 1): "
READ *, X
DO WHILE (X > 0 .AND. X < 1)
Y = LOG(1/(1-X))
PRINT *, "PARA X = ", X, " EL RESULTADO ES Y = ", Y
PRINT *, "INGRESE UN VALOR PARA X (X > 0 Y X < 1): "
READ *, X
END DO
PRINT *, "FIN DEL PROGRAMA."
END PROGRAM LOGARITMO_NATURAL2
4-15. ESCRIBA UN PROGRAMA FORTRAN PARA CONVERTIR TODOS LOS CARACTERES EN MAYÚSCULAS
EN UNA CADENA DE CARACTERES PROPORCIONADA POR EL USUARIO A MINÚSCULAS, SIN CAMBIAR
LOS CARACTERES EN MAYÚSCULAS Y NO ALFABÉTICOS EN LA CADENA. SUPONGA QUE SU
COMPUTADORA USA LA SECUENCIA DE CLASIFICACIÓN ASCII.
PROGRAM CONVERTIR_A_MINUSCULAS2
CHARACTER(LEN=50) :: CADENA
INTEGER :: I
PRINT*, "INGRESE UNA CADENA DE CARACTERES:"
READ*, CADENA
DO I = 1, LEN(CADENA)
IF (CADENA(I:I) >= 'A' .AND. CADENA(I:I) <= 'Z') THEN
CADENA(I:I) = CHAR(ICHAR(CADENA(I:I))+32)
END IF
END DO
PRINT*,"LA CADENA CONVERTIDA A MINÚSCULAS ES:"
PRINT*, CADENA
END PROGRAM CONVERTIR_A_MINUSCULAS2
4-16. cálculo de órbitas cuando un satélite gira alrededor de la tierra, la órbita del satélite formará una
elipse con la tierra ubicada en uno de los puntos focales de la elipse. la órbita del satélite se puede
expresar en coordenadas polares como
donde r y son la distancia y el ángulo del satélite desde el centro de la tierra, p es un parámetro que
θ
especifica el tamaño de la órbita y "e" es un parámetro que representa la excentricidad de la órbita. una
órbita circular tiene una excentricidad "e" de cero. una órbita elíptica tiene una excentricidad 0<= e <=
1. 1f e > 1, el satélite sigue una trayectoria hiperbólica y escapa del campo gravitatorio terrestre.
considere un satélite con un parámetro de tamaño p=1200 km. escriba un programa para calcular la
distancia del satélite al centro de la tierra en función de si el satélite tiene una excentricidad de (a)
θ
e=0; (b) e=0,25; c) e=0,5. escriba un solo programa en el que "r" y "e" sean valores de entrada.
¿qué tan cerca viene cada órbita de la tierra? ¿a qué distancia se aleja cada órbita de la tierra?
PROGRAM ORBIT_CALCULATION2
IMPLICIT NONE
REAL :: P, E, THETA, R
! ENTRADA DE DATOS
WRITE(*,*) "INGRESE EL VALOR DEL PARÁMETRO P (EN KM): "
READ(*,*) P
WRITE(*,*) "INGRESE EL VALOR DE LA EXCENTRICIDAD E: "
READ(*,*) E
! CÁLCULO DE LA DISTANCIA EN FUNCIÓN DE THETA
WRITE(*,*) "THETA (EN GRADOS) | DISTANCIA (EN KM)"
DO THETA = 0.0, 360.0, 10.0
R = P / (1.0 - E*COS(THETA*3.14159/180.0))
WRITE(*,*) THETA, " | ", R
END DO
END PROGRAM ORBIT_CALCULATION2
4-17. Escriba un programa c a p s que lea una cadena de caracteres, busque todas las palabras dentro de
la cadena y escriba en mayúscula la primera letra de cada palabra, mientras cambia el resto de la
palabra a minúsculas. Suponga que todos los caracteres no alfabéticos y no numéricos pueden marcar
los límites de una palabra dentro de la variable de carácter (por ejemplo, puntos, comas, etc.). Los
caracteres no alfabéticos deben dejarse sin cambios.
PROGRAM CAPS2
IMPLICIT NONE
CHARACTER(LEN=100) INPUT_STRING, OUTPUT_STRING
INTEGER :: I, J, LENGTH
LOGICAL :: NEW_WORD
WRITE(*,*) "INGRESE UNA CADENA DE CARACTERES:"
READ(*,*) INPUT_STRING
LENGTH = LEN_TRIM(INPUT_STRING)
DO I = 1, LENGTH
INPUT_STRING(I:I) = CHAR(ICHAR(INPUT_STRING(I:I))+32)
END DO
OUTPUT_STRING = INPUT_STRING
NEW_WORD = .TRUE.
DO I = 1, LENGTH
IF (NEW_WORD .AND. INPUT_STRING(I:I) >= "A" .AND. INPUT_STRING(I:I) <= "Z") THEN
OUTPUT_STRING(I:I) = CHAR(ICHAR(INPUT_STRING(I:I))-32)
NEW_WORD = .FALSE.
ELSEIF (INPUT_STRING(I:I) == " " .OR. INPUT_STRING(I:I) == "," .OR. &
INPUT_STRING(I:I) == "." .OR. INPUT_STRING(I:I) == ";" .OR. &
INPUT_STRING(I:I) == ":" .OR. INPUT_STRING(I:I) == "!" .OR. &
INPUT_STRING(I:I) == "?") THEN
NEW_WORD = .TRUE.
END IF
END DO
WRITE(*,*) "LA CADENA DE CARACTERES MODIFICADA ES:"
WRITE(*,*) OUTPUT_STRING
END PROGRAM CAPS2
4-18. Corriente a través de un diodo. La corriente que fluye a través del diodo semiconductor que se
muestra en la figura 4-14 está dada por la ecuación
Dónde
VD = el voltaje a través del diodo, en voltios
=el flujo de corriente a través del diodo, en amperios
𝑖𝐷
= la corriente de fuga del diodo, en amperios
𝑙0
q=la carga de un electrón, 1,602x C
10
−19
k=constante de Boltzmann, 1,38x J/K
10
−23
T=temperatura, en kelvin (k)
La corriente de fuga del diodo es 2,0 "u" A. Escriba un programa de computadora para calcular la
𝑙0
corriente que fluye a través de este diodo para todos los voltajes de -1,0 V a +0,6 V, en pasos de 0,1 V.
Repita este proceso para las siguientes temperaturas: 75 °F, 100 °F Y 125 °F. Use el programa del Ejemplo
2-3 para convertir las temperaturas de °F a kelvin.
PROGRAM CORRIENTE_DIODO2
IMPLICIT NONE
! DECLARACIÓN DE VARIABLES
REAL :: VD, I_D, L_0, Q, K, T, T_KELVIN
INTEGER :: I, N
REAL, PARAMETER :: DELTAV = 0.1, T_75F = 75.0, T_100F = 100.0, T_125F = 125.0
! CONSTANTES
L_0 = 2.0E-6
Q = 1.602E-19
K = 1.38E-23
! CALCULAR LA CORRIENTE PARA DIFERENTES TEMPERATURAS
DO N = 1, 3
SELECT CASE(N)
CASE(1)
T = T_75F
CASE(2)
T = T_100F
CASE(3)
T = T_125F
END SELECT
! CONVERTIR LA TEMPERATURA A KELVIN
T_KELVIN = (T - 32.0) * (5.0 / 9.0) + 273.15
! CALCULAR LA CORRIENTE PARA DIFERENTES VOLTAJES
WRITE(*,*) 'TEMPERATURA (F): ', T
WRITE(*,*) 'TEMPERATURA (K): ', T_KELVIN
WRITE(*,*) 'VOLTAJE (V) CORRIENTE (A)'
DO I = -10, 6
VD = I * DELTAV
IF (VD < 0.0) THEN
I_D = L_0 + (EXP(Q * VD / (K * T_KELVIN)) - 1.0) * (1.0 / (10.0 * L_0))
ELSE
I_D = L_0 + (EXP(Q * VD / (K * T_KELVIN)) - 1.0) * (1.0 / (10.0 * L_0))
END IF
PRINT*, VD, I_D
END DO
END DO
END PROGRAM CORRIENTE_DIODO2
4-23. Tensión en un cable. Se va a colgar un objeto de 200 kilogramos del extremo de un poste
horizontal rígido de 3 m de peso despreciable, como se muestra en la figura 4-15. El poste está sujeto a
una pared por medio de un pivote y está sostenido por un cable de 3 m que está sujeto a la pared en un
punto más alto. La tensión en este cable viene dada por la ecuación.
Un peso de 200 libras suspendido de una barra rígida sostenida por un cable.
Donde T es la tensión en el cable, W es el peso del objeto, "lc" es la longitud del cable, "lp" es la longitud
del poste y "d" es la distancia a lo largo del poste en la que el cable está conectado. Escriba un programa
para determinar la distancia "d" a la cual conectar el cable al poste para minimizar la tensión en el cable.
Para ello, el programa deberá calcular la tensión en el cable a intervalos de 0,1m desde d=0,5m hasta
d=2,8m, y deberá localizar la posición "d" que produzca la tensión mínima.
PROGRAM TENSION_2
IMPLICIT NONE
INTEGER::I=1
REAL::T,DT,D,W,LC,LP,A
D=0.5
DT=0.1
PRINT*,"DIGITE EL W"
READ*,W
PRINT*,"DIGITE LC"
READ*,LC
PRINT*,"DIGITE LP"
READ*,LP
DO WHILE (D<=2.8)
A=SQRT((LP*2)-(D*2))
T=(W*LC*LP)/(D*A)
PRINT*,I,")","LA TENSION EN ",D," METROS ES: ",T
D=D+DT
I=I+1
END DO
PRINT*,""
PRINT*, "LA TENSION FINAL ES: ",T
END PROGRAM TENSION_2
4-24. Si la tensión máxima sobre el cable en el ejercicio anterior es de 350, ¿en qué rango de distancias
"d" es seguro sujetar el cable al poste?
PROGRAM TENSION_CABLE2
IMPLICIT NONE
REAL :: D, H, A, B, C, THETA, T_MAX
WRITE(*,*) 'INGRESE LA ALTURA DEL POSTE:'
READ(*,*) H
WRITE(*,*) 'INGRESE LA DISTANCIA HORIZONTAL DESDE LA BASE DEL POSTE HASTA EL PUNTO DONDE
SE SUJETA EL CABLE:'
READ(*,*) D
WRITE(*,*) 'INGRESE EL ÁNGULO ENTRE EL CABLE Y EL SUELO (EN GRADOS):'
READ(*,*) THETA
THETA = THETA * 3.14159265 / 180.0
A = SIN(THETA)
B = COS(THETA)
C = H / B
T_MAX = 350.0
WRITE(*,*) 'DISTANCIA (M) TENSIÓN (N)'
DO WHILE (D <= C)
T_MAX = MIN(T_MAX, 1000.0 * H / SIN(THETA) + 500.0 * D / COS(THETA))
WRITE(*,'(F10.2,F12.2)') D, T_MAX
D = D + 0.5
END DO
IF (T_MAX <= 350.0) THEN
WRITE(*,*) 'ES SEGURO SUJETAR EL CABLE AL POSTE EN EL RANGO DE DISTANCIAS:', D-0.5, 'M -', C,
'M'
ELSE
WRITE(*,*) 'NO ES SEGURO SUJETAR EL CABLE AL POSTE EN NINGÚN PUNTO.'
END IF
END PROGRAM TENSION_CABLE2
4-25. Crecimiento bacteriano, supongamos que un biólogo realiza un experimento en el que mide la
velocidad a la que un tipo específico de bacteria se reproduce asexualmente en diferentes medios de
cultivo. El experimento muestra que en el Medio A las bacterias se reproducen una vez cada 90 minutos,
y en el Medio B las bacterias se reproducen una vez cada 120 minutos. Suponga que se coloca una sola
bacteria en cada medio de cultivo al comienzo del experimento. Escriba un programa Fortran que
calcule y anote el número de bacterias presentes en cada cultivo a intervalos de 6 horas desde el
comienzo del experimento hasta que hayan transcurrido 24 horas. ¿Cómo se comparan los números de
bacterias en los dos medios después de 24 horas?
PROGRAM CRECIMIENTO_BACTERIANO2
IMPLICIT NONE
INTEGER :: I, J, T
REAL :: TIEMPO(5)
REAL :: NUM_BACTERIAS_A(5), NUM_BACTERIAS_B(5)
REAL, PARAMETER :: T_MAX = 24.0, DT = 0.5
REAL, PARAMETER :: T_A = 90.0, T_B = 120.0
INTEGER, PARAMETER :: N_BACTERIAS = 1
TIEMPO(1) = 0.0
NUM_BACTERIAS_A(1) = N_BACTERIAS
NUM_BACTERIAS_B(1) = N_BACTERIAS
DO I = 2, 5
TIEMPO(I) = TIEMPO(I-1) + 6.0
NUM_BACTERIAS_A(I) = NUM_BACTERIAS_A(I-1) * EXP(TIEMPO(I) / T_A * LOG(2.0))
NUM_BACTERIAS_B(I) = NUM_BACTERIAS_B(I-1) * EXP(TIEMPO(I) / T_B * LOG(2.0))
END DO
! IMPRIMIR LOS RESULTADOS
WRITE(*, "(A, A, A, A)") "TIEMPO", "BACTERIAS EN A", "BACTERIAS EN B", "DIFERENCIA"
DO J = 1, 5
WRITE(*, "(F6.2, 2X, I10, 2X, I10, 2X, I10)") TIEMPO(J), &
INT(NUM_BACTERIAS_A(J)), INT(NUM_BACTERIAS_B(J)), &
INT(NUM_BACTERIAS_A(J) - NUM_BACTERIAS_B(J))
END DO
END PROGRAM CRECIMIENTO_BACTERIANO2
4-26. Decibeles, los ingenieros a menudo miden la relación de dos mediciones de potencia en decibelios
o dB. La ecuación para la relación de dos medidas de potencia en decibelios es
Cuando P2 es el nivel de potencia que se mide y P1 es un nivel de potencia de referencia. suponga que
el nivel de potencia de referencia P1 es de 1 w y 20 w, en pasos de 0,5 w.
PROGRAM CALCULOS_2
INTEGER :: I
REAL :: P2, DB
REAL, PARAMETER :: P1 = 1.0 ! REFERENCE POWER LEVEL
DO I=0, 38, 1 ! 38 REPRESENTS (20-1)/0.5
P2 = (I * 0.5) + 1.0 ! CALCULATE POWER LEVEL P2
DB = 10.0 * LOG10(P2/P1) ! CALCULATE DECIBEL LEVEL
WRITE(*,*) P2, DB ! OUTPUT POWER LEVEL AND DECIBEL LEVEL
END DO
END PROGRAM CALCULOS_2
4-27. infinite series, trigonometric functions are usually calculated on computers by using a truncated
infinite series. an infinite series is an infinite set of terms that together add up to the value of a
particular function or expression. for example, one infinite series used to evaluate the sine of a number
is.
where x is in units of radians.
since a computer does not have enough time to add an infinite number of terms for every sine that is
calculated, the infinite series is truncated after a finite number of terms. the number of terms that
should be kept in the series is just enough to calculate the function to the precision of the floating-point
numbers on the computer on which the function is being evaluated. the truncated infinite series for sin
x is
donde n es el número de términos a retener en la serie.
escriba un programa fortran que lea un valor para x en grados y luego calcule el seno de x usando la
función intrínseca del seno. luego, calcule el seno de x usando la ecuación (4.19), con n=1,2,3,…10.
compara el verdadero valor de sen x con los valores calculados usando la serie infinita truncada.
¿cuántos términos se requieren para calcular sen x con la máxima precisión de su computadora?
PROGRAM MEDGEO
IMPLICIT NONE
REAL::MG,C,N
INTEGER::PRO,RES,X
X=1
RES=1
PRO=0
DO WHILE (X>0)
PRINT*, "DIGITA UN NUMERO"
READ*,X
IF (X>0)THEN
RES=RES*X
PRO=RES
END IF
END DO
PRINT*,"EL PRODUCTO ES: ",PRO
PRINT*,"DIGITA LA CANTIDAD DE NUMEROS"
READ*,N
C=1/N
MG=PRO**C
PRINT*,"LA MEDIA GEOMETRICA ES: ",MG
END PROGRAM MEDGEO
4-29. Promedio RMS, el promedio de la raíz cuadrada media (RMS) es otra forma de calcular la media de
un conjunto de números. El promedio "RMS" de una serie de números es la raíz cuadrada de la media
aritmética de los cuadrados de los números:
Escriba un programa Fortran que acepte un número arbitrario de valores de entrada positivos y calcule
el promedio de los números. Solicite al usuario la cantidad de valores que se deben ingresar y use un
bucle Do para leer los números. Pruebe su programa calculando el RMS de los cuatro números 10, 5, 4 y
5.
PROGRAM PROM_RMS2
IMPLICIT NONE
REAL::RMS,N,X
REAL::SUM,POT
X=1
SUM=0
DO WHILE (X>0)
PRINT*, "DIGITA UN NUMERO"
READ*,X
IF (X>0)THEN
POT=X**2
SUM=SUM+POT
END IF
END DO
PRINT*,"LA SUMA DE POTENCIAS ES: ",SUM
PRINT*,"DIGITE LA CANTDAD DE NUMEROS"
READ*,N
RMS=SQRT((1/N)*(SUM))
PRINT*,"EL PROMEDIO RMS ES: ",RMS
END PROGRAM PROM_RMS2
4-30. Media armónica, la media armónica es otra forma de calcular la media de un conjunto de
números. La media armónica de un conjunto de números viene dada por la ecuación:
Escriba un programa Fortran que lea un número arbitrario de valores de entrada positivos y calcule la
media armónica de los números. Utilice cualquier método que desee leer en los valores de entrada.
Pruebe su programa calculando la media armónica de los cuatro números 10, 5, 4 y 5.
PROGRAM MED_ARM2
IMPLICIT NONE
REAL::MH,N
REAL::SUM,RES,X,FAC
X=1
FAC=0
DO WHILE (X>0)
PRINT*, "DIGITA UN NUMERO"
READ*,X
IF (X>0)THEN
RES=1/X
FAC=RES
SUM=SUM+FAC
END IF
END DO
PRINT*,"DIGITA LA CANTIDAD DE NUMEROS"
READ*,N
PRINT*, "LA SUMA DE INVERSOS ES: ",SUM
MH=N/(SUM)
PRINT*,"LA MEDIA ARMONICA ES: ",MH
END PROGRAM MED_ARM2
4-31. Escriba un solo programa Fortran que calcule la media aritmética (promedio), el promedio RMS, la
media geométrica y la media armónica para un conjunto de números positivos. Utilice cualquier método
que desee leer en los valores de entrada. Compare estos valores para cada uno de los siguientes
conjuntos de números:
PROGRAM MEDIAS_2
INTEGER :: N, I
REAL :: ARRAY(100), SUM, ARITMETICA, RMS, GEOMETRICA, ARMONICA
WRITE(*,*) "INGRESE LA CANTIDAD DE NUMEROS: "
READ(*,*) N
WRITE(*,*) "INGRESE LOS NUMEROS: "
DO I=1, N
READ(*,*) ARRAY(I)
SUM = SUM + ARRAY(I)
END DO
ARITMETICA = SUM/N ! CALCULA MEDIA ARITMETICA
SUM = 0.0 ! REINICIA SUMATORIA
DO I=1, N
SUM = SUM + (ARRAY(I)**2)
END DO
RMS = SQRT(SUM/N) ! CALCULA PROMEDIO RMS
GEOMETRICA = 1.0 ! CALCULA MEDIA GEOMETRICA
DO I=1, N
GEOMETRICA = GEOMETRICA * ARRAY(I)
END DO
GEOMETRICA = GEOMETRICA**(1.0/N)
ARMONICA = 0.0 ! CALCULA MEDIA ARMONICA
DO I=1, N
ARMONICA = ARMONICA + 1.0/ARRAY(I)
END DO
ARMONICA = N/ARMONICA
WRITE(*,*) "LA MEDIA ARITMETICA ES: ", ARITMETICA
WRITE(*,*) "EL PROMEDIO RMS ES: ", RMS
WRITE(*,*) "LA MEDIA GEOMETRICA ES: ", GEOMETRICA
WRITE(*,*) "LA MEDIA ARMONICA ES: ", ARMONICA
END PROGRAM MEDIAS_2
4-32. Cálculo del tiempo medio entre fallas, la confiabilidad de un equipo electrónico generalmente se
mide en términos de tiempo medio entre fallas (MTBF), donde MTBF es el tiempo promedio que el
equipo puede operar antes de que ocurra una falla en él. Para sistemas grandes que contienen muchas
piezas de equipo electrónico, es habitual determinar los MTBF de cada componente y calcular el MTBF
general del sistema a partir de las tasas de falla de los componentes individuales. Si el sistema está
estructurado como el que se muestra en la figura 4-16, cada componente debe funcionar para que todo
el sistema funcione, y el MTBF general del sistema se puede calcular como
Escriba un programa que lea el número de componentes en serie en un sistema y los MTBF para cada
componente, y luego calcule el MTBF general para el sistema. A
Un sistema electrónico que contiene tres subsistemas con MTBF conocidos.
pruebe su programa, determine el MTBF para un sistema de radar que consta de un subsistema de
antena con un MTBF de 2000 horas, un transmisor con un MTBF de 800 horas, un receptor con un MTBF
de 3000 horas y una computadora con un MTBF de 5000 horas .
PROGRAM MEAN_TIME2
INTEGER :: N
REAL :: NUM, SUMA, MEDIA_MTBF
PRINT*, "INGRESE LOS TIEMPO MEDIO ENTRE FALLOS E INGRESE UN NUMERO NEGATIVO PARA FINALIZAR"
READ*, NUM
SUMA = 0.0
N=0
DO WHILE (NUM>=0)
N=N+1
SUMA = SUMA + 1 / NUM
READ*, NUM
END DO
MEDIA_MTBF = 1 / SUMA
PRINT*, "LA MEDIA ARMÓNICA DE LOS ",N," VALORES INGRESADOS ES: ", MEDIA_MTBF
END PROGRAM MEAN_TIME2
4-33. Ley de los gases ideales, un gas ideal es aquel en el que todas las colisiones entre moléculas son
perfectamente elásticas. Es posible pensar en las moléculas de un gas ideal como bolas de billar
perfectamente duras que chocan y rebotan entre sí sin perder energía cinética. dicho gas se puede
caracterizar por tres cantidades: presión absoluta (P), volumen (v) y temperatura absoluta (T). La
relación entre estas cantidades en un gas ideal se conoce como la Ley de los Gases Ideales:
Donde P es la presión del gas en kilopascales (kPa), V es el volumen del gas en litros (L), n es el número
de moléculas del gas en unidades de moles (mol), R es la constante universal de los gases (8.314
L.KPa/mol.K), y T es la temperatura absoluta en kelvin (k).
(Nota: 1 mol=6.02x moles)
10
23
Suponga que una muestra de un gas ideal contiene 1 mol de moléculas a una temperatura de 273 K y
responda las siguientes preguntas.
(a)Escriba un programa de temperatura para calcular e imprimir el volumen de este gas a medida que su
presión varía de 1 a 1001 KPa en pasos de 1000 KPa.
PROGRAM GAS_IDEAL2
IMPLICIT NONE
! DECLARACIÓN DE VARIABLES
REAL :: P, V, N, T, R
INTEGER :: I
! ASIGNACIÓN DE VALORES INICIALES
N = 1.0 ! 1 MOL
T = 273.0 ! 273 K
R = 8.314 ! CONSTANTE UNIVERSAL DE LOS GASES (L.KPA/MOL.K
! CICLO PARA CALCULAR EL VOLUMEN A DIFERENTES PRESIONES
DO I = 1, 11, 1 ! I VARÍA DE 1 A 11 EN PASOS DE 1
P = I * 1000.0 ! PRESIÓN EN KPA
! CÁLCULO DEL VOLUMEN SEGÚN LA LEY DE LOS GASES IDEALES
V = N * R * T / P
! IMPRESIÓN DE LOS RESULTADOS
PRINT*,'PRESIÓN (KPA): ', P
PRINT*,'VOLUMEN (L): ', V
END DO
END PROGRAM GAS_IDEAL2
(b) Suponga que la temperatura del gas aumenta a 300 K. ¿Cómo varía ahora el volumen de este gas con
la presión en el mismo rango?
PROGRAM GAS_IDEAL2
IMPLICIT NONE
REAL :: P, V, T
REAL, PARAMETER :: N = 1.0 ! NÚMERO DE MOLES
REAL, PARAMETER :: R = 8.314 ! CONSTANTE UNIVERSAL DE LOS GASES EN L.KPA/MOL.K
T = 300.0 ! TEMPERATURA EN KELVIN
! ENCABEZADO DE LA TABLA
PRINT *, "PRESIÓN (KPA)", "VOLUMEN (L)"
! CALCULAR E IMPRIMIR EL VOLUMEN PARA CADA VALOR DE PRESIÓN
DO P = 1.0, 1001.0, 1000.0
V = N * R * T / P
PRINT *, P, V
END DO
END PROGRAM GAS_IDEAL2
4.34. Asuma que el volumen de 1 mol de un gas ideal ha tenido una variación de 10 L y calcule e
imprima la presión del gas en función de la temperatura. La temperatura ha variado de 250 a 400 kelvin.
PROGRAM GAS_IDEAL
IMPLICIT NONE
REAL :: P, V, N, R, T, V0, DV, T0, DT
INTEGER :: I
N = 1.0
R = 8.314
! DEFINIR VOLUMEN INICIAL Y VARIACIÓN DE VOLUMEN
V0 = 1.0
DV = 10.0
! DEFINIR TEMPERATURA INICIAL Y VARIACIÓN DE TEMPERATURA
T0 = 250.0
DT = 10.0
DO I = 0, 15
! CALCULAR EL VOLUMEN PARA LA TEMPERATURA ACTUAL
V = V0 + I*DV
! CALCULAR LA PRESIÓN PARA CADA TEMPERATURA
T = T0 + I*DT
P = N*R*T/V
! IMPRIMIR LA PRESIÓN PARA CADA TEMPERATURA
PRINT*, "TEMPERATURA = ", T, " K, PRESIÓN = ", P, " KPA"
END DO
END PROGRAM GAS_IDEAL
4.35. La palanca(Figura4-17) es la más simple máquina. Es utilizado para elevar cargas que de lo
contrario sería demasiado pesado de elevar. Si no hay fricción, la relación entre la fuerza aplicada a la
palanca y el peso que puede ser elevado es dado por la ecuación.
Donde F*APPP es la fuerza aplicada en newtons, "d1" es la distancia desde el punto de apoyo hasta el
punto donde se aplica la fuerza, "d2" es la distancia desde el punto de apoyo hasta la ubicación de la
carga y peso es el peso (= fuerza hacia abajo) de la carga.
Suponga que la fuerza aplicada consiste en pesos que se pueden apilar en un extremo de la palanca.
escriba un programa que calcule el peso requerido para levantar una carga de 600 kg si la distancia "d2"
desde el punto de apoyo hasta la ubicación de la carga se fija en 1 m, y la distancia "d1" desde el punto
de apoyo hasta el punto donde se encuentran los pesos se aplican varía de 0,5 m a 3,0 m en pasos de
0,1 m. Suponiendo que solo tenemos 400 Kg de pesos disponibles, ¿Cuál es la distancia más corta "d1"
que podría usarse en esta palanca?
PROGRAM PALANCA_2
IMPLICIT NONE
INTEGER :: I
REAL :: D1, D2, PESO, PESOCARGA, PESOMAXIMO
REAL :: EPS = 0.001 ! VALOR PEQUEÑO PARA COMPROBAR SI EL PESO ESTÁ SUFICIENTEMENTE CERCA
DEL PESOMAXIMO
LOGICAL :: ENCONTRADO = .FALSE. ! BANDERA PARA INDICAR SI SE HA ENCONTRADO UNA SOLUCIÓN
D2 = 1.0
PESOCARGA = 600.0
PESOMAXIMO = 400.0
D1 = 0.5
DO I = 1, 26
PESO = PESOCARGA * D2 / D1
IF (ABS(PESO-PESOMAXIMO) < EPS) THEN
WRITE(*,*) "SE ENCONTRÓ UNA SOLUCIÓN PARA D1 = ", D1, " CON PESO = ", PESO
ENCONTRADO = .TRUE.
EXIT
ELSE IF (PESO < PESOMAXIMO) THEN
ENCONTRADO = .TRUE.
EXIT
END IF
D1 = D1 + 0.1
END DO
IF (.NOT.ENCONTRADO) THEN
WRITE(*,*) "NO SE ENCONTRÓ SOLUCIÓN CON LOS PESOS DISPONIBLES."
ELSE
WRITE(*,*) "DISTANCIA MÁS CORTA D1 QUE SE PUEDE USAR PARA LEVANTAR LA CARGA: ", D1
END IF
END PROGRAM PALANCA_2
TAREA 04_removed.pdf

Más contenido relacionado

Similar a TAREA 04_removed.pdf

Algoritmos 50 ejemplos
Algoritmos 50 ejemplosAlgoritmos 50 ejemplos
Algoritmos 50 ejemplosenyol
 
Algoritmos 50 ejemplos (1)
Algoritmos 50 ejemplos (1)Algoritmos 50 ejemplos (1)
Algoritmos 50 ejemplos (1)Andres Rivero
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmodayanib
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmodayanib
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmodayanib
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmodayanib
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmodayanib
 
Algoritmospseudocodigo
AlgoritmospseudocodigoAlgoritmospseudocodigo
AlgoritmospseudocodigoDavid Perez
 
Capítulo 4 funciones matemáticas
Capítulo 4  funciones matemáticasCapítulo 4  funciones matemáticas
Capítulo 4 funciones matemáticasJulio Ayala Rolón
 
Mas_de_400_ejercicios_de_programacion_en (2).pdf
Mas_de_400_ejercicios_de_programacion_en (2).pdfMas_de_400_ejercicios_de_programacion_en (2).pdf
Mas_de_400_ejercicios_de_programacion_en (2).pdfmargothingrithllanca
 
Mas_de_400_ejercicios_de_programacion_en (1).pdf
Mas_de_400_ejercicios_de_programacion_en (1).pdfMas_de_400_ejercicios_de_programacion_en (1).pdf
Mas_de_400_ejercicios_de_programacion_en (1).pdfmargothingrithllanca
 
Informe técnico 1
Informe técnico 1Informe técnico 1
Informe técnico 1Saya Paredes
 
Programa en emu8086
Programa en emu8086Programa en emu8086
Programa en emu8086Fredy Soncco
 
Microcontroladores AVR y Arduino: Programación del microatmega328p en ensambl...
Microcontroladores AVR y Arduino: Programación del microatmega328p en ensambl...Microcontroladores AVR y Arduino: Programación del microatmega328p en ensambl...
Microcontroladores AVR y Arduino: Programación del microatmega328p en ensambl...SANTIAGO PABLO ALBERTO
 
Apuntes1 elementos del lenguaje c
Apuntes1 elementos del lenguaje cApuntes1 elementos del lenguaje c
Apuntes1 elementos del lenguaje cZalimanunezc
 

Similar a TAREA 04_removed.pdf (20)

Algoritmos 50 ejemplos
Algoritmos 50 ejemplosAlgoritmos 50 ejemplos
Algoritmos 50 ejemplos
 
Algoritmos 50 ejemplos (1)
Algoritmos 50 ejemplos (1)Algoritmos 50 ejemplos (1)
Algoritmos 50 ejemplos (1)
 
Algoritmos 50 ejemplos
Algoritmos 50 ejemplosAlgoritmos 50 ejemplos
Algoritmos 50 ejemplos
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmospseudocodigo
AlgoritmospseudocodigoAlgoritmospseudocodigo
Algoritmospseudocodigo
 
Ejemplos de Pseudocódigo
Ejemplos de PseudocódigoEjemplos de Pseudocódigo
Ejemplos de Pseudocódigo
 
algoritrmos
algoritrmosalgoritrmos
algoritrmos
 
Capítulo 4 funciones matemáticas
Capítulo 4  funciones matemáticasCapítulo 4  funciones matemáticas
Capítulo 4 funciones matemáticas
 
Algoritmos 50 ejemplos
Algoritmos 50 ejemplosAlgoritmos 50 ejemplos
Algoritmos 50 ejemplos
 
Mas_de_400_ejercicios_de_programacion_en (2).pdf
Mas_de_400_ejercicios_de_programacion_en (2).pdfMas_de_400_ejercicios_de_programacion_en (2).pdf
Mas_de_400_ejercicios_de_programacion_en (2).pdf
 
Mas_de_400_ejercicios_de_programacion_en (1).pdf
Mas_de_400_ejercicios_de_programacion_en (1).pdfMas_de_400_ejercicios_de_programacion_en (1).pdf
Mas_de_400_ejercicios_de_programacion_en (1).pdf
 
Informe técnico 1
Informe técnico 1Informe técnico 1
Informe técnico 1
 
Programa en emu8086
Programa en emu8086Programa en emu8086
Programa en emu8086
 
Microcontroladores AVR y Arduino: Programación del microatmega328p en ensambl...
Microcontroladores AVR y Arduino: Programación del microatmega328p en ensambl...Microcontroladores AVR y Arduino: Programación del microatmega328p en ensambl...
Microcontroladores AVR y Arduino: Programación del microatmega328p en ensambl...
 
Elementos de programacion t1
Elementos de programacion t1Elementos de programacion t1
Elementos de programacion t1
 
Apuntes1 elementos del lenguaje c
Apuntes1 elementos del lenguaje cApuntes1 elementos del lenguaje c
Apuntes1 elementos del lenguaje c
 

Último

Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Marketing BRANDING
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 

Último (20)

Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 

TAREA 04_removed.pdf

  • 1. TAREA 04 4-1 ¿Cuáles de las siguientes expresiones son legales en Fortran? Si una expresión es legal, evalúela. Asuma la secuencia de clasificación ASCII. a) No es legal en Fortran. La comparación "123 > 'abc'" es ilegal ya que 'abc' es una cadena de caracteres y 123 es un número entero. Los operadores relacionales solo se pueden usar para comparar valores del mismo tipo. b) No es legal en Fortran. "*9478'" es una cadena de caracteres no válida. Para representar un número en base 10, debe escribirse simplemente como 9478. c) Es legal en Fortran. ACHAR convierte un código de carácter en su carácter correspondiente, y "//" es el operador de concatenación de cadenas en Fortran. En este caso, se está concatenando los caracteres correspondientes a los códigos de caracteres 65, 95 y 72, que son "A", "_" y "H", respectivamente. Por lo tanto, el resultado de la expresión es la cadena de caracteres "A_H". d) Es legal en Fortran. ACHAR convierte un código de carácter en su carácter correspondiente y ACHARINT convierte un carácter en su código de carácter correspondiente. En este caso, se está sumando el código de carácter correspondiente al carácter "j" y el número entero 5, que es el código de carácter correspondiente al carácter "o". Por lo tanto, el resultado de la expresión es el código de carácter correspondiente al carácter "o". 4-2. Escriba las declaraciones de Fortran requeridas para calcular e imprimir los cuadrados de todos los enteros pares entre 0 y 50. PROGRAM CUADRADOS_PARES2 IMPLICIT NONE INTEGER :: I, CUADRADO DO I = 0, 50, 2 CUADRADO = I**2 PRINT*, CUADRADO END DO END PROGRAM CUADRADOS_PARES2
  • 2. 4-3. Escriba un programa Fortran para evaluar la ecuación y(x) = x* — 3x + 2 para todos los valores de x entre —1 y 3, en pasos de 0,1. PROGRAM EVALUAR_ECUACION2 IMPLICIT NONE REAL ::X,Y DO X = -1.0, 3.0, 0.1 Y = X**2 - 3.0*X + 2.0 PRINT*, "Y(", X, ") = ", Y END DO END PROGRAM EVALUAR_ECUACION2 4-4. Escriba los enunciados de Fortran necesarios para calcular y(t) a partir de la ecuación: PROGRAM CALCULAR_Y2 IMPLICIT NONE REAL :: X, Y !LEER EL VALOR DE X PRINT*, "INGRESE EL VALOR DE X:" READ*, X ! CALCULAR Y(X) IF (X >= 0.0) THEN Y = -3.0*X**2 + 5.0 ELSE Y = 3.0*X**2 + 5.0
  • 3. END IF ! IMPRIMIR EL RESULTADO PRINT*, "Y(", X, ") =", Y END PROGRAM CALCULAR_Y2 4-9. Examine los siguientes bucles DO iterativos y determine el valor de 1res al final de cada uno de los bucles, y también el número de veces que se ejecuta cada bucle. Suponga que todas las variables son números enteros. (a) El bucle DO itera sobre los valores de index desde -10 hasta 10 en incrementos de 1 y aumenta la variable ires en 1 en cada iteración. Al final, ires tendrá el valor de 21 y el bucle se ejecuta 21 veces. (b) El bucle DO anidado itera sobre los valores de index1 desde 1 hasta 20 en incrementos de 5 y luego sobre los valores de index2 desde index1 hasta 20 en incrementos de 5. Si index1 es menor o igual a 10, se omite la iteración actual con CYCLE. En cada iteración del bucle interior, se suma index2 a la variable ires. ires tendrá el valor de 330 y el bucle se ejecuta 12 veces. (c) El bucle DO anidado itera sobre los valores de index1 desde 10 hasta 4 en decrementos de 2 y luego sobre los valores de index2 desde 2 hasta index1 en incrementos de 2. Si index2 es mayor que 6, el
  • 4. bucle interior termina con EXIT. En cada iteración del bucle interior, se suma index2 a la variable ires. ires tendrá el valor de 64 y el bucle se ejecuta 18 veces. (d) El bucle DO anidado itera sobre los valores de index1 desde 10 hasta 4 en decrementos de 2 y luego sobre los valores de index2 desde index1 hasta 2 en decrementos de 2. Si index2 es mayor que 6, el bucle interior termina con EXIT 100. En cada iteración del bucle interior, se suma index2 a la variable ires. ires tendrá el valor de 32 y el bucle se ejecuta 10 veces. 4-14. Escriba un programa Fortran para evaluar la función Para cualquier valor de x especificado por el usuario, donde In es el logaritmo natural (logaritmo en base e). escriba el programa con bucle, de modo que el programa repita el cálculo para cada valor legal de x ingresado en el programa. cuando se ingresa un valor ilegal de x, finaliza el programa. (Tenga en cuenta que los valores de x <= 1 son ilegales, porque el logaritmo natural de un número real negativo no está definido. PROGRAM LOGARITMO_NATURAL2 IMPLICIT NONE REAL :: X, Y PRINT *, "INGRESE UN VALOR PARA X (X > 0 Y X < 1): " READ *, X DO WHILE (X > 0 .AND. X < 1) Y = LOG(1/(1-X)) PRINT *, "PARA X = ", X, " EL RESULTADO ES Y = ", Y PRINT *, "INGRESE UN VALOR PARA X (X > 0 Y X < 1): " READ *, X END DO PRINT *, "FIN DEL PROGRAMA." END PROGRAM LOGARITMO_NATURAL2 4-15. ESCRIBA UN PROGRAMA FORTRAN PARA CONVERTIR TODOS LOS CARACTERES EN MAYÚSCULAS EN UNA CADENA DE CARACTERES PROPORCIONADA POR EL USUARIO A MINÚSCULAS, SIN CAMBIAR LOS CARACTERES EN MAYÚSCULAS Y NO ALFABÉTICOS EN LA CADENA. SUPONGA QUE SU COMPUTADORA USA LA SECUENCIA DE CLASIFICACIÓN ASCII.
  • 5. PROGRAM CONVERTIR_A_MINUSCULAS2 CHARACTER(LEN=50) :: CADENA INTEGER :: I PRINT*, "INGRESE UNA CADENA DE CARACTERES:" READ*, CADENA DO I = 1, LEN(CADENA) IF (CADENA(I:I) >= 'A' .AND. CADENA(I:I) <= 'Z') THEN CADENA(I:I) = CHAR(ICHAR(CADENA(I:I))+32) END IF END DO PRINT*,"LA CADENA CONVERTIDA A MINÚSCULAS ES:" PRINT*, CADENA END PROGRAM CONVERTIR_A_MINUSCULAS2 4-16. cálculo de órbitas cuando un satélite gira alrededor de la tierra, la órbita del satélite formará una elipse con la tierra ubicada en uno de los puntos focales de la elipse. la órbita del satélite se puede expresar en coordenadas polares como donde r y son la distancia y el ángulo del satélite desde el centro de la tierra, p es un parámetro que θ especifica el tamaño de la órbita y "e" es un parámetro que representa la excentricidad de la órbita. una órbita circular tiene una excentricidad "e" de cero. una órbita elíptica tiene una excentricidad 0<= e <= 1. 1f e > 1, el satélite sigue una trayectoria hiperbólica y escapa del campo gravitatorio terrestre. considere un satélite con un parámetro de tamaño p=1200 km. escriba un programa para calcular la distancia del satélite al centro de la tierra en función de si el satélite tiene una excentricidad de (a) θ e=0; (b) e=0,25; c) e=0,5. escriba un solo programa en el que "r" y "e" sean valores de entrada. ¿qué tan cerca viene cada órbita de la tierra? ¿a qué distancia se aleja cada órbita de la tierra?
  • 6. PROGRAM ORBIT_CALCULATION2 IMPLICIT NONE REAL :: P, E, THETA, R ! ENTRADA DE DATOS WRITE(*,*) "INGRESE EL VALOR DEL PARÁMETRO P (EN KM): " READ(*,*) P WRITE(*,*) "INGRESE EL VALOR DE LA EXCENTRICIDAD E: " READ(*,*) E ! CÁLCULO DE LA DISTANCIA EN FUNCIÓN DE THETA WRITE(*,*) "THETA (EN GRADOS) | DISTANCIA (EN KM)" DO THETA = 0.0, 360.0, 10.0 R = P / (1.0 - E*COS(THETA*3.14159/180.0)) WRITE(*,*) THETA, " | ", R END DO END PROGRAM ORBIT_CALCULATION2 4-17. Escriba un programa c a p s que lea una cadena de caracteres, busque todas las palabras dentro de la cadena y escriba en mayúscula la primera letra de cada palabra, mientras cambia el resto de la palabra a minúsculas. Suponga que todos los caracteres no alfabéticos y no numéricos pueden marcar los límites de una palabra dentro de la variable de carácter (por ejemplo, puntos, comas, etc.). Los caracteres no alfabéticos deben dejarse sin cambios. PROGRAM CAPS2 IMPLICIT NONE CHARACTER(LEN=100) INPUT_STRING, OUTPUT_STRING INTEGER :: I, J, LENGTH LOGICAL :: NEW_WORD WRITE(*,*) "INGRESE UNA CADENA DE CARACTERES:" READ(*,*) INPUT_STRING LENGTH = LEN_TRIM(INPUT_STRING)
  • 7. DO I = 1, LENGTH INPUT_STRING(I:I) = CHAR(ICHAR(INPUT_STRING(I:I))+32) END DO OUTPUT_STRING = INPUT_STRING NEW_WORD = .TRUE. DO I = 1, LENGTH IF (NEW_WORD .AND. INPUT_STRING(I:I) >= "A" .AND. INPUT_STRING(I:I) <= "Z") THEN OUTPUT_STRING(I:I) = CHAR(ICHAR(INPUT_STRING(I:I))-32) NEW_WORD = .FALSE. ELSEIF (INPUT_STRING(I:I) == " " .OR. INPUT_STRING(I:I) == "," .OR. & INPUT_STRING(I:I) == "." .OR. INPUT_STRING(I:I) == ";" .OR. & INPUT_STRING(I:I) == ":" .OR. INPUT_STRING(I:I) == "!" .OR. & INPUT_STRING(I:I) == "?") THEN NEW_WORD = .TRUE. END IF END DO WRITE(*,*) "LA CADENA DE CARACTERES MODIFICADA ES:" WRITE(*,*) OUTPUT_STRING END PROGRAM CAPS2 4-18. Corriente a través de un diodo. La corriente que fluye a través del diodo semiconductor que se muestra en la figura 4-14 está dada por la ecuación Dónde VD = el voltaje a través del diodo, en voltios =el flujo de corriente a través del diodo, en amperios 𝑖𝐷 = la corriente de fuga del diodo, en amperios 𝑙0 q=la carga de un electrón, 1,602x C 10 −19 k=constante de Boltzmann, 1,38x J/K 10 −23 T=temperatura, en kelvin (k) La corriente de fuga del diodo es 2,0 "u" A. Escriba un programa de computadora para calcular la 𝑙0 corriente que fluye a través de este diodo para todos los voltajes de -1,0 V a +0,6 V, en pasos de 0,1 V. Repita este proceso para las siguientes temperaturas: 75 °F, 100 °F Y 125 °F. Use el programa del Ejemplo
  • 8. 2-3 para convertir las temperaturas de °F a kelvin. PROGRAM CORRIENTE_DIODO2 IMPLICIT NONE ! DECLARACIÓN DE VARIABLES REAL :: VD, I_D, L_0, Q, K, T, T_KELVIN INTEGER :: I, N REAL, PARAMETER :: DELTAV = 0.1, T_75F = 75.0, T_100F = 100.0, T_125F = 125.0 ! CONSTANTES L_0 = 2.0E-6 Q = 1.602E-19 K = 1.38E-23 ! CALCULAR LA CORRIENTE PARA DIFERENTES TEMPERATURAS DO N = 1, 3 SELECT CASE(N) CASE(1) T = T_75F CASE(2) T = T_100F CASE(3) T = T_125F END SELECT ! CONVERTIR LA TEMPERATURA A KELVIN T_KELVIN = (T - 32.0) * (5.0 / 9.0) + 273.15 ! CALCULAR LA CORRIENTE PARA DIFERENTES VOLTAJES WRITE(*,*) 'TEMPERATURA (F): ', T WRITE(*,*) 'TEMPERATURA (K): ', T_KELVIN WRITE(*,*) 'VOLTAJE (V) CORRIENTE (A)' DO I = -10, 6 VD = I * DELTAV IF (VD < 0.0) THEN I_D = L_0 + (EXP(Q * VD / (K * T_KELVIN)) - 1.0) * (1.0 / (10.0 * L_0)) ELSE I_D = L_0 + (EXP(Q * VD / (K * T_KELVIN)) - 1.0) * (1.0 / (10.0 * L_0)) END IF PRINT*, VD, I_D END DO END DO
  • 9. END PROGRAM CORRIENTE_DIODO2 4-23. Tensión en un cable. Se va a colgar un objeto de 200 kilogramos del extremo de un poste horizontal rígido de 3 m de peso despreciable, como se muestra en la figura 4-15. El poste está sujeto a una pared por medio de un pivote y está sostenido por un cable de 3 m que está sujeto a la pared en un punto más alto. La tensión en este cable viene dada por la ecuación. Un peso de 200 libras suspendido de una barra rígida sostenida por un cable. Donde T es la tensión en el cable, W es el peso del objeto, "lc" es la longitud del cable, "lp" es la longitud del poste y "d" es la distancia a lo largo del poste en la que el cable está conectado. Escriba un programa para determinar la distancia "d" a la cual conectar el cable al poste para minimizar la tensión en el cable. Para ello, el programa deberá calcular la tensión en el cable a intervalos de 0,1m desde d=0,5m hasta d=2,8m, y deberá localizar la posición "d" que produzca la tensión mínima.
  • 10. PROGRAM TENSION_2 IMPLICIT NONE INTEGER::I=1 REAL::T,DT,D,W,LC,LP,A D=0.5 DT=0.1 PRINT*,"DIGITE EL W" READ*,W PRINT*,"DIGITE LC" READ*,LC PRINT*,"DIGITE LP" READ*,LP DO WHILE (D<=2.8) A=SQRT((LP*2)-(D*2)) T=(W*LC*LP)/(D*A) PRINT*,I,")","LA TENSION EN ",D," METROS ES: ",T D=D+DT I=I+1 END DO PRINT*,"" PRINT*, "LA TENSION FINAL ES: ",T END PROGRAM TENSION_2 4-24. Si la tensión máxima sobre el cable en el ejercicio anterior es de 350, ¿en qué rango de distancias "d" es seguro sujetar el cable al poste? PROGRAM TENSION_CABLE2 IMPLICIT NONE REAL :: D, H, A, B, C, THETA, T_MAX WRITE(*,*) 'INGRESE LA ALTURA DEL POSTE:' READ(*,*) H WRITE(*,*) 'INGRESE LA DISTANCIA HORIZONTAL DESDE LA BASE DEL POSTE HASTA EL PUNTO DONDE SE SUJETA EL CABLE:' READ(*,*) D WRITE(*,*) 'INGRESE EL ÁNGULO ENTRE EL CABLE Y EL SUELO (EN GRADOS):' READ(*,*) THETA
  • 11. THETA = THETA * 3.14159265 / 180.0 A = SIN(THETA) B = COS(THETA) C = H / B T_MAX = 350.0 WRITE(*,*) 'DISTANCIA (M) TENSIÓN (N)' DO WHILE (D <= C) T_MAX = MIN(T_MAX, 1000.0 * H / SIN(THETA) + 500.0 * D / COS(THETA)) WRITE(*,'(F10.2,F12.2)') D, T_MAX D = D + 0.5 END DO IF (T_MAX <= 350.0) THEN WRITE(*,*) 'ES SEGURO SUJETAR EL CABLE AL POSTE EN EL RANGO DE DISTANCIAS:', D-0.5, 'M -', C, 'M' ELSE WRITE(*,*) 'NO ES SEGURO SUJETAR EL CABLE AL POSTE EN NINGÚN PUNTO.' END IF END PROGRAM TENSION_CABLE2 4-25. Crecimiento bacteriano, supongamos que un biólogo realiza un experimento en el que mide la velocidad a la que un tipo específico de bacteria se reproduce asexualmente en diferentes medios de cultivo. El experimento muestra que en el Medio A las bacterias se reproducen una vez cada 90 minutos, y en el Medio B las bacterias se reproducen una vez cada 120 minutos. Suponga que se coloca una sola bacteria en cada medio de cultivo al comienzo del experimento. Escriba un programa Fortran que calcule y anote el número de bacterias presentes en cada cultivo a intervalos de 6 horas desde el comienzo del experimento hasta que hayan transcurrido 24 horas. ¿Cómo se comparan los números de bacterias en los dos medios después de 24 horas? PROGRAM CRECIMIENTO_BACTERIANO2
  • 12. IMPLICIT NONE INTEGER :: I, J, T REAL :: TIEMPO(5) REAL :: NUM_BACTERIAS_A(5), NUM_BACTERIAS_B(5) REAL, PARAMETER :: T_MAX = 24.0, DT = 0.5 REAL, PARAMETER :: T_A = 90.0, T_B = 120.0 INTEGER, PARAMETER :: N_BACTERIAS = 1 TIEMPO(1) = 0.0 NUM_BACTERIAS_A(1) = N_BACTERIAS NUM_BACTERIAS_B(1) = N_BACTERIAS DO I = 2, 5 TIEMPO(I) = TIEMPO(I-1) + 6.0 NUM_BACTERIAS_A(I) = NUM_BACTERIAS_A(I-1) * EXP(TIEMPO(I) / T_A * LOG(2.0)) NUM_BACTERIAS_B(I) = NUM_BACTERIAS_B(I-1) * EXP(TIEMPO(I) / T_B * LOG(2.0)) END DO ! IMPRIMIR LOS RESULTADOS WRITE(*, "(A, A, A, A)") "TIEMPO", "BACTERIAS EN A", "BACTERIAS EN B", "DIFERENCIA" DO J = 1, 5 WRITE(*, "(F6.2, 2X, I10, 2X, I10, 2X, I10)") TIEMPO(J), & INT(NUM_BACTERIAS_A(J)), INT(NUM_BACTERIAS_B(J)), & INT(NUM_BACTERIAS_A(J) - NUM_BACTERIAS_B(J)) END DO END PROGRAM CRECIMIENTO_BACTERIANO2 4-26. Decibeles, los ingenieros a menudo miden la relación de dos mediciones de potencia en decibelios o dB. La ecuación para la relación de dos medidas de potencia en decibelios es Cuando P2 es el nivel de potencia que se mide y P1 es un nivel de potencia de referencia. suponga que el nivel de potencia de referencia P1 es de 1 w y 20 w, en pasos de 0,5 w. PROGRAM CALCULOS_2 INTEGER :: I
  • 13. REAL :: P2, DB REAL, PARAMETER :: P1 = 1.0 ! REFERENCE POWER LEVEL DO I=0, 38, 1 ! 38 REPRESENTS (20-1)/0.5 P2 = (I * 0.5) + 1.0 ! CALCULATE POWER LEVEL P2 DB = 10.0 * LOG10(P2/P1) ! CALCULATE DECIBEL LEVEL WRITE(*,*) P2, DB ! OUTPUT POWER LEVEL AND DECIBEL LEVEL END DO END PROGRAM CALCULOS_2 4-27. infinite series, trigonometric functions are usually calculated on computers by using a truncated infinite series. an infinite series is an infinite set of terms that together add up to the value of a particular function or expression. for example, one infinite series used to evaluate the sine of a number is. where x is in units of radians. since a computer does not have enough time to add an infinite number of terms for every sine that is calculated, the infinite series is truncated after a finite number of terms. the number of terms that should be kept in the series is just enough to calculate the function to the precision of the floating-point numbers on the computer on which the function is being evaluated. the truncated infinite series for sin x is donde n es el número de términos a retener en la serie. escriba un programa fortran que lea un valor para x en grados y luego calcule el seno de x usando la función intrínseca del seno. luego, calcule el seno de x usando la ecuación (4.19), con n=1,2,3,…10. compara el verdadero valor de sen x con los valores calculados usando la serie infinita truncada.
  • 14. ¿cuántos términos se requieren para calcular sen x con la máxima precisión de su computadora? PROGRAM MEDGEO IMPLICIT NONE REAL::MG,C,N INTEGER::PRO,RES,X X=1 RES=1 PRO=0 DO WHILE (X>0) PRINT*, "DIGITA UN NUMERO" READ*,X IF (X>0)THEN RES=RES*X PRO=RES END IF END DO PRINT*,"EL PRODUCTO ES: ",PRO PRINT*,"DIGITA LA CANTIDAD DE NUMEROS" READ*,N C=1/N MG=PRO**C PRINT*,"LA MEDIA GEOMETRICA ES: ",MG END PROGRAM MEDGEO 4-29. Promedio RMS, el promedio de la raíz cuadrada media (RMS) es otra forma de calcular la media de un conjunto de números. El promedio "RMS" de una serie de números es la raíz cuadrada de la media aritmética de los cuadrados de los números: Escriba un programa Fortran que acepte un número arbitrario de valores de entrada positivos y calcule el promedio de los números. Solicite al usuario la cantidad de valores que se deben ingresar y use un
  • 15. bucle Do para leer los números. Pruebe su programa calculando el RMS de los cuatro números 10, 5, 4 y 5. PROGRAM PROM_RMS2 IMPLICIT NONE REAL::RMS,N,X REAL::SUM,POT X=1 SUM=0 DO WHILE (X>0) PRINT*, "DIGITA UN NUMERO" READ*,X IF (X>0)THEN POT=X**2 SUM=SUM+POT END IF END DO PRINT*,"LA SUMA DE POTENCIAS ES: ",SUM PRINT*,"DIGITE LA CANTDAD DE NUMEROS" READ*,N RMS=SQRT((1/N)*(SUM)) PRINT*,"EL PROMEDIO RMS ES: ",RMS END PROGRAM PROM_RMS2 4-30. Media armónica, la media armónica es otra forma de calcular la media de un conjunto de números. La media armónica de un conjunto de números viene dada por la ecuación: Escriba un programa Fortran que lea un número arbitrario de valores de entrada positivos y calcule la media armónica de los números. Utilice cualquier método que desee leer en los valores de entrada. Pruebe su programa calculando la media armónica de los cuatro números 10, 5, 4 y 5. PROGRAM MED_ARM2 IMPLICIT NONE REAL::MH,N
  • 16. REAL::SUM,RES,X,FAC X=1 FAC=0 DO WHILE (X>0) PRINT*, "DIGITA UN NUMERO" READ*,X IF (X>0)THEN RES=1/X FAC=RES SUM=SUM+FAC END IF END DO PRINT*,"DIGITA LA CANTIDAD DE NUMEROS" READ*,N PRINT*, "LA SUMA DE INVERSOS ES: ",SUM MH=N/(SUM) PRINT*,"LA MEDIA ARMONICA ES: ",MH END PROGRAM MED_ARM2 4-31. Escriba un solo programa Fortran que calcule la media aritmética (promedio), el promedio RMS, la media geométrica y la media armónica para un conjunto de números positivos. Utilice cualquier método que desee leer en los valores de entrada. Compare estos valores para cada uno de los siguientes conjuntos de números: PROGRAM MEDIAS_2 INTEGER :: N, I REAL :: ARRAY(100), SUM, ARITMETICA, RMS, GEOMETRICA, ARMONICA WRITE(*,*) "INGRESE LA CANTIDAD DE NUMEROS: "
  • 17. READ(*,*) N WRITE(*,*) "INGRESE LOS NUMEROS: " DO I=1, N READ(*,*) ARRAY(I) SUM = SUM + ARRAY(I) END DO ARITMETICA = SUM/N ! CALCULA MEDIA ARITMETICA SUM = 0.0 ! REINICIA SUMATORIA DO I=1, N SUM = SUM + (ARRAY(I)**2) END DO RMS = SQRT(SUM/N) ! CALCULA PROMEDIO RMS GEOMETRICA = 1.0 ! CALCULA MEDIA GEOMETRICA DO I=1, N GEOMETRICA = GEOMETRICA * ARRAY(I) END DO GEOMETRICA = GEOMETRICA**(1.0/N) ARMONICA = 0.0 ! CALCULA MEDIA ARMONICA DO I=1, N ARMONICA = ARMONICA + 1.0/ARRAY(I) END DO ARMONICA = N/ARMONICA WRITE(*,*) "LA MEDIA ARITMETICA ES: ", ARITMETICA WRITE(*,*) "EL PROMEDIO RMS ES: ", RMS WRITE(*,*) "LA MEDIA GEOMETRICA ES: ", GEOMETRICA WRITE(*,*) "LA MEDIA ARMONICA ES: ", ARMONICA END PROGRAM MEDIAS_2 4-32. Cálculo del tiempo medio entre fallas, la confiabilidad de un equipo electrónico generalmente se mide en términos de tiempo medio entre fallas (MTBF), donde MTBF es el tiempo promedio que el equipo puede operar antes de que ocurra una falla en él. Para sistemas grandes que contienen muchas piezas de equipo electrónico, es habitual determinar los MTBF de cada componente y calcular el MTBF general del sistema a partir de las tasas de falla de los componentes individuales. Si el sistema está estructurado como el que se muestra en la figura 4-16, cada componente debe funcionar para que todo el sistema funcione, y el MTBF general del sistema se puede calcular como
  • 18. Escriba un programa que lea el número de componentes en serie en un sistema y los MTBF para cada componente, y luego calcule el MTBF general para el sistema. A Un sistema electrónico que contiene tres subsistemas con MTBF conocidos. pruebe su programa, determine el MTBF para un sistema de radar que consta de un subsistema de antena con un MTBF de 2000 horas, un transmisor con un MTBF de 800 horas, un receptor con un MTBF de 3000 horas y una computadora con un MTBF de 5000 horas . PROGRAM MEAN_TIME2 INTEGER :: N REAL :: NUM, SUMA, MEDIA_MTBF PRINT*, "INGRESE LOS TIEMPO MEDIO ENTRE FALLOS E INGRESE UN NUMERO NEGATIVO PARA FINALIZAR" READ*, NUM SUMA = 0.0 N=0 DO WHILE (NUM>=0) N=N+1 SUMA = SUMA + 1 / NUM READ*, NUM END DO MEDIA_MTBF = 1 / SUMA PRINT*, "LA MEDIA ARMÓNICA DE LOS ",N," VALORES INGRESADOS ES: ", MEDIA_MTBF END PROGRAM MEAN_TIME2
  • 19. 4-33. Ley de los gases ideales, un gas ideal es aquel en el que todas las colisiones entre moléculas son perfectamente elásticas. Es posible pensar en las moléculas de un gas ideal como bolas de billar perfectamente duras que chocan y rebotan entre sí sin perder energía cinética. dicho gas se puede caracterizar por tres cantidades: presión absoluta (P), volumen (v) y temperatura absoluta (T). La relación entre estas cantidades en un gas ideal se conoce como la Ley de los Gases Ideales: Donde P es la presión del gas en kilopascales (kPa), V es el volumen del gas en litros (L), n es el número de moléculas del gas en unidades de moles (mol), R es la constante universal de los gases (8.314 L.KPa/mol.K), y T es la temperatura absoluta en kelvin (k). (Nota: 1 mol=6.02x moles) 10 23 Suponga que una muestra de un gas ideal contiene 1 mol de moléculas a una temperatura de 273 K y responda las siguientes preguntas. (a)Escriba un programa de temperatura para calcular e imprimir el volumen de este gas a medida que su presión varía de 1 a 1001 KPa en pasos de 1000 KPa. PROGRAM GAS_IDEAL2 IMPLICIT NONE ! DECLARACIÓN DE VARIABLES REAL :: P, V, N, T, R INTEGER :: I ! ASIGNACIÓN DE VALORES INICIALES N = 1.0 ! 1 MOL T = 273.0 ! 273 K R = 8.314 ! CONSTANTE UNIVERSAL DE LOS GASES (L.KPA/MOL.K ! CICLO PARA CALCULAR EL VOLUMEN A DIFERENTES PRESIONES DO I = 1, 11, 1 ! I VARÍA DE 1 A 11 EN PASOS DE 1 P = I * 1000.0 ! PRESIÓN EN KPA ! CÁLCULO DEL VOLUMEN SEGÚN LA LEY DE LOS GASES IDEALES V = N * R * T / P ! IMPRESIÓN DE LOS RESULTADOS PRINT*,'PRESIÓN (KPA): ', P PRINT*,'VOLUMEN (L): ', V END DO END PROGRAM GAS_IDEAL2
  • 20. (b) Suponga que la temperatura del gas aumenta a 300 K. ¿Cómo varía ahora el volumen de este gas con la presión en el mismo rango? PROGRAM GAS_IDEAL2 IMPLICIT NONE REAL :: P, V, T REAL, PARAMETER :: N = 1.0 ! NÚMERO DE MOLES REAL, PARAMETER :: R = 8.314 ! CONSTANTE UNIVERSAL DE LOS GASES EN L.KPA/MOL.K T = 300.0 ! TEMPERATURA EN KELVIN ! ENCABEZADO DE LA TABLA PRINT *, "PRESIÓN (KPA)", "VOLUMEN (L)" ! CALCULAR E IMPRIMIR EL VOLUMEN PARA CADA VALOR DE PRESIÓN DO P = 1.0, 1001.0, 1000.0 V = N * R * T / P PRINT *, P, V END DO END PROGRAM GAS_IDEAL2 4.34. Asuma que el volumen de 1 mol de un gas ideal ha tenido una variación de 10 L y calcule e
  • 21. imprima la presión del gas en función de la temperatura. La temperatura ha variado de 250 a 400 kelvin. PROGRAM GAS_IDEAL IMPLICIT NONE REAL :: P, V, N, R, T, V0, DV, T0, DT INTEGER :: I N = 1.0 R = 8.314 ! DEFINIR VOLUMEN INICIAL Y VARIACIÓN DE VOLUMEN V0 = 1.0 DV = 10.0 ! DEFINIR TEMPERATURA INICIAL Y VARIACIÓN DE TEMPERATURA T0 = 250.0 DT = 10.0 DO I = 0, 15 ! CALCULAR EL VOLUMEN PARA LA TEMPERATURA ACTUAL V = V0 + I*DV ! CALCULAR LA PRESIÓN PARA CADA TEMPERATURA T = T0 + I*DT P = N*R*T/V ! IMPRIMIR LA PRESIÓN PARA CADA TEMPERATURA PRINT*, "TEMPERATURA = ", T, " K, PRESIÓN = ", P, " KPA" END DO END PROGRAM GAS_IDEAL 4.35. La palanca(Figura4-17) es la más simple máquina. Es utilizado para elevar cargas que de lo contrario sería demasiado pesado de elevar. Si no hay fricción, la relación entre la fuerza aplicada a la palanca y el peso que puede ser elevado es dado por la ecuación. Donde F*APPP es la fuerza aplicada en newtons, "d1" es la distancia desde el punto de apoyo hasta el punto donde se aplica la fuerza, "d2" es la distancia desde el punto de apoyo hasta la ubicación de la carga y peso es el peso (= fuerza hacia abajo) de la carga. Suponga que la fuerza aplicada consiste en pesos que se pueden apilar en un extremo de la palanca. escriba un programa que calcule el peso requerido para levantar una carga de 600 kg si la distancia "d2"
  • 22. desde el punto de apoyo hasta la ubicación de la carga se fija en 1 m, y la distancia "d1" desde el punto de apoyo hasta el punto donde se encuentran los pesos se aplican varía de 0,5 m a 3,0 m en pasos de 0,1 m. Suponiendo que solo tenemos 400 Kg de pesos disponibles, ¿Cuál es la distancia más corta "d1" que podría usarse en esta palanca? PROGRAM PALANCA_2 IMPLICIT NONE INTEGER :: I REAL :: D1, D2, PESO, PESOCARGA, PESOMAXIMO REAL :: EPS = 0.001 ! VALOR PEQUEÑO PARA COMPROBAR SI EL PESO ESTÁ SUFICIENTEMENTE CERCA DEL PESOMAXIMO LOGICAL :: ENCONTRADO = .FALSE. ! BANDERA PARA INDICAR SI SE HA ENCONTRADO UNA SOLUCIÓN D2 = 1.0 PESOCARGA = 600.0 PESOMAXIMO = 400.0 D1 = 0.5 DO I = 1, 26 PESO = PESOCARGA * D2 / D1 IF (ABS(PESO-PESOMAXIMO) < EPS) THEN WRITE(*,*) "SE ENCONTRÓ UNA SOLUCIÓN PARA D1 = ", D1, " CON PESO = ", PESO ENCONTRADO = .TRUE. EXIT ELSE IF (PESO < PESOMAXIMO) THEN ENCONTRADO = .TRUE. EXIT END IF D1 = D1 + 0.1 END DO IF (.NOT.ENCONTRADO) THEN WRITE(*,*) "NO SE ENCONTRÓ SOLUCIÓN CON LOS PESOS DISPONIBLES." ELSE WRITE(*,*) "DISTANCIA MÁS CORTA D1 QUE SE PUEDE USAR PARA LEVANTAR LA CARGA: ", D1 END IF END PROGRAM PALANCA_2