Ir ao conteúdo
  • Cadastre-se

Ajuda num exercício


Visitante: hugoalmeida

Posts recomendados

Visitante: hugoalmeida
 

Tenho um problema com um programa em pascal. aqui está o exercício:

Escreve um programa em Pascal que receba o stock actual de 4 produtos (colunas) que

estão armazenados em 4 armazéns (linhas) e coloque estes dados em uma matriz 5 x 4.

Sendo que a última linha da matriz contém o custo de cada produto, calcule e imprima:

a) a quantidade de itens armazenados em cada armazém;

B) qual o custo total de cada produto;

c) qual o custo total de cada armazém

por favor preciso da vossa ajuda.

Link para o comentário
Compartilhar em outros sites

Ok amigo, mas qual o seu problema???

Nós não estamos aqui para fazer os seus exercícios, apenas para lhe ajudar caso tenha dúvidas, mas não podemos, nem queremos fazer todo o seu trabalho.

Faça o seguinte, tente resolver o problema, caso não consiga venha aqui ao fórum, mostre até onde conseguiu chegar e qual é especificamente a sua dúvida, para ai sim possamos lhe auxiliar de alguma maneira.

Link para o comentário
Compartilhar em outros sites

Visitante: hugoalmeida
 

Eu consegui fazer a alínea a) mas não consigo fazer a alínea B)

a alínea a) que eu fiz é esta:

Program armazém;
var
i,j,conta:integer;
custo:real;
soma:array[1..10] of integer;
A:array[1..10,1..10] of integer;

procedure quant_stock;
Begin
for i:=1 to 4 do
soma[i]:=0;

for i:= 1 to 2 do
for j:= 1 to 2 do
begin
writeln('Insira a quantidade em stock no:');
write('armazém',i,' do produto ',j,': ');
readln(conta);
A[i,j]:=conta;
writeln;
end;
for i:=1 to 2 do
for j:=1 to 2 do
soma[i]:=soma[i]+A[i,j];
writeln;
clrscr;
for i:= 1 to 2 do
begin
writeln('Itens armazenados no armazém ',i,': ',soma[i]);
writeln;
end;
writeln('Prima Enter para continuar');
readln;
End;

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Eu consegui fazer a alínea a) mas não consigo fazer a alínea

B)

a alínea a) que eu fiz é esta:

Program armazém;

var

i,j,conta:integer;

custo:real;

soma:array[1..10] of integer;

A:array[1..10,1..10] of integer;

procedure quant_stock;

Begin

for i:=1 to 4 do

soma:=0;

for i:= 1 to 2 do

for j:= 1 to 2 do

begin

writeln('Insira a quantidade em stock no:');

write('armazém',i,' do produto ',j,': ');

readln(conta);

A[i,j]:=conta;

writeln;

end;

for i:=1 to 2 do

for j:=1 to 2 do

soma:=soma+A[i,j];

writeln;

clrscr;

for i:= 1 to 2 do

begin

writeln('Itens armazenados no armazém ',i,': ',soma);

writeln;

end;

writeln('Prima Enter para continuar');

readln;

End;

Olá,

hugoalmeida, vamos lá:

1) Tipos diferentes na mesma matriz

Pelo que eu entendi do enunciado, existe uma "incoerência lógica" nela, veja:

[...] o stock actual de 4 produtos (colunas) que estão armazenados em 4 armazéns (linhas) e coloque estes dados em uma matriz 5 x 4.

Sendo que a última linha da matriz contém o custo de cada produto [...]

Pois ele propõe o uso de dois tipos diferentes numa mesma matriz (que só tem um tipo).

stock actual = valor inteiro (ou natural);

custo = valor real;

matriz = mesmo tipo da "sctok atual";

A solução neste caso seria utilizar a matriz como "real", já que também abrangerá os "inteiros".

OBS.: Veja que de certo modo seria uma "gambiarra", mas que nesse contexto seria válido. (ou não)

2) Sobre teu código

Seu código está basicamente correto, faltando apenas alguns ajustes. Basta agora fazer as outras partes.

OBS.: Utilize a alínea 1) deste tópico para ajustar as variáveis e assim aceitar os dois tipos.

PS: Gostei do termo "alínea", vou ficar gaaastando agora, rs

Abaixo seu código modificado com alguns comentários:

(*
Program armazém;

//não se deve usar "acentos" para os identificadores
*)
PROGRAM armazem;
Uses
CRT; {carrega alguns comandos extras como ClrScr, ReadKey etc}
var
i, j,
conta :integer;
custo :real;
(*
soma :array[1..10] of integer;
A :array[1..10,1..10] of integer;

//o programa especifica 5x4.
*)
soma :array[1..4] of integer;
A :array[1..5,1..4] of integer;

procedure quant_stock;
begin
{ZERA O ARRAY DA SOMA} {As variáveis globais são zeradas automaticamente, mas pode ser assim também.
OBS. Variáveis locais NÃO são zeradas, ai neste caso teria realmente que
zerar manualmente}
for i:=1 to 4 do
soma[i]:=0;

{LER ESTOQUE DE CADA PRODUTO DE CADA ARMAZÉM}
for i:= 1 to 2 do
for j:= 1 to 2 do
begin
writeln('Insira a quantidade em stock no:');
write('armazém',i,' do produto ',j,': ');
readln(conta);
A[i,j]:=conta;
writeln;
end;

{CÁLCULO DA SOMA DOS PRODUTOS DE CADA ARMAZÉM}
for i:=1 to 2 do
for j:=1 to 2 do
soma[i]:=soma[i]+A[i,j];
writeln;

{EXIBE OS RESULTADOS}
ClrScr; {limpa a tela (as vezes é preciso carregar a CRT via USES)}
for i:= 1 to 2 do
begin
writeln('Itens armazenados no armazém ',i,': ',soma[i]);
writeln;
end;
writeln('Prima Enter para continuar');
readln;
end;

{#################
PROGRAMA PRINCIPAL {inseri a parte do programa principal para rodar o programa}
##################}

BEGIN
quant_stock
END.

Obs.: Não testei o programa, fiz no bloco de notas. Qualquer coisa vê ai...

No aguardo.

Abraços

Link para o comentário
Compartilhar em outros sites

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