corhin 0 Denunciar post Postado Novembro 6, 2009 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
quitZAUMMM 18 Denunciar post Postado Novembro 8, 2009 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
Elgin 0 Denunciar post Postado Novembro 9, 2009 _ 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
quitZAUMMM 18 Denunciar post Postado Novembro 10, 2009 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
Elgin 0 Denunciar post Postado Novembro 10, 2009 _ Exato... deskulpe a falta de atenção... Compartilhar este post Link para o post Compartilhar em outros sites
Elgin 0 Denunciar post Postado Novembro 10, 2009 _ 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
quitZAUMMM 18 Denunciar post Postado Novembro 10, 2009 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 0 Denunciar post Postado Novembro 11, 2009 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
quitZAUMMM 18 Denunciar post Postado Novembro 11, 2009 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
Elgin 0 Denunciar post Postado Novembro 11, 2009 _ Nuss,verdade... Pq se meu pensamento estivesse certo nao precisaria nem de existir alocação dinamica... quitZAUMMM 2 x 0 Elgin http://forum.imasters.com.br/public/style_emoticons/default/blush.gif Vlw http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites