Ir para conteúdo

Arquivado

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

  • 0
theothomeh

Preencher um array de 50 elementos e implementar tais funções(C++/Mergesort)

Pergunta

Primeiramente boa tarde à todos, eu sou estudante de ti mas ainda estou começando a entender programação 

Bom o exercício que estou praticando pede o seguinte:

Citar

Faça um programa que crie um array de 50 elementos inteiros. Depois implemente as funções:

– FazListaVazia(Lista) : faz a lista ficar vazia. – Insere(x, Lista) : insere x após o último item da lista.

– Retira(Lista, x) • Retira o item x que está na lista (fazendo o deslocamentos dos itens sucessivos ao valor a ser retirado).

– ListaVazia(Lista) • Retorna verdadeiro se a lista está vazia; caso contrário, retorna falso.

– Imprime(Lista) • Apresenta os elementos da lista na ordem de ocorrência.

O fato é que eu sou bem principiante e estou quebrando a cabeça tentando entender como fazer esse exercício, até o momento eu não faço ideia de como implementar o x ou sequer compilar o vetor com os 50 números aleatórios, eis o que surgiu dentro da minha cabeça louca:

Citar

 

#include <stdlib.h>
#include <iostream>
using namespace std;
#define N 6
        int existe(int *v, int n)
        {
            for(int i = 0; i < N; i++)
            {
                if(v == n)
                {
                    return 1;
                }
            }   return 0;
        }
        int valores(int *v)
        {
            int r;
            srand(rand());
            do
            {
                r = rand() % (N+1);
            }   while(existe(v, r)); //se o numero ja existe, randomiza de novo
            return r;
        }
        int preencher())
        {
            int V[N];
            V= valores(v);
        }
        int main()
        {
            preencher();
            cout<< V[];
        }

 

Imagino que eu não tenha acertado em mt coisa até agora, então quem puder me explicar uma forma de fazer esse exercício, se possível de forma bem simples de entender e usando o mergesort.

Peço desculpas pela minha ignorância explicando minha dúvida, e agradeço desde já à quem puder me ajudar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 resposta a esta questão

Recommended Posts

Cara, tem alguém te explicando o básico da linguagem?
O que você tem que implementar é o seguinte:
 

#include <iostream>
#include <random> // C++11 somente
#include <limits>
using namespace std;

#define TAMANHO_ARRAY 50

void FazListaVazia(int * Lista) {
   for(int i=0; i < TAMANHO_ARRAY; i++) {
	Lista[i] = -1;
   }
   
   /* Ou troque o laço por fill(Lista, Lista + TAMANHO_ARRAY, -1);
    * Não esqueça de incluir o <algorithms> */
}

int Insere(int x, int * Lista) {
   /* Procure a primeira posição igual a -1 e atribua o valor de x */
}

int Retira(int x, int * Lista) {
   /* Encontre os valores iguais a x e para cada um deles vá atribuindo 
    * o valor da posição seguinte enquanto ela for diferente de -1 ou não chegar 
	* ao final da lista */
}

boolean ListaVazia(int * Lista) {
   /* Verifique se o primeiro elemento da lista é -1. 
    * Como a remoção pede que você desloque os itens à direita dos que foram removidos, 
	* não é necessário percorrer todo o array.*/
}

void Imprime(int * Lista) {
   for(int i = 0; i < TAMANHO_ARRAY; i++) {
      if (Lista[i] != -1)
        cout << Lista[i] << endl;
   }
}

int preencherLista(int * Lista) {
  random_device rd;
  uniform_int_distribution<int> dist(0, numeric_limits<int>::max());
  FazListaVazia(Lista);
  for(int i = 0; i < TAMANHO_ARRAY; i++) {
    Insere(dist(rd), Lista));
  }
};

int main(void) {
   int lista[TAMANHO_ARRAY];
   preencherLista(lista);
   return 0;


int main(void) {
   int lista[TAMANHO_ARRAY];
   preencherLista(lista);
   return 0;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Boa tarde, pessoal.
      Espero que todos estejam bem.
       
      Seguinte:
      Tenho a seguinte consulta:
       
      $usuarios= "SELECT * FROM usuarios";
      $query= mysqli_query($conexao, $usuarios) or die ("Usuário não encontrado");
      $usuario = mysqli_fetch_array($query);
       
      Quero pegar apenas o campo 'nome' da tabela 'usuarios' e colocar todos os resultados da seguinte forma:
       
      $nomes = array("Rafael", "João", "Maria", "Pedro", "Patricia", "Camila");
       
      Agradeço desde já.
      Abs
       
       
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse resultado do array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por clovis.sardinha
      Bom dia.
      Meu problema é o seguinte:
      Estou fazendo uma tabela e preciso mostrar o usuário e várias cidades que pertencem a este usuário.
      O resultado do array é o seguinte:

      Quando passo para a tabela os valores de cidade se repetem para o mesmo usuário até o final e retorna fazendo o mesmo para o próximo usuário. 
      Veja abaixo

       
      Meu código para a tabela é a seguinte:
      <tr> <td align="left"><?php echo $usuario['nome'] ?></td> <td align="left"><?php echo $usuario['nome_orgao'] ?></td> <td align="left"><?php echo $usuario['nome_funcao'] ?></td> <?php foreach($destinos as $key=>$destino):?> <?php $key=0;?> <td align="left"> <?php foreach($destino as $chave=> &$cidade): ?> <?php echo $cidade['cid_nome']."-";?> <?php endforeach;?> </td> <?php $key+=$key; ?> <?php endforeach;?> <td><?php echo date('d/m/Y', strtotime( $usuario['created_at'])) ?></td> <td align="left"><a href="<?php echo base_url('UserAdmin/Usuario/getUsuarioById')."/".$usuario['id_user'] ?>">DETALHES</a></td> </tr> <?php endforeach ?> Onde estou errando? O que tenho de fazer para percorrer este array de modo a aparecer apenas as cidades pertencentes a cada usuário?

    • Por Giovanird
      Listo um array pelo foreach e preciso pegar os valores fora do foreach.
      Abaixo tenho o exemplo do foreach com os valores
       
      <?php foreach($turma $rsturma): if(($rsturma['id'] == 1){ echo $rsturma['nome']."<br>"; echo $rsturma['idade']."<br><br>"; } endforeach; //Dentro do foreach me retorna: Luis 13 Maria 12 Carlos 12 Matheus 14 Andréa 12 //Preciso pegar a posição e o valor desta lista $posicao1 = 1; $nome1 = Luis; $posicao2 = 2; $nome2 = Maria; $posicao3 = 3; $nome3 = Carlos; $posicao4 = 4; $nome4 = Matheus; $posicao5 = 5; $nome5 = Andréa;  
×

Informação importante

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