Ir para conteúdo
Fórum Script Brasil

Pesquisar na Comunidade

Mostrando resultados para as tags ''ordenada''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • Programação & Desenvolvimento
    • ASP
    • PHP
    • .NET
    • Java
    • C, C++
    • Delphi, Kylix
    • Lógica de Programação
    • Mobile
    • Visual Basic
    • Outras Linguagens de Programação
  • WEB
    • HTML, XHTML, CSS
    • Ajax, JavaScript, XML, DOM
    • Editores
  • Arte & Design
    • Corel Draw
    • Fireworks
    • Flash & ActionScript
    • Photoshop
    • Outros Programas de Arte e Design
  • Sistemas Operacionais
    • Microsoft Windows
    • GNU/Linux
    • Outros Sistemas Operacionais
  • Softwares, Hardwares e Redes
    • Microsoft Office
    • Softwares Livres
    • Outros Softwares
    • Hardware
    • Redes
  • Banco de Dados
    • Access
    • MySQL
    • PostgreSQL
    • SQL Server
    • Demais Bancos
  • Segurança e Malwares
    • Segurança
    • Remoção De Malwares
  • Empregos
    • Vagas Efetivas
    • Vagas para Estágios
    • Oportunidades para Freelances
  • Negócios & Oportunidades
    • Classificados & Serviços
    • Eventos
  • Geral
    • Avaliações de Trabalhos
    • Links
    • Outros Assuntos
    • Entretenimento
  • Script Brasil
    • Novidades e Anúncios Script Brasil
    • Mercado Livre / Mercado Sócios
    • Sugestões e Críticas
    • Apresentações

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

Encontrado 2 registros

  1. Pessoal, preciso de ajuda em um exercício, quem puder me ajudar, agradeço muito! Eu já tentei de diversas maneiras (...) •Considere uma lista simplesmente encadeada que armazena os seguintes dados de atletas: –Nome : com até 50 caracteres –Estatura: número de ponto flutuante • Defina a estrutura denominada Lista que contenha os campos apropriados para guardar as informações de um atleta na lista, como descrito acima. •Implemente uma função que insira, em ordem crescente de estatura, os dados de um novo atleta na lista. Essa função deve obedecer ao seguinte protótipo, retornando o ponteiro para o primeiro elemento. –Lista* ins_ordenado (Lista* l, char *nome, float estatura);
  2. Olá, estou com um problema: tenho que ler um arquivo de .csv que contem simulações de jogos entre dois times e/ou consultas ao ranking.Foi especificado que o numero de consultas é muito maior que o numero de simulações de jogos. Para não ficar muito custoso pensei em sempre inserir os times após cada simulação já de maneira ordenada, e se o time já tiver feito algum outro jogo, eu removo e insiro novamente ordenado. /**************************** Estruturas ****************************/ typedef int TipoChave; typedef struct TipoTime { char *nome; int classificacao; int pontos; }TipoTime; typedef struct TipoItem{ TipoChave Chave; TipoTime Time; }TipoItem; typedef struct TipoCelula *TipoApontador; typedef struct TipoCelula{ TipoItem Item; TipoApontador Prox; }TipoCelula; typedef struct TipoLista{ TipoApontador Primeiro, Ultimo; }TipoLista;/**************************** Funcoes ****************************/ void FLVazia (TipoLista *Lista); int Vazia(TipoLista Lista); void Insere (TipoItem x, TipoLista *Lista); void Retira (TipoApontador p, TipoLista *Lista, TipoItem *Item); void Imprime (TipoLista Lista); void ImprimeNoArquivoDeSaida (TipoLista Lista); int pesquisarTime(TipoLista *L , char *nome, TipoCelula *Celula); void inserirOrdenado(TipoLista Lista , TipoItem *Time); void atualizaVitoria(TipoLista Lista, TipoItem *Item, TipoApontador p); void atualizaEmpate(TipoLista Lista, TipoItem *Item, TipoApontador p);/*Função que faz uma lista vazia*/ void FLVazia (TipoLista *Lista){ Lista -> Primeiro = (TipoApontador) malloc (sizeof(TipoCelula)); Lista -> Ultimo = Lista -> Primeiro; Lista -> Primeiro -> Prox = NULL; } int Vazia(TipoLista Lista){ return (Lista.Primeiro == Lista.Ultimo); } /*Insere na lista*/ void Insere (TipoItem x, TipoLista *Lista){ Lista -> Ultimo -> Prox = (TipoApontador) malloc (sizeof (TipoCelula)); Lista -> Ultimo = Lista -> Ultimo -> Prox; Lista -> Ultimo -> Item = x; Lista -> Ultimo -> Prox = NULL; } /*Remove da lista*/ void Retira (TipoApontador p, TipoLista *Lista, TipoItem *Item){ TipoApontador q; if ( (Vazia(*Lista)) || (p == NULL) || (p -> Prox == NULL) ){ printf ("\nErro: lista vazia ou posicao nao existe!!\n"); return; } q = p -> Prox; *Item = q -> Item; p -> Prox = q -> Prox; if (p -> Prox == NULL){ Lista -> Ultimo = p; } free (q); } /*Imprime a lista*/ void Imprime (TipoLista Lista){ TipoApontador Aux; Aux = Lista.Primeiro -> Prox; while (Aux != NULL){ printf ("%d \n" , Aux -> Item.Chave); Aux = Aux -> Prox; } } /*void ImprimeNoArquivoDeSaida (TipoLista Lista){ TipoApontador Aux; Aux = Lista.Primeiro -> Prox; while (Aux != NULL){ fprintf (ArqSaida,"%d, \n" , Aux -> Item.Chave); Aux = Aux -> Prox; } }*/ //pesquisa se já existem o time na lista. int pesquisarTime(tlista *L,char *nome, TipoCelula *Celula){ TipoCelula *p; TipoTime *Time; while (p !=NULL){ Time = L->nome; if (strcmp(nome,Time->nome)==0){ return 1; } } return 0; } /*Esta função faz a inserção na lista de maneira ordenada*/ void inserirOrdenado(TipoLista Lista **p, *Time) { lista *atual, *novo, *anterior; int num; novo = (lista *) malloc(sizeof(lista)); atual = *p; anterior = NULL; novo->valor = Time; if(atual == NULL){ novo->prox = NULL; *p = novo; } else{ while(atual != NULL && atual->valor < num){ anterior = atual; atual = atual->prox; } novo->prox = atual; if(anterior == NULL){ *p = novo; } else{ anterior->prox = novo; } } } /*A função recebe o time vitorioso, copia para um time temporário. chama a função Retira, para remover o item da lista soma os 3 pontos da vitória e insere novamente de maneira ordenada*/ void atualizaVitoria(TipoLista Lista, TipoTime Time, TipoApontador p){ TipoItem ItemTemp; //Copia o time para um TipoTime temporário. ItemTemp.Time.nome = Item.Time.nome; ItemTemp.Time.classificacao = Item.Time.classificacao; ItemTemp.Time.pontos = Item.Time.pontos+3;//Ponteiro ou conteudo ? Retira ( p, *Lista, *Item); inserirOrdenado( Lista **p, *ItemTemp); } /*A função recebe os times que empataram(um por vez), copia para um time temporário. chama a função Retira, para remover o item da lista soma o 1 ponto da vitória e insere novamente de maneira ordenada*/ void atualizaEmpate(TipoLista Lista, TipoItem *Item, TipoApontador p){ TipoItem ItemTemp; ItemTemp.Time.nome = Item.Time.nome; ItemTemp.Time.classificacao = Item.Time.classificacao; ItemTemp.Time.pontos = Item.Time.pontos+3;//Ponteiro ou conteudo ? Retira ( p, *Lista, *Item); inserirOrdenado( Lista **p, *ItemTemp); }int main(){ /************************** VARIAVEIS *****************************/ char buffer[100]; int i = 0; int flag = 1; TipoLista Campeonato; TipoItem ItemAux; char *Acao; char *TipoDaAcao; char *NomeDoTime1; char *NomeDoTime2; /************************ LEITURA ARQUIVOS *******************************/ FILE *ArqEntrada; // leitura dos comandos FILE *ArqSaida; // resultado dos comandos FILE *ArqRanking; // arquivo do ranking ordenado ArqEntrada = fopen("entrada.csv","r"); ArqSaida = fopen("saida.csv", "w"); ArqRanking = fopen("ranking.csv","r"); if (ArqEntrada == NULL) { printf ("\nERRO: Arquivo de entrada incorreto!"); } if (ArqSaida == NULL){ printf("\nERRO: Arquivo de saida incorreto!"); } if (ArqRanking == NULL){ printf("\nERRO: Ranking nao encontrado. Sera gerado um novo."); ArqRanking = fopen("ranking.csv","w"); flag = 0; } /************************ CARREGANDO SIMULAÇÕES ANTERIORES *******************************/ if (flag==1){ fgets (buffer, 100, ArqRanking); while (!feof(ArqRanking)){ printf ("\n"); ItemAux.Time.nome = atoi (strtok (buffer, ",")); printf ("\nNome: %s", ItemAux.Time.nome); ItemAux.Time.classificacao = atoi (strtok (buffer, ",")); printf ("\nClassificacao: %d", ItemAux.Time.classificacao ); ItemAux.Time.pontos = atoi(strtok (NULL, ",")); printf ("\nPontuacao: %d", ItemAux.Time.pontos); fgets (buffer, 100, ArqRanking); } } /************************ LEITURA DA ENTRADA *******************************/ while (!feof(ArqEntrada)){ Acao = strtok (NULL, ","); if (strcmp("CONSULTA", Acao)==0){ TipoDaAcao = atoi (strtok (buffer, ",")); NomeDoTime1 = atoi (strtok (buffer, ",")); //if (pesquisarTime(&Campeonato, *NomeDoTime1, ItemAux )==0){ if (1){ printf("/nERRO: Time nao encontrado para consulta."); } if (strcmp("PONTUACAO", Acao)==0){ fprintf(ArqSaida, "%s,%s,%d", TipoDaAcao, NomeDoTime1, ItemAux.Time.pontos); } else if (strcmp("RANKING", Acao)==0){ fprintf(ArqSaida, "%s,%s,%d", TipoDaAcao, NomeDoTime1, ItemAux.Time.classificacao); } } else if(strcmp("VITORIA", Acao)==0){ NomeDoTime1 = atoi (strtok (buffer, ",")); NomeDoTime2 = atoi (strtok (buffer, ",")); if (1){//*pesquisarTime(*NomeDoTime1, Campeonato, ItemAux )*/){ atualizaVitoria(Campeonato, *Item, p); } else if(1){ //(pesquisarTime(*NomeDoTime1, Campeonato, ItemAux )==0){ //Como somar os 3 pontos para inserir ordenado? inserirOrdenado(Campeonato p, *Time); } if (1){ //(pesquisarTime(*NomeDoTime2, Campeonato, ItemAux )==0){ inserirOrdenado(Campeonato p, *Time); } /* else if(strcmp("EMPATE", Acao)==0){ NomeDoTime1 = atoi (strtok (buffer, ",")); NomeDoTime2 = atoi (strtok (buffer, ",")); /* pesquisarTime retorna 1 se o time for encontrado e 0 se não. if (pesquisarTime(*NomeDoTime1, Campeonato, ItemAux )){ atualizaEmpate(Campeonato, *Item, p); } /* pesquisarTime retorna 1 se o time for encontrado e 0 se não. else if (pesquisarTime(*NomeDoTime1, Campeonato, ItemAux )==0){ //Como somar o 1 ponto para inserir ordenado? inserirOrdenado(Campeonato p, *Time); } /* pesquisarTime retorna 1 se o time for encontrado e 0 se não. if (pesquisarTime(NomeDoTime2, Campeonato, ItemAux )){ atualizaEmpate(Campeonato, *Item, p); } /* pesquisarTime retorna 1 se o time for encontrado e 0 se não. else if (pesquisarTime(*NomeDoTime2, Campeonato, ItemAux )==0){ //Como somar o 1 ponto para inserir ordenado? inserirOrdenado(Campeonato p, *Time); } */ } else{ printf("/nErro: Primeiro argumento invalido."); } } /************************ IMPRIME RANKING *******************************/ ImprimeNoArquivoDeSaida(Campeonato); fclose(ArqEntrada); fclose(ArqSaida); fclose(ArqRanking); return 0; }Fiz o código desta maneira porém estou com muitas duvidas quanto as passagens dos parâmetros para as funções. Vocês podem me ajudar ? Obrigado
×
×
  • Criar Novo...