Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
hugoalmeida

Ajuda num exercício

Recommended Posts

hugoalmeida    0

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.

Compartilhar este post


Link para o post
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.

Compartilhar este post


Link para o post
Compartilhar em outros sites
hugoalmeida    0
  • Autor do tópico
  • 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;

    Editado por gandalfnho

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    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

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×