Ir para o conteúdo
Joanassilva

Dúvidas na manipulação de arrays

Mensagens Recomendadas

Joanassilva

Boa tarde amigos,

Será que me podiam ajudar neste exercício? É urgente e nao entendo o que tenho que fazer.

É para escrever um algoritmo que leia 2 vetores x e y com 10 elementos cada. Depois tenho que criar um vetor z que seja

A) a diferença entre x e y

B) a soma entre x e y

C) o produto entre x e y

D) some todos os elementos do vetor

Eu já tentei fazer mas esta íncompleto

Este exercício tambem nao entendi, é para fazer um algoritmo para ler um conjunto de 30 valores e para cada valor lido determinar se é impar ou par e colocar num vetor p ou i. Cada um com 10 posições. Cada vez que encher um dos vetores p ou i, tenh que esvaziar mostrando antes o valor que lá estava(isto é que nao consigo fazer)

Caa vetor p ou i pode ser preenchido quantas vezes for necessário. No final tenho que mostrar os valores que restaram em cada um dos vetores.

Obrigada se consiguirem :(

Editado por Joanassilva

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
thoga31

Bem-vinda ao P@P.

Eu percebo que estejas numa situação mais aflitiva, mas no P@P não há dúvidas mais urgentes. Todas têm a mesma prioridade, e a resposta dada dependerá de quando um membro com os devidos conhecimentos vier ao fórum.

Desta forma, quando te inscreveste, aceitaste as Regras e elas dizem que esse género de títulos não são aceites. Eu vou dar o benefício de seres uma membro nova, pelo que, por favor, muda-o por ti.

Posto isto, onde está o código com o que já tentaste fazer para cada um dos exercícios?


Knowledge is free!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Joanassilva

eu nao sabia, podes me dizer então como se muda o titulo?

aqui está o código, mas incompleto:

var x: array [1..10] of integer;
y: array [1..10] of integer;
    diferenca: array [1..10] of integer;
    soma: array [1..10] of integer;
    I: integer;

Begin

Writeln ('Insira valores');
For I:=1 to 10 do
Readln (x[i]);

Writeln ('Insira valores');
For I:=1 to 10 do
Readln (y[i]);

    Diferenca[i]:=x[i]-y[i];

Writeln ('O vetor resultante da diferença entre o x e o y é',diferenca[i]);


End.

Editado por thoga31
Tags code + GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
legd1991

Está um bocado confuso o teu problema. Mete aqui o que já tens feito e se conseguires transcrever para aqui o enunciado do problema também ajudava.

Cumprimentos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Joanassilva

O enunciado é como esta em cima, pelo que entendi no vetor z terá que ter a diferença entre os valores do vetor x e do vetor y, tal como a soma e o produto. E no final mostrar o resultado de tudo.

No outro exercício nao entendi como haveria de começar :/

Obrigada legd1991

Editado por Joanassilva

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
thoga31

No fundo do teu post está um botãozinho "Editar", entra no editor completo e muda o título.

Quanto ao código, tens de o indentar bem.

Da mesma forma que leste os valores com um ciclo for, também calculas a diferença com um ciclo desses, e também fazes output com um ciclo desses.

for i:=1 to 10 do
   a[i] := // conta

Editado por thoga31

Knowledge is free!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
legd1991

Já tens os arrays preenchidos, agora tens que criar um ciclo de 1 a 10 e fazer a soma, a diferença entre os valores na posição actual, por exemplo:

for j:=1 to 10 do
somaArray[j]:= x[j]+y[j]

Editado por legd1991

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
thoga31

Vamos resolver um exercício de cada vez. Primeiro o nº1. Tenta lá fazer com os conselhos que demos. Depois vamos ao nº2.


Knowledge is free!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Joanassilva

continua a dar me erro

obrigada a todos

var x: array [1..10] of integer;
y: array [1..10] of integer;
    diferenca: array [1..10] of integer;
    soma: array [1..10] of integer;
    produto: array [1..10] of integer;
    I: integer;

Begin
Writeln ('Insira valores');
 For I:=1 to 10 do
  Readln (x[i]);
Writeln ('Insira valores');
 For I:=1 to 10 do
  Readln (y[i]);

    Diferenca[i]:=x[i]-y[i];
    soma[i]:=x[i]-y[i];
    produto[i]:=x[i]*y[i];

Editado por thoga31
GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
thoga31

Onde está o ciclo for para fazer os cálculos?

(O título continua inapropriado)

Editado por thoga31

Knowledge is free!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
legd1991

continua a dar me erro

obrigada a todos

var x: array [1..10] of integer;
y: array [1..10] of integer;
 diferenca: array [1..10] of integer;
 soma: array [1..10] of integer;
 produto: array [1..10] of integer;
 I: integer;

Begin
Writeln ('Insira valores');
 For I:=1 to 10 do
  Readln (x[i]);
Writeln ('Insira valores');
 For I:=1 to 10 do
  Readln (y[i]);

 Diferenca[i]:=x[i]-y[i];
 soma[i]:=x[i]-y[i];
 produto[i]:=x[i]*y[i];

Tens que fazer isso dentro de um ciclo

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Joanassilva

exato, dentro do ciclo for

var x: array [1..10] of integer;
y: array [1..10] of integer;
    diferenca: array [1..10] of integer;
    soma: array [1..10] of integer;
    produto: array [1..10] of integer;
    I: integer;

Begin
Writeln ('Insira valores');
 For I:=1 to 10 do
  Readln (x[i]);
Writeln ('Insira valores');
 For I:=1 to 10 do
  Readln (y[i]);

For I:=1 to 10 do 
    diferenca[i]:=x[i]-y[i];

    For I:=1 to 10 do
    soma[i]:=x[i]-y[i];

    For I:=1 to 10 do
    produto[i]:=x[i]*y[i];

Editado por thoga31
GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
thoga31

Mete tudo num só ciclo:

for i:=1 to 10 do begin
    diferenca[i]:=x[i]-y[i];
    soma[i]:=x[i]-y[i];
    produto[i]:=x[i]*y[i];
end;

Qual a próxima dúvida que tens?

Editado por thoga31

Knowledge is free!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
thoga31

Não é vector! É array!

E corrige o título, pela última vez...

Para qual das arrays tem de se fazer a soma?

A soma é feita percorrendo os elementos da array e ir somando a uma variável.

Editado por thoga31

Knowledge is free!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Joanassilva

cada resultado da soma tem que ir para o array z, tal como cada resultado da diferença. e depois é para somar todos os elementos do vetor z, para dar um todo :).

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
thoga31

Arra mais os vectores...!

Esse enunciado está muito mal feito. Quem o escreveu devia estar a dormir. Não percebi o que é para somar. Isso não faz sentido...

Nota: já editei o título do tópico. Aquilo é que é um título correcto.


Knowledge is free!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Joanassilva

podes crer, deve ter feito mal a traducao da versao brasileira, e agora nem dá quase para resolver, acho que é para somar os índices de cada array :)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pwseo

Joanassilva,

Isso não faz sentido (o enunciado, na 4ª alínea). Se temos dois arrays x e y, podemos calcular a diferença, soma e produto entre elementos correspondentes e colocar o resultado num array z.

No entanto, ao colocarmos lá o valor da soma, os valores prévios da diferença desaparecem. O mesmo acontece quando colocarmos lá o produto (desaparece o valor da soma).

Se no final somarmos o que está em z, vamos obter a soma dos produtos de x e y. E isso que pretendes?

Se não sabes bem o que é pretendido... tens algum exemplo da execução correcta do programa? (normalmente os professores dão exemplos... se não dão, deviam).

Editado por pwseo

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
thoga31

Os índices não é de certeza. Os elementos está bem :P

Aquilo que me parece é que, para cada alíneas, tens de fazer a soma do conteúdo da array z.

Assim, na alínea a) crias a array z com a soma dos elementos de x e y, e no final fazias a soma dos valores de z.

Na alínea b) a array z iria conter a subtracção, e de seguida somavas... e assim em diante.

Mas ao mesmo tempo isto não faz sentido. O enunciado é, em si mesmo, um enigma.

Não te deram um exemplo de input/output?

Editado por thoga31

Knowledge is free!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Joanassilva

o único exemplo que fiz foi este, com arrays:

var lojaA: array [1..3] of integer     ;
    lojaB: array [1..3] of integer     ;
    soma: array [1..3] of integer     ;
I: integer;

Begin


Writeln ('Introduza vendas da loja A') ;
For I:=1 to 3 do
begin
Readln (lojaA[i]);
    end;
Writeln ('Introduza vendas da loja B');
For I:=1 to 3 do
begin
Readln (lojaB[i]);
end;

For I:=1 to 3 do
    begin    
soma[i]:=(lojaA[i]+lojaB[i]);

    Writeln ('A soma do mês',I,'é',soma[i]);
    end;


End.

Editado por thoga31
GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
thoga31

Não é isso que estamos a falar...

Normalmente os (bons) exercícios têm não só o enunciado mas também um exemplo de input/output. Por exemplo:

Crie um programa que peça uma série de valores ao utilizador, indicando para cada um se é par ou ímpar. Os números são inseridos numa linha e separados por espaços.

Input:

7 9 1 5 4

Output:

7 - impar
9 - impar
1 - impar
5 - impar
4 - par

Isto é que é um enunciado (de jeito).


Knowledge is free!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Joanassilva

ah, o meu não é assim, infelizmente.

a única coisa que diz o enunciado é assim:

escreva um algoritmo que leia 2 vetores x e y com 10 elementos.

crie a seguir um vetor z que seja:

a) diferença entre x e y

b) a soma entre x e y

c) o produto entre x e y

d) some todos os elementos do vetor.

é por isso que estou empancada :(

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
thoga31

O teu professor podia ter umas lições para escrever enunciados e português objectivo e não ambíguo.

Sinceramente não sei o que é que ele quer com isso.

Mas vou assumir o mesmo de há bocado: crias a array z com a soma de x e y e somas os seus elementos. De seguida fazes isso com a subtracção, e depois com a multiplicação.

Portanto, agora que já tens as arrays z calculadas, tenta adicionar a soma para cada uma das alíneas, fazendo output progressivo.

soma := 0;
for i:=1 to 10 do begin
  z :=  // soma de x e y
  soma :=  // variável com a soma dos valores de z
end;
writeln( { array z + soma dos valores de z } );

Editado por thoga31

Knowledge is free!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.