View Full Version : [AJUDA] Pseudo código!!!
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
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.
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:
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
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
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.
|
|