Trabalho APROG

Get Started. It's Free
or sign up with your email address
Trabalho APROG by Mind Map: Trabalho APROG

1. Empresa VoltDEI faz entregas de produtos.

1.1. Frota variável de veículos.

1.1.1. Formato: V0, V1, ... (sequencial V + numero)

1.2. Todos os veículos tem autonomia de 100km inicial

1.2.1. Quando percorre 100km, realiza o carregamento total da bateria, sendo a carga proporcional à distância percorrida.

1.2.1.1. 1km - 1%

2. kms a percorrer % 100 = qtd recargas

3. Km Iniciais < Km Seguintes

4. Km Iniciais == Km Seguintes

5. O 2º input corresponde ao numero de carros e numero de dias. 3 6 corresponde a 3 carros ao longo de 6 dias. Matriz obrigatória

6. Assumo que o 1 carro é o de prevençao. IDCarro = 0 e KmCarro = valor da matriz

7. Lista de objetivos

7.1. a) construção da matriz: ler as linhas e construção da matriz

7.2. b) array com o total de km a percorrer por cada veículo

7.3. c) matriz com a quantidade de recargas necessárias em cada dia para cada veículo e visualizar essa matriz.

7.3.1. listar tudo numa matriz com dimensões iguais à original

7.3.1.1. copiar a matriz original para uma outra matriz, e alterar os valores em cada entrada

7.4. d) Obter uma matriz com a quantidade o nível de carga da bateria de cada veículo ao final de cada dia e vizualizar a matriz

7.4.1. Percentagem de bateria por dia = 100 + nºrecargas*100 - km a percorrer.

7.4.1.1. Para o dia seguinte:

7.4.1.1.1. Verifico a quantidade do dia anterior. Quantidade que sobra = 100 - dia anterior

7.4.1.1.2. Percentagem de bateria por dia = 100 + nºrecargas *100 - km a percorrer + qtd dia anterior (inicio a qtd ao módulo acima)

7.4.1.1.3. Iterar com a qtd a 0

7.5. e) Obter um array com a média dos kms percorridos pela frota, em cada dia e visualizar essa informaçao

7.5.1. No array inicial, percorro as colunas, somo os valores e divido pelo numero de carros da frota.

7.6. f) Listar todos os veículos que percorrem distancias acima da média.

7.6.1. <n> . n corresponde à quantidade de veículos que estão acima da média,

7.6.2. Listar os veículos.

7.6.3. O output para 2 ou mais veículos será: <2> veículos : [V0] [V2]

7.6.4. Comparar o array das médias com a matriz original (por linha). Se km > media

7.7. g) Veículo com mais dias consecutivos a necessitar de recarga

7.7.1. Na matriz de recargas, verifico a qtd de recargas sucessivas > 0

7.7.2. Tenho que saber a qtd de dias sucessivos

7.7.3. No caso de 2 carros com mesmo numero de dias consecutivos imprimo os 2

7.7.4. EX: <3> dias consecutivos, veículos : [V0] [V1] 3 dias consecutivos V0 e V1

7.8. h) obter e visualizar o dia mais tardio em que todos os veículos necessitarão de recarregar nesse dia ou (-1)

7.8.1. Percorro a matriz das recargas e verifico os dias em que todos os carros realizam 1 recarga ou mais.

7.8.2. No caso de ter mais do que um dia com recargas, imprimo o dia mais tardio

7.8.3. No exemplo temos: dia 2, porque é o unico dia com os 3 carros a realizar um carregamento. Se no dia 5 tivessemos os 3 carros a carregar, o dia mais tardio seria 5

7.9. i) calcular o valor das recargas da frota.

7.10. j) no programa, eu escolho um dia para o qual eu verifico uma serie de condições (esse dia é configurável -> para efeitos de teste fica 4).

7.10.1. Tenho que verificar na matriz dos km o veículo com menor uso no dia dado

7.10.1.1. Matriz com carga das baterias

7.10.1.1.1. Se 2 com mesma carga, seleciono o ID mais baixo

7.10.2. Tiver menos uso nesse dia

7.10.3. Bateria mais carregada nesse dia

7.10.4. o ID mais baixo.

8. Logica j)

8.1. Km Inicial > Km Seguinte

8.1.1. Km inicial = km seguintes ID carro = ID carro seguinte

8.1.1.1. Proxima iteraçao

8.2. Km Inicial < Km seguinte

8.2.1. Km inicial mantem ID carro mantem

8.2.1.1. Proxima iteraçao

8.3. Km Inicial == Km Seguinte

8.3.1. % bateria carro inicial > % bateria carro seguinte

8.3.1.1. km carro mantem ID carro mantem

8.3.1.1.1. Proxima iteraçao

8.3.2. % bateria carro inicial < % bateria carro seguinte

8.3.2.1. km carro inicial = km carro seguinte ID carro = ID carro seguinte

8.3.2.1.1. Proxima iteraçao

8.3.3. % bateria carro inicial == % bateria carro seguinte

8.3.3.1. Km carro inicial mantem ID carro inicial mantem

8.3.3.1.1. Proxima iteraçao

9. Assumo os km do carro inicial e o IDCarro=0

10. Não faz sentido colocar este teste porque não altera o estado inicial

11. O estado final destes dois cenários são iguais, ou seja, posso juntar > com o = e obter logo um só caso

12. Como os km dos carros sao iguais, só preciso alterar o IDcarro para o id carro seguinte

12.1. ID carro = ID carro seguinte

13. Nesta situaçao, temos 2 casos, ou >= ou <. Como o caso que me interessa verificar é o < e o outro mantem igual os valores iniciais, nao preciso testar para esses. Fica só o teste para < e a alteraçao do IDCarro.