Advertisement
zrhans

fatura_conta_de_luz_luizF.f90

Jun 8th, 2016
321
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. !Faça um programa que leia o nome de um equipamento elétrico, sua potência, quantas horas de funcionamento, valor do kW/h em Reais.
  2. !Ao ser digitado "fim" no nome do equipamento, o programa deve fechar a fatura listando na tela e em um arquivo, disposto em colunas o nome
  3. !do equipamento, a potência, horas de funcionamento, o consumo e valor gasto. Nas últimas linhas deve-se apresentar um resumo dos valores
  4. !médios e totais.
  5.  
  6. !------------------------------------------------------------
  7.  
  8. !! Este programa gera e calcura uma fatura de consumo de
  9.  
  10. ! energia Elétrica
  11.  
  12. ! Equações acessórias:
  13.  
  14. !  CONSUMO = POTENCIA  HORAS
  15.  
  16. !  VALOR_PAGAR = (CONSUMO/1000.0)  VALOR_QUILOWATT_HORA
  17.  
  18. !! Autor: Luis Fernando Fontoura de Oliveira (201610169)
  19.  
  20. ! Data : 19/05/2016
  21.  
  22. !--------------------------------------------------------------
  23.  
  24. program consumo_eletrico
  25. implicit none
  26.  
  27. !Criando um tipo derivado para agremiar dados de diferentes tipos do registro do produto
  28. type registro_equipamento
  29.    character (len=*) :: nome_equip=' '
  30.    real::potencia_equip,horas_func,consumo_eletricidade
  31. end type registro_equipamento
  32.  
  33. !Declarando uma variável nomeada 'equip' do tipo registro_equipamento, criado acima, e as outras necessárias pra execução do programa
  34. real::valor_kwh_R,total_custo,total_consumo,consumo_medio
  35. type(registro_equipamento),dimension(1) ::item_conta
  36. integer::i=1,quantidade_itens,k
  37.  
  38. !Lê-se o custo de kilowatt/hora apenas uma vez, porque ele será fixo
  39. print*,"Insira o custo do kilowatt/hora, em reais: "
  40. read*,valor_kwh_R
  41.  
  42. !Abre um arquivo chamado conta_eletricidade.dat, que caso não exista será criado. A ele é atribuída a unidade (caminho) 1.
  43. open (1, file = "conta_eletricidade.dat")
  44. !Inicia-se um loop infinito, dado que começa em 1, i>0.
  45. do while (i>0)
  46.  print*,'Insira o nome do equipamento eletrônico. Para sair, digite [fim].'
  47.  read*, item_conta(i)%nome_equip
  48.  !Testa se o usuário digitou "fim", para encerrrar o programa. Caso sim, o programa entrará em loop da posição 1 até n-1 dos elementos
  49.  !de item_conta, exibindo os seus dados registrados, visto que a última posição refere-se àquela onde o nome do produto está setado em
  50.  ! "fim", que não interessa em aparecer ao usuário.
  51.   if (item_conta(i)%nome_equip == "fim") then
  52.    do k=1,(i-1)
  53.     print*,"Equipamento: ",item_conta(k)%nome_equip
  54.     print*,"Potência do equipamento: ",item_conta(k)%potencia_equip
  55.     print*,"Consumo total do equipamento: ",item_conta(k)%consumo_eletricidade
  56.     total_consumo=total_consumo+item_conta(k)%consumo_eletricidade
  57.    enddo
  58.     print*,"O  total de equipamentos registrados foi",(i-1),"e o seu consumo total foi de",total_consumo,"kilowatts."
  59.     print*,"O consumo médio deles é igual a ",(total_consumo/(i-1))," kilowatts/hora."
  60.     total_custo=(total_consumo*valor_kwh_R)/1000
  61.     print*,"O custo total da fatura foi de R$",total_custo
  62.    stop
  63.   endif
  64.  print*,'Insira a potência em kilowatts do equipamento eletrônico.'
  65.  read*, item_conta(i)%potencia_equip
  66.  print*,'Insira o número de horas mensais de funcionamento do equipamento eletrônico.'
  67.  read*, item_conta(i)%horas_func
  68.  
  69.  !Atribui à componente "consumo eletricidade" da variável item_conta na posição i a multiplicação do número de horas em funcionamento
  70.  !pela potência do equipamento
  71.  item_conta(i)%consumo_eletricidade=item_conta(i)%potencia_equip*item_conta(i)%horas_func
  72.  !incrementa em 1 o contador do array item_conta em 1
  73.  i=i+1
  74. enddo
  75. close(1)
  76.  
  77. end program consumo_eletrico
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement