Ir ao conteúdo
  • Cadastre-se

Estoque de mercadorias utilizando vetores em Pascal


Hatsune

Posts recomendados

Eu aqui novamente com mais erros só que dessa vez em vetores x_x

Faça um programa para controlar o estoque de mercadorias. O usuário deverá preencher 2 vetores com 5 posições cada, onde o primeiro corresponde ao código do produto e o segundo ao total desse produto em estoque. O programa deverá ler um conjunto de dados contendo o código do produto e a quantidade. Código do produto igual a zero indica fim do programa. Verificar:

se o código do produto solicitado existe;

cada pedido só pode ser feito integralmente;

efetuar a atualização do estoque somente se o pedido for atendido;

no final, escrever os códigos dos produtos com seus respectivos estoques já atualizados.

Program Pzim ;
var codigo,estoque: array [1..5] of integer;
pro,cod,i:integer;
Begin
clrscr;

writeln('Digite os códigos do produto');
for i:=1 to 5 do
readln(codigo[i]);

writeln;

writeln('Digite o total de produtos ');
for i:=1 to 5 do
readln(estoque[i]);

writeln('Para encerrar o programa digite 0 !!');
writeln;

write('Digite um código: '); readln(cod);
while (cod<>0) do
begin
for i:=1 to 5 do
begin
write('Digite o número de produtos: '); readln(pro);
If (estoque[i]>pro) then
estoque[i]:=estoque[i] - pro
else
writeln('Comando inválido');
end;
write('Digite um código: '); readln(cod);
end;

for i:= 1 to 5 do
writeln('O produto de codigo ',codigo[i],' tem agora ',estoque[i]);
End.

Link para o comentário
Compartilhar em outros sites

Faça um programa para controlar o estoque de mercadorias. O usuário deverá preencher 2 vetores com 5 posições cada, onde o primeiro corresponde ao código do produto e o segundo ao total desse produto em estoque. O programa deverá ler um conjunto de dados contendo o código do produto e a quantidade. Código do produto igual a zero indica fim do programa. Verificar:

se o código do produto solicitado existe;

cada pedido só pode ser feito integralmente;

efetuar a atualização do estoque somente se o pedido for atendido;

no final, escrever os códigos dos produtos com seus respectivos estoques já atualizados.

Tudo isso é (só) o enunciado né?

Eu aqui novamente com mais erros só que dessa vez em vetores x_x

:)

Então, quais erros estão dando e/ou quais as suas dúvidas?

No aguardo.

Link para o comentário
Compartilhar em outros sites

Tentei fazer a questão novamente e deu o seguinte erro:

A posição 6 está fora dos limites do vetor

Program Pzim ;
var c,t:array [1..5] of integer;
i,cont,qtde,cp:integer;
Begin
for i:=1 to 5 do
begin
clrscr;
writeln('PRODUTO ',i,': ');
write ('Código: '); readln(c[i]);
write ('Estoque: ');readln(t[i]);
end;

write('Digite o código do produto desejado: '); readln(cp);

while (cp<>0) do
begin
cont:= cont + 1;
write ('Digite a quantidade desejada: ');readln(qtde);

If (qtde<=t[i]) then
t[i]:=qtde - t[i]
else
writeln('Quantidade inválida!!');

writeln('Digite o código do próximo produto: ');readln(cp);
end;

for i:=1 to cont do
begin
writeln ('Objeto de código: ',c[i],' agora tem ',t[i]);
end;
End.

Link para o comentário
Compartilhar em outros sites

Olá Hatsune...

Tentei fazer a questão novamente e deu o seguinte erro:

A posição 6 está fora dos limites do vetor

Esse erro deve está dando porque você está usando a variável cont para contar o "total de operações", e usando para "total de produtos". São coisa diferentes.

E em relação aos enunciados:

1) se o código do produto solicitado existe;

2) cada pedido só pode ser feito integralmente;

3) efetuar a atualização do estoque somente se o pedido for atendido;

4) no final, escrever os códigos dos produtos com seus respectivos estoques já atualizados.

1) Não está sendo feito;

2) Se for se referindo a "pedir sempre com o código e a quantidade", está OK.

3) Pelo que eu entendi, seria para só "atualizar" se existir uma "quantidade disponível". Logo, estaria sendo verificado pelo if. OK. (precisa corrigir o if, veja nos meus comentários)

4) Falta consertar também.

Abaixo seu código original com alguns comentários meus.

[color=#0000ff]Program[/color] Pzim[color=#000000];[/color]
[color=#0000ff]uses[/color]
CRT[color=#000000];[/color]
[color=#0000ff]var[/color]
c[color=#000000],[/color]t [color=#000000]:[/color][color=#0000ff]array[/color] [color=#000000][[/color][color=#ff8000]1[/color][color=#000000].[/color][color=#ff8000].5[/color][color=#000000]][/color] [color=#0000ff]of[/color] [color=#0000ff]integer[/color][color=#000000];[/color]
i[color=#000000],[/color]cont[color=#000000],[/color]qtde[color=#000000],[/color]cp[color=#000000]:[/color][color=#0000ff]integer[/color][color=#000000];[/color]
[color=#0000ff]BEGIN[/color]
[color=#0000ff]for[/color] i[color=#000000]:=[/color][color=#ff8000]1[/color] [color=#0000ff]to[/color] [color=#ff8000]5[/color] [color=#0000ff]do[/color]
[color=#0000ff]begin[/color]
clrscr[color=#000000];[/color]
[color=#ff0080]writeln[/color][color=#000000]([/color][color=#a31515]'PRODUTO '[/color][color=#000000],[/color]i[color=#000000],[/color][color=#a31515]': '[/color][color=#000000]);[/color]
[color=#ff0080]write[/color] [color=#000000]([/color][color=#a31515]'Código : '[/color][color=#000000]);[/color] [color=#ff0080]readln[/color][color=#000000]([/color]c[color=#000000][[/color]i[color=#000000]]);[/color]
[color=#ff0080]write[/color] [color=#000000]([/color][color=#a31515]'Estoque: '[/color][color=#000000]);[/color] [color=#ff0080]readln[/color][color=#000000]([/color]t[color=#000000][[/color]i[color=#000000]]);[/color]
[color=#0000ff]end[/color][color=#000000];[/color]

[color=#ff0080]write[/color][color=#000000]([/color][color=#a31515]'Digite o código do produto desejado: '[/color][color=#000000]);[/color] [color=#ff0080]readln[/color][color=#000000]([/color]cp[color=#000000]);[/color]
[color=#0000ff]while[/color] [color=#000000]([/color]cp[color=#000000]<>[/color][color=#ff8000]0[/color][color=#000000])[/color] [color=#0000ff]do[/color]
[color=#0000ff]begin[/color]
cont[color=#000000]:=[/color]cont[color=#000000]+[/color][color=#ff8000]1[/color][color=#000000];[/color] [color=#008000]//Para que esse cont? Veja que o total é fixo (5). Não muda![/color]
[color=#008000]//Esse "cont" seria mais para algo com "total de operações", e não de produtos[/color]
[color=#ff0080]write[/color] [color=#000000]([/color][color=#a31515]'Digite a quantidade desejada: '[/color][color=#000000]);[/color] [color=#ff0080]readln[/color][color=#000000]([/color]qtde[color=#000000]);[/color]
[color=#0000ff]if[/color] [color=#000000]([/color]qtde[color=#000000]<=[/color]t[color=#000000][[/color]i[color=#000000]])[/color] [color=#0000ff]then[/color] [color=#008000]//Qual o valor de "i" neste momento? Esse "i" tem que ser o correspondente ao "cp" solicitado.[/color]
t[color=#000000][[/color]i[color=#000000]]:=[/color]qtde[color=#000000]-[/color]t[color=#000000][[/color]i[color=#000000]][/color] [color=#008000]//Aqui o mesmo problema acima. E você inverteu o diminuendo com o subtraendo.[/color]
[color=#0000ff]else[/color]
[color=#ff0080]writeln[/color][color=#000000]([/color][color=#a31515]'Quantidade inválida!!'[/color][color=#000000]);[/color] [color=#008000]//Seria melhor informa algo como "estoque indisponível".[/color]
[color=#ff0080]writeln[/color][color=#000000]([/color][color=#a31515]'Digite o código do próximo produto: '[/color][color=#000000]);[/color] [color=#ff0080]readln[/color][color=#000000]([/color]cp[color=#000000]);[/color]
[color=#0000ff]end[/color][color=#000000];[/color]
[color=#0000ff]for[/color] i[color=#000000]:=[/color][color=#ff8000]1[/color] [color=#0000ff]to[/color] cont [color=#0000ff]do[/color] [color=#008000]//O total é fixo (5), ou seria controlado no cadastro!. Esse cont está fora de contexto. Seria simplesmente 5![/color]
[color=#0000ff]begin[/color]
[color=#ff0080]writeln[/color] [color=#000000]([/color][color=#a31515]'Objeto de código: '[/color][color=#000000],[/color]c[color=#000000][[/color]i[color=#000000]],[/color][color=#a31515]' agora tem '[/color][color=#000000],[/color]t[color=#000000][[/color]i[color=#000000]]);[/color]
[color=#0000ff]end[/color][color=#000000];[/color]
[color=#0000ff]END[/color][color=#000000].[/color]

No aguardo.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...