YONAR

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

Pregunta 02 número en un intervalo primo

!pregunta de examen cantidad de primos en un intervalo


! prim: contador de primos
! m y n variables de una división
! x: limite inferior
! y: limite superior
implicit none
integer::m,x,y,prim,w,z,i
print*,"Insertar el límite inferior"
read(*,*) x
print*,"Insertar el límite superior"
read(*,*)y
prim=0
do m=x,y
w=0
do i=1,m
z=mod(m,i)
if (z==0) then
w=w+1
end if
end do
! Un número primo solo se puede dividir entre 1 y entre sí mismo, quiere decir que "el primo",
w tiene que ser 2
if (w==2) then
prim=prim+1
print*,"Primo: ",m
end if
end do
print*,"Se encontraron ",prim," primos."
End

¡cinco primeros números impares menores cuyos cubos pregunta 5


! El programa arrojará de manera instantanea los 5 primeros impares que cumplen
! con la condición que indica el ejercicio
! i: parametro
implicit none
integer::x,i,y
do i=2,26
x=mod(i,2)
if (x/=0)then
y=i**3
if(y>4000)then
write(*,*)i
end if
end if
end do
end
! EJERCICIO - 4 - EXAMEN metodo del TRAPECIO
!x1= limite infeior
!x2= limite superior
!h= incremento de la varible x
!n= numero de trapecios
!area= suma de areas total
!q=suma 1
!suma= suma 2
implicit none
real,external::f
real::x1,x2,h,q,area,suma
integer::n,i
print*,'Metodo de trapecio para hallar areas'
print*,'Introduzca el limite inferior a integrar,x1: '
read*,x1
print*,'Introduzca el limite superior a integrar,x2: '
read*,x2
print*,'Introduzca el numero de trapecios a trabajar,n: '
read*,n
!proceso
h=(x2-x1)/n
q=(h/2.)*(f(x1)+f(x2))
suma=0
do i=1,n-1
suma=suma+h*f(x1+i*h)
enddo
area=q+suma
print*,'La respuesta usando el metodo del trapecio es: ',area
end
!ponemos la funcion que nos da la pregunta
real function f(x)
f=(-0.72)*x**2+ (7.2)*x-(9.2)
end

program thomastri ejer 3


implicit none
integer:: j,k,n
!j,k,n = elementos de la matriz
real:: m
real,allocatable :: a(:),resultado(:),b(:),c(:),d(:),x(:)
write(*,*)'matriz tridiagonal'
write(*,*)"Designe el numero de incognitas en las ecuaciones:"
read(*,*)n
allocate (a(n),resultado(n),b(n),c(n),d(n),x(n))
write(*,*)'Designe valores de diagonal principal: '
do j=1,n,1
write(*,*)'Designe los valores (', j,',', j,'):'
read(*,*)b(j)
end do
write(*,*)'Designe valores por arriba de la diagonal principal'
do j=1,n-1,1
write(*,*)'Designe el valor(', j,',', j+1,'):'
read(*,*)c(j)
end do
c(n)=0
write(*,*)'Designe valores por abajo de la diagonal'
do j=2,n,1
write(*,*)'Designe el valor(', j-1,',', j,'):'
read(*,*)a(j)
end do
a(1)=0
write(*,*)'LOS VALORES SON : '
do j=1,n,1
write(*,*)'Designe el valor(', j,'):'
read(*,*)d(j)
end do
do k=2,n,1
m=a(k)/b(k-1)
b(k)=b(k)-m*c(k-1)
d(k)=d(k)-m*d(k-1)
end do
resultado(n)=d(n)/b(n)
do k=n-1,1,-1
resultado(k)=(d(k)-c(k)*resultado(k+1))/b(k)
end do
write(*,*)'x1 x2 x4 x5 son:'
write(*,*)resultado
end program thomastri

program elipse PREGUNTA 1


implicit none
real,dimension(2)::pc,v1,v2,f1,f2
real::a,b,Am,Bm,D,E,F,dist_f_pc
print*,"ingrese la primera cordenada del primer foco:"
read(*,*)f1(1)
print*,"ingrese la segunda cordenada del primer foco:"
read(*,*)f1(2)
print*,"ingrese la primera cordenada del segundo foco:"
read(*,*)f2(1)
print*,"ingrese la segunda cordenada del segundo foco:"
read(*,*)f2(2)
print*,"ingrese la primera cordenada del primer vertice:"
read(*,*)v1(1)
print*,"ingrese la segunda cordenada del primer vertice:"
read(*,*)v1(2)
print*,"ingrese la primera cordenada del segundo vertice:"
read(*,*)v2(1)
print*,"ingrese la segunda cordenada del segundo vertice:"
read(*,*)v2(2)
!calculamos las coordenadas del punto central como el punto medio de los focos
pc(1)=(f1(1)+f2(1))/2.0
pc(2)=(f1(2)+f2(2))/2.0
!calculamos el semieje mayor como la distancia de un vertice al punto central
a=sqrt((v1(1)-pc(1))*2+(v1(2)-pc(2))*2)
!ahora necesitamos calcular el semieje menor
!esto lo aremos utilizabdo la definicion de la elipse y pitagoras
!distancia de uno de los focos al centro
dist_f_pc=sqrt((f1(1)-pc(1))*2+(f1(2)-pc(2))*2)
!por pitagoras
b=sqrt(a**2-dist_f_pc**2)
!ya tenemos los dos semiejes
!calculamos los coeficientes de la ecuacion de la elipse
Am=1.0/(a**2)
Bm=1.0/(b**2)
D=-2.0*pc(1)/(a**2)
E=-2.0*pc(2)/(b**2)
F=pc(1)*2/(a*2)+pc(2)*2/(b*2)-1.0
!imprimimos los coeficientes :
print*,"el coeficiente de A seria:",Am
print*,"el coeficiente de B seria:",Bm
print*,"el coeficiente de D seria:",D
print*,"el coeficiente de E seria:",E
print*,"el coeficiente de F seria:",F
!verificamos si es horizontal o vertical comparando los semiejes
if(a>b)then
print*,"la elipse es horizontal."
else
print*,"la elipse es vertical."
end if
end program

program temperatura
implicit none
integer,parameter::N=24
real,dimension(N)::v,hora
integer::i
real::MAX,MIN,cantidad,media
do i=1,24
print*,"intrducir la temperatura en grados de las",i-1,"horas"
read*,v(i)
enddo
cantidad=v(i)
MAX=1
MIN=1
do i=2,24
cantidad=cantidad+v(i)
if (v(i).GT.v(MAX))then
MAX=i
elseif(v(i).GT.v(MIN))then
MIN=1
endif
enddo
media=cantidad/N
print*,"la temperatura maxima es:",v(MAX),"y se da las:"
di i=1,24
if (v(i).EQ.v(MAX))then
print*,i-1,"horas"
endif
enddo
print*,"la temperatura minima:",v(MIN),"y se da las:"
do i=1,24
if (v(i).EQ.v(MIN))then
print*,i-1,"horas"
endif
enddo
print*,"la temperatura media es:",media
end program

También podría gustarte