terça-feira, 13 de março de 2007

Lista duplamente encadeada


A imagem tah um pouco(muito) ruin,, a lista duplamente encadeada, como o próprio nome da diz é uma lista q não aponta só para o próximo elemento,, + também para o anterior,, isso permite uma "navegação" bem avontade entre os elementos de uma lista.
Segue abaixo o exemplo de uma lista encadeada simples...

sexta-feira, 9 de março de 2007

Verificador de cpf.(diz quais são os 2 últimos dígitos)

#include <stdio.h>
#include <stdlib.h>

int main()
{
int a[10], soma, r, i, j;
soma = r = i = j = 0;
for(i=0;i<9;i++){
scanf("%d", &a[i]);
}
for(i=10;i>=2;i--){
soma += a[j] * i;
j++;
}
if((soma % 11) == 0 || (soma % 11) == 1){
a[9] = 0;
}
else { a[9] = 11 - (soma % 11); }
soma = j = 0;
for(i=11;i>=2;i--){

soma += a[j] * i;
j++;
}
if((soma % 11) == 0 || (soma % 11) == 1){
a[10] = 0;
}
else { a[10] = 11 - (soma % 11); } i = 0;
do {
printf("%d", a[i]);
i++;
} while( i!=11 );
system("pause");
}

Gerador de Cpf =X

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define TOTAL 1000


int main()
{

int a[10], soma, r, i, j, gerar;
soma = r = i = j = gerar = 0;
srand(time(NULL));
for(gerar=0;gerar<=TOTAL;gerar++){
for(i=0;i<9;i++){
a[i] = rand() % 10 ;
}
for(i=10;i>=2;i--){
soma += a[j] * i;
j++;
}
if((soma % 11) == 0 || (soma % 11) == 1){
a[9] = 0;
}
else { a[9] = 11 - (soma % 11); }
soma = j = 0;
for(i=11;i>=2;i--){

soma += a[j] * i;
j++;
}
if((soma % 11) == 0 || (soma % 11) == 1){
a[10] = 0;
}
else { a[10] = 11 - (soma % 11); } i = 0;
do {
printf("%d", a[i]);
if(i == 8) { printf("-"); }
i++;
} while( i!=11 );
getchar();
}
}

Decimal -> Binário (contador)

#include <stdio.h>
#include <stdlib.h>

#define VAL 50

int tobinari(int r);
int main() {
int i =0;
int w =0;
printf("Até q valor deseja contar?\n");
scanf("%d", &w);
for(i=0;i<w;i++){ tobinari(i); }
system("pause");
}

int tobinari(int r)
{
int n[VAL];
int i;
int cont;
for(i=0;i<=VAL;i++){ n[i] = 0; }
for(i=0;i<VAL;i++){
/*
if( (r2 / 2) != 0 || (r2 % 2) > 0){ // precisa ser aprimorado!
cont++;
}
*/
n[i] = r % 2;
r = r / 2;

}
for(i=VAL;i>=0;i--){ printf("%d", n[i]); }
printf("\n");
}

terça-feira, 6 de março de 2007

Decimal -> Binário


Jeitinho fácil de ser transformado em algorítmo, para converter um número da forma decimal para a binária.

sábado, 3 de março de 2007

Verificar números primos dentro de um intervalo.

#include <stdio.h>

#include <stdlib.h>

#define INTER 1000

int primo(int b){
int i, count = 0;
for(i=1;i<b+1;i++){ if((b % i) == 0) { count++; }
}

if(count == 2) { return 1; } else { return 0; }
}

int main(void)
{
int i;
for(i=0;i<INTER;i++) { if(primo(i) == 1) { printf("%d\n", i);
}
}
system("pause");
}