View Full Version : [AJUDA] Pseudo código!!!


crunch
11-04-2007, 13:41
Olá bom dia,

Estou a fazer um Curso CET de Redes e Sistemas Informáticos e tenho uma cadeira de Programação de Sistemas.
E para estar aqui a colocar um post, escusado será dizer, é porque estou assim um bocado ás aranhas. O professor pediu para fazermos um trabalho, apenas em pseudo código, sobre autoestradas.

Fez uns rabiscos com uma rede de autoestradas, portagens, entradas na autoestrada, distâncias entres pontos e qual o preço para as portagens (5 cêntimos/2km). O que o professor quer saber é, a qualquer altura, quantos carros estão ao mesmo tempo nas autoestradas e quanto paga cada carro de portagem?
Em relação ao nº de carros será algo como a diferença entre os carros que entraram e os carros que saíram. Mas tenho, e penso que toda a turma tem, muitas dificuldades em passar isso para o pseudo código! snif snif!!!

http://img243.imageshack.us/img243/3493/untitled2ow6.jpg

O esquema das estradas será algo parecido com isto...

Alguém quer dar uma ajuda?

Luís

overcrash
12-04-2007, 22:25
Boas,

Só para tentar entender, o preço das portagens será o do momento? Tipo, entrei na portagem A, andei 10 KM e nesse momento tem de ser calculado o montante a pagar para os 10 KM, mesmo sem ter saído da Auto-Estrada??
Se for assim tens de saber a posição dos carros com GPS, não? :)

Podem ser consideradas tabelas / bases de dados para o código?

Cumps

theforbidden1
12-04-2007, 22:48
Parece-me 1 caso para a teoria dos grafos.
Já agora o preço de portaguem deve ser sabido na hora do pagamento e não via gps

Hashiriya
13-04-2007, 00:02
Heckel, a thread é deste ano :-D

crunch
13-04-2007, 00:09
Boas,

Só para tentar entender, o preço das portagens será o do momento? Tipo, entrei na portagem A, andei 10 KM e nesse momento tem de ser calculado o montante a pagar para os 10 KM, mesmo sem ter saído da Auto-Estrada??
Se for assim tens de saber a posição dos carros com GPS, não? :)

Podem ser consideradas tabelas / bases de dados para o código?

Cumps

Olá,

A portagens são os pontos B, C, D, E, F e cidades
Não sei se adianta mas tenho as distâncias entre os vários pontos.

Para o nº de carros já fiz algo como isto mas duvido que esteja completo:

inteiro total;
total <- 0

se carro entrou
total = total + 1
se não carro saiu
total = total - 1
fim do se

Não sei é como lhe dizer como é que um carro entra ou sai!

Isto é uma cena mesmo básica mas tou um bocado aflito! :lol:

msdevweb
13-04-2007, 21:36
Humm... vamos ver...

PORTAGENS [A][B][C][D][E]

Primeiro passo.

Faz uma funçao que calcule a distancia entre os varios pontos com base nas tuas distancias para que depois seja s´o chamares a funçao.

Depois.

Logica (entrada e saida de viaturas da AE introduzidas pelo utilizador)

Entrada de carro na AE (Auto estrada) (on Event ENTRADA)
- - Pedir e guardar informaçoes de entrada e carro (LOCAL_ENTRADA, DATA, HORA, MATRICULA)
- - Actualizar a variavel de carros na AE (CARROS_NA_AE = CARROS_NA_AE + 1)

Saida de carro da AE (on event SAIDA)
- - Verificar se a Matricula e Local saida sao validos (Se MATRICULA esta na bd/matriz de entradas)
- - Se a informaçao do carro for valida, bem como a sua saida, chamar a funçao das distancias para devolver o valor da distancia percorrida, calcular o preço e apresentar ao utilizador.
- - Actualizar a variavel de carros na AE com a saida ( CARROS_NA_AE=CARROS_NA_AE - 1 )

Consulta de carros na AE (On event CONSULTA)
- - Devolver ao utilizador o valor da variavel CARROS_NA_AE

Simples nao?


Um pouco de EOTD (estrutura, organizaçao e tratamento de dados, he he):

DADOS/VARIAVEIS/FUNÇOES

var CARROS_NA_AE (carros em circulaçao na autoestrada)

matriz/db ENTRADAS_DADOS ( guarda os dados de todas as entradas de carros na AE, CAMPOS: LOCAL_ENTRADA, DATA, HORA, MATRICULA)

Function CALC_DISTANCIAS(var DE, var ATE) (funçao para devolver as distancias entres 2 pontos (entrada e saida) com base nas informaçoes que tens)

Function GUARDA_DADOS (DADOS_ENTRADA) (funçao para guardar os dados da entrada)


INICIO:
CARROS_NA_AE = null;
ENTRADAS_DADOS = null;


PROGRAMA
->MENU
--->OPÇAO INTRODUZIR ENTRADA DE CARRO NA AE:
- - - Evento: ENTRADA -> Funçao GUARDAR_DADOS_ENTRADA ( db/matriz = LOCAL_ENTRADA, DATA, HORA, MATRICULA)
- - - - - >Actualizar variavel CARROS_NA_AE (CARROS_NA_AE=CARROS_NA_AE + 1;)

--->OPÇAO INTRODUZIR SAIDA DE CARRO DA AE:
- - - Evento: SAIDA -> Guarda MATRICULA_SAIDA_TEMP e LOCAL_SAIDA_TEMP) - Verificas se esta matricula de saida temporarias coincidem com alguma guardada na tua db/matriz ENTRADAS_DADOS, se:
-------------VERDADE : retiras o local_entrada e funçao CALCULA_DISTANCIA (LOCAL_ENTRADA, LOCAL_SAIDA_TEMP), de seguida calculas o preço ou seja, resultado da funçao calcula_distancia / 2 *5cts, nao esquecas de arredondar o valor da funçao distancia para km. divides por 2 e multiplicas tudo por 5cts. e tens o valor a pagar. E actualizas a variavel carros na ae ( CARROS_NA_AE=CARROS_NA_AE - 1;)
--------------FALSO: Return false (mensagem a utilizador a dizer que essa matricula de saida nunca chegou a entrar na AE)

--->OPÇAO VERIFICAR CARROS NA AE
- - - - Mostrar ao utilizador o conteudo da variavel CARROS_NA_AE;



DONE!!! weeeeeeeee
:) Acabado!

Foi engraçado relembrar as secas que apanhava nas aulas :) muito util as vezes!!!

Nota que isto pode nao ser bem o que queres.E se for o caso! Desculpa a SECA.

Espero ter ajudado.

Abraço.

_Neo__
15-04-2007, 22:36
sempre achei que fazer logo em linguagem de programação dava menos trabalho que pseudo-código
porra fazia isto em vb6/.net qbasic c c++ java mas em pseudo não percebo nada disto :004:

HecKel
16-04-2007, 00:06
Acredita, o tempo que poupas é bastante. Eu detecto 90% dos meus erros de algoritmos em tabelas de variáveis, pseudo-código e em diagramas. Quando vou programar só tenho de ter em atenção os erros de sintaxe e semântica da linguagem de programação ;)

Btw, tb não acho grande piada a pseudo-código, gosto mais de estruturar em forma de diagramas ou uns textos meio marados que eu compreenda, mas faço sempre isso antes de passar para o código ;)

Sobre a dúvida da thread, de facto com grafos ficavas com um grande adiantamento, no entanto não acho que valha a pena tanto trabalho :P

Sobre quanto paga cada carro, é simples, tens de saber onde ele entrou e onde saiu, depois vais a uma tabela de kilómetros e sacas qual a distância entre essas duas cidades, depois multiplicas esse valor por 0,05, assim obtens o valor em EUROS do valor a ser pago :P

Sobre a quantidade de carros, já tu sabes como fazer ;)

Passar isto para pseudo-código..., é pá, sabes o que tens a fazer, sabes o que tens de utilizar, agora é só juntar ambas as coisas de uma forma estruturada ;) Vais ver que chegas ao pseudo-código final em pouco tempo.

abraços, HecKel

crunch
16-04-2007, 12:49
Bom dia,

Obrigado a todos pelas respostas e ajuda.

Fiz algo parecido com isto:

Programa Autoestradas
inicio do programa
inteiro total;
total <- 0

enquanto total >= 0;
se carro entrou
total = total + 1;
se não carro saiu
total = total - 1;
fim do se
escrever ("Número de carros nas autoestradas: ") total;
fim do enquanto
escrever ("Neste momento não existem carros nas autoestradas");

fim do programa

---------------------------

Programa Portagens
inicio do programa
string portagem, percurso;
float km, valor
inteiro OrafB, PortuelB, LisputaF, ConisbraF, BC, CD, DF, DE;

OrafB <- 20
PortuelB <- 26
LisputaF <- 12
ConisbraF <- 11
BC <- 12
CD <- 15
DF <- 20
DE <- 12
km <- 0,025
escrever ("Qual o tipo de portagem?");
ler portagem;
se portagem = scut
escrever ("Viagem à borla. Pode seguir!!");
se não portagem = paga
escrever ("Qual o percurso efectuado?");
ler percurso;
valor = percurso x km;
escrever ("Voçê tem a pagar: ") valor;
fim do se
fim do programa

(Ignorem a parte das Scut... eheheh)

Mostrei ao prof e ele diz que está mal...! snif snif >(

Provavelmente vou ter que fazer algo com arrays e estruturas mas não estou a ver como! :(


Luís

souto
16-04-2007, 12:55
Sobre este tema, não tive oportunidade de ler o que está acima, mas há um livro muito bom para quem desenvolve programas com paradigmas orientado a objectos

Applying UML and Patters - Craig Larman - 3rd edition.

Ensina toda a parte de análise e desenho do sistema e transcrição para UML e respectiva tradução para código (Java neste livro, mas aplicável a qualquer linguagem orientada a objectos), passando por padrões GRASP (atribuição de responsabilidades aos objectos) e GoF (Gang of Four). É um must read para qualquer analista/designer de sistemas informáticos.

Cumprimentos.