Ir para conteúdo
  • 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!

Editado por theothomeh
organização

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 resposta a esta questão

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

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Caio Mekacheski
      Beleza galera, nesse meu primeiro post, quero compartilhar esse video onde inicio um tutorial básico pra aprender a programar em c++, só que de maneira prática. Um programa simples que eu escrevi pra fazer o cálculo da metragem cúbica de peças de madeira que eu beneficio aqui na minha pequena marcenaria. Um programa simples que me ajuda a executar uma tarefa tediosa, e que apresenta um conhecimento básico na programação em c++. Então resolvi fazer dele um tutorial prático para iniciantes. Nesse primeiro video eu apresento um esboço inicial pra entender o que o programa vai fazer. Conforme for desenvolvendo o programa, vou apresentando novos conceitos gradativamente. Espero que gostem. 
       
      https://www.youtube.com/watch?v=Obr8Jrp7LGQ
    • Por Gustavo2503
      Eu estou criando uma classe que cria modais usando React, eu preciso criar um modal dentro de um modal, para isso, eu quero chamar a mesma função dentro dela mesma. O modal é criado, mas o problema é que ele não abre, abre o modal principal (#modal-1), mas não abre o sub modal (#modal-2), veja como ficou meu código:
      index.html
      <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Modal</title> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet"> <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> <script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script> <script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script> <script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script> <script src="js/modal.js" type="text/babel"></script> <link rel="stylesheet" href="css/modal.css"> </head> <body> <div align="center"> <h1>Modal</h1> </div> <button type="button" data-modal="modal-1">Open Modal</button> <div id="modal-content"></div> <script type="text/babel"> const contentSub = [ <h2>Title SubModal 1</h2>, <p>SubModal</p>, <small>Rodapé submodal 1</small> ]; const idSub = "modal-2"; const content = [ <h2>Title 1</h2>, <section> <button type="button" data-modal="modal-2">Open SubModal</button> <Modal id={idSub} content={contentSub}/> </section>, <small>Rodapé 1</small> ]; const id = "modal-1"; ReactDOM.render( <Modal id={id} content={content}/>, document.getElementById('modal-content') ); </script> </body> </html> js/modal.js
      class Modal extends React.Component{ constructor(props) { super(props); this.id = this.props.id; this.backgroudColorHeader = this.props.backgroudColorHeader === undefined ? 'rgba(103, 117, 240, 1)' : this.props.backgroudColorHeader; this.textColorHeader = this.props.textColorHeader === undefined ? '#fff' : this.props.textColorHeader; this.backgroudColorBody = this.props.backgroudColorBody === undefined ? 'rgba(255, 255, 255, 1)' : this.props.backgroudColorBody; this.textColorBody = this.props.textColorBody === undefined ? '#000' : this.props.textColorBody; this.backgroudColorFooter = this.props.backgroudColorFooter === undefined ? 'rgba(103, 117, 240, 1)' : this.props.backgroudColorFooter; this.textColorFooter = this.props.textColorFooter === undefined ? '#fff' : this.props.textColorFooter; this.borderRadius = this.props.borderRadius === undefined ? '8px' : this.props.borderRadius; this.content = this.props.content === undefined ? [<h2>header content</h2>, <p>body content</p>, <p>footer content</p>] : this.props.content; this.size = this.props.size === undefined ? 3 : this.props.size; } closeModal = () => { $('#'+this.id).removeClass("show"); $('body').removeClass("overflow-hidden"); }; render(){ $(`[data-modal]`).click( function () { var id = $(this).attr("data-modal"); var el = document.getElementById(id); $(el).addClass("show"); $('body').addClass("overflow-hidden"); }); var background, text; background = this.backgroudColorHeader; text = this.textColorHeader; const transparencyBackgroundHeader = background.substring(background.length-2,background.length-1) -.1; const backgroundColorHeader = `${background.substring(0,background.length-2)}${transparencyBackgroundHeader})`; const styleColorHeader = { backgroundColor: backgroundColorHeader, color: text, borderBottom: `1px solid ${background}` }; background = this.backgroudColorBody; text = this.textColorBody; const styleColorBody = { backgroundColor: background, color: text }; background = this.backgroudColorFooter; text = this.textColorFooter; const transparencyBackgroundFooter = background.substring(background.length-2,background.length-1) -.1; const backgroundColorFooter = `${background.substring(0,background.length-2)}${transparencyBackgroundFooter})`; const styleColorFooter = { backgroundColor: backgroundColorFooter, color: text, borderTop: `1px solid ${background}` }; const styleBorderRadius = {borderRadius: this.borderRadius}; const eDivision = ['h', 'b', 'f']; const eContent = this.content; var div = []; for (var i=0;i<eContent.length;i++){ const part = eDivision[i].replace('h', 'header').replace('b', 'body').replace('f', 'footer')+"-modal"; const closeModal = i === 0 ? <span onClick={this.closeModal} className="close-modal"><i className="material-icons">close</i></span> : "" ; var style; if (i===0) style = styleColorHeader; else if (i===1) style = styleColorBody; else style = styleColorFooter; div.push(<div key={i+1} className={part} style={style}> {closeModal} {eContent[i]} </div>); } const eSize = this.size; const s = ['s', 'm-s', 'm', 'm-l', 'l']; const size = s[eSize-1]; const classModal = (size !== "s" && size !== "m-s" && size !== "m" && size !== "m-l" && size !== "l") ? 'modal-modal modal-m' : "modal-modal modal-"+size; return <div id={this.id} className={classModal}> <div className="overflow-modal"> <div className="container-modal" style={styleBorderRadius}> {div} </div> </div> </div>; } }  
    • Por darkskull10
      Numa cidade as crianças costumam brincar com um jogo (de dois jogadores) onde:
      um jogador A define uma sequência de 10 letras usando: G, R e B (exemplo: G – G – G – R – B – R – B – B – B – R)
      um jogador B pode ler a sequência quantas vezes quiser
      o jogador B também pode dizer uma das letras e obter em quais posições a letra dada se encontra na sequência
      o jogador B também pode dar uma posição e saber qual letra ocupa a posição na sequência
      para finalizar, o jogador B deve dizer a sequência de letras, obtendo um ponto para cada acerto.
       
      Só consegui pensar nisso por enquanto.
       
      //identificar que letra ocupa esta posição na sequência:
      do{
      scanf(“%d”,&Posicao);
      Posicao=Posicao-1;}
      while ((Posicao<0)||(Posicao>9));
      printf(“%c”,Sequencia[Posicao]);
       
      //exibir sequencia
      for (Cont=0; Cont<=9; Cont++)
      printf(“%c”,Sequencia[Cont]);
       
      //exibir posições
      for (Cont=0; Cont<=9; Cont++)
      printf(“%d%c”,Cont+1,Sequencia[Cont]);
×

Informação importante

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