Ir para conteúdo

POWERED BY:

Arquivado

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

Raíssa

exercicio com vetor

Recommended Posts

Me ajudem com esse exercício?

 

Dado o seguinte vetor

 

1 2 3 4 5 6 7 8

VET = |7|4|1|5|8|2|3|6|

 

qual será o seu conteúdo após a execução dos seguintes comando:

 

for

I:=8 downto 5 do

begin

AUX:= VET;

VET := VET[8-I+1];

VET[8-I+1] :=AUX;

end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

C++

 

Estou com duvida tbm nesse:

Dado um vetor A contendo 100 elementos inteiros gerar e exibir um vetor B cujos elementos estão na ordem inversa de A.

 

Minha duvida esta em como colocar os elementos em ordem impressa na hora de imprimi.

 

  int k; /*contador*/
 int i=0;
 int j=0;


 /*inserindo o valor de A*/
 printf("digite o valor de A:");


 /* ler o vetor de A elementos */
 for (k=0; 100>=k; k++)
 {
     printf("n - entre com o valor do elemento ");
     scanf("%d", &A[i]);
 }

 /* construir o vetor B na ordem inversa */
 printf("n *** B em ordem inversa ***");
 for (i = i-1; i >= 0; i--)
 B[j] = A[i];
 printf("n * elemento %d = %d", i, B[j]);

 system("pause"); 
 return 0;
}
   /* ler o vetor de A elementos */
   for (k=0; k < A; k++)
   {
       printf("\n - entre com o proximo elemento %5d:", k);
       scanf("%d", &A[i]);
   }

   /* construir o vetor B na ordem inversa */
   printf("\n *** B em ordem inversa ***");
   for (i = A-1; i >= 0; i--)
   B[j] = A[i];
   printf("\n * elemento %d = %d",j, B[j]);
   system("pause"); 
   return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

A linguagem do primeiro post é Pascal.

Um simples teste de mesa (execução manual do algoritmo) já resolve.

 

P/ gerar um segundo vetor com o conteúdo do primeiro invertido, basta trabalhar com os índices. Se A tem 10 elementos, B[0] = A[9]:

 

for(int i=MAX_TAM; i > 0; i--) {
 B[MAX_TAM-i] = A[i-1];
}

 

MAX_TAM=5

i = 5 :: B[0] = A[4]

i = 4 :: B[1] = A[3]

i = 3 :: B[2] = A[2]

i = 2 :: B[3] = A[1]

i = 1 :: B[4] = A[0]

Compartilhar este post


Link para o post
Compartilhar em outros sites

MAX_TAM no exemplo dado pela _Isis_ será uma constante (o valor não muda no decorrer do programa).

 

Esse valor é "declarado" dessa forma:

#define MAX_TAM 5

 

* aconselhável colocá-lo após as bibliotecas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Detalhe: se você definir o MAX_TAM com a diretiva define, o que ocorre é uma substituição de texto; não se define nenhuma variável dentro do programa.

P/ que seja considerado uma variável com valor constante, teria que ser declarado como const int MAX_TAM = 100. Se você tentar alterar o valor da variável em algum lugar do código, vai dar erro de compilação.

Só p/ deixar as coisas mais claras, caso isso seja pergunta de prova ou coisa parecida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

certo, refiz o codigo, mas na hora de imprimi só sai um valor.

 

#include <cstdlib>
#include <iostream>
#define MAX_TAM 100

using namespace std;

int main()
{
 int A[100];
 int B[100];
 int k; /*contador*/
 int i=0;
 int j=0;

 /*inserindo o valor de A*/
 printf("digite o valor de A:");

 /* ler o vetor de A elementos */
 for (k=0; 100>=k; k++)
     {  
     printf("\n - entre com o valor do elemento ");
     scanf("%d", &A[i]);
     }

   /* construir o vetor B na ordem inversa */
   printf("\n *** B em ordem inversa ***");

   for(int i=0; i < MAX_TAM; i++) 
{
 	  B[(i + MAX_TAM)%MAX_TAM] = A[i];
 	  printf("\n * elemento %d = %d",i, B[j]);
}
   system("pause"); 
   return 0;


}


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.