Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

MCliveira

[Resolvido] algoritmo, pascal

Recommended Posts

Sou novato na área de TI e neste espaço. Tenho lido várias comentários do pessoal e tomei coragem de pedir ajuda aos "veteranos", de quem tem um pouco mais de experiência no assunto. Pois bem, preciso implementar um programa na linguagem pascal para a seguinte situação: uma adega com capacidade para 300 vinhos e, nas ocasiões especiais, o colecionador abre sempre a última aquisição. O algoritmo deve: 1)permitir incluir vários vinhos na adega e 2) informar qual vinho deve ser aberto em uma ocasião especial.

Fiz a parte 1), usando a estrutura PILHA, bem principiante mesmo.

não consigo fazer a parte 2). Valeu.

 

Program Pzim ;
var
I: array [0..300] of integer;
topo: integer;
M,R: string;
 Begin
   topo:= -1;
   R:='sim' ;
  while R='sim' do
   Begin
    writeln ('Deseja inserir ou retirar vinhos da Adega?');
    read (M);
     if M = 'inserir' then
       if topo <2 then 
       begin
	   writeln ('Codigo do Vinho');
        topo:=topo+1;
        read (I[topo]);
       end
	   else
        writeln ('Adega sem espaço para armazenamento')
      else 
       if topo=-1 then
       writeln ('Adega vazia. Não temos vinho')
       else
       topo:=topo-1;
       writeln ('Deseja Continuar sim ou não?');
       read (R);
   End;
 End.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendo que a "última aquisição" será sempre o primeiro da pilha, ou o último código a que foi inserido. Existem funções especificar para "navegar" num vetor, mas dando uma olhada no seu código, teoricamente bastaria exibir o conteúdo de l[topo].

 

Pela descrição do problema, também entendi que você deve implementar uma pilha.

 

Isto basta?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prog, bom dia.

Primeiramente, obrigado por me responder.

Segundo, fiquei sem acesso à internet durante todo o dia de ontem(domingo),

motivo pelo qual não respondi a sua pergunta.

Como hoje está restabelecida a minha conexão, vamos então ao que interessa.

Realmente era o que faltava para exibição da última aquisição.

Entretanto, não consegui posicionar o conteúdo (I[topo])de forma que ao solicitar a

retirada do último valor fosse exibido na tela. Às vezes dá erro outras, só exibi quando eu peço para sair.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como o prog disse sendo uma estrutura pilha, somente o ultimo elemento deverá ser "aberto" o que resultaria na sua exclusão da pilha.

Para excluir esse valor, você primeiro exibe ele na tela I[topo], e depois da um topo--, que decrementaria a variavel topo.

 

Obs: Não sei em Pascal qual comando você usa pra decrementar.

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

quitZAUMMM,

Valeu por me responder,

Entendi perfeitamente o que você disse, até por que não tinha pensado no topo--.

Só que, no momento, andei até onde pude, por isso que estou pedindo a ajuda de vocês pois a minha dúvida agora é: como declarar isso no algoritmo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

É como eu disse, você vai ler a opção do usuario.

Se ele desejar retirar um vinho. Os comando deverão ser o seguinte.

 

write ('Vinho retirado: ');
writeln(I[topo]);
topo:=topo-1;

Bom como disse soh verifique a sintaxe pois não programo com Pascal.

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.