1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[AJUDA] Pseudo código!!!

Discussão em 'Programação' iniciada por crunch, 11 de Abril de 2007. (Respostas: 9; Visualizações: 1490)

  1. 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!!!

    [​IMG]

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

    Alguém quer dar uma ajuda?

    Luís
     
  2. overcrash

    overcrash Power Member

    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
     
  3. theforbidden1

    theforbidden1 Banido

    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
     
  4. Hashiriya

    Hashiriya Power Member

    Heckel, a thread é deste ano :-D
     
  5. 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:
     
  6. msdevweb

    msdevweb Power Member

    Humm... vamos ver...

    PORTAGENS [A][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.
     
  7. _Neo__

    _Neo__ Power Member

    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:
     
  8. HecKel

    HecKel The WORM

    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
     
  9. 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
     
  10. souto

    souto To fold or to FOLD?

    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.
     

Partilhar esta Página