Ir ao conteúdo
  • Cadastre-se

arfneto

Membros Plenos
  • Total de itens

    1.932
  • Registro em

  • Última visita

  • Qualificações

    N/D
  1. Quer dizer que não conseguiu ler a tal "notação textual"? Não entendi porque tem uma função para inserir a esquerda e outra a direita. E tantas inserir() afinal. Seu código não parece completo. Veja o final do case 2 acima... main() deve sempre ser a primeira função de seu programa. Em geral em outro arquivo
  2. Seu professor perdeu uma oportunidade de criar uma abstração importante. Muito da aparente dificuldade desse programa vem de uma abstração pobre, quase inexistente, de um arquivo csv. Quanto mais perto da realidade o modelo estiver mais simples fica o programa. Um arquivo CSV é uma matriz MxN de campos, um delimitador, um vetor de N posições se ele tiver um header --- e nesse caso pode descontar essa linha e ficar com Mx(N-1) no vetor de dados. Um char* com o nome do arquivo original, porque pode ser importante. Assim ele fica abstrato e pode ser reconstruído no disco a qualquer momento. Isso é importante. O arquivo não pode morrer dentro do programa ou não vai servir pra nada. O outro parâmetro que falta é saber se na entrada os campos tem ou não aspas ou algum delimitador determinando os campos, como aspas ou apóstrofes. E assim sabe se vai gerar na saída. Porque muitas vezes o arquivo vem com os campos entre aspas para proteger espaços ou caracteres de controle ou coisas como vírgulas dentro do campo. EXEMPLO LOAD DATA INFILE 'c:/tmp/discounts.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS; Esse comando acima é o que se usa para importar um arquivo csv em um bando de dados MySQL. E dá pra entender do que estou falando. Tem algo semelhante para um milhão de outros programas. E essa abstração de um bloco de parâmetros, argc/argv, existe para todos os programas em Windows ou Linux ou Unix ou OsX então deve ser importante, certo? E então deve ser uma boa solução já que está em uso desde os '70. Como o CSV. Uma outra abstração importante mais recente seria JSON. Ou XML.
  3. @mandalori Entendeu o que eu expliquei? Conseguiu aplicar em seu problema?
  4. resposta é char[20] letra é char... resposta é... char[20] Quando corrigir o erro e colocar o índice em resposta vai aparecer o outro erro, já que resposta[] só vai até 19... Leu o programa que eu postei? Acompanhou a discussão nos dois tópicos?
  5. Entendo. Os resultados que faltam vem meio que no atutomático, na verdade: uma BT completa --- cheia --- tem quantos nós? Você sabe quanto tem porque qualquer percurso vai te dizer isso. 2^N-1 nós certo? Onde N é o número de níveis. Mas em cada caso basta contar e ao final do percurso eles estão lá. Ou apenas marque na raiz. É a sua implementação afinal. Mesmo caso dos níveis. Durante o percurso pode usar uma pilha de níveis e a cada vez que "desce" empilha algo. Ao final do percurso o maior tamanho da pilha será o número de níveis. Todos os nós à esquerda da raiz são menores que a raiz e você sabe o valor dela, mesmo caso dos maiores se ela não for completa falta algum nó então não terá 2^N - 1 nós...
  6. typedef struct no{ int conteudo; struct no * esq, *dir; }No; typedef struct{ No *raiz; }ArvBinaria; Essa estrutura para a árvore não ajuda muito. Compare com essa e ignore o campo saldo --- é para o caso de balancear, como árvores AVL typedef struct _carga _Carga; struct _folha { _Carga* dados; char saldo; struct _folha* L; struct _folha* R; }; typedef struct _folha _Folha; struct _arvore { _Folha* raiz; int niveis; char* nome; }; typedef struct _arvore _Arvore; Como te disse, em geral é mais fácil usar recursão do que pilhas para as árvores., mas estará bem com as pilhas. Se preocupe antes em como consumir os dados naquele formato da entrada, com os grupos de ( e ) e algum método de percurso para saber se a estrutura está ok. E depois percorrer a árvore de algum jeito só pra ver se está tudo certo. Não conheço essa nomenclatura. O que é uma árvore degenerada e que d1@b0 é uma árvore cheia?
  7. Que significa? Você corrigiu o programa? Tentou o código que eu postei? Leu o programa todo? Leu o tópico #16? adicionado 2 minutos depois Imagino que entenda a ideia do jogo de forca. Não achou meio bobinho o tal jogador 1 digitar a palavra e ela aparecer na tela? Não acha que podiam aparecer as letras da palavra conforme o jogo anda, e as letras já tentadas? Tipo, digamos, o jogo de forca? São coisas assim
  8. Que tal esse curso de 30 horas que começa hoje, direto da fonte e de graça? https://learn.unity.com/course/create-with-code-live-summer-2020?elqTrackId=b27217f8bb6945639800aecbae5760a0&elqaid=2767&elqat=2&_ga=2.63379567.1576675400.1594658408-1404831981.1594658408 Viu o material em https://unity.com/learn ?
  9. essa é a parte 2 do exercício. Talvez seja de propósito, certo? Todos os erros e o teste da mesma condição 2x e a interface pobre
  10. Não é para alterar o programa nesse execício, apenas preencher as lacunas e corrigir os erros. De todo modo lembro que é recomendado há muitos anos não declarar mais de uma variável por linha. A razão é simples: é mais legível, facilita inicializar as coisas e diminui o tempo de manutenção de um programa que você não escreveu ontem ou que você não escreveu. É muito chato procurar em declarações de 40 linhas uma variáveis em particular, ver se tem um valor, achar o tipo dela... Pense nisso. Está até no guia oficial de C++ por exemplo. Mas pode experimentar isso na prática em seus programas... adicionado 0 minutos depois Está lendo o que eu escrevo? adicionado 1 minuto depois Não é um "bug terrivel" e não é o "programa dele". É apenas pra consertar...
  11. De novo postou um anexo? Não entende que é muito chato pra quem quer te ajudar num programa de 40 linhas ter que sair do forum e fazer um download? Ao menos rodou o programa que te mostrei? Comparou ? conhece um programa chamado DiffMerge, grátis? Ele compara dois programas... Mas esse é tão pequeno que talvez você mesmo pudesse ter visto.... resposta é char[20]. O que acha que vai acontecer quando tentar escrever resposta = ' '; para i = 20? Não sabe usar um debugger? Mesmo o do Code::Blocks? Não pode colocar mensagens no programa e ver até onde ele está indo?
  12. Muita coisa retorna a partir de GetSystemMetrics() mas acho que para o quer pode usar WMI e ir chamando as classes corretas., EM VB ou C# é mais simples que EM C ou C++, Veja a documentação em torno de https://docs.microsoft.com/en-us/windows/win32/wmisdk/retrieving-a-class?redirectedfrom=MSDN e sobre WMI em geral
  13. Não parece um enunciado muito bom... Faltam detalhes ou sobra liberdade. De todo modo vou recomendar o de sempre: escreva seu programa em torno dos dados: pessoas, horarios e a passagem do tempo. Crie um formulario de horarios e um quadro de reservas e escreva o programa em torno disso
  14. Muito bem. A parte do botão CODE No editor tem esse botão e está explicado nos tópicos permanentes, que server para abri um formula;rio onde você cola seu código e tem um formatador e ele fica separado do texto. Quando você deixa misturado como fez, além de ficar mais difícil de separar o código se alguém quer ajudar e por exemplo testar em um compilador, muitas vezes na cópia vem caracteres de controle do próprio post e o código não compila e é preciso ficar procurando onde eles estão. A parte do anexo Você postou um anexo, um documento do tipo docx, supostamente para abrir em um programa como o Word, da Microsoft, e que nada tem a ver com o forum e nada tem a ver com C ou C# ou C++. Para te ajudar eu preciso clicar no botão, salvar isso em meu computador, abrir outro programa para processar texto --- Word é para isso --- só que eu não vou processar, só quero ler. E aí leio o texto, fecho o Word, abro o tópico no forum e tento recortar seu programa. Ajude os outros a ajudarem você... Meu palpite. EXEMPLO 1 Veja como fica seu programa ao importar para um compilador: espaço duplo. A toa. Só complica. Poste o programa completo e com os #include. Se eu tiver que completar o seu programa para rodar pode ser que ele fique muito diferente e não vai adiantar nada para você ou para mim. #include... int getIdx ( char * str, int si, int ei) { if (si> ei){ retorno - 1 ; Pilha * s = pilha_cria (); for ( int i = si; i <= ei; i ++) { if (str == ' ( ' ) pilha_push (s, str ); if else (str == ' ) ' ) { if ( pilha_top (s) == ' ( ' ) { pilha_pop (s); if ( pilha_vazia (s)) { pilha_libera (s); return i; } } } } pilha_libera (s); return - 1 ; } EXEMPLO 2 Não acha que seria mais fácil se tivesse simplesmente postado isso? Foi o que eu quiz dizer da primeira vez. Acho que não me expressei bem. Poderia dizer o que está "empacando" você? A teoria? A implementação? O que pretende fazer com essa pilha e esses parenteses? Em geral com árvores é mais simples usar recursão.
  15. Eu já disse qual o maior problema do programa... Leu os dois tópicos?

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

minicurso46aulas-popup.jpg

CLIQUE AQUI E ACESSE AGORA MESMO!