Buscar

Lista 2 - Programação (1)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UNIVERSIDADE FEDERAL DE UBERLÂNDIA 
ENGENHARIA AERONÁUTICA 
 
 
 
 
Maria Eduarda de Souza Nunes – 12021EAR017 
 
 
 
 
 
 
 
 
 
2° Lista de Exercícios - FACOM49010W-1 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Uberlândia-MG 
 
 
 
 
Instruções 
Faça o programa em Fortran dos exercícios da 1a lista, de 1 ao 25. Salve a tela de 
execução de cada exercício. Para todo exercício, imprima inicialmente o nome e o seu 
número de matricula, bem como o número do exercício que está sendo executado. 
Anexe o programa e a imagem da execução do programa. Observe o exemplo 
referente ao execício 26. É individual, sem plagio, e original. 
 
EXERCÍCIO 1 - Calcular a distancia entre dois pontos. 
program ex1 
 implicit none 
 real :: x1, x2, y1, y2, d 
 
 print 100 
 100 format(1x,"Nome: Maria Eduarda de Souza Nunes – Matricula 
12021EAR017",/,1x,"Exercicio 1",2/) 
 print *,"Entre com x1" 
 read *, x1 
 
 print *,"Entre com y1" 
 read *, y1 
 
 print *,"Entre com x2" 
 read *, x2 
 
 print *,"Entre com y2" 
 read *, y2 
 
 d =((x2 - x1)**2 + (y2-y1)**2)**0.5 
 
 print*, "A distancia entre os ponto e de", d 
 end program 
 
 
 
EXERCÍCIO 2 - Programa para ler 3 numeros e calcular expressões dadas. 
program ex2 
 implicit none 
 integer :: A, B, C, R, S 
 real :: D 
 
 print 100 
 100 format(1x,"Nome: Maria Eduarda de Souza Nunes - Matricula: 
12021EAR017",/,1x,"Exercicio 2",2/) 
 
 print *, "Entre com A" 
 read *, A 
 
 print *, "Entre com B" 
 read *, B 
 
 print *, "Entre com C" 
 read *, C 
 
 
 
 S = (B + C)**2 
 R = (A + B)**2 
 D = (R + S)/2.0 
 
 print *, "D eh igual a", D 
 
end program 
 
 
EXERCÍCIO 3 - Programa para ler a idade expressa em anos, meses e dias e a 
expressar somente em dias. 
program ex3 
 
 implicit none 
 integer :: dias, meses, anos, total 
 
 
 print 100 
 100 format(1x,"Nome: Maria Eduarda de Souza Nunes - Matricula: 
12021EAR017",/,1x,"Exercicio 3",2/) 
 
 print *, "Entre com os dias" 
 read *, dias 
 
 print *, "Entre com os meses" 
 read *, meses 
 
 print *, "Entre com os anos" 
 read *, anos 
 
 total = dias + anos*365 + meses*30 
 
 print *, "O total e de", total, "dias" 
 
end program 
 
 
EXERCÍCIO 4 - Programa que ao ler a idade em dias, a expressa 
 em anos, meses e dias, mostrando o resultado para o usuário. 
program ex4 
 implicit none 
 integer :: a, m, d, dias 
 
 print 100 
 100 format(1x,"Nome: Maria Eduarda de Souza Nunes - Matricula: 
12021EAR017",/,1x,"Exercicio 4",2/) 
 
 print *, "Insira a idade (d) em dias" 
 read *, d 
 d = dias 
 print *, "Sua idade em dias e", d, "dias" 
 m = d/30 
 print *, "Sua idade em meses e", m, "meses" 
 a = d/365 
 print *, "Sua idade em anos e", a, "anos" 
end program ex4 
 
EXERCÍCIO 5 - Programa que ao ler 3 notas de um aluno, calcula a media ponderada 
considerando os pesos 2,3 e 5. 
program ex5 
 implicit none 
 integer :: nota1, nota2, nota3, MF 
print 100 
 100 format(1x,"Nome: Maria Eduarda de Souza Nunes - Matricula: 
12021EAR017",/,1x,"Exercicio 5",2/) 
 print *, "Insira nota1" 
 read *, nota1 
 print *, "Insira nota2" 
 read *, nota2 
 print *, "Insira nota3" 
 read*, nota3 
 MF =((nota1*2)+(nota2*3)+(nota3*5)/10) 
 print *, "A media final sera", MF, "pontos" 
 
end program 
 
 
 
EXERCÍCIO 6 - Programa que ao ler o tempo de duração, em segundos, de um 
evento, o expressa em horas, minutos e segundos. 
program ex6 
 implicit none 
 integer:: s, m, h 
 print 100 
 100 format(1x,"Nome: Maria Eduarda de Souza Nunes - Matricula: 
12021EAR017",/,1x,"Exercicio 6",2/) 
 print *, "Insira os segundos (s)" 
 read *, s 
 h = s/3600 
 print *, "A duracao em horas foi de", h, "horas" 
 m = mod (s, 3600)/60 
 print *, "A duracao em minutos foi de", m, "minutos" 
 s = mod (s, 3600)- m*60 
 print*, "Tempo de duracao foi:", h, "horas,", m, "minutos e", s, "segundos" 
 
end program ex6 
 
 
 
EXERCÍCIO 7 - Programa que ao ler o custo de fábrica, aplica as taxas indicadas e 
calcula o valor do carro e o mostra para o consumidor. 
program ex7 
 implicit none 
 integer :: C, Cf 
 print 100 
 100 format(1x,"Nome: Maria Eduarda de Souza Nunes - Matricula: 
12021EAR017",/,1x,"Exercicio 7",2/) 
 
 print*, " Qual o custo de fabrica " 
 read *, Cf 
 C = ((Cf*28/100)+ (Cf*45/100)+ Cf) 
 print *, " O custo ao consumidor sera de", C, "reais" 
 
end program 
 
 
 
EXERCÍCIO 8 - Programa que ao ler os coeficientes a,b,c,d,e,f calcula e mostra os 
valores de x e y, por meio das expressoes dadas. 
 
program ex8 
 implicit none 
 real :: a, b, c, d, e, f, x, y 
 print 100 
 100 format(1x,"Nome: Maria Eduarda de Souza Nunes - Matricula: 
12021EAR017",/,1x,"Exercicio 8",2/) 
 print *, "Insira a" 
 read *, a 
 print *, "Insira b" 
 read *, b 
 print *, "Insira c" 
 read *, c 
 print *, "Insira d" 
 read *, d 
 print *, "Insira e" 
 read *, e 
 print *, "Insira f" 
 read *, f 
 y =((a*f)-(c*d))/((a*e)-(b*d)) 
 x =((c*e)-(b*f))/((a*e)-(b*d)) 
 print*, "Os valores sao", y, x 
end program 
 
 
 
EXERCÍCIO 9 - Programa com o objetivo de calcular a média aritmética de 3 notas, 
mostrando o resultado obtido e classificando o aluno em aprovado ou reprovado. 
program ex9 
 implicit none 
 integer :: nota1, nota2, nota3, MA 
 print 100 
 100 format(1x,"Nome: Maria Eduarda de Souza Nunes - Matricula: 
12021EAR017",/,1x,"Exercicio 9",2/) 
 print *, "Insira nota1" 
 read *, nota1 
 print *, "Insira nota2" 
 read *, nota2 
 print *, "Insira nota3" 
 read *, nota3 
 MA =(nota1+nota2+nota3)/3 
 print *, "A media do aluno sera", MA 
 if (MA >= 6.0) then 
 print *, "Aprovado" 
 end if 
 if (MA < 6.0) then 
 print *, "Reprovado" 
 end if 
 end program 
 
EXERCÍCIO 10 - Programa que ao ler 3 valores, exibe o maior entre eles. 
program ex10 
 implicit none 
 real :: A, B, C 
 print 100 
 100 format(1x,"Nome: Maria Eduarda de Souza Nunes - Matricula: 
12021EAR017",/,1x,"Exercicio 10",2/) 
 
 print *, "Insira A, B, C" 
 read *, A, B, C 
 if (A > B .and. A > C) then 
 print *, "O maior valor corresponde a", A 
 end if 
 if (B>A .and. B>C) then 
 print *, "O maior valor corresponde a", B 
 end if 
 if (C>A .and. C>B) then 
 print *, "O maior valor corresponde a", C 
 end if 
 end program 
 
EXERCÍCIO 11 - Programa que ao ler 2 valores, informa se são múltiplos. 
program ex11 
 implicit none 
 real :: a, b, DIVISAO 
 print 100 
 100 format(1x,"Nome: Maria Eduarda de Souza Nunes - Matricula: 
12021EAR017",/,1x,"Exercicio 11",2/) 
 
 print *, " Insira a, b" 
 read *, a, b 
 DIVISAO = a/b 
 if (mod (a, b) ==0) then 
 print *, " A e B sao multiplos" 
 else 
 print *, "A e B nao sao multiplos" 
 end if 
 
end program 
 
EXERCÍCIO 12 - Programa para classificar nadador de acordo com a idade. 
program ex12 
 implicit none 
 integer :: x 
 print 100 
 100 format(1x,"Nome: Maria Eduarda de Souza Nunes - Matricula: 
12021EAR017",/,1x,"Exercicio 12",2/) 
 print *, " Insira a idade (x)" 
 read *, x 
 if (5 <= x .and. x <= 7) then 
 print *, " Voce esta na categoria infantil A" 
 end if 
 if (8<=x .and. x<=10) then 
 print *, " Voce esta na categoria infantil B" 
 end if 
 if (11<=x .and. x<=13) then 
 print *, "Voce esta na categoria juvenil A" 
 end if 
 if (14<=x .and. x<=17) then 
 print *, " Voce estana categoria juvenil B" 
 end if 
 if (x>18) then 
 print *, "Voce esta na categoria Adulto" 
 end if 
 
end program 
 
 
EXERCÍCIO 13 - Programa que mostra o maior dentre 3 valores inteiros. 
program ex13 
 implicit none 
 integer :: A, B, C 
 print 100 
 100 format(1x,"Nome: Maria Eduarda de Souza Nunes - Matricula: 
12021EAR017",/,1x,"Exercicio 13",2/) 
 
 print *, "Insira A, B, C" 
 read *, A, B, C 
 if (A > B .and. A > C) then 
 print *, "O maior valor corresponde a", A 
 end if 
 if (B>A .and. B>C) then 
 print *, "O maior valor corresponde a", B 
 end if 
 if (C>A .and. C>B) then 
 print *, "O maior valor corresponde a", C 
 end if 
 end program 
 
 
EXERCÍCIO 14 - Programa que ao ler o código de um aluno e suas 3 notas, calcula 
a média ponderada, considerando o peso 4 para a maior e 3 para as restantes. Além 
disso, ao final exibe se o aluno foi aprovado ou reprovado. 
program ex14 
 implicit none 
 real :: n1, n2, n3, MP, c 
 print 100 
 100 format(1x,"Nome: Maria Eduarda de Souza Nunes - Matricula: 
12021EAR017",/,1x,"Exercicio 14",2/) 
 
 print *, "Insira o codigo do aluno (c):" 
 read *, c 
 print*, "Insira o valor das n1, n2, n3:" 
 read *, n1, n2, n3 
 
 if (n1>n2 .and. n1>n3) then 
 MP = ((n1*4)+(n2*3)+(n3*3))/10 
 end if 
 if (n2>n1 .and. n2>n3) then 
 MP = ((n2*4)+(n1*3)+(n2*3))/10 
 end if 
 if (n3>n1 .and. n3>n2) then 
 MP = ((n3*4)+(n1*3)+(n2*3))/10 
 end if 
 
 if (MP>=5) then 
 print*, "APROVADO" 
 print*, "Seu codigo e", c 
 print*, "Sua media corresponde a", MP, "pontos" 
 end if 
 if (MP<5) then 
 print*, "Seu codigo e", c 
 print*, "Sua media corresponde a", MP, "pontos" 
 print*, "REPROVADO" 
end if 
 
end program ex14 
 
 
EXERCÍCIO 15 - Programa que ao ler um número inteiro indica se este pode ser 
classificado como par ou ímpar, e positivo, negativo ou neutro em caso de 0. 
program ex15 
 implicit none 
 integer :: x, par 
 print 100 
 100 format(1x,"Nome: Maria Eduarda de Souza Nunes - Matricula: 
12021EAR017",/,1x,"Exercicio 15",2/) 
 
 print *, "Insira o numero" 
 read *, x 
 
 par = x/2 
 if (mod (x,2)==0)then 
 print *, x, "pode ser classificado como par" 
 else 
 print *, x, "pode ser classificado como impar" 
 end if 
 if (x>0) then 
 print *, x, "pode ser classificado como positivo" 
 else if (x<0) then 
 print *, x, "pode ser classificado como negativo" 
 else 
 print *, x, "pode ser classificado como neutro" 
 end if 
 end program 
 
 
 
 EXERCÍCIO 16 - Programa que ao ler o código de um item e a quantidade, calcula o 
valor a ser pago pelo cliente. 
program ex16 
 implicit none 
 integer :: Q, C 
 real :: VALOR 
 print 100 
 100 format(1x,"Nome: Maria Eduarda de Souza Nunes - Matricula: 
12021EAR017",/,1x,"Exercicio 15",2/) 
 
 print *, "Informe o codigo do item:" 
 read *, C 
 print *, "Informe a quantidade desejada:" 
 read *, Q 
 if (C==100) then 
 VALOR = Q * 1.2 
 print *, "O valor total corresponde a: ", VALOR, "reais" 
 end if 
 if (C==101) then 
 VALOR = Q * 1.3 
 print *, "O valor total corresponde a: ", VALOR, "reais" 
 end if 
 if (C==102) then 
 VALOR = Q * 1.5 
 print *, "O valor total corresponde a: ", VALOR, "reais" 
 end if 
 
 if (C==103) then 
 VALOR = Q * 1.2 
 print *, "O valor total corresponde a: ", VALOR, "reais" 
 end if 
 if (C==104) then 
 VALOR = Q * 1.3 
 print *, "O valor total corresponde a: ", VALOR, "reais" 
 end if 
 if (c==105) then 
 VALOR = Q * 1.0 
 print *, "O valor total corresponde a: ", VALOR, "reais" 
 end if 
 
 end program 
 
 
EXERCÍCIO 17 - Programa que ao ler a altura e sexo de uma pessoa, calcula o peso 
ideal. 
program ex17 
 implicit none 
 real :: H, P 
 character :: s 
 print 100 
 100 format(1x,"Nome: Maria Eduarda de Souza Nunes - Matricula: 
12021EAR017",/,1x,"Exercicio 17",2/) 
 
 
 
 print *, "Insira a altura:" 
 read *, H 
 print *, "Insira o sexo (m ou f): " 
 read *, s 
 
 if (s == "m") then 
 P = (72.7 * h) - 58 
 print *, "O peso ideal corresponde a: ", P, "Kg" 
 end if 
 
 if (s == "f") then 
 P = (62.1 * h) - 44.7 
 print *, "O peso ideal corresponde a: ", P, "Kg" 
 end if 
 end program 
 
EXERCÍCIO 18 - Programa que ao ler o saldo médio de um cliente, calcula o valor do 
credito especial a ser liberado. 
program ex18 
 implicit none 
 integer :: SM !SM= saldo medio! 
 real :: C 
 print 100 
 100 format(1x,"Nome: Maria Eduarda de Souza Nunes - Matricula: 
12021EAR017",/,1x,"Exercicio 18",2/) 
 print *, "Insira o saldo medio" 
 read *, SM 
 select case (SM) 
 case (0:200) 
 print *, "O saldo medio corresponde a: ", SM, "reais" 
 print *, "O valor do credito corresponde a: ", 0 
 
 case (201:400) 
 print *, "O saldo medio corresponde a: ", SM, "reais" 
 C = SM * 0.2 
 print *, "O valor do credito corresponde a: ", C 
 case (401:600) 
 print *, "O saldo medio corresponde a: ", SM, "reais" 
 C = SM * 0.3 
 print *, "O valor do credito corresponde a: ", C 
 case (601:) 
 print *, "O saldo medio corresponde a: ", SM, "reais" 
 C = SM * 0.4 
 print *, "O valor do credito corresponde a: ", C 
 end select 
 
end program 
 
 
 
 
EXERCÍCIO 19 - Programa que permite o usuário escolher qual media deseja calcular 
a partir de 3 notas. 
program ex19 
 implicit none 
 real :: N1, N2, N3, X 
 integer ::M 
 print 100 
 100 format(1x,"Nome: Maria Eduarda de Souza Nunes - Matricula: 
12021EAR017",/,1x,"Exercicio 19",2/) 
 
 print *, "Insira as 3 notas:" 
 read *, N1, N2, N3 
 print *, "Tipos de media disponiveis: 1-Media Aritimetica,/, 2-Media Ponderada,/, 3-
Media Harmonica" 
 print *, "Insira o numero correspondente a media desejada:" 
 read *, M 
 
 select case (M) 
 
 case (1) 
 X = (N1+N2+N3)/3 
 print *, "A media aritmetica corresponde a: ", M 
 
 case (2) 
 X = ((N1 * 3) + (N2 * 3) + (N3 * 4))/10 
 print *, "A media ponderada corresponde a: ", M 
 
 case (3) 
 X = (3)/((1/n1) + (1/n2) + (1/n3)) 
 print *, "A media harmonica corresponde a: ", M 
 end select 
end program 
 
EXERCÍCIO 20 - Programa que recebe o codigo de um produto e a quantidade 
comprada, calculando o valor total a ser pago, de acordo com os valores dados. 
program ex20 
 implicit none 
 integer :: V, Q1, Q2, Q3, Q4, Q5, C 
 real :: v1, v2, v3, v4, v5, VT 
 
 print 100 
 100 format(1x,"Nome: Maria Eduarda de Souza Nunes - Matricula: 
12021EAR017",/,1x,"Exercicio 20",2/) 
 
 
 do V = 1,5 
 print *, "Insira o codigo do produto: " 
 read *, C 
 
 select case (C) 
 
 case (1001) 
 print *, "Informe a quantidade do produto 1001: " 
 read *, Q1 
 v1 = Q1 * 5.32 
 
 case (1324) 
 print *, "Informe a quantidade do produto 1324: " 
 read *, Q2 
 v2 = Q2 * 6.45 
 
 case (6548) 
 print *, "Informe a quantidade do produto 6548: " 
 read *, Q3 
 v3 = Q3 * 2.37 
 
 case (0987) 
 print *, "Informe a quantidade do produto 0987: " 
 read *, Q4 
 v4 = Q4 * 5.32 
 
 case (7623) 
 print *, "Informe a quantidade do produto 7623: " 
 read *, Q5 
 v5 = Q5 * 6.45 
 end select 
 end do 
 VT = v1 + v2 + v3 + v4 + v5 
print *, "O valor total a ser pago corresponde a: ", VT 
 
end program 
 
EXERCÍCIO 21 - Programa que recebe o código de um produto e a quantidade 
comprada, calculando o valor total a ser pago,de acordo com os valores dados. 
 program ex21 
 implicit none 
 
 character :: ABCD, XYPK, KLMP, QRST, C 
 integer :: V, q1, q2, q3, q4 
 real :: v1, v2, v3, v4, VV 
 print 100 
 100 format(1x,"Nome: Maria Eduarda de Souza Nunes - Matricula: 
12021EAR017",/,1x,"Exercicio 21",2/) 
 do V = 1,4 
 print *, "Insira o codigo do produto: " 
 read *, C 
 
 ABCD = 'A' 
 XYPK = 'X' 
 KLMP = 'K' 
 QRST = 'Q' 
 
 select case (c) 
 case ('A') 
 
 print *, "Qual a quantidade do produto 'ABCD': " 
 read *, q1 
 v1 = q1 * 5.30 
 case ('X') 
 print *, "Qual a quantidade do produto 'XYPK': " 
 read *, q2 
 v2 = q2 * 6.00 
 
 case ('K') 
 print *, "Qual a quantidade do produto" 
 print *, "Qual a quantidade do produto'KLMP': " 
 read *, q3 
 v3 = q3 * 3.20 
 
 case ('Q') 
 print *, "Qual a quantidade do produto 'QRST': " 
 read *, q4 
 v4 = q4 * 2.50 
 
 case default 
 print *, "Codigo Invalido" 
 
 end select 
 end do 
 VV = v1 + v2 + v3 + v4 
 print *, "O valor total e de", VV 
end program ex21 
 
 
EXERCÍCIO 22 - Programa que ao ler o salário e o código do cargo de um funcionário, 
calcule o novo salário de acordo com a tabela fornecida. Além disso, o programa deve 
mostrar o salário antigo, o novo e a diferença entre eles. 
program ex22 
 implicit none 
 real :: SA, NS, D !SA= salario atual, NS= novo salario, D= diferença! 
 integer :: X 
 print 100 
 100 format(1x,"Nome: Maria Eduarda de Souza Nunes - Matricula: 
12021EAR017",/,1x,"Exercicio 22",2/) 
 
 print *,"Os codigos para cada cargo correspondem a:101 = Gerente,/,102 = 
Engenheiro,/,103 = Tecnico" 
 print *, "Insira o codigo do funcionario" 
 read *, X 
 print *, "Insira o salario do funcionario" 
 read *, SA 
 
 select case (X) 
 case (101) 
 NS = (SA)*1.1 
 
 case (102) 
 NS = (SA)*1.2 
 
 case (103) 
 NS = (SA)*1.3 
 
 case default 
 NS = (SA)*1.4 
 
 end select 
 
 print *, "O salario antigo corresponde a: ", SA, "reais" 
 
 print *, "O novo salario corresponde a: ",NS, "reais" 
 D = NS - SA 
 print *, "A diferenca entre o novo salario e o salario atual e ", D, "reais" 
 end program 
 
EXERCÍCIO 23 - Programa que ao ler 3 valores inteiros e positivos, verifica se formam 
um triangulo, além de calcular e escrever a área do triangulo. Caso não formem, 
escrever os 3 valores lidos. 
program ex23 
 implicit none 
 integer :: a, b, c 
 real :: SP, Ar 
 print 100 
 100 format(1x,"Nome: Maria Eduarda de Souza Nunes - Matricula: 
12021EAR017",/,1x,"Exercicio 23",2/) 
 
 print *, "Insira os lados a" 
 read *, a 
 print *, "Insira os lados b" 
 read *, b 
 print *, "Insira os lados c" 
 read *, c 
 
 if (a < b + c .and. b < c + a .and. c < b + a) then 
 print *, "sera um triangulo" 
 endif 
 
 if (a == b .and. b == c) then 
 print *, "sera um triangulo equilatero" 
 SP = (a+b+c) 
 SP = SP/2 
 Ar = sqrt(SP*( (SP-a)* (SP-b)* (SP-c))) 
 print *, "a area sera de", Ar 
 
 elseif (a == b .or. b == c .or. c == a) then 
 print *, "sera um triangulo isosceles" 
 SP = (a+b+c) 
 SP = SP/2 
 Ar = sqrt(SP*( (SP-a)* (SP-b)* (SP-c))) 
 print *, "a area sera de", Ar 
 
 else 
 print *, "sera um triangulo escaleno" 
 SP = (a+b+c) 
 SP = SP/2 
 Ar = sqrt(SP*( (SP-a)* (SP-b)* (SP-c))) 
 print *, "a area sera de", Ar 
 
 endif 
 end program 
 
 
 
EXERCÍCIO 24 - Programa que ao ler a hora inicial e a hora final de um jogo, calcula 
a duração do jogo. Considerando que a duração máxima corresponde a 24 horas. 
program ex24 
 implicit none 
 integer :: HI, HF, D !HI= hora inicial, HF= hora final, D= duração! 
 print 100 
 100 format(1x,"Nome: Maria Eduarda de Souza Nunes - Matricula: 
12021EAR017",/,1x,"Exercicio 24",2/) 
 
 print *, "Insira a hora inicial: " 
 read *, HI 
 print *, "Insira a hora final: " 
 read *, HF 
 
 if (HI >= HF) then 
 D = (24 - HI) + HF 
 print *, "A duracao do jogo corresponde a: ", D, "horas" 
 
 else 
 
 D = HF - HI 
 print *, "A duracao do jogo corresponde a: ", D, "horas" 
 end if 
 
 end program 
 
 
 
EXERCÍCIO 25 - Programa que ao ler 4 valores, os escreve em determinada ordem 
de acordo com o valor de i. 
program ex25 
 implicit none 
 integer :: i 
 real :: a, b, c 
 print 100 
 100 format(1x,"Nome: Maria Eduarda de Souza Nunes - Matricula: 
12021EAR017",/,1x,"Exercicio 25",2/) 
 
 print *, "Insira o valor de a: " 
 read *, a 
 print *, "Insira o valor de b: " 
 read *, b 
 print *, "Insira o valor de c: " 
 read *, c 
 print *, "Insira o valor de i: " 
 read *, i 
 
 select case (i) 
 
 case (1) 
 if (a>b .and. a>c .and. b>c) then 
 print *, "Os valores em ordem crescente: ", c, b, a 
 
 else if (a>b .and. a>c .and. c>b) then 
 print *, "Os valores em ordem crescente: ", b, c, a 
 
 else if (b>a .and. b>c .and. a>c) then 
 print *, "Os valores em ordem crescente: ", c, a, b 
 
 else if (b>a .and. b>c .and. c>a) then 
 print *, "Os valores em ordem crescente: ", a, c, b 
 
 else if (c>a .and. c>b .and. a>b) then 
 print *, "Os valores em ordem crescente: ", b, a, c 
 
 else if (c>a .and. c>b .and. b>a) then 
 print *, "Os valores em ordem crescente: ", a, b, c 
 end if 
 
 case (2) 
 if (a>b .and. a>c .and. b>c) then 
 print *, "Os valores em ordem decrescente: ", a, b, c 
 
 else if (a>b .and. a>c .and. c>b) then 
 print *, "Os valores em ordem decrescente: ", a, c, b 
 
 else if (b>a .and. b>c .and. a>c) then 
 print *, "Os valores em ordem decrescente: ", b, a, c 
 
 else if (b>a .and. b>c .and. c>a) then 
 print *, "Os valores em ordem decrescente: ", b, c, a 
 
 else if (c>a .and. c>b .and. a>b) then 
 print *, "Os valores em ordem decrescente: ", c, a, b 
 
 else if (c>a .and. c>b .and. b>a) then 
 print *, "Os valores em ordem decrescente: ", c, b, a 
 end if 
 
 case (3) 
 if (a>b .and. a>c .and. b>c) then 
 print *, "Os valores correspondem a: ", c, a, b 
 
 else if (a>b .and. a>c .and. c>b) then 
 print *, "Os valores correspondem a: ", b, a, c 
 
 else if (b>a .and. b>c .and. a>c) then 
 print *, "Os valores correspondem a: ", c, b, a 
 
 else if (b>a .and. b>c .and. c>a) then 
 print *, "Os valores correspondem a: ", a, b, c 
 
 else if (c>a .and. c>b .and. a>b) then 
 print *, "Os valores correspondem a: ", b, c, a 
 
 else if (c>a .and. c>b .and. b>a) then 
 print *, "Os valores correspondem a: ", a, c, b 
 end if 
 end select 
 end program

Outros materiais