|
|

|
| WebTuga - Comunidade Nacional Web 2.0 | |
| Ver mensagem anterior :: Ver mensagem seguinte |
| Autor |
Mensagem |
Nelson Carvalho member

Idade: 23 Registrado em: 01 Abr 2008
Especificação:
Mensagens: 12
|
Colocada: Qua Mai 07, 2008 3:14 pm Assunto: [Listas em C++] |
|
|
oi pessoal, ESPERO K ESTEJAM TODOS BEM!
ESTOU A TER PROGRAMACAO EM C++ COM LISTAS E NAO ESTOU A ENTENDER PRATICAMENTE NADA, TENHO UMA DEFESA NA SEXTA E PRECISO DE UM PROGRAMA QUALQUER DE LISTAS...SE ALGUEM PUDER AJUDAR-ME AGRADECIA! |
|
| Voltar ao topo |
|
Devil_Boy member

Idade: 20 Registrado em: 05 Jul 2007
Especificação:
Mensagens: 110 Local/Origem: Portugal - Setúbal
|
Colocada: Sex Mai 09, 2008 6:09 am Assunto: |
|
|
| Citação: | // Codigo Programa da Lista Sequencial
#include<stdio>
#include<stdlib>
#include <dos>
#include <time>
int valor[200000];//lista
int k;
int fim;//fim da lista
int sinal;//variavel logica
int i, cont, cont2, val, aux;
int Rand[40];
int no[40];
clock_t iniciar, parar;
double Clock[100];
FILE *fp;
main(){
//declarar os valores para a lista
sinal = 1;
srand(time(NULL));
fp=fopen ("graficoSeq.txt","w");
if (!fp)
printf ("Erro na abertura do arquivo.");
for (k=1,Rand[0]=0;k<=30; k++){
Rand[k] = rand() % 1000000;
}
iniciar = clock();
for (k=0;k<=100000; k++){
valor[k] = rand() % 1000000;
fim = k;
}
parar = clock();
k=0;
Clock[99] = ((parar - iniciar) / CLK_TCK);
iniciar = clock();
ordenar(fim);
parar = clock();
Clock[98] = ((parar - iniciar) / CLK_TCK);
for (cont = 1; cont<=30; cont++){
no[cont]= pesquisa2(Rand[cont]);
iniciar = clock();
val = Rand[cont];
inc(no[cont]);
parar = clock();
Clock[cont] = ((parar - iniciar) / CLK_TCK);
}
for (cont = 11; cont<=20; cont++){
no[cont]= pesquisa(Rand[cont]);
iniciar = clock();
del(no[cont]);
parar = clock();
Clock[cont] = ((parar - iniciar) / CLK_TCK);
}
for (cont = 21; cont<=30; cont++){
iniciar = clock(); // pego o tempo antes de iniciar a tarefa
no[cont]= pesquisa(Rand[cont]);
parar = clock();
Clock[cont] = ((parar - iniciar) / CLK_TCK);
}
for (i=0;i<=79;i++)
fprintf(fp,"#");
fprintf(fp,"\n""\t""\t""\t""Tabela de Tempo (s) - Lista Sequencial""\n""\n");
fprintf(fp,"Carregar: ""%f""\t""Ordenar: ""%f""\n",Clock[99], Clock[98]);
fprintf(fp,"\n""Inserir""\tNO""\t""\t""Excluir""\tNO""\t""\t""Pesquisar""\tNO""\n");
for (cont=1;cont<=10;cont++)
fprintf(fp,"%f""\t""%d\t""%f""\t""%d\t""%f""\t%d""\n", Clock[cont],no[cont], Clock[cont+10],no[cont+10], Clock[cont+20], no[cont+20]);
fprintf(fp,"\n");
for (i=0;i<=79;i++)
fprintf(fp,"#");
//Escrever na tela
for (i=0;i<=79;i++)
printf("#");
printf("\n""\t""\t""\t""Tabela de Tempo (s) - Lista Sequencial""\n""\n");
printf("Carregar: ""%f""\t""Ordenar: ""%f""\n",Clock[99], Clock[98]);
printf("\n""Inserir""\tNO""\t""\t""Excluir""\tNO""\t""\t""Pesquisar""\tNO""\n");
for (cont=1;cont<=10;cont++)
printf("%.9f""\t""%d\t""%.9f""\t""%d\t""%.9f""\t%d""\n", Clock[cont],no[cont], Clock[cont+10],no[cont+10], Clock[cont+20], no[cont+20]);
printf("\n");
for (i=0;i<=79;i++)
printf("#");
printf("\nPressiona Qualquer tecla pra sair...");
fclose(fp);
getch();
exit(0);
}
int acc(int k){ // aceder ao k-esimo valor passado
if (k<0> fim){
sinal = -1;
}
else{
sinal = 1;
val = valor[k];
}
}
int alt(int k){ //alterar o k-esimo valor passado
if (k<0>fim){
sinal = -1;
}
else{
sinal = 1;
valor[k] = val;
}
}
int inc(int k){ //Incluir um elemento na lista
i = fim;
if (k<0>fim){
sinal = -1;
}
else{
while (i>=k) {
valor[i+1] = valor[i];
i--;
}
valor[k] = val;
}
fim++;
}
int del(int k){
if (k<0>fim){
sinal = -1;
}
else{
for (k; k<=(fim-1); k++) {
valor[k] = valor[k+1];
}
}
valor[fim]= 0;
fim--;
}
void ordenar(int fim2){
for (k=0;k<=fim2; k++){
for (cont2 = k+1;cont2<fim2>valor[cont2]))
{
aux = valor[k];
valor[k] = valor[cont2];
valor[cont] = aux;
}
}
}
}
int pesquisa(int pesq){
int q = 0;
while ((pesq != valor[q]) && (q<fim> valor[q]) && (q<=fim);q++){
}
return q;
} |
| Citação: | //Codigo do programa Lista Encadeada
#include <stdlib>
#include <stdio>
#include <dos>
#include <time>
float Clock[100];
clock_t iniciar, parar;
int k, i, cont;
int Rand[101];
int no;
int No[101];
FILE *fp;
struct lista{
int conteudo;
struct lista *prox;
};
typedef struct lista encadeada;
encadeada c;
encadeada *p;
encadeada *ini;
main(){
fp=fopen ("graficoEnc.txt","w");
if (!fp)
printf ("Erro na abertura do ficheiro.");
ini = malloc (sizeof (encadeada));
ini->prox = NULL;
p = NULL;
srand(time(NULL));
for (Rand[0]=0,k=0;k<=100; k++)
Rand[k] = rand() % 1000000;
//Carrega e ordena ao mesmo tempo
iniciar = clock();
for (k=0;k<=100000; k++){
insere((rand() % 1000000), ini);
}
parar = clock();
Clock[0] = (((parar - iniciar) / (CLK_TCK)));
k=0;
//inserir 30 valores aleatorios e ordenar
for (cont=1;cont<=30; cont++){
iniciar = clock();
insere(Rand[cont],ini );
parar = clock();
busca(Rand[cont],ini);
No[cont] = no;
Clock[cont] = ((parar - iniciar) /(CLK_TCK));
}
//
for (cont = 11; cont<=20; cont++){
iniciar = clock();
if (busca(Rand[cont],ini)!= NULL)
Remove((busca(Rand[cont],ini)));
else
if (busca(Rand[cont+10],ini)!= NULL)
Remove((busca(Rand[cont+10],ini))); //so pra diminuir a probabilidade de
else //nao inserir nenhum no
if (busca(Rand[cont+20],ini)!= NULL)
Remove((busca(Rand[cont+20],ini))); //Idem
parar = clock();
No[cont] = no;
Clock[cont] = ((parar - iniciar) / (CLK_TCK));
}
for (cont=21;cont<=30; cont++){
iniciar = clock();
busca(Rand[cont],ini);
parar = clock();
No[cont] = no;
Clock[cont] = ((parar - iniciar) / (CLK_TCK));
}
for (i=0;i<=79;i++)
fprintf(fp,"#");
fprintf(fp,"\n""\t""\t""\t""Tabela de Tempo (s) - Lista Encadeada""\n""\n""Carregar E Ordenar ao Mesmo Tempo: %f""\n",Clock[0]);
fprintf(fp,"Inserir""\t""\t""NO""\t""Remover""\t""\t""NO""\t""Buscar""\t""\t""NO""\n");
for (cont=1;cont<=10;cont++)
fprintf(fp,"%f""\t""%d\t""%f""\t""%d\t""%f""\t%d""\n", Clock[cont], No[cont], Clock[cont+10],No[cont+10], Clock[cont+20],No[cont+20]);
fprintf(fp,"\n");
for (i=0;i<=79;i++)
fprintf(fp,"#");
for (i=0;i<=79;i++)
printf("#");
printf("\n""\t""\t""\t""Tabela de Tempo (s) - Lista Encadeada""\n""\n""Carregar E Ordenar ao Mesmo Tempo: %f""\n",Clock[0]);
printf("Inserir""\t""\t""NO""\t""Remover""\t""\t""NO""\t""Buscar""\t""\t""NO""\n");
for (cont=1;cont<=10;cont++)
printf("%f""\t""%d\t""%f""\t""%d\t""%f""\t%d""\n", Clock[cont], No[cont], Clock[cont+10],No[cont+10], Clock[cont+20],No[cont+20]);
printf("\n");
for (i=0;i<79> prox;
while (p != NULL && p->conteudo != x){
p = p->prox;
no++;
}
return p;
}
void insere (int x, encadeada * q)
{
encadeada *nova;
encadeada *p;
nova = malloc (sizeof (encadeada));
nova->conteudo = x;
nova->prox = q->prox;
q->prox = nova;
for (p = ini->prox; (p != NULL)&& (p->prox!=NULL); p = p->prox){
if ( (p->conteudo)>(p->prox->conteudo)){
x = p->conteudo;
p->conteudo = p->prox->conteudo;
p->prox->conteudo = x;
}
}
}
void Remove (encadeada *p)
{
encadeada *morta;
if ( p->prox != NULL){
morta = p->prox;
p->prox = morta->prox;
}
else p->prox = NULL;
free (morta);
}
void imprimir (encadeada *ini)
{
encadeada *p;
for (p = ini->prox; (p != NULL); p = p->prox)
printf ("%d""\n", p->conteudo);
} |
|
|
| Voltar ao topo |
|
Nelson Carvalho member

Idade: 23 Registrado em: 01 Abr 2008
Especificação:
Mensagens: 12
|
Colocada: Sex Mai 09, 2008 3:00 pm Assunto: [Lista C++] |
|
|
oi obrigado por me responderes e foi optimo pk ja vi k posso contar contigo!
o teste foi adiado p proxima sexta pois , ninguem se encontrava preparado p o fazer!
gostaria de saber do que se trata neste programa que me enviaste.
obrigado
Nelson Carvalho |
|
| Voltar ao topo |
|
|
|
|
|
Neste fórum, você Não pode colocar mensagens novas Não pode responder a mensagens Não pode editar as suas mensagens Não pode remover as suas mensagens Você Não pode votar neste fórum
|
|
 |
 |
Powered by phpBB © 2001, 2002 phpBB Group
iCGstation v1.0 Template By Ray © 2003, 2004 iOptional
|
 |
| |