Fala galera tudo bom?
vou passar um questionamento de C que fiz ao professor da minha disciplina
Opa tudo bom?
Eu estou com uma dúvida em C que está me tirando o sono, já pensei, procurei e não encontrei como verificar se uma posição do vetor está vazio ou ainda não foi declarado, em java, php e python e bem simples mais em C ainda não achei
Observe que não existe, a princípio a posição vazia.
Minha sugestão: ao iniciar o vetor, coloque um valor inválido, exemplo -1. Desta forma, você pode verificar se a posição é igual a -1, ou seja, ainda não tem valor válido.
Outra resposta sobre vetores de char
Vamos supor um array de char de 10 posicoes. O nome dele será vetor:
char vetor[10];
/* Nesse momento, o espaço (10 chars) foi alocado na area de memoria estática. */
/* Neste instante, quando será o conteúdo do array? LIXO. */
/* De praxe, você deve inicializar essa área de memória com um conteúdo que, para você, é o "VAZIO". Abaixo, vou inicializar cada posição com 'espacos em branco' */
memset(vetor, ' ', 10); /* 1o.parametro: o endereço da primeira posição; 2o.parâmetro: qual o char que preencherá cada posição; 3o. parâmetro: quantos bytes serão preenchidos) */
/* Aí, para saber se uma posição está vazia, é só ver o seu conteudo: */
if(vetor[3] == ' ')
{
// Está vazia!
}
/****************************/
Enfim: você inicializa as posições do array com o que quer você considere como vazio. Aí você usa o vetor, grava valores em suas posições. Para saber se uma posição do array está vazia, faça um simples teste como o acima.
Diário sobre as diversas coisas de Tecnologia, esportes, educação física e guia para estudos
quarta-feira, 7 de março de 2012
terça-feira, 28 de fevereiro de 2012
Recursividade
Em Ciência da computação, a recursividade é a definição de uma subrotina (função ou método) que pode invocar a si mesma. A grande vantagem da recursão está na possibilidade de usar um programa de computador finito para definir, analisar ou produzir um estoque potencialmente infinito de sentenças, designs ou outros dados.
Wikipédia
Então vamos usar um fatorial para exemplificar
uma função em c que calcule o fatorial de um numero x sem recursividade
int fatorial (int x){
int i;
i = x - 1;
for (i; i!=1; i--)
x = x * i;
return x;
}
Então podemos considerar que:
fatorial de 5 é igual a 5 multiplicado pelo fatorial de 4;
fatorial de 4 é igual a 4 multiplicado pelo fatorial de 3;
fatorial de 3 é igual a 3 multiplicado pelo fatorial de 2 que é 2
fatorial de x = x * fatorial de ( x -1 );
Logo em C a função fatorial recursiva fica.
int fatorial (int x){
if(x<2)
return x;
return fatorial(x-1) * x;
}
Wikipédia
Então vamos usar um fatorial para exemplificar
uma função em c que calcule o fatorial de um numero x sem recursividade
int fatorial (int x){
int i;
i = x - 1;
for (i; i!=1; i--)
x = x * i;
return x;
}
Então podemos considerar que:
fatorial de 5 é igual a 5 multiplicado pelo fatorial de 4;
fatorial de 4 é igual a 4 multiplicado pelo fatorial de 3;
fatorial de 3 é igual a 3 multiplicado pelo fatorial de 2 que é 2
fatorial de x = x * fatorial de ( x -1 );
Logo em C a função fatorial recursiva fica.
int fatorial (int x){
if(x<2)
return x;
return fatorial(x-1) * x;
}
Assinar:
Postagens (Atom)