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
por 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.
-
Jedi Gu@rdi@n
- Membro de Prata

-
- Mensagens: 401
- Registado: Domingo Mar 13, 2005 19:36
por 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

-
- Mensagens: 6768
- Registado: Quinta Fev 17, 2005 18:01
- Localização: Lisboa
por 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

-
Jedi Gu@rdi@n
- Membro de Prata

-
- Mensagens: 401
- Registado: Domingo Mar 13, 2005 19:36
por 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.

-
Jedi Gu@rdi@n
- Membro de Prata

-
- Mensagens: 401
- Registado: Domingo Mar 13, 2005 19:36
por 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

-
- Mensagens: 6768
- Registado: Quinta Fev 17, 2005 18:01
- Localização: Lisboa
por 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

-
- Mensagens: 650
- Registado: Sexta Jun 24, 2005 14:27
por 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

.

Tenho mais dificuldade em fluxogramas do k em c++ LO0L.


-
Jedi Gu@rdi@n
- Membro de Prata

-
- Mensagens: 401
- Registado: Domingo Mar 13, 2005 19:36
por 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

-
- Mensagens: 6768
- Registado: Quinta Fev 17, 2005 18:01
- Localização: Lisboa
por 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
Ve se assim ja ta melhor:


-
Jedi Gu@rdi@n
- Membro de Prata

-
- Mensagens: 401
- Registado: Domingo Mar 13, 2005 19:36
por 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

-
- Mensagens: 650
- Registado: Sexta Jun 24, 2005 14:27
por 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

-
- 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