[Ajuda]Fluxograma e pseudo-codigo trabalho

PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.

Moderadores: Administradores, Moderadores

[Ajuda]Fluxograma e pseudo-codigo trabalho

Mensagempor Jedi Gu@rdi@n » Quarta Out 22, 2008 11:50

Boas.
Tenho o seguinte trabalho p resolver ate 6ª feira.
Tenho k elaborar um fluxograma e pseudo-codigo do mesmo.
Ja tivfe programacao, sei fazer isto em pseudo, mas ja nao me lembra como se faz em fluxograma.
Agradecia ajuda sff, e saber qual a maneira mais eficiente de resolver isto.

Exercicio:
Em canicultura é considerada uma raça pequena a que apresenta um peso até 10kg, uma raça media se o peso for superior a 10 mas nao superior a 25kg e grande se exceder os 25kg e nao ultrapassar 40kg. Acima disso a raça e gigante.

EDIT:
Supoe-se k um animal de raça pequena come aproximadamente 100g de racao por dia, um de raca media 300g, um de raça grande 400g, e um de raça gigante 500g. Estes valores devem ser ajustados (por adiçao) em 0,2% do peso do animal.

Parte I:
a) Dado o peso de um animal adulto e a quantidade diária de ração, indique se essa quantidade é a adequada para um animal com esse peso.
b) Indique qual a quantidade adequada para esse animal, bem como o erro.

Apresente o algoritmo em forma de fluxograma e de pseudo-codigo.




Aki ta o problema, ja vi +/- como fazer, mas gostava da vossa opiniao.
Ja nao faço fluxogramas à 4 anos.


Obrigado.
Editado pela última vez por Jedi Gu@rdi@n em Sexta Nov 14, 2008 13:06, num total de 2 vezes.
Imagem
Jedi Gu@rdi@n
Membro de Prata
Membro de Prata
 
Mensagens: 401
Registado: Domingo Mar 13, 2005 19:36

Mensagempor alr_tech » Quarta Out 22, 2008 12:13

boas

falta-te um parâmetro ou não...
a quantidade max por peso.... e o outros para poder responder ás questões, como o erro...

mas, de qq maneira é simples...
uma pesquisa no google e descobres diversos tutoriais

tem um inicio e um fim....
as caixa representam funcionalidades ou input/output
losangos decisão...
setas ligam os fluxos...

1º pedes os dados

depois através dos decisores partes por peso, dentro do fluxo de cada peso, validas a quantidade de comida..

por fim dás a resposta..

e termina no fim..

isto é simples, para dizer a verdade é dos métodos mais fáceis, existem outros métodos de análise adequados para desenhar sistemas mais complicados ou para representar objectos...

cumps
AMD XP 2400+, ASUS A7N8X-E Deluxe
1 Gb DDR 400, Seagate 80 GB ATA + 120 Gb ATA, ATI 9600 XT
alr_tech
Gurus
Gurus
 
Mensagens: 6768
Registado: Quinta Fev 17, 2005 18:01
Localização: Lisboa

Mensagempor Jedi Gu@rdi@n » Quarta Out 22, 2008 12:28

Ja acrescentei o k faltava
.
Para verificar se a raçao tem a quantidade correcta tera k se comparar o valor introduzido pelo utilizador com a relaçao entre a racao e o peso do animal (raçao = raçao+(peso x 0,2).
Penso k é isto, pelo menos foi o k interpretei do texto.

Acham k o meu raciocinio ta correcto?

Abraço ;)
Imagem
Jedi Gu@rdi@n
Membro de Prata
Membro de Prata
 
Mensagens: 401
Registado: Domingo Mar 13, 2005 19:36

Mensagempor Jedi Gu@rdi@n » Quarta Out 22, 2008 18:07

Código: Seleccionar todos
INICIO

--------------Atribuiçao de raçao segundo o peso do animal-----------------
Escreve "Digite o peso"
Le (peso)
Escreve (Digite a quantidade de ração"
Le (racao)


SE (peso <= 10)
   ENTÃO
   qt_carne = 100;
SENÃO SE (peso >10 e peso <=25)
   ENTÃO
   qt_carne = 300;   
   SENÃO SE (peso >25 e peso <=40)
      ENTÃO
        qt_carne = 400;   
   SENÃO SE (peso >40)
         ENTÃO
          qt_carne = 500;   


--------------Calculo da racao correcta adicionando a racao 20% do peso do animal----------


racao_correcta <= qt_carne + 0.2*peso;
Escreve "A racao correcta seria: ", racao_correcta;


----------Verificacao da racao e diferenca de quantidades----------------------------------

SE (racao > racao_correcta)
ENTAO
   dif_racoes = racao - racao_correcta;
   Escreve "Racao dada excede em ", dif_racoes, "gramas"

SENÃO SE (racao < racao_correcta)
      ENTÃO
      dif_racoes =  racao_correcta - racao;
      Escreve "Racao insuficiente em ", dif_racoes, "gramas"
   SENÃO
      Escreve “Racao dada correctamente!”
FIM



Vejam o k acham.
;)
Imagem
Jedi Gu@rdi@n
Membro de Prata
Membro de Prata
 
Mensagens: 401
Registado: Domingo Mar 13, 2005 19:36

Mensagempor alr_tech » Quinta Out 23, 2008 11:19

boas

no pseudo código não existem propriamente erros...
desde que as tarefas sejam representadas conforme os exemplos do prof..
e resolvam o problema apresentado...
está bém...

agora o fluxograma também tem algumas regras...
mas é simples, é muito usado para representar funções ou procedimentos fechados...
desde que sigas os exemplos....
é tudo uma questão das setas fazerem as ligações segundo o que pretendes...
ex. primeira eúltima caixa Inico e fim. do inicio segue uma seta até á caixa a pedir o peso, segue outra...
decisão losango, dentro do losango <= 10 se sim segue seta para o seguinte
se não seta para o prox losango....

não tem grande ciência... a ideia é dar um metodo de representação simples para que todos os internevientes entendam o fluxo da informação e que respeita as respectivas regras de negócio..

cumps
AMD XP 2400+, ASUS A7N8X-E Deluxe
1 Gb DDR 400, Seagate 80 GB ATA + 120 Gb ATA, ATI 9600 XT
alr_tech
Gurus
Gurus
 
Mensagens: 6768
Registado: Quinta Fev 17, 2005 18:01
Localização: Lisboa

Mensagempor Triple » Quinta Out 23, 2008 14:37

Tirando as incoerências na sintaxe do pseudo-codigo, e a má identação do mesmo só te aconselho a corrigir esta parte:

Código: Seleccionar todos
SE (peso <= 10)
   ENTÃO
   qt_carne = 100;
SENÃO SE (peso >10 e peso <=25)
   ENTÃO
   qt_carne = 300;   
   SENÃO SE (peso >25 e peso <=40)
      ENTÃO
        qt_carne = 400;   
   SENÃO SE (peso >40)
         ENTÃO
          qt_carne = 500;


para..

Código: Seleccionar todos
SE (peso <= 10) ENTÃO
   qt_carne = 100;
SENÃO SE (peso <= 25) ENTÃO
   qt_carne = 300;   
SENÃO SE (peso <= 40) ENTÃO
   qt_carne = 400;   
SENÃO
   qt_carne = 500;


Cumps
Triple
Membro de Ouro
Membro de Ouro
 
Mensagens: 650
Registado: Sexta Jun 24, 2005 14:27

Mensagempor Jedi Gu@rdi@n » Sexta Nov 14, 2008 13:10

Boas.
A 2ª parte do trabalho e fazer com k o programa peça ao user um peso a nao ser k o user meta um zero, o k fara com k o programa termine.

Código: Seleccionar todos
#include <stdio.h>

void main()
{
   float peso,racao,qtracao,racao_correcta, dif_racoes;

   //Atribuição de ração segundo o peso do animal


   printf("Digite o peso: ");
   scanf("%f", &peso);
   while (peso > 0)
   {
      printf("Digite a quantidade de racao: ");
      scanf("%f", &racao);

      if (peso <= 10)
      {
         qtracao = 100;
      }
      else if (peso >10 && peso <=25)
      {
         qtracao = 300;
      }
      else if (peso >25 && peso <=45)
      {
         qtracao = 400;
      }
      else if (peso >45)
      {
         qtracao = 500;
      }

//Cálculo da ração correcta adicionando a ração 0,2% do peso do animal

   racao_correcta = (qtracao + (0.002*peso*1000));
   printf("A racao correcta e: %f gramas \n", racao_correcta);


//Verificação da ração e diferença de quantidades


      if (racao > racao_correcta)
      {
       dif_racoes = (racao - racao_correcta);
       printf ("Racao dada excede em %f gramas \n", dif_racoes);
      }
      else if (racao < racao_correcta)
      {
        dif_racoes = (racao_correcta - racao);
        printf ("Racao insuficiente em %f gramas \n", dif_racoes);
      }
      else
        printf("Racao dada correctamente! \n");
   printf("Digite o peso: ");
   scanf("%f", &peso);

   }
}






Como podem ver ja ta feito em C++ e ta td a funcar 5*.
Agora tenho k fazer tb o fluxograma.
Vejam se este ta bem por favor ;).

ImagemImagem

Tenho mais dificuldade em fluxogramas do k em c++ LO0L. :lol:
Imagem
Jedi Gu@rdi@n
Membro de Prata
Membro de Prata
 
Mensagens: 401
Registado: Domingo Mar 13, 2005 19:36

Mensagempor alr_tech » Sexta Nov 14, 2008 15:13

boas

o programa faz o que queres...

mas, não considero correcto..

para fazeres o que dizes...
tens de colocar o while antes do printf("Digite o peso: ")...

e apagas o outro no fim....

se iniciares a variável peso com 1, já dá...

atenção tens erros no diagrama valida os sinais...

e falta-te a realimentação dado pelo enquanto, quando terminam as operações e tens de tornar a validar o peso...

talvez modificar a coisa para um DO... WHILE em vez do WHILE... DO....

cumps
AMD XP 2400+, ASUS A7N8X-E Deluxe
1 Gb DDR 400, Seagate 80 GB ATA + 120 Gb ATA, ATI 9600 XT
alr_tech
Gurus
Gurus
 
Mensagens: 6768
Registado: Quinta Fev 17, 2005 18:01
Localização: Lisboa

Mensagempor Jedi Gu@rdi@n » Sexta Nov 14, 2008 16:12

alr_tech Escreveu:boas

o programa faz o que queres...

mas, não considero correcto..

para fazeres o que dizes...
tens de colocar o while antes do printf("Digite o peso: ")...

e apagas o outro no fim....

se iniciares a variável peso com 1, já dá...

atenção tens erros no diagrama valida os sinais...

e falta-te a realimentação dado pelo enquanto, quando terminam as operações e tens de tornar a validar o peso...

talvez modificar a coisa para um DO... WHILE em vez do WHILE... DO....

cumps


Eu tinha feito exactamente isso k disseste, mas dps o Prof sugeriu fazer assim. LO0L.


Nao percebi essa dos sinais :oops:

Ve se assim ja ta melhor:
ImagemImagem
Imagem
Jedi Gu@rdi@n
Membro de Prata
Membro de Prata
 
Mensagens: 401
Registado: Domingo Mar 13, 2005 19:36

Mensagempor Triple » Sábado Nov 15, 2008 20:02

O Fluxograma continua com várias coisas mal, para além de estar pouco apresentavel..

Quanto ao programa em C, não está 5*

Código: Seleccionar todos
#include <stdio.h>

void main()
{
   float peso,racao,qtracao,racao_correcta, dif_racoes;

   //Atribuição de ração segundo o peso do animal

   do
   {
      printf("Digite o peso: ");
      scanf("%f", &peso);
      if(peso <= 0)
            break;
      printf("Digite a quantidade de racao: ");
      scanf("%f", &racao);

      if (peso <= 10)
      {
         qtracao = 100;
      }
      else if (peso <=25)
      {
         qtracao = 300;
      }
      else if (peso <=45)
      {
         qtracao = 400;
      }
      else if (peso >45)
      {
         qtracao = 500;
      }

//Cálculo da ração correcta adicionando a ração 0,2% do peso do animal

   racao_correcta = (qtracao + (0.002*peso*1000));
   printf("A racao correcta e: %f gramas \n", racao_correcta);


//Verificação da ração e diferença de quantidades


      if (racao > racao_correcta)
      {
       dif_racoes = (racao - racao_correcta);
       printf ("Racao dada excede em %f gramas \n", dif_racoes);
      }
      else if (racao < racao_correcta)
      {
        dif_racoes = (racao_correcta - racao);
        printf ("Racao insuficiente em %f gramas \n", dif_racoes);
      }
      else
        printf("Racao dada correctamente! \n");
   }while (1);
}


Agora é só passares isso para fluxograma, se não conseguires diz que eu posso desenhar.

Tens ai várias alterações nomeadamente às condições, estavas a testar se o numero era maior que 10 quando já tinhas a certeza desta condição, por exemplo, depois tens outra alteração no ciclo de repetição, ele é executado pelo menos uma vez (do.. while) e quando o peso for <= 0 executa a instrução break; que para o ciclo.

Cumps
Triple
Membro de Ouro
Membro de Ouro
 
Mensagens: 650
Registado: Sexta Jun 24, 2005 14:27

Mensagempor alr_tech » Domingo Nov 16, 2008 13:25

boas

exacto...
as linhas de entrada colocam-se sempre antes dos decisores, não apontam para lá....

se a tua última instrução é apresentar o peso, é a seguir que acaba, em função do que queres, trata de validar o loop....

assim, a linha começa a seguir ao peso.... indo para cima para antes do enquanto

tens o sinal trocado > em vez de < no 2º teste da ração

cumps
AMD XP 2400+, ASUS A7N8X-E Deluxe
1 Gb DDR 400, Seagate 80 GB ATA + 120 Gb ATA, ATI 9600 XT
alr_tech
Gurus
Gurus
 
Mensagens: 6768
Registado: Quinta Fev 17, 2005 18:01
Localização: Lisboa


Voltar para Programação

Quem está ligado:

Utilizador a ver este Fórum: Nenhum utilizador registado e 1 visitante

cron