Ejercicios: hoja 1 1.
¿Cuáles de estos identificadores son válidos y cuáles no? En el caso de que no sean válidos, justifícalo.
a. b. c. d. e. f. g. h. i. j. k. l. m.
total resultado-1 resultado_1 resultado 1resultado valor_total_de_la_suma_de_los_operandos total_impuestos total impuestos resul*1 integer real integer1 válido
2. a) ¿Qué es una variable? Conceptos de identificador y valor de una variable. ¿Dónde se declaran las variables en Fortran? Fortran? b) Dadas las variables reales a, b y c cuyos valores son 7, 2 y -1 respectivamente, ¿Cuál será el valor de las siguientes expresiones? ((a + b > c) .or. ((mod(a,b)-1) < 5)) (.not.((c/2) > -5) .and. (c==6))
3.
Escribir las siguientes expresiones aritméticas en Fortran:
a) a.b b) ax c) a1 – a2 d) b2 – 4ac e) 2πr f) πr 2 + 4x3
4.
Expresar en forma de producto de potencias de 10 las siguientes constantes reales de Fortran:
a) 2.3E5 b) 21.3E-7 c) -56.78E03
5.
Declare las constantes pi = 3.1415926 y e = 2.71828.
6.
Escriba un programa que pida al usuario la base mayor, la base menor y la altura de un trapecio y calcule el área mediante la fórmula:
area = ((base_mayor + base_menor) . h )/2.
7.
Escriba un programa que pida al usuario el radio de un círculo y calcule y escriba en pantalla su área.
8.
Escriba un programa que pida al usuario un número real y escriba en pantalla el valor de la parte entera y el valor de la parte decimal de dicho número.
9.
Escribe las siguientes expresiones aritméticas en lenguaje Fortran, y contesta a las preguntas de cada apartado. a)
area
=
base • altura
Valores para pruebas:
2
area base altura 1.5 1.0 3.0 4.65 6.2 1.5
Si las variables fuesen de tipo REAL, ¿qué valor tomaría area al ejecutar la instrucción con los valores para pruebas de la tabla? ¿qué hubiera pasado si se hubieran declarado las variables como enteras? ¿en qué rango de valores se encuentra el valor de area? b) E = mc 2 donde c es la velocidad de la luz ( 3.108 m/s). Escribe un programa que pida al usuario m y calcule y escriba en la pantalla E. ¿En qué rango de valores se encuentra el valor de m? c)
raiz =
−
b + b2
−
4ac
Valores para pruebas:
raiz a b c 1 1 0 -1 0.223 13.95 6.2 1.5
2•a
Indica qué condiciones deben cumplir los valores de entrada para que exista solución real. ¿Qué ocurre si introduces datos que no satisfacen esas condiciones? d)
solucion
=
x 5
+
5 x 4
−
4 x 3
+
2 x 2
−
9 x + 15
¿qué condiciones debe satisfacer x? e)
z =
5 x − 4 y 3 x
2
+
6 y
4
−
3 x 2
−
28
123 − y
10. Fíjate en las siguientes sentencias de asignación que forman parte de un programa Fortran y responde a las preguntas: PROGRAM calculo ! Este programa calcula el valor de una cierta variable d IMPLICIT NONE REAL:: a, b, c, d a b c d c d d
= = = = = = =
5.0 3.0 7.0 a + b 2.0 * a + b d/2.0
+ a + *
2.0 * c + b/3.0 2.0 * c 3.0 + d
! Damos salida por pantalla al valor asignado a d: PRINT*, d END PROGRAM calculo
¿Qué valor se asigna a cada variable en cada sentencia de asignación que aparece y qué valor de d verá el usuario en su pantalla?
11. La temperatura expresada en grados centígrados C, se puede convertir a grados Fahrenheit mediante la siguiente fórmula:
F
=
9C/5 + 32
a) Escriba un programa que pida al usuario la temperatura en grados Fahrenheit y devuelva la temperatura en grados Centígrados. b) ¿En qué rango se encontrarán los datos de entrada si se refieren a la temperatura de una ciudad?
12. El salario base de un representante es de 150.000 pesetas mensuales. A este salario se le suma un 3% de comisión sobre el total de las ventas mensuales que ha realizado. Al total obtenido hay que descontarle un 18% del impuesto IRPF. Escriba un programa en lenguaje Fortran que lea las ventas que ha realizado durante el último mes y escriba el salario neto que cobrará ese mes, en pesetas y en euros. Declare el salario base como constante. 1 euro = 166,6 pesetas.
13. Escribe un programa que pida al usuario las coordenadas 3D (x, y, z) de dos puntos en el espacio
V3, y de 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.
14. Escribe el programa de una máquina expendedora de productos que pide el importe de un producto y el dinero entregado por el cliente y calcula las vueltas, indicando el número de monedas de cada tipo, de forma que éstas sean el mínimo número posible. El importe del producto y el pago efectuado por el cliente son menores a 1 euro. Puedes utilizar la función MOD(x,y) que calcula el resto de la división entera x/y. La máquina sólo admite monedas de 50, 20, 10, 5, 2 y 1 céntimos.
15. Escriba un programa que lea las coordenadas de dos puntos diferentes, y que calcule los coeficientes de la ecuación general de la recta a, b y c que los une, escribiendo finalmente en la pantalla la ecuación general de la recta ( ax + by + c = 0 ). Los coeficientes de la ecuación general de una recta se calculan así:
a = y2 – y1 b = x1 – x2 c = y1x2 – y2x1
16. (a) Sean E1, E2 y E3 expresiones lógicas. Suponiendo que E1 y E2 son Verdad y que E3 es Falsa, ¿cuál será el resultado de las siguientes expresiones lógicas?
((E1).OR.(E2)) .AND. (E3) .NOT.((E1) .AND. (E2)) (.NOT.(E3)) .AND. ((E1) .AND. (E2)) (b) Escriba en lenguaje Fortran una expresión lógica que contenga al menos dos operadores lógicos y dos operadores de relación.
17. Indicar el resultado lógico que se obtendrá al evaluar las siguientes expresiones lógicas: a) b) c) d)
8.7 /= 8.7 45 <= 56 -13 > -23 23 == 23
18. Declare las variables lógicas luz, fin y parar.
19. Expresar en forma de constante carácter de Fortran los siguientes títulos, frases o cabeceros. Indicar además la longitud de cada constante:
a) b) c) d)
LIBRO DE TEXTO Area del sector = El alumno dijo: “Voy a estudiar” Su peso era de ‘120’ kilos
20. Declare las variables de tipo carácter nombre, apellido_1, apellido_2, situacion1, situacion2, titulo y cabecero, teniendo en cuenta que las tres primeras pueden contener hasta 15 caracteres, las dos siguientes hasta 10 caracteres, título puede tener hasta 20 caracteres y cabecero 4 caracteres. 21. Escriba un programa que pida al usuario una frase de hasta 40 caracteres. A continuación pedirá al usuario dos números enteros menores o iguales que cuarenta que son: - una posición inicial - una posición final El calculará y escribirá en la pantalla: - La subcadena de la frase original que hay antes de la posición inicial, que se guardará en la variable llamada subcadena1, - La subcadena de la frase original comprendida entre ambas posiciones inicial y final (ambas incluidas). Esta se guardará en una variable llamada subcadena2, y - La subcadena de la frase original que hay después de la posición final (sin espacios al final), que se guardará en una variable llamada subcadena3. - Una frase que se calculará a partir de la frase original intercambiando la subcadena1 con la subcadena3. Ejemplo:
22. Escriba un programa que pida al usuario una frase de hasta 40 caracteres. El programa escribirá una frase en la pantalla en la que el primer carácter de la frase original cambia de sitio, apareciendo al final. A continuación escribirá otra frase en la que el último carácter de la frase original cambiará de lugar, apareciendo en la primera posición. La salida del programa será:
23. Escriba un programa que pida al usuario: - una frase de hasta 20 caracteres - un número entero menor o igual a 20 (posición en la frase), y - un carácter. El programa sustituirá el carácter de la frase situado en dicha posición por el carácter introducido por el usuario.
24. Escriba un programa que pida al usuario: -
una frase de hasta 10 caracteres una cadena de caracteres de longitud menor o igual que 10. una posición en la frase menor o igual a 10 menos el nº de caracteres de la cadena. El programa asignará el valor de la cadena a las posiciones de la frase a partir de la posición indicada por el usuario y la escribirá en la pantalla. Ejemplo: