aprog_leim_1091265_1111263

7
1 !"#$%&'(&) + ,%$#%)()-.$ !"#$#%&' )"*+,-' Ano de 2015/2016 Nome / Sara Belchior / 1091265 João Ribeiro / 1111263 Número / Curso / Engenharia Instrumentação e Metrologia Data 09/01/2016

Upload: 1111263

Post on 27-Feb-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

7/25/2019 APROG_LEIM_1091265_1111263

http://slidepdf.com/reader/full/aprogleim10912651111263 1/7

1

!"#$%&'(&) + ,%$#%)()-.$ 

!"#$#%&' )"*+,-' 

Ano de 2015/2016

Nome / Sara Belchior / 1091265

João Ribeiro / 1111263

Número / Curso / Engenharia Instrumentação e Metrologia

Data 09/01/2016

7/25/2019 APROG_LEIM_1091265_1111263

http://slidepdf.com/reader/full/aprogleim10912651111263 2/7

2

Índice 

Introdução…………………………………………………………3

Desenvolvimento do trabalho.………….…………………………4

Conclusão……………………………………….……………….…7

7/25/2019 APROG_LEIM_1091265_1111263

http://slidepdf.com/reader/full/aprogleim10912651111263 3/7

3

Introdução

 No âmbito da unidade curricular Algoritmia e Programação foi proposto à

turma, desenvolver um programa que auxiliasse o processo de gestão de portagens de

uma auto-estrada em linguagem de programação C.

 Neste projecto o programa deve registar a informação dos veículos que entram

na autoestrada, bem como todas as portagens onde entraram e saíram, e montantes

 pagos.

Este trabalho permiti-nos-á desenvolver uma melhor capacidade de resolver

 problemas propostos e ajudará na nossa evolução da aprendizagem de uma liguagem

de programação. Através dele iremos aprender a utilizar certas ferramentas úteis em progamação, como por exemplo vetores e estruturas.

7/25/2019 APROG_LEIM_1091265_1111263

http://slidepdf.com/reader/full/aprogleim10912651111263 4/7

4

Objectivos e Desenvolvimento do trabalho

Para a realização deste projecto foi necessario criar 3 estruturas (uma de

veiculos, uma de portagens e uma de autoestradas) e vectores onde fosse possivel

armazenar toda a informação recolhida pelo utilizador.

Para ser possivel registar a entrada de um veiculo na autoestrada foi criada a

função “registarentrada” onde vai ser possivel perguntar ao utilizador qual é a

matricula e a classe do carro que quer dar entrada na autoestrada, bem como a

 portagem onde dá entrada. Já nesta função é feita a validação da classe do carro.

A função “veiculosretidos” tem como função registar todos os veiculos que

ainda não registaram a saída, logo que ainda não saíram da autoestrada. Esta função percorre o vector dos veiculos e verifica quais os veiculos que ainda não têm uma

saida registada e guarda esse veiculos num novo vetor de veiculos retidos.

Para listar os veiculos que ainda se encontram em circulação foi criada a função

“listarretidos” que simplesmente percorre a portagem de saída e caso esteja a 0

(significa que o veiculo ainda não saíu) ele mostra a matricula e a classe dos mesmos.

De seguida criamos a funçã ” pesquisarclasse”,  que vai pedir ao utilizador a

classe que pretende procurar (e validando de novo a mesma) e usando o vetor

 preenchido na função “veiculosretidos”, ela percorre-o e conta quantos veiculos estão

nesse vetor.

A proxima função ” pesquisarmatricula”, vai fazer pesquisar a uma matricula

introduzida pelo utilizador e vai mostrar se este se encontra na autoestrada ou não e se

ainda estiver em circulação, ela vai vai mostrar em que portagem entrou.

 Na função “valorpagar ”, a unica funcionalidade é calcular os valores a pagar por

cada classe, visto que se o veiculo não for de classe 1 tem um valor acrescido a pagar.

A função seguite “registarsaida”, vai registar a saída do veículo da autoestrada,

ela vai listar todos os veiculos que ainda não deram saída da autoestrada, vai pedir para

o utilizador escolher um veiculo e depois listar as possibilidade de saída que o veiculo

e de seguida calcular o valor total a pagar pelo mesmo. Da maneira como foi criada

esta função não é necessario haver uma validação se o veiculo quer dar saida sem ter

dado entrada.

7/25/2019 APROG_LEIM_1091265_1111263

http://slidepdf.com/reader/full/aprogleim10912651111263 5/7

5

De seguida com a função “maismenosfaturado”, vai percorrer o vector de

 portagnes e por comparação entre eles vai apresental qual a portagem que mais faturou

e a que menos faturou até ao momento. Apresenta tambem o valor que elas faturaram.

A função “valoranual ”, percorrendo o vetor vai fazendo o sumatorio do valor de

total pago de todas as portagens.

A próxima função “listadecrescente”,  de novo vai percorrer o vetor de

autoestrada e comparando o valor das variaveis totalveiculos (trafego que passa em cada

 portagem) e faz uma lista decrescente com base nessa variavel.

 No menu temos o primeiro conjunto de opções iniciais que irá fazer com que o

utilizador tenha a possibilidade de escolher fazer o que pretende mediante as opções que

lhe são apresentadas.

 Na main foram criados todos os vetores necessarios neste programa e foi

tambem adicionada a autoestrada que nos foi fornecida como exemplo para que seja

fosse possivel testar previamente o programa.

7/25/2019 APROG_LEIM_1091265_1111263

http://slidepdf.com/reader/full/aprogleim10912651111263 6/7

6

Limitações Encontradas

Foram encontrados muitos obstáculos no decorrer deste projecto. Um deles foi

com a utilização do “gets” para guardar uma variável do tipo string, pois este método não

aceitava o uso de scanf no decorrer do código, pelo menos achamos que era esse o

 problema. Até que decidimos trocar o “gets” para o “fgets” e mesmo assim não

conseguimos solucionar o problema e então por fim decidimos passar também todos os

“scanfs” para “fgets” e imediatamente a seguir, quando a variável era um inteiro ou um

float fez logo a conversão de “string” para, por exemplo, inteiro pelo método “atoi” e só

assim conseguimos contornar este obstáculo. Só tomamos conhecimento que era possível

a utilização do método “atoi” através um nosso colega que frequenta o curso deEngenharia Informática e nos explicou como fazer quando lhe perguntamos o que ele

faria se este problema lhe aparecesse. Outros problemas surgiram como, por exemplo,

 para inserir um veiculo, ao preencher os seus dados, o programa, mesmo não sendo

introduzida nenhuma informação relativamente à saída do mesmo, preenche a saída com

informação “lixo” não sendo depois possível para a função de veículos retidos procurar

 por saídas “vazias”.

7/25/2019 APROG_LEIM_1091265_1111263

http://slidepdf.com/reader/full/aprogleim10912651111263 7/7

7

Conclusão

Como já foi referido, este trabalho foi muito útil para consolidar vários conceitos

aprendidos em aulas teóricas desta unidade curricular. Saber algumas bases de

 programação poderá vir a ser muito útil a nível profissional.

Com este trabalho, através da sua resolução conseguimos absorver bastante

conhecimento relativamente a vetores e apontadores. Permitiu-nos desenvolver a

capacidade de sermos autónomos e foi necessário organizar as ideias que iam surgindo de

modo a conseguir implementa-las no código.

Por fim podemos afirmar que com este projeto, é uma forma de aplicarmos o

nosso conhecimento adquirindo ao longo das aulas práticas e teóricas de Algoritmia eProgramação que nos possibilitou a passagem por alguns obstáculos que fomos

encontrando ao longo da resolução do trabalho. Porém existem muitas melhorias a fazer

ao programa, tais como a verificação da matricula, entre outras. Muitas duvidas surgiram

na conclusão do programa o que dificultou bastante a qualidade do mesmo. Não foram

efectuadas muitas validações possível, uma vez que sem ultrapassar os obstáculos

referidos no decorrer deste relatório não fazia sentido acrescentar mais código, sendo que

a nossa prioridade era primeiro pôr todas as funcionalidade básicas a correr direito e só

depois fazer as várias validações pedidas.