Jump to content
  • 0
theothomeh

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

Question

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!

Edited by theothomeh
organização

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

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;
}

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Gustavuh
      Boa tarde.
       
      Estou carregando os dados do usuário numa session.
       
      Na página de redirecionamento, jogo essa session para uma váriável.
       
      Quero por BEM VINDO, {nome_do_usuario}, mas aparece o erro UNDEFINED INDEX: USER_NAME.
       
      Segue codigo...
       
      if(!isset($_SESSION['userlogin'])){ unset($_SESSION['userlogin']); header("Location: index.php"); exit; }else{$userlogin = $_SESSION['userlogin'];} <img src="images/user.png" alt=""> <span> Bem vindo(a), <strong style="font-style: italic;"><?= $userlogin['user_apelido']; ?></strong></span> Como resolver esse caso tão simples?

    • By Jefferson andre
      Saudações mestres,
       
      preciso que um determinado campo ao passar por uma funcao pegue algumas informacoes noquery e atualize determinados campos no mesmo form.
       
      Pensei em algo assim mas nao sei como proceder
      <?php
      function pegardados(){
      seleciona a tabela
      $campoum = tabela['campoum'];
      $campodois = tabela['outrocampo'];
      $campotres = tabela['outrocampodenovo'];
       
      como atualizar os dados em determinados campos do form?
      }
      ?>
       
      <html>
       
      <form action="xxx.php">
      <input campo name="campo" id="campo" onChange="pegardados();"  value ="<?php echo $campoum; ?>" </input>
      <input campo name="campodois" id="campodois" </input>
      <input campo name="campotres" id="campotres"  </input>
      </form>
      </html>
       
      apenas um exemplo grosseiro mas da pra passar a ideia do que eu preciso.
       
      No meu caso a opcao onChange nao esta funcionando tambem e nao entendi o motivo, ja que eh apenas para chamar uma funcao php
       
      Qualquer sugestao eh bem vinda, obrigado
       
      algo assim 
       
      Tem como fazer isso
       
    • By agodiniz
      Fala galera, estou com um problema e não sei como resolver. Até encontrei umas respostas, mas utilizando Php e Mysql. Preciso que a resposta seja utilizando as tecnologias javascript (node) e Mysql.
      Gostaria de capturar dados de um formulário utilizando array e salvando o mesmo num banco de dados.
       
      Ex:
      Imagine um 3 inputs do tipo text que recebem um valor que é inserido pelo cliente e que cada input, possa receber valores diferentes (como se cada um fosse uma variável 'titulo', 'conteudo' e 'autor')
      quero que depois que o cliente enviar os dados que por ele foram inputados, esses dados sejam enviados para as variáveis 'titulo', 'conteudo' e 'autor'.
      Logo depois quero declarar um array que receba essas variáveis [titulo, conteudo, autor] e desejo armazenar o array no banco de dados utilizando Mysql
       
      Desde já, agradeço!
    • By danisj
      #include<iostream>
      using namespace std;
      int BuscaBin (int lista[], int baixo, int alto, int chave)
      {
          int central;
          int valorcentral;
          while (baixo <= alto)
          {
              central = (baixo + alto)/2;
              valorcentral = lista[central];
              if (chave == valorcentral)
                  return central;
              else if (chave < valorcentral)
                  alto = central -1;
              else
                  baixo = central + 1;
          }
      }
      int main()
      {
          int a[10];
          int chave, pos;
          cout << "Introduza uma lista de 10 inteiros:";
          for (pos = 0; pos < 10; pos++)
              cin >> a[pos];
          cout << "Introduza chave a buscar:";
          cin >> chave;
          pos = 0;
          while ((pos = BuscaBin(a, 0, 9, chave))!= -1)
          {
              pos++;
          }
          cout << chave << " está na lista "  << " vezes na lista " << endl;
      }
          
      O objetivo é inserir uma lista e resultar  numa busca binária e ele retornar a chave, não posso alterar a função BuscaBin
    • By Omar~
      É o seguinte, tenho uma tabela de produtos a qual além de possuir características do produto já contém a coluna para o link da mesma.
      Assim sendo faço a consulta da tabela para preencher um menu com o link para cada produto, e é aqui que entra a questão:
       
      Na sua opinião o que seria mais viável ao usuário acessar um produto em questão?
      Reaproveitar o array de retorno da query ao qual usei para compor os links do menu, só que filtrar esse array mostrando o índice ao qual é acessado. Refazer a query listando somente o produto.  
      A aplicação é executada em um único arquivo.
      Onde tenho o menu HTML listando cada produto contido na tabela (A qual também guarda as demais informações do produto).
       
      Reaproveitar a query ficou meio estranho uma vez que tenho um array multi dimencional da query tenho que buscar o índice para ver se ele existe e ainda varrer o array para poder usar os dados do produto tipo assim:
      <?php // $url[1] : É o valor vindo da url // $result : É o array multi de resultado da query if (array_search($url[1], array_column($result, 'ap_link')) !== false) { foreach ($result as $value) { if ($url[1] == $value->ap_link) { // Existe o produto e a url é a mesma do link do produto break; } } } else { // O valor da url não condiz com nenhum produto registrado } Essa alternativa evita uma segunda query desnecessária aliviando o lado do SQL, porém em um arrray multo extenso pode haver lentidão para processar os dados.
      Por outro lado também ficar refazendo consultas também pode deixar a questão meio lenta.
       
      A coisa toda é porque existem centenas de produtos na tabela e em ambos os casos está demorando mais do que deveria.
      Então bateu essa dúvida, qual alternativa tomar, resolvi perguntar, pois várias cabeças peçam melhor que uma.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.