Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Maria Luiza

Sequencia ordenada

Recommended Posts

Tenho que fazer um programa com as seguintes condições:

 

 

Entrada

Para cada sequência numérica há na entrada duas linhas: uma com, apenas um valor inteiro, indica o número de valores reais que deve ocorrer na próxima linha. A linha seguinte contém tantos valores quanto indicado na linha anterior. Entre dois valores há apenas um espaço e após o último valor há um caractere de quebra de linha. A última linha da entrada contém um tamanho de sequência igual a zero e serve apenas para indicar término do processamento. Não há uma linha com sequência de valores após a ocorrência de uma linha com valor zero.

 

Saída

 

Para cada seqüência da entrada o seu programa deve emitir uma das seguintes respostas: ORDENADA, se a sequência estiver em ordem crescente de valores ou DESORDENADA, em caso contrário. Após cada palavra impressa deve haver apenas um caractere de quebra de linha.

 

 

Mas não sei a lógica pra realizar , tentei colocando um for dentro de outro for, sendo que a leitura tem que para somente com tiver a entrada 0.

 

 

Quem puder me dar uma lux eu agradeço....

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por José Roberto Scarmagnani
      Bom dia pessoal !
       
      Tenho a seguinte tabela:
      -------------------------------------------------------------------------------
      |Numero   | Nome     | Data               |  Ocorrencia |
      ________________________________________________
      | 00010     | Joao      | 20/10/2019   | 15                 |
      | 00023     | Joao      | 21/10/2019   | 15                 |
      | 00044     | Joao      | 22/10/2019   | 15                 |
      | 00057     | Joao      | 23/10/2019   | 23                 |
      | 00058     | Joao      | 26/10/2019   | 15                 |
      | 00067     | Joao      |  27/10/2019  | 15                 |
      | 00089     | Paulo     | 01/10/2019   | 10                 |
      ________________________________________________
       
      Preciso de uma consulta que me retorne quantas vezes houve a mesma ocorrência sequencialmente, informando o dia da primeira ocorrência e quantas vezes se repetiu ou então que dia iniciou e que dia terminou a mesma ocorrência em data sequencial, assim:
       
      ___________________________________________
      | Nome    | Dia_Inicio       | Qtd   | Ocorrencia |
      ___________________________________________
      | Joao      | 20/10/2019   | 03     |  15               |
      | Joao      | 23/10/2019   | 01     |  23               |
      | Joao      | 26/10/2019   | 02     |  15               |
      | Paulo     | 01/10/2019   | 01     |  10               |
      ____________________________________________
       
      Ou assim
      _____________________________________________________
      | Nome     | Dia_Inicio       | Dia _Final         | Ocorrencia |
      _____________________________________________________
      | Joao       | 20/10/2019   | 22/10/2019    | 15                 |
      | Joao       | 23/10/2019   | 23/10/2019    | 23                 |
      | Joao       | 26/10/2019   | 27/10/2019    | 15                 |
      | Paulo      | 01/10/2019   | 01/10/2019    | 10                 |
      _____________________________________________________
       
      Em minhas tentativas consegui somar a mesma ocorrência para o mesmo nome, mas não separa por data sequencial.
       
      Alguem poderia me auxiliar nessa consulta?
       
      Obrigado
    • Por Pavolin
      Bom dia,
       
      Estou necessitando de ajuda em um problema que tenho que resolver urgente.
       
      Os números de Fibonacci constituem uma sequência de números na qual os dois primeiros elementos são 0 e 1, e os demais, a soma dos dois elementos imediatamente anteriores na sequência.
      Como exemplo, a sequência formada pelos 10 primeiros números de Fibonacci é: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34.
      Faça um programa em C para calcular e imprimir os 20 primeiros números da série.
       
      eu pensei em por em um vetor e somar a posição anterior com a atual, mas tudo que faço não esta dando certo alguém pode me ajudar?
      obs: pensei em ponteiro mas não manjo de ponteiro.
    • Por joaomart
      Olá. Preciso fazer uma consulta MySql em PHP para listar uma espécie de ranking, porém quando uso o código para listar por ordem decrescente ele lista da seguinte maneira:
      80
      70
      30
      100
       
      E preciso que ele liste assim:
      100
      80
      70
      30
       
      O código PHP:
      <?php include("conexao.php"); $sql = mysqli_query($conexao, "SELECT * FROM ranking ORDER BY `pontuacao` DESC") or die( mysqli_error($conexao) ); while($aux = mysqli_fetch_assoc($sql)) { echo "<tr>"; echo "<td>".$aux["nome"]."</td>"; echo "<td>".$aux["data"]."</td>"; echo "<td>".$aux["pontuacao"]."%</td>"; } ?> Agradeço a quem ajudar
    • Por otaviohpf
      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
    • Por Skidrow
      Bom dia ,
       
      pessoal , seguinte :
       
      Tenho um pequeno formulario , bastante simples :
       
      index.html
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <body> <form id="form1" name="form1" method="post" action="teste11.php"> <p> <label for="textfield"></label> <input type="number" name="inicial" /> inicial </p> <p> <label for="textfield2"></label> <input type="number" name="quantidade" /> quantidade</p> <p> <input type="submit" name="button" value="Submit" /> </p> </form> </body> </html> Os dados prenchidos nele , são enviados para uma outra pagina .php que faz a exibição dos dados preenchidos.
       
      teste11.php
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <body> <?php $inicial_ex = $_POST["inicial"]; $quantidade_ex = $_POST["quantidade"]; echo $inicial_ex; echo $quantidade_ex; ?> </body> </html> porem , gostaria que ocorre-se o seguinte , supondo que o usuario digite a quantidade " 10 "
       
      fosse exibido os numeros em sequencia até 10 . exemplo
       
      1 2 3 4 5 6 7 8 9 10
       
      é possivel isso ?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.