I ng ng.. Wi Willi llia am C ha hauca uca N ola lasco sco wi wi & data F or tran Primera Práctica de Lenguaje de Programación 2006-I FORTRAN 90 - WCHN 1.- Sabiendo que la ecuación de Manning para calcular la vel ocidad media del agua en un canal para 1 2 1 riego esta dado por la siguiente relación: V R 3 S 2 n donde V = velocidad media en m/s, R = radio hidraulico hidraulico en mt., S = pendiente del canal en m/m, n = coeficiente de rugosidad del material con que se construye el canal. Elaborar un programa para calcular la velocidad del flujo en el canal teniendo como datos. n= 0.025, R =0.5057, =0.5057, S= 0.001 2.- Un canal de seccion rectangular de 2.00 metros de ancho , transporta un caudal caudal de 3 m3/s. La altura de agua agua al final del resalto (Aguas abajo), Elabore Elabore un programa para hallar la altura de agua al inicio del resalto (Aguas arriba). Ver esquema, sabiendo que que la fórmula para determinar esta dada por la relación : Y 1
Y 2 2
2q 2 Y 2 g
Y 22 4
, donde q = Q / b, g = 9.81 m/s 2
3. En un dique de concreto está instalada un compuerta de fierro fundido con 0.20 m, de radio, a la profundidad indicada en la fig. Elaborar un programa que determine el empuje que actúa sobre la compuerta. Si F h A , donde: donde: F es el empuje empuje determinar, es el peso especifico del agua = 1000 Kg/m 3, h = h’ + r y A = r 2.
4.- Escribe las siguientes expresiones aritméticas en lenguaje Fortran 90. Compruébalas haciendo un programa que tome los valores de prueba de la columna derecha.
A. Área de un triángulo base * altura area=
2
Datos de prueba:
base altura Area
1 3 1.5 6.2 1.5 4,65 ¿Qué hubiera pasado si defines las variables como enteras? Haz la prueba con el primer conjunto de valores. Indica que condiciones deben cumplir los valores de entrada.
I ng ng.. Wi Willi llia am C ha hauca uca N ola lasco sco
wi wi & data
F or tran
5.- Elabore un programa para la Ecuación de segundo grado
=
x
b b 2 4ac
x 1 0.22
2a
Datos de Prueba
a 1 13.95 1 1 1 1 1 2
b 0 6.2 -3 0 -10 1 0 1
c -1 1.5 2 -1 25 1 0 2
Indica que condiciones deben cumplir los valores de entrada. ¿Qué ocurre si introduces datos que no satisfacen las precondiciones? Haz la prueba. 6.- Escribe un programa que pida al usuario las coordenadas 3D de dos puntos en el espacio (x, y, z) y que dé como resultado la distancia que hay entre ellos. Se pedirá al usuario que introduzca las coordenadas del primer punto separadas por blancos en una línea, y posteriormente que introduzca las del segundo en otra línea.
7.-Partiendo de una cantidad de tiempo medida en segundos, calcular el número de semanas, días, horas, minutos y segundos a los que corresponde. 8.- ¿Cuáles de estos identificadores son válidos y cuáles no? En el caso de no serlo, ¿por qué? Total total acumulado resultado-1 resultado_1 resultado 1 Resultado resultaDo 1resultado el_valor_total_de_la_suma_de_los_operandos_es el_valor_total_de_la_suma_es el_valor_total_de la_suma_es resul*1 integer real integer1 válido
9.- Escribir un programa que lea un entero, lo multiplique por 2.5 y a continuación lo escriba de nuevo en pantalla. 10.- Escribir un programa que solicite al usuario la longitud y la anchura de una habitación habitación y a continuación visualice su superficie. 11.- Escribir un programa que lea dos enteros de tres dígitos y calcule e imprima su producto, cociente cuando el primero se divide por el segundo. 12.- Una temperatura Celsius (centígrado) (centígrado) C, puede ser convertida convertida a una temperatura equivalente F de
9 .C 32 . Escribir un programa en fortran que lea una temperatura 5
cuerdo a la siguiente fórmula: F
Celsius como numero decimal y obtenga l a temperatura Fahrenheit equivalente. 13.- Un sistema de ecuaciones ecuaciones lineales: lineales: aX + bY = c y dX + eY = f, elaborar un programa en en Fortran, de tal forma que lea dos conjuntos de coeficientes (a,b,c; d,e,f) y visualice los valores de X e Y. 14.- Escribir un programa para convertir una medida dada en pies a sus equivalentes en a) yardas; b) pulgadas, c)centimetros, c)centimetros, y d) metros. Leer el el numero de pies e imprimir el numero numero de yardas, yardas, pies, pulgadas, centímetros y metros. Nota ( 1 pie = 12 pulg, 1 yarda = 3 pies, 1pulgada = 2.54 cm, 1 m = 100 cm). 15.-Escrib a un programa que permita la lectura de 6 números enteros, calcule el promedio y imprima el 15.-Escriba promedio
I ng. William Chauca Nolasco
wiwi& data
F ortran
Segunda Práctica de Lenguaje de Programación 2006-I FORTRAN 90 - WCHN 1.-Elabore un programa en Fortran que permita el ingreso de 4 notas de un estudiante y obtenga el promedio considerando las 3 mejores notas. 2.- Elaborar un programa que lea tres números enteros, luego debe visualizar el mayor de los enteros y el menor de los tres enteros (los tres números son diferentes). 3.- Cuatro numeros enteros entre 0 y 100 representan las puntuaciones de un estudiantes de un curso de Lenguaje de Programacion. Escribir un programa para encontrar la media de estas puntuaciones y visualizar un mensaje de acuerdo a la puntuación obtenida MEDIA 90 – 100 80 – 89 70 – 79 60 – 69 0- 59
PUNTUACION A B C D E
4.-Elaborar un programa que permita el ingreso de tres l ados de un triangulo (a,b,c), y además clasifique si es un triangulo rectángulo, acutángulo o obtusángulo. Para ello del teoema de pitagoras y de su generalización dice: “Un triangulo es rectángulo, acutángulo u obtusángulo, cuando el cuadrado del lado mayor es igual, menor o mayor que la suma de los cuadrados de los otros dos”. (Datos de prueba, a=50, b=40 y c=30, otra prueba a=12, b=10 y c=30, otra prueba a=30, b=24 y c=16) 5.- El
área de un triángulo cuyos lados son a, b y c se pueden calcular por la formula:
A P ( P A)( P B)( P C ) , donde p = (a+b+c)/2 . Escribir un programa que lea las longitudes de los tres lados de un triángulo y calcule el área de un triángulo, se debe verificar que los tres lados forman un triangulo.
6.-Escriba un programa que lea el radio r de un circulo con centro en el origen, además deberá leer el par de coordenadas (x,y) de un punto y determine si dicho punto esta contenido o no dentro del circulo. 7.-Unas camisas se venden en 100 dólares cada una si es que se compran más de tres y en 120 en otro caso. Escriba un programa que sea un número de entrada con la cantidad de camisas a adquirir e imprima el costo total. 8.-La ecuación cuadrática ax 2 + bx + c =0, tiene tres casos posibles respecto a sus raíces, dependiendo del valor del discriminante d, donde d = b2 - 4 ac. Sí d es mayor que cero, la ecuación tiene dos raices reales; Si d = 0 la ecuación tiene una raiz real raiz = -b/2 a, Si d < 0 la ecuacion tiene dos raices complejas. Escriba un programa que de un mensaje del tipo de raiz que encuentra (Pruebe para a=1, b=-7, c =12.)
9.- Utilizando la sentencia DO, escriba un programa que permita la lectura de 5 números, calcule el promedio y lo visualice 10. Elabore un programa que permita el ingreso de 6 nombres de personas y el s exo respectivo (.true. para varon y .false. para mujer) y visualice la cantidad de personas que corresponde a su respectivo sexo.
I ng. William Chauca Nolasco
wiwi& data
F ortran
11.- Utilizando la sentencia Do, escriba un programa que imprima una tabla de cuadrados y cubos del 1 al 10 inclusive. 12.- Elabore un programa que utilizando la sentencia DO, imprima una tabla de cuadrados para los numeros pares del 4 al 30, ambos inclusive. 13.- Elaborar un programa que permita ingresar por teclado, el nombre y el turno de 10 alumnos (M=mañana), (T=tarde), (N=noche) y luego averiguar cuantos alumnos estudian en cada turno. 14.- Elabore un programa que calcule la suma: 1 + ½ + 1/3 + ¼ + ....+ 1/50 15.-La suma de los cuadrados 1 + 4 + 9 + 16 + 25 +.... en cierto momento es arriba de 1000. Escriba un programa para encontrar un entero cuyo cuadrado hace que la suma pase de 1000 y que despliegue la suma en ese momento. 16.- Elabore un programa que tabule la siguiente funcion usando sentencias repetitivas para controlar cualquier proceso iterativo.
f ( x)
( x 4 3 x 2 x 16) ( x 2 4)
17.-Elaborar un programa que calucule la suma de:
1 2
2 2
2
, para x = -5 , -4 , -3 ,........., 10
3 3
2
4 2
4
.....
n 2n
( asuma un cantidad de
terminos en la expresion a sumar). 18.-Elabore un programa que encuentre el valor de y para cada valor de x = - 4 hasta 4 con incrementos de 0.5, sea la función: y = 2x2 - 3x - 5
19.- Dándole a la variable x los valores 40, 70 y 100, calcular l as salidas del siguiente programa: y seleccione la respuesta correcta para los siguientes casos teniendo en cuenta el programa (No copie este programa en editor de programas, hagalo manualmente) Program ejemplo_1 si x= 40 la salida es " "; Implicit none si x= 70 la salida es "70 es grande"; A Integer :: x si x=100 la salida es "100 es muy grande" Read *,x si x= 40 la salida es "40 es grande"; If (x>50) then si x= 70 la salida es "70 es grande"; If (x>90) then B si x=100 la salida es "100 es muy grande" Print *, x, 'es muy grande' Else si x= 40 la salida es " "; si x= 70 la salida es "70 es muy grande"; Print *, x, 'es grande' C si x=100 la salida es "100 es muy grande" End if End if End program ejemplo_1
20.-¿Cuál es el valor de sum después de cada bucle? Integer :: n, sum = 1 Do n = 3, 0, -1 sum = sum + sum * n End do
Integer :: n, sum = 0 Do n = 5, 15, 3 sum = sum + n End do
Nota: La entrega de todos los informes se dará el penúltimo Lunes antes de que acabe el ciclo, los informes deben ir en un folder y con una caratula que indique el numero de informe, el nombre del
I ng. William Chauca Nolasco
wiwi& data
F ortran
alumno, el turno que realiza la practica, el contenido del informe debe tener el enunciado del problema, el programa fuente, los resultados y su diagrama de flujo respectivo. Se tomará una pregunta al azar de todos los informes. (Codificacion o diagrama de flujo)
Tercera Práctica de Lenguaje de Programación 2006-I FORTRAN 90 – WCHN – GRUPO – I 1.- Elabore un programa utilizando las funciones estandard (abs, aint, ceiling, modulo, dim, floor, anint) que tiene el Fortran para los siguientes datos: 1.1. (3.0,4.0) siendo este un numero complejo, obtenga su modulo. 1.2. 2.849 un valor númerico obtenga el valor de 2.00000 1.3. -3.7 un valor númerico obtenga el valor de -3 1.4. Dos valores númericos –3 y 2 obtenga el valor de la diferencia de estos dos numeros = 0 1.5. Usando el valor númerico del item 1.3, obtener el valor de -4 1.6. Se tiene dos valores como argumentos de una funcion cuyos valores numericos son 8 y 5 evalue para obtener el residuo 3 1.7. Usando el valor del item 1.2, evalue con una funcion estandar para obtener el valor 3.000000 2.- Encuentre la salida para el siguiente programa X=123.4567 PRINT 10, X,X,X,X,X,X,X,X Explique los resultados obtenidos: 10 FORMAT('',4(F8.3,F8.1)) END 3.-Elaborar un pograma que permita el ingreso de dos numeros reales y obtenga el producto de dichos numeros, datos de prueba 12.34 y -0.025, la salida del programa sera: X = 12.34 Y = -.025 PROD =
-.30850
4.- Se tiene el siguiente programa, codifque y muestre la salida , corregir los descriptores si es necesario: M = 117 N = -27 X = -0.1235*10**2 Y = 1234.567 PRINT 10, M, N, X, Y 10 FORMAT (1X, 'M=', I3, 'N=', I4, 3X, 'X=', F4.1 / T3, f11.4) END
5.- Elabore un programa que encuentre el valor de y para cada valor de x = - 4 hasta 4 con incrementos de 0.5, sea la función: y = 2x2 - 3x - 5 6.- Considere el siguiente polinomio: z x3 3 xy 2 2 xy y 2 y 3 , escriba un programa que encuentre el valor de z para valores de x e y desde – 2 hasta 4 con incrementos de 0.5 7.- Elabore un programa que tabule la siguiente funcion:
y = f(x) + g(x) para x = 1,2,3,...,10, donde: f(x) = x2 - 16 y g(x) =
1 Si f(x) < 0 2 X + 16 Si f(x) = 0 0 Si f(x) > 0
I ng. William Chauca Nolasco
wiwi& data
F ortran
Nota: La entrega de todos los informes se dará el penúltimo Lunes antes de que acabe el ciclo, los informes deben ir en un folder y con una caratula que indique el numero de informe, el nombre del alumno, el turno que realiza la practica, el contenido del informe debe tener el enunciado del problema, el programa fuente, los resultados y su diagrama de flujo respectivo. Se tomará una pregunta al azar de todos los informes. (Codificacion o diagrama de flujo)
I ng. William Chauca Nolasco wiwi& data F ortran Práctica de Recuperación de Lenguaje de Programación 2006-I FORTRAN 90 – WCHN – GRUPO – II 1.- Elabore un programa que elabore una tabla de cuadrados para los enteros que varían de – 8 a +8, ambos inclusive. 2.- Computar una tabla de cuadrados para los numeros impares del 1 al 39, ambos inclusive.
3.- Realizar un programa que ordene tres numeros en forma ascendente. 4.- Elaborar un programa que permita ingresar por teclado, el nombre, ciclo y el turno de 10 alumnos (M=mañana), (T=tarde), (N=noche) y luego averiguar cuantos alumnos estudian en cada turno. 5.- Elabore un programa que calcule la suma: 1 + ½ + 1/3 + ¼ + ....+ 1/50 6.- Escriba un programa que imprima la tabla de cuadrados y cubos (del 1 al 15) luego visualice: a). La suma de los cuadrados b). La suma de los cubos c). Cuantos cubos son mayores que 500 d). Un mensaje que diga si la suma de cuadrados fue o no mayor de 2000 7.- La suma de los cuadrados 1 + 4 + 9 + 16 + 25 +.... en cierto momento es arriba de 1000. Escriba un programa para encontrar un entero cuyo cuadrado hace que la suma pase de 1000 y que despliegue la suma en ese momento. 8.-Elabore un programa, que permita ingresar cualquier numero entero positivo. Si es par, dividase entre 2; si es impar, multiplíquese por 3 y agréguese 1. Obtenga enteros sucesivamente repitiendo el proceso hasta que el entero en curso no sea 1. Al final se obtendrá el numero 1 (Conjetura de Ulam) por ejemplo si ingresa el número 26, la secuencia sera: 26 13 40 20 10 5 16 8 4 2 1 9.- Elabore un programa que tabule la siguiente funcion usando sentencias repetitivas para controlar cualquier proceso iterativo.
f ( x)
( x 3 3 x 16) ( x 3 8)
,
para x = -5 , -4 , -3 ,........., 10 10.- Elabore un programa para evaluar la siguiente funcion usando sentencias repetitivas, Para controlar cualquier proceso iterativo.
f ( x)
x 2 y 2 x 2 y 2
, para x = 0, 1, 2, ..., 5. e y = 3, 5, 7, ...., 15 para cada
valor de x. 11- Cuatro numeros enteros entre 0 y 100 representan las puntuaciones de un estudiantes de un curso de Lenguaje de Programación. Escribir un programa para encontrar la media de estas puntuaciones y visualizar un mensaje de acuerdo a la puntuación obtenida MEDIA 90 – 100 80 – 89 70 – 79 60 – 69 0- 59
PUNTUACION A B C D E
Nota: La entrega de todos los informes se dará el penúltimo Lunes antes de que acabe el ciclo, los informes deben ir en un folder y con una caratula que indique el numero de informe, el nombre del alumno, el turno que realiza la practica, el contenido del informe debe tener el enunciado del
I ng. William Chauca Nolasco
wiwi& data
F ortran
problema, el programa fuente, los resultados y su diagrama de flujo respectivo. Se tomará una pregunta al azar de todos los informes. (Codificacion o diagrama de flujo)
LENGUAJE DE PROGRAMACION - FORMATOS CUARTA PRACTICA-grupo I-II Table 1: Format Specifiers Format Specifiers
Used for
Notes
Iw
Integers
w is the number of positions reserved for the printing of the integer
Fw.d
Floating point numbers
w is the total width including the decimal point d is the number of positions to the right of the decimal point
Ew.d
Floating point numbers in exponential forms
w is the total width including the decimal point, leading numbers in zeros, positive/negative signs, and the E d is the number of positions to the right of the decimal point 0.245E+02 has a total width of 9 with 3 decimal positions
Dw.d
Double precision numbers
Double-precision values can be printed with an F or E format specifier , but use of the D indicates that the value is a double-precision value.
Aw
Characters
w is the total number of positions in the character value to be printed
nX
blanks
n specifies the number of blanks to be printed Table 2: Example of Format Specifiers
Stored Value
Format Specifier
Output
1.234567
F8.2
^^^^1.23
0.00001
F5.3
0.000
-12345
I5
*****
12345
I6
^12345
0.00001234
E10.3
^0.123E-04
0.0001234
E11.4
^0.1234E-03
-0.0001234
E8.3
********
1234567.89
E9.2
^0.12E+07
James
A5
James
1.66587326432D+00
D17.10
^0.1665873264D+01
1.- Codifique el siguiente programa PROGRAM example REAL xval, yval, zval xval=25.567 yval=18.314 zval=10.215
I ng. William Chauca Nolasco
wiwi& data
F ortran
END PROGRAM example
2.- Codifique el siguiente programa PROGRAM exercise2 INTEGER year REAL avght, avgwt year = 1996 avght=68.87 avgwt=158.54 PRINT '(1x,I4,3x,F6.2,F7.2)',year, avght, avgwt PRINT '(1x,I5,E11.4,E10.2)',year, avght, avgwt PRINT '("YEAR",1x,I4, 2(F7.2))',year, avght, avgwt END
3.- Codifique el siguiente programa
! 100 200 300
4.-
PROGRAM exercise3 INTEGER read REAL press, vol, temp read=35 press=16.8 vol=4.07 temp=503.6 PRINT 100, read, press, vol, temp PRINT 200, read, press, vol, temp PRINT 300, read, press, vol, temp Three different format statements. FORMAT (//,' Reading = ',I4,/,' Pressure = ',F7.2,/,& & ' Volume = ', F7.2,/,' Temperature = ',F6.2,//) FORMAT ('Reading: ',I4,/,'Pressure: ',F8.3,3x,'Volume: ',F8.3,& & 3x,'Temperature: ',F8.3,//) FORMAT ('Reading = ',I3,/,'------------',/,'P = ',F7.3,4x,'V = ',& & F7.3,4x,'T = ',F7.3) END Codifique el siguiente programa
program caracteres IMPLICIT NONE INTEGER I, Num,num1, Symbol CHARACTER*30 Line CHARACTER TITULO*80 TITULO= "CANAL DE SECCION RECTANGULAR" print '(T26,A)', TITULO PRINT* Num=20;num1=10;SYMBOL=219 !la parte superior del canal, caracteres horizntales DO I = 1, Num1 Line(i:i)=ACHAR( Symbol ) END DO PRINT 101, Line,line 101 format(t21,a,t49,a) !caracteres verticales Nota: La entrega de todos los informes se dará el penúltimo Lunes antes de que acabe el ciclo, los do i=1,num1 informes deben ir en un folder y con una caratula print 10,achar(symbol),achar(symbol) que indique el numero de informe, el nombre del 10 FORMAT(t30,A,T49,A) alumno, el turno que realiza la practica, el end do contenido del informe debe tener el enunciado !CARACTERES EN LA PARTE INFERIOR del problema, el programa fuente, los resultados y su diagrama de flujo respectivo. Se tomará una DO I = 1, Num pregunta al azar de todos los (Codificacion o diagrama de flujo)
informes.
I ng. William Chauca Nolasco Line(i:i) =ACHAR( Symbol ) END DO PRINT 200, Line 200 format(t30,a);END program caracteres
wiwi& data
F ortran
I ng. William Chauca Nolasco complex ::a a=(3.0,4.0) print*,"abs ",abs(a) print*,"aint ",aint(2.849) print*,"ceiling", ceiling(-3.7) print*,"ceiling",ceiling(-0.99) print*,"dim ",dim(-3,2) print*,"floor",floor(-3.7) print*,"modulo ",modulo(8,5) print*,"modulo ",modulo(-1,8) print*,"anint ",anint(2.849) print*," sign ",sign(-200,2) end
wiwi& data
F ortran
!abs 5.000000 !aint 2.000000 !ceiling -3 !ceiling 0 !dim 0 !floor -4 !modulo 3 !modulo 7 !anint 3.000000 ! sign 200 !Press any key to continue
!PROGRAMA QUE UTILIZA LA SENTENCIA FORMAT PARA UNA VARIABLE DE TIPO REAL X=123.4567 PRINT 10, X,X,X,X,X,X,X,X 10 FORMAT('',4(F8.3,F8.1)) END !123.457 123.5 123.457 123.5 123.457 123.5 123.457 123.5 !Press any key to continue X=12.34 Y=-0.025 PRINT 24,X,Y,X*Y 24 FORMAT(' ','X = ',F7.2,' Y = ',F7.3,' PROD = ',F10.5) END !X = 12.34 Y = -.025 PROD = -.30850 !Press any key to continue
I ng. William Chauca Nolasco wiwi& data F ortran QUINTA Práctica de Lenguaje de Programación 2006-I FORTRAN 90 – WCHN – GRUPO I – II 1.- Elaborar un programa que utilize un array y determine el promedio de la s precipitaciones media mensual durante el año 2005 en el distrito de Amarilis – Huanuco. Los datos de la precipitacion se deben ingresar en una sola linea ó fila. Tal como se ve el cuadro.
Enero 10.5
Precipitación Media Mensual – mm Febrero Marzo Abril Mayo Junio Julio Agosto Set. 15.2 13.25 12.5 11.5 5.40 5.65 8.80 14.5
Oct. 13.12
Nov. 20.2
Dic. 22.25
2.-Elabore un programa en fortran teniendo en cuenta los datos de precipitacion del problema anterior y visualice la precipitacion minima y máxima además el nombre del mes que pertenece dichos valores de precipitación. 3.- El producto Z de dos vectores de A y B esta definido por: z
i 3
a b. , donde los vectores tienen i
i
i 1
los siguientes datos: A=[1.2,3.5,4.1] vector Z.
B=[2.0,5.1,-1.1], elabore un programa que determine el
4.- Elabore un programa que almacene en un vector X los siguientes datos [2,3,5,9] además el programa debe permitir el ingreso de un valor que se encuentre en el vector X, localize el valor del indice donde se encuentra ubicado asi como el valor encontrrado. De ingresar un valor distinto a los datos del vector debe salir un mensaje “Valor No Encontrado”. 5.- Usando funciones propias de manipulacion de array incorporadas en Fortran90 Función Descripcion Sum(Array) Nos da un valor escalar que comprende la uma de todos los elementos del array Product(Array) Nos da un valor escalar el producto de todos los elementos del array Retorna un valor escalar maximo de todos los elementos del array Maxval(Array) Minval(Array) Retorna un valor escalar minimo de todos los elementos del array Retorna un valor entero respecto a la posicion que ocupan los elementos del arra y Minloc(Array) Dot_Product(A,B) Retorna un valor escala del producto punto de los dos vectores A y B 5.1- Elabore un programa utilize las funciones de manipulacion de arra ys en forma onveniente. 6.- Teniendo en cuenta el siguiente programa Integer k(6) Integer, dimension(6):: L=(/(I,I=1,6)/) K=(/1,2,3,4,5,6/) print*,k print*,L print*,x end
Codifique el programa y luego ejecute observe la salida de datos: Que conclusiones obtiene del resultado de la ejecucioin del programa.
7.- Elabore un programa en fortran en la cual el vector A tenga elementos inicializados [1,2,3], asi como el vector B [10,9,8] y determine un vector C con la siguiente expresion visualize cada una de ellas: C( I ) =(A(I)+2 x I )/B(I) 8. Elaborar un programa que permita la lectura de 12 numeros y visualize 4 numeros por fila
I ng. William Chauca Nolasco
wiwi& data
F ortran
9.- Elaborar un programa que visualice los elemento de un arreglo, desde el indice mayor al indice menor. 10.- Elaborar un programa que ingrese 5 numeros en un vector y calcule la suma de los cuadrados, calcule el producto de : (1-a1) (1-a2)....(1-a5)
Nota: La entrega de todos los informes se dará el penúltimo Lunes antes de que acabe el ciclo, los informes deben ir en un folder y con una caratula que indique el numero de informe, el nombre del alumno, el turno que realiza la practica, el contenido del informe debe tener el enunciado del problema, el programa fuente, los resultados y su diagrama de flujo respectivo. Se tomará una pregunta al azar de todos los informes. (Codificacion o diagrama de flujo)
I ng. William Chauca Nolasco
wiwi& data
Solucion Problema1 real::nota1,nota2,nota3,nota4 real::prome print*,"Ingrese las 4 notas" read*,nota1,nota2,nota3,nota4 menor=nota1 if (nota2
real::nota1,nota2,nota3,nota4 real::prome print*,"Ingrese las 4 notas" read*,nota1,nota2,nota3,nota4 menor=nota1 if (nota2
Solucion del problema 2 integer a,b,c print*,"Ingrese los tres numeros enteros en una sola linea" read*,a,b,c if (a>b .and. a>c) then print*,"El mayor es a",a else if(b>a .and. b>c) then print*,"El mayor es b",b else print*,"El mayor es c",c endif endif if(a=0 .and. media<=59) then print*,"Puntuacion E",media else if (media>=60 .and. media<=69) then print*,"Puntuacion D",media else if (media>=70 .and. media<=79) then print*, "Puntuacion C",media else if (media>=80 .and. media<=89) then print*,"Puntuacion B", media else if(media>=90 .and. media<=100) then print*,"Puntuacion A",media endif end
F ortran
I ng. William Chauca Nolasco wiwi& data Solucion problema 4 real::a,b,c,x,y,z Print*,"Ingrese los tres lados de un triangulo" Read*,a,b,c x= sqrt(b**2+c**2) y= sqrt(a**2+c**2) z= sqrt(a**2+b**2) if (a>b .and. a>c) then if (a==x ) then print*,"Recto",a else if (ax) then print*,"obtusa",a endif endif endif endif if (b>a .and. b>c) then if (b==y ) then print*,"recto",b else if (by) then print*,"obtusa",b endif endif endif endif if (c>b .and. c>a) then if (c==z ) then print*, "recto" ,c else if(cz) then print*,"obtusa",c endif endif endif endif end Solucion Problema..10 logical sexo1;character nombre*15 integer m,f m=0;f=0 Print*,"Ingrese 6 nombres con su respectivo sexo" do i=1,6
F ortran
I ng. William Chauca Nolasco
wiwi& data
F ortran
read*,nombre,sexo1 if (sexo1) m=m+1 if (.not.sexo1) f=f+1 enddo print*,"varones",m print*,"mujeres",f end
Example 6-1 Allocating Virtual Memory ! Program accepts an integer and displays square root values INTEGER(4) :: N READ (5,*) N CALL MAT(N) END
! Reads an integer value
! Subroutine MAT uses the typed integer value to display the square ! root values of numbers from 1 to N (the number read) SUBROUTINE MAT(N) REAL(4), ALLOCATABLE :: SQR(:) ALLOCATE (SQR(N)) DO J=1,N SQR(J) = SQRT(FLOATJ(J)) ENDDO WRITE (6,*) SQR DEALLOCATE (SQR) END SUBROUTINE MAT
! Declares SQR as a one-dimensional ! allocatable array ! Allocates array SQR
! FLOATJ converts integer to REAL
! Displays calculated values ! Deallocates array SQR
Example 8-1 Using and Redefining an Intrinsic Function Name !
Compare ways of computing sine PROGRAM SINES DOUBLE PRECISION X, PI PARAMETER (PI=3.141592653589793238D0) COMMON V(3)
!
Define SIN as a statement function SIN(X) = COS(PI/2-X) DO X = -PI, PI, 2*PI/100
!
100
Reference the statement function SIN WRITE (6,100) X, V, SIN(X) END DO CALL COMPUT(X) FORMAT (5F10.7) END SUBROUTINE COMPUT(Y) DOUBLE PRECISION Y
!
Use intrinsic function SIN as an actual argument INTRINSIC SIN
I ng. William Chauca Nolasco
wiwi& data
F ortran
COMMON V(3) !
Define generic reference to double-precision sine V(1) = SIN(Y)
!
Use intrinsic function SIN as an actual argument CALL SUB(REAL(Y),SIN) END SUBROUTINE SUB(A,S)
!
Declare SIN as name of a user function
!
EXTERNAL SIN Declare SIN as type DOUBLE PRECISION DOUBLE PRECISION SIN COMMON V(3)
!
Evaluate intrinsic function SIN V(2) = S(A)
!
Evaluate user-defined SIN function V(3) = SIN(A) END
!
Define the user SIN function DOUBLE PRECISION FUNCTION SIN(X) INTEGER FACTOR SIN = X - X**3/FACTOR(3) + X**5/FACTOR(5) - X**7/FACTOR(7) END
&
INTEGER FUNCTION FACTOR(N) FACTOR = 1 DO I=N,1,-1 FACTOR = FACTOR * I END DO END
The statement function named SIN is defined in terms of the generic function name COS. Because the argument of COS is double precision, the double-precision cosine function is evaluated. The statement function SIN is itself single precision. The statement function SIN is called. The name SIN is declared intrinsic so that the single- precision intrinsic sine function can be passed as an actual argument at 5. The generic function name SIN is used to refer to the double-precision sine function. The single-precision intrinsic sine function is used as an actual argument. The name SIN is declared a user-defined function name.
I ng. William Chauca Nolasco
wiwi& data
F ortran
The type of SIN is declared double precision. The single-precision sine function passed at 5 is evaluated. The user-defined SIN function is evaluated. The user-defined SIN function is defined as a simple Taylor series using a user-defined function FACTOR to compute the factorial function. Example 14-1 Including Text from a File Main Program File
PROGRAM INCLUDE 'COMMON.FOR' REAL, DIMENSION(M) :: Z CALL CUBE DO I = 1, M Z(I) = X(I) + SQRT(Y(I)) ... END DO END
COMMON.FOR File
INTEGER, PARAMETER :: M=100 REAL, DIMENSION(M) :: X, Y COMMON X, Y
SUBROUTINE CUBE INCLUDE 'COMMON.FOR' DO I=1,M X(I) = Y(I)**3 END DO RETURN END
The file COMMON.FOR defines a named constant M, and defines arrays X and Y as part of blank common. Example 16-1 Example of Name, Pointer, and Storage Association ! Scoping Unit 1: An external program unit REAL A, B(4) REAL, POINTER :: M(:) REAL, TARGET :: N(12) COMMON /COM/... EQUIVALENCE (A, B(1)) M => N CALL P (actual-arg,...) ...
! Storage association between A and B(1) ! Pointer association
! Scoping Unit 2: An external procedure SUBROUTINE P (dummy-arg,...) ! Name and storage association between ! these arguments and the calling ! routine's arguments in scoping unit 1 COMMON /COM/...
! Storage association with common block COM ! in scoping unit 1
REAL Y CALL Q (actual-arg,...) CONTAINS SUBROUTINE Q (dummy-arg,...) ! Name and storage association between ! these arguments and the calling ! routine's arguments in host procedure
I ng. William Chauca Nolasco Y = 2.0*(Y-1.0) ...
wiwi& data
! P (subprogram Q has host association ! with procedure P) ! Name association with Y in host procedure P
PROGRAM ch0901 IMPLICIT NONE REAL :: Total=0.0 , Average,MINI,MAXI REAL , DIMENSION(1:12) :: RainFall CHARACTER,DIMENSION(1:12)::MES*10 CHARACTER MINIMES*10,MAXIMES*10 INTEGER :: Month PRINT *,' Type in the rainfall values' ! PRINT *,' los datos en una sola linea' PRINT *,' one per line' ! READ *, (RainFall(Month),Month=1,12) DO Month=1,12 READ *, MES(MONTH),RainFall(Month) ENDDO DO Month=1,12 Total = Total + RainFall(Month) ENDDO Average = Total / 12 PRINT *,' Average monthly rainfall was' PRINT *, Average MINI=RAINFALL(1) MAXI=RAINFALL(1) DO Month=2,12 IF (RAINFALL(MONTH)MAXI) MAXI=RAINFALL(MONTH) !MAXIMES=MES(MONTH) END DO DO Month=1,12 IF (RAINFALL(MONTH)==MINI) THEN MINIMES=MES(MONTH) ENDIF IF (RAINFALL(MONTH)==MAXI) THEN MAXIMES=MES(MONTH) ENDIF ENDDO PRINT*,MINIMES,MINI PRINT*,MAXIMES,MAXI END PROGRAM ch0901 REAL X(4) PRINT*,"INGRESE 4 VALORES" DO I=1,4 READ*,X(I)
F ortran
I ng. William Chauca Nolasco
wiwi& data
END DO PRINT*,"INGRESE EL VALOR A BUSCAR" READ*,VALOR DO I=1,4 IF (X(I)==VALOR) THEN PRINT*, "VALOR ENCONTRADO",I,X(I) STOP ENDIF END DO PRINT*,"NO ENCONTRADO" END
!real,dimension(5)::x=(/(i,i=1,5)/) !integer k(6),l(6) !k=(/1,2,3,4,5,6/) !L=(/(i,i=1,6)/) !print*,k !print*,L !print*,x integer,dimension(3)::a=(/(i,i=1,3)/),b=(/10,9,8/),c !integer,dimension(3)::c=(/((a(i)+2*i)/b(i),i=1,3)/) c=(/((a(i)+2*i)/b(i),i=1,3)/) print*,a print*,b print*,c end
F ortran