Ir para conteúdo
Gaahl

Estrutura de dados, C++/C

Recommended Posts

Boa noite. Preciso de ajuda neste algoritmo em c++ da matéria de estrutura de dados. Não sei por onde começar. Obrigado!

Fazer um programa que utiliza um vetor X de 10 posições e lê 20 valores inteiros situados no intervalo [1,99]. Utilize, ainda, duas variáveis, T1 e T2 inicializadas, respectivamente, com 0 e 11, de tal forma que, no vetor X, tenha-se duas pilhas de bases opostas. Para cada valor lido:

  • se for par e maior do que 50, inseri-lo na pilha 1;
  • se for par e menor ou igual a 50, então retirar o elemento do topo da pilha 1 e escrevê-lo;
  • se for ímpar e maior do que 50, inseri-lo na pilha 2;
  • se o valor lido for ímpar e menor ou igual a 50, então retirar o valor do topo da pilha 2 e escrevê-lo;
  • se ocorrer uma situação de UNDERFLOW, escreva uma mensagem e ignore o valor lido passando a ler o novo valor;
  • se ocorrer OVERFLOW ou se já tiverem sido lidos 20 valores, então escrever o conteúdo das duas pilhas e terminar o programa;

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Gaahl, atente-se ao título do tópico quando for criar um. Evite palavras como "URGENTE".

 

Sobre a sua dúvida, poste algo que você já fez para ver se alguém pode ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Giovani. Eu simplesmente fiz os testes. Eu já não consegui entendo no começo do exercício. Um vetor de 10 posições, mas que lê 20 números. Depois duas pilhas de bases opostas. Essas coisas eu não entendi.

Compartilhar este post


Link para o post
Compartilhar em outros sites

T1 e T2 indicarão o topo da pilha, provavelmente. Se são de base oposta, T1 = 0 e T2 = N.

você vai usar um único vetor p/ implementar duas pilhas e vai ter que controlar o tamanho delas (p/ não ter sobreposição) com T1 e T2.

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 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]);
    • Por JPMarte
      Olá, sou estudante iniciante de programação e estou desenvolvendo um código para uma aula, onde esse é o enunciado:
       
      "Faça um código que ajude a calcular a resposta para seus exercícios de Física.
      As questões consistem em calcular a força de atração elétrica entre duas cargas puntiformes,  a força é calculada de acordo com a seguinte fórmula:
       
      F=K×Q1×Q2/D^2
       
      Utilize o valor de 100 para K, Q1, Q2 e D serão fornecidos pelo usuário.

      Mostre o valor de F com duas casas decimais.
       
      Entrada
          Serão fornecidos ao seu programa três valores inteiros, Q1, Q2 e D, respectivamente.
      Saída
          Seu programa deve mostrar o resultado da conta com exatas 2 casas decimais, de acordo com o exemplo abaixo."
       
      Então eu fiz o código que tirei print aqui, mas alguns resultados saem incorretos e sem as casas decimais necessárias!
      Em setprecision, eu coloquei o limite de duas casas (2), mas o programa mostra dois dígitos...
      Quando utilizei setprecision (4) ele até funcionou com resultados como 22.22, mas com números maiores, como 3600, não se mostra uma solução viável.
      Se alguém puder me ajudar, agradeço muito! 

    • Por Rafael Freitas
      Fala galera!
      Estou travado em uma parte do projeto que estou fazendo, quem puder me ajudar, desde já agradeço.
      Seguinte,  eu tenho alguns dados gravados em uma tabela no banco. Eu recupero estes dados exibindo em uma tabela o nome do parametro "p_descricao" e um checkbox do lado, segue abaixo:
      <?php $max = 200; if(!$pagina){ $pagina = 1; } $inicio = $pagina -1; $inicio = $inicio * $max; $consulta = ("SELECT * FROM parametros WHERE p_tipo_analise='MICROBIOLOGICA'"); $p_id = $_GET["p_id"]; $query = mysql_query("$consulta LIMIT $inicio,$max"); $todos = mysql_query($consulta); $total = mysql_num_rows($todos); $tp = $total / $max; $regLinha = 4; $i = ceil($max / $regLinha); $j = 1; $z = 0; echo " <table width=100% class='tabela_parametros_itens' border=1><tr> "; while($x = mysql_fetch_array($query)){ echo "<td> <input type='checkbox' name='parametro' value='" .$x[p_descricao]."' checked> " .$x[p_id]." - " .$x[p_descricao]."</td>"; $z++; if($z == $regLinha and $j < $i){ echo "</tr><tr>"; $z = 0; $j++; } if($z == $regLinha and $j == $i){ echo "</tr>"; } } echo "</table>"; Eu coloquei checked para todos estarem marcados, até aí tudo certo. O que acontece é que quando eu cadastro, ele só grava no banco, o último registro, ou então se eu desmarco todos e deixo somente 1 marcado, aí ele grava certo.
       
      O que eu queria era gravar todos os registros que estiverem marcados com a checkbox e não só 1.
       
      Conto com a ajuda de vocês.
       
      Abraço.
×

Informação importante

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