Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- !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.
- !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
- !do equipamento, a potência, horas de funcionamento, o consumo e valor gasto. Nas últimas linhas deve-se apresentar um resumo dos valores
- !médios e totais.
- !------------------------------------------------------------
- !! Este programa gera e calcura uma fatura de consumo de
- ! energia Elétrica
- ! Equações acessórias:
- ! CONSUMO = POTENCIA HORAS
- ! VALOR_PAGAR = (CONSUMO/1000.0) VALOR_QUILOWATT_HORA
- !! Autor: Luis Fernando Fontoura de Oliveira (201610169)
- ! Data : 19/05/2016
- !--------------------------------------------------------------
- program consumo_eletrico
- implicit none
- !Criando um tipo derivado para agremiar dados de diferentes tipos do registro do produto
- type registro_equipamento
- character (len=*) :: nome_equip=' '
- real::potencia_equip,horas_func,consumo_eletricidade
- end type registro_equipamento
- !Declarando uma variável nomeada 'equip' do tipo registro_equipamento, criado acima, e as outras necessárias pra execução do programa
- real::valor_kwh_R,total_custo,total_consumo,consumo_medio
- type(registro_equipamento),dimension(1) ::item_conta
- integer::i=1,quantidade_itens,k
- !Lê-se o custo de kilowatt/hora apenas uma vez, porque ele será fixo
- print*,"Insira o custo do kilowatt/hora, em reais: "
- read*,valor_kwh_R
- !Abre um arquivo chamado conta_eletricidade.dat, que caso não exista será criado. A ele é atribuída a unidade (caminho) 1.
- open (1, file = "conta_eletricidade.dat")
- !Inicia-se um loop infinito, dado que começa em 1, i>0.
- do while (i>0)
- print*,'Insira o nome do equipamento eletrônico. Para sair, digite [fim].'
- read*, item_conta(i)%nome_equip
- !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
- !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
- ! "fim", que não interessa em aparecer ao usuário.
- if (item_conta(i)%nome_equip == "fim") then
- do k=1,(i-1)
- print*,"Equipamento: ",item_conta(k)%nome_equip
- print*,"Potência do equipamento: ",item_conta(k)%potencia_equip
- print*,"Consumo total do equipamento: ",item_conta(k)%consumo_eletricidade
- total_consumo=total_consumo+item_conta(k)%consumo_eletricidade
- enddo
- print*,"O total de equipamentos registrados foi",(i-1),"e o seu consumo total foi de",total_consumo,"kilowatts."
- print*,"O consumo médio deles é igual a ",(total_consumo/(i-1))," kilowatts/hora."
- total_custo=(total_consumo*valor_kwh_R)/1000
- print*,"O custo total da fatura foi de R$",total_custo
- stop
- endif
- print*,'Insira a potência em kilowatts do equipamento eletrônico.'
- read*, item_conta(i)%potencia_equip
- print*,'Insira o número de horas mensais de funcionamento do equipamento eletrônico.'
- read*, item_conta(i)%horas_func
- !Atribui à componente "consumo eletricidade" da variável item_conta na posição i a multiplicação do número de horas em funcionamento
- !pela potência do equipamento
- item_conta(i)%consumo_eletricidade=item_conta(i)%potencia_equip*item_conta(i)%horas_func
- !incrementa em 1 o contador do array item_conta em 1
- i=i+1
- enddo
- close(1)
- end program consumo_eletrico
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement