Ir para conteúdo

POWERED BY:

Arquivado

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

corhin

Vetores

Recommended Posts

Boa noite, pessoal.

 

Estou com um problema pra resolver de lógica de programação, em português estruturado, da faculdade e o meu algoritmo empacou. O problema é o mesmo do usuário nadope, no tópico abaixo do meu. Bem, resolve-lo eu sei, não é isso que estou pedindo pra vcs, só preciso saber se posso declarar um vetor sem valor definido. Vejam o problema:

 

2)Uma Universidade deseja saber se existem alunos cursando simultaneamente as disciplinas de “Português” e “Lógica”. Deverá ser informado quantos alunos cursam “Português”, lendo a seguir seus nomes e o número de suas matrículas e quantos alunos cursam “Lógica”, lendo a seguir seus nomes e suas matrículas. Usando conceito de vetores e registros, faça um algoritmo que mostre o nome e número de matrícula dos alunos que estão cursando simultaneamente estas duas disciplinas.

 

Minha idéia foi criar dois vetores, um pra cada disciplina, pra poder ir armazenando os nomes e matriculas dos alunos e posteriormente compara-los. O problema é que eu não sei quantos alunos são. Resumidamente, o que eu fiz foi declarar uma variavel ( x: inteiro ) e um vetor ( alunologica: vetor[x] literal ), alem de declarar vetores para os nrs de matriculas tambem, daí o primeiro passo do meu algoritmo foi perguntar ao usuário qntos alunos há e armazenadar esse dado em 'x'. Posso fazer isso? Alguma outra idéia?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

O q pode fazer é:

Escreva("Quantos alunos?");
Leia(alunos);
vetor[alunos] literal;

ou definir com um numero alto!

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

_

 

Ideia:

 

Declare contadores...Assim nao ha necessidade de estipular o numero de alunos

 

declara: cont1=0 , cont2=0;

se aluno = portugues
vetor1[cont1] <- aluno
cont1 <- cont1 + 1

se aluno = logica
vetor2[cont2] <- aluno
cont2 <- cont2 + 1

Att

Compartilhar este post


Link para o post
Compartilhar em outros sites

Soh q msm declarando contadores, oq com ctz a pessoa irá usar, a gente tem q definir o tamanho do vetor...

ai fica como eu disse ou você faz a leitura dessa quantidade, ou coloca uma quantidade limite.

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

_

 

 

Ideia 2:

 


declara: inteiro  x <- 2;  
         inteiro  vetor[x];     /* declaro um vetor de tamanho 2 */
      
      
enquanto (i<5)                 /* repetir enquato i for menor que 5 */
{
    v[i] <- 9;                 /* vetor recebe valor 9 na posição i*/
   Escreva("%d",vetor[i]);     /* imprime o conteudo do vetor na posição i*/
    
    i <- i + 1;                /* mudo a posição do vetor */ 

    x <- x + 1;                /* aumento o tamanho da variavel que define o tamanho do vetor*/

}      



isso quer dizer q você consegue incrementar o contador q você definiu como tamanho do vetor por ele ser uma variavel

 

Eu testei isso em linguagem C e deu certo

 

#include<stdio.h>
#include<conio.h>

main()
{
int x=2;      
int v[x];
      
      
for (int i=0;i<5;i++)
{
    v[i]=9;
    printf("%d",v[i]);
    x++;
    }      
getch();
}

Usando essa ideia axo q você conseguirá incrementar o vetor assim q ele chegar ao maximo valor q você definiu...

 

Agora é com você...

 

Espero ter ajudado :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Elgin você testo isso em C?

pq você está criando um vetor de 2 posições(Vetor[0] e Vetor[1]);

e está qrendo acessar até a posição 5, isso gera um segment default.

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Elgin você testo isso em C?

pq você está criando um vetor de 2 posições(Vetor[0] e Vetor[1]);

e está qrendo acessar até a posição 5, isso gera um segment default.

 

[]s

 

_

 

Entao quitZAUMMM,

 

repare que a cada repetição do 'for' eu incremento a variavel 'x', sendo que esta variavel é reponsavel por definir o tamanho do vetor...

 

 

 

Ficaria mais ou menos assim:

 

     x=2           vetor [ 2 ] = [   |   ]    
     1° repetição: vetor [ 3 ] = [ 9 |   |   ]   x+1;
     2° repetição: vetor [ 4 ] = [ 9 | 9 |   |   ]   x+1;
     3° repetição: vetor [ 5 ] = [ 9 | 9 | 9 |   |   ]   x+1;
     4° repetição: vetor [ 6 ] = [ 9 | 9 | 9 | 9 |   |   ]   x+1;
     5° repetição: vetor [ 7 ] = [ 9 | 9 | 9 | 9 | 9 |   |   ]   x+1;

Sou novato em programação...mas axo q daria certo...

 

o que você axa???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estaria errado.

a unica forma é você alocar memória e depois ir realocando.

pq observe que você declara o vetor com 2 posições, e x é somente uma variavel que esta sendo incrementada a cada iteração, ou seja, depois que você criou o vetor, oq você faz com a variavel 'x' n vai mudar em nada para o tamanho do vetor!

 

[]s

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.