Documente Academic
Documente Profesional
Documente Cultură
1.- Elabore un programa que pida dos nmeros naturales y use una funcin lgica
para saber si ambos son cuadrones pares o no. A saber: dos nmeros son
cuadrones pares si al sumarlos y restarlos se obtienen cuadrados perfectos.
Ejemplo: 10 y 26 son cuadrones pares pues: 10+26 =36 (cuadrado perfecto) y 26-10
= 16 (cuadrado perfecto).
2.- Elabore un programa que lea por teclado una matriz 3x3 y calcula su determinante.
Utilizar la funcin siguiente para calcular adjuntos: (No es obligatorio puede usar otro
mtodo)
INTEGER FUNCTION adjto (a,b,c,d)
INTEGER, INTENT(IN):: a,b,c,d
adjto=a*d-b*c
END FUNCTION adjto
3.-Del programa 2., en vez que sea un subprograma function, que esta sea una
subrutina.
4.- Elabore un programa que pida por teclado una matriz cuadrada de 4X4 y calcule
su traza y la suma de los elementos por encima y por debajo de la diagonal principal.
Usar una subrutina para la lectura de la matriz, una funcin para calcular la traza y
una subrutina para las dos sumas pedidas.
5.- Elabore un programa que desplace los valores de las componentes del vector
A(5,10,15,20,25,30,35) una posicin hacia la derecha de modo que el valor de la
ltima componente pase a la primera, es decir, despus del desplazamiento, el vector
resultante es A(35,5,10,15,20,25,30). Usar una subrutina para realizar el
desplazamiento a la derecha.
6.- Lo mismo que en el ejercicio 5, pero desplazando los valores de las componentes
del vector A(5,10,15,20,25,30,35) una posicin hacia la izquierda de modo que el valor
de la primera componente pase a la ltima, es decir, despus del desplazamiento, el
vector resultante es A(10,15,20,25,30,35,5). Usar una subrutina para realizar el
desplazamiento a la izquierda.
i 0 i ! 2! 3! 4!
1
Ing. William Chauca Nolasco
9.- Elabore un programa que lea una matriz a travs de un subrutina y a travs de una
segunda subrutina calcule la matriz transpuesta de cualquier matriz de orden M x N.
10.- Elabore un programa que lea un arreglo de M filas y N columnas a travs de una
subrutina y con una funcin calcule la suma de los elementos de la diagonal principal.
11.- Realice un programa que lea los nombres y las edades de diez alumnos a travs
de una subrutina, y que los datos se almacenen en dos vectores, y con base en esto
se determine el nombre del alumno con la edad mayor del arreglo.
do i=1,5
print*,"ingrese el vector",i
read*,vector(i)
end do
call orden (5,vector)
print*,"Ordenado de menos a mayor",orden(5,vector)
end program problema_12
SUBROUTINE ORDEN(NELEM,ARREG)
!ORDENACION POR BURBUJA ("buble sort") de un arreglo
!unidimensional, de menor a mayor.
! NELEM = Nmero de elementos del arreglo
! ARREG = Arreglo unidimensional a ordenar
IMPLICIT NONE
INTEGER,intent(in):: NELEM
REAL, DIMENSION(NELEM),intent(out):: ARREG
INTEGER:: I,J
REAL:: AUX
IF (NELEM < 2) RETURN
DO I=1,NELEM-1
DO J=1,NELEM-I
IF (ARREG(J) > ARREG(J+1)) THEN
AUX = ARREG(J)
ARREG(J) = ARREG(J+1)
ARREG(J+1) = AUX
ENDIF
ENDDO
ENDDO
RETURN
END SUBROUTINE ORDEN
2
Ing. William Chauca Nolasco
I=1
CLAVE = .TRUE.
DO WHILE(CLAVE)
CLAVE = .FALSE.
DO J=1,NELEM-I
IF (ARREG(J) >ARREG(J+1)) THEN
AUX = ARREG(J)
ARREG(J) = ARREG(J+1)
ARREG(J+1) = AUX
CLAVE = .TRUE.
ENDIF
ENDDO
I = I+1
END DO
RETURN
END SUBROUTINE ORDEN
3
Ing. William Chauca Nolasco
CLAVE = .TRUE.
ENDIF
END DO
POS = K
ARREG(POS) = AUX
ENDDO
RETURN
END SUBROUTINE ORDEN
4
Ing. William Chauca Nolasco
Se puede suponer que cada par de datos aparece en una lnea, representando cada
par la venta de un artculo. El primer nmero da el nmero de identificacin ID del
artculo, y el segundo indica cuntas unidades se vendieron, As, 105 5 significan que
se vendieron 5 unidades del articulo nmero 102. Escriba un programa para imprimir
una tabla que d los nmeros de identificacin ID 101 a 105 y el nmero de unidades
vendidas por cada artculo, implementar una subrutina para esta operacin.
20.- Para el problema 19 determine que artculos ms se vendieron y el que menos
se vendieron utilice un subprograma function.
21.- Elaborar un programa que utilice un subprograma funcin para evaluar g(x)=x2-
5x+2, para x=1,2,...20
22.- Elabore un programa que calcule el mayor de tres nmeros A,B,C, adems nos
de la suma de los tres nmeros, el programa debe utilizar subrutina.
23.- Disear una funcin que calcule la media de tres nmeros ledos del teclado y
poner un ejemplo de su aplicacin.
25.- Disear un programa para calcular el mximo comn divisor de cuatro nmeros
basado en un subprograma funcin mcd (mximo comn divisor de dos nmeros).
26.- Disear una funcin que encuentre el mayor de dos nmeros enteros.
27.- Disear una funcin que calcule xn para x, variable real y n variable entera.
5
Ing. William Chauca Nolasco
30.- Escribir una funcin Salario que calcule los salarios de un trabajador para un
nmero dado de horas trabajadas y un salario hora. Las horas que superen las 40
horas semanales se pagarn como extras con un salario hora 1,5 veces el salario
ordinario.
31.- Disear una funcin que permita devolver el valor absoluto de un nmero.
32.- Realizar una subrutina que obtenga la divisin entera y el resto de la misma
utilizando nicamente los operadores suma y resta.
33.- Escribir una funcin que permita deducir si una fecha leda del teclado es vlida.
36.- Construir una funcin que reciba como parmetro un entero y retorne su ltimo
dgito.
37.- Construir una funcin que reciba como parmetro un entero y retorne sus dos
ltimos dgitos.
38.- Construir una funcin que reciba como parmetro un entero y retorne la cantidad
de dgitos.
39.- Construir una funcin que reciba como parmetro un entero y retorne la cantidad
de dgitos pares.
40.-Construir una funcin que reciba como parmetro un entero y retorne la cantidad
de dgitos primos.
41.- Construir una funcin que reciba como parmetro un entero y retorne el carcter
al cual pertenece ese entero como cdigo ASCII.
6
Ing. William Chauca Nolasco
42.-Construir una funcin que reciba como parmetro un carcter y retorne el cdigo
ASCII asociado a l.
43- Construir una funcin que reciba como parmetro un entero y retorne 1 si dicho
entero est entre los 30 primeros elementos de la serie de Fibonacci. Deber retornar
0 si no es as.
44.-Construir una funcin que reciba un entero y le calcule su factorial sabiendo que
el factorial de un nmero es el resultado de multiplicar sucesivamente todos los
enteros comprendidos entre 1 y el nmero dado. El factorial de 0 es 1. No estn
definidos los factoriales de nmeros negativos.
45.-Construir una funcin que reciba como parmetro un entero y retorne el primer
dgito de este entero.
46.-Construir una funcin que reciba como parmetro un entero y un dgito y retorne
1 si dicho entero es mltiplo de dicho dgito y 0 si no es as.
43.-Construir una funcin que reciba como parmetro un entero y un dgito y retorne
1 si dicho dgito est en dicho entero y 0 si no es as.
44.-Construir una funcin que reciba como parmetro un entero y un dgito y retorne
la cantidad de veces que se encuentra dicho dgito en dicho entero.
45.- Construir una funcin que reciba como parmetros dos nmeros enteros y retorne
el valor del mayor.
46.-Construir una funcin que reciba como parmetros dos nmeros enteros y retorne
si el primer nmero es mltiplo del segundo y 0 si no.
47.-Construir una funcin que reciba como parmetro un entero y retorne 1 si
corresponde al cdigo ASCII de una letra minscula (Los cdigos ASCII de las letras
minsculas van desde 97 que el cdigo de la letra a hasta 122 que es el cdigo de la
letra z). Deber retornar 0 si no es as.
49.- Construir una funcin que reciba como parmetro un valor entero y retornar 1 si
dicho valor es el factorial de alguno de los dgitos del nmero. Deber retornar 0 si no
es as.
50.-Construir una funcin que reciba como parmetro un entero y retorne 1 si dicho
valor es un nmero de mnimo 3 dgitos. Deber retornar 0 si no es as.
51.-Construir una funcin que reciba como parmetro un entero y retorne 1 si en dicho
valor todos los dgitos son iguales. Deber retornar 0 si no es as.
7
Ing. William Chauca Nolasco
52.- Construir una funcin que reciba como parmetro un entero y retorne 1 si en dicho
valor el primer dgito es igual al ltimo. Deber retornar 0 si no es as.
53.- Construir una funcin que reciba como parmetro un entero y retorne 1 si dicho
valor es mltiplo de 5. Deber retornar 0 si no es as.
54.- Construir una funcin que reciba como parmetro dos enteros y retorne 1 si la
diferencia entre los dos valores es un nmero primo. Deber retornar 0 si no es as.
55.- Construir una funcin que reciba como parmetro dos enteros de dos dgitos cada
uno y retorne 1 si son inversos. Ejemplo: 83 es inverso de 38. Deber retornar 0 si no
es as.
56.-Construir una funcin que reciba como parmetro un entero y un dgito menor o
igual a 5 y retorne el dgito del nmero que se encuentre en la posicin especificada
por el dgito que lleg como parmetro.
62.- Construir una funcin que reciba como parmetro un vector de 10 posiciones
enteras y retorne el promedio entero del vector.
8
Ing. William Chauca Nolasco
67.-Construir una funcin que reciba como parmetro un entero y retorne ese
elemento de la serie de Fibonacci.
68.-Construir una funcin que reciba como parmetros dos enteros, el primero actuar
como base y el segundo como exponente y retorne el resultado de elevar dicha base
a dicho exponente.
70.- Construir una funcin que reciba como parmetros un vector de 10 posiciones
enteras y un dgito y que retorne la cantidad de veces que dicho dgito se encuentra
en el vector. No se olvide que un mismo dgito puede estar varias veces en un solo
nmero.
73.- Construir una funcin que reciba como parmetro una matriz de 3x4 entera y
retorne la cantidad de veces que se repite el mayor dato de la matriz.
74.- Construir una funcin que reciba como parmetro una matriz 3x4 entera y retorne
a cantidad de nmeros primos almacenados en la matriz.
75.- Construir una funcin que reciba como parmetro una matriz 3x4 entera y retorne
la cantidad de veces que se repite el mayor nmero primo de la matriz.
76.- Construir una funcin que reciba como parmetros una matriz 4x4 entera y un
valor entero y retorne la cantidad de veces que se repite dicho valor en la matriz.
77.- Construir una funcin que reciba como parmetro una matriz 4x4 entera y retorne
el nmero de la fila en donde se encuentre por primera vez el nmero mayor de la
matriz.
78.-Construir una funcin que reciba como parmetro una matriz 4x4 entera y retorne
el nmero de la columna en donde se encuentre por primera vez el nmero mayor de
la matriz.
79.- Construir una funcin que reciba como parmetro una matriz 4x4 entera y retorne
la posicin exacta en donde se encuentre almacenado el mayor nmero primo.
80.-Construir una funcin que reciba una matriz 5x5 y retorne el valor de su moda. La
moda de un conjunto de datos es el dato que mas se repite.
9
Ing. William Chauca Nolasco
84.-Construir una funcin que reciba una matriz 5x5 y retorne la cantidad de veces
que se repite su moda.
0,1,1,2,3,5,8,13,21,34...
Fcil, no? (0+1=1 / 1+1=2 / 1+2=3 / 2+3=5 / 3+5=8 / 5+8=13 / 8+13=21 / 13+21=34...)
As sucesivamente, hasta el infinito. Por regla, la sucesin de Fibonacci se escribe
as: xn = xn-1 + xn-2
10