Ainda não fazes parte da comunidade WebTuga!? Clica aqui e Regista-te já!

EntrarUtilizadorSenha
Ligar-me automaticamente em cada visita    
Pesquisar
Pesquisar
Membros
Membros
Registar
Registar
Ligar e ver Mensagens Privadas
Ligar e ver Mensagens Privadas

Fórum WebTuga

Índice do Fórum WebTuga » Programação

Novo Tópico   Responder a Mensagem   

[Listas em C++]
Ver mensagem anterior :: Ver mensagem seguinte  
Autor Mensagem
Nelson Carvalho
member
member


Idade: 23
Registrado em: 01 Abr 2008

Especificação:

Mensagens: 12

MensagemColocada: Qua Mai 07, 2008 3:14 pm    Assunto: [Listas em C++] Responder com Citação

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
member


Idade: 20
Registrado em: 05 Jul 2007

Especificação:

Mensagens: 110
Local/Origem: Portugal - Setúbal

MensagemColocada: Sex Mai 09, 2008 6:09 am    Assunto: Responder com Citação

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
member


Idade: 23
Registrado em: 01 Abr 2008

Especificação:

Mensagens: 12

MensagemColocada: Sex Mai 09, 2008 3:00 pm    Assunto: [Lista C++] Responder com Citação

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
Mostrar os tópicos anteriores:   
Novo Tópico   Responder a Mensagem    Índice do Fórum WebTuga » Programação Todos os tempos são GMT
Página 1 de 1

 
Ir para:  
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

Artigos relacionados
 Tópicos   Respostas   Autor   Vistos   Última Mensagem 
Não há mensagens novas Modelos lutam ao estilo Matrix - muito bem feito 9 addiction 1108 Qui Out 18, 2007 6:59 pm
KYO Ver a última mensagem
Não há mensagens novas Ora bem.. 52 Skilz0ne 4937 Dom Nov 05, 2006 9:52 pm
Skilz0ne Ver a última mensagem
Não há mensagens novas Ou se portam bem ou... 5 r1c4rd0100 750 Ter Set 12, 2006 6:55 pm
Deceased90 Ver a última mensagem
Não há mensagens novas dançar fax bem(looool) 5 zac_drake 805 Seg Set 04, 2006 11:49 pm
tanuska Ver a última mensagem
Não há mensagens novas [Notícia] Crysis não correria bem nas next-gen! 0 BigPower 447 Qua Ago 30, 2006 1:40 am
BigPower Ver a última mensagem



who's online
WebTuga Footer
WebTuga Footer Powered by phpBB © 2001, 2002 phpBB Group
iCGstation v1.0 Template By Ray © 2003, 2004 iOptional

WebTuga Footer