Baixe o app para aproveitar ainda mais
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
Compartilhar