Ir ao conteúdo
  • Cadastre-se

Ansi C

Membro Pleno
  • Posts

    3.294
  • Cadastrado em

  • Última visita

Tudo que Ansi C postou

  1. Ninguém, além de você, disse apenas, não coloque palavras onde não há e com isso eviti estender essa discussão desnecessariamente.
  2. Entretanto, o texto destacado no link acima tem o seguinte trecho. Não há nada para interpretar. Talvez a confusão seja porque nômeo membros estáticos com COMUM. De qualquer forma, essa discussão acabou para mim.
  3. Olá! Entendi haver um tamanho de perfil [por exemplo: uma ripa de madeira de 100 cm] e um "pedido", sendo QTD de "ripas" para o trabalho de N. molduras e o que sobra de perfil depois do trabalho. Certo?
  4. Olá! Há muitíssimo exemplos de Sort, escolha um, sinta-se livre para colar; porque o cerne da questão é o que virá depois. Então, programe para determinar qual é sucessor do menor que não existe na lista de valores. Se programou um resultado de ordenação crescente, então o menor está no primeiro elemento, sendo que seu sucessor, o elemento seguinte, é o seu valor +1 ou é igual, e assim sucessivamente até que a progressão de razão 1 e repetição falhe, por consequência, encontra-se a resposta. Quando ordenado: 1, 1, 2, 3, 4, 6; No primeiro laço os valores são; 1 e 1. Na expressão do bloco IF [da esquerda para direita]: 2 diferente de 1 é TRUE, em seguida, 1 diferente de 1 é FALSE. Logo, TRUE && FALSE é FALSE, abaixo na expressão de loop: f igual 0 é FALSE. Resposta: Fim da Repetição e j tem 0. Ou seja Saída: 2 Veja você que não preciso dizer onde está a falha. []
  5. Olá! Talvez me engane, mas sei que o operador :: [em palavras identificador de escopo] especifica o acesso dos módulos [ou classes se preferir] e, em específico de C++, um membro comum: é um membro declarado com a palavra-chave static. Logo, erraria se igual abaixo, corrigido apenas a declaração arbitrária de friend void Tabuleiro::casasDisp(){ //vai precisar saber a posição atual da peça int v2[1][3] = {0}; /*friend class*/ Peca::posAtual(v2); //marcador para marcar essa linha cout << v2[0][0] << v2[0][1] << v2[0][2]; } Exceto se posAtual(...) é um membro static [comum]. Se entendi correto, a classe Peça é subordinada a tabuleiro, entretanto é necessário um objeto 'Peça' para acessar os membros [privados e logicamente públicos] ou método que é comum e friend [não sei o porquê de alguém fazer isso] com parâmetro Peça. Entendi que pensou conseguir acesso dos membros simplesmente com a declaração friend; sem seu objeto. [] Não sei dizer como funcionaria: penso que não é assim que funciona.
  6. Atualmente é os dois, e nessa ordem: estrutura e objeto, mesmos em curso de recurso duma linguagem POO, em específico C++. Quase todos ficamos curiosos de como tal coisa acontece e precisa da estruturação para entender, por exemplo: uma classe USUÁRIO não existe, como existe a STRING, logo é preciso objetar [definir a classe] e depois instanciar [definir uma variável], em outras palavras: Define a classe usuário, no mínimo, com atributo: altura e método: pegar_altura, respectivamente, uma variável e uma função. A função tem decisões e iterações, ou seja: Prog. Estruturada!
  7. /****************************************************************************** Welcome to GDB Online. GDB online is an online compiler and debugger tool for C, C++, Python, Java, PHP, Ruby, Perl, C#, VB, Swift, Pascal, Fortran, Haskell, Objective-C, Assembly, HTML, CSS, JS, SQLite, Prolog. Code, Compile, Run and Debug online from anywhere in world. *******************************************************************************/ #include <iostream> #include <string> int main() { // O programa abaixo é uma ex. que força a captura e descarte [de todo a linha de] dados incompatíveis. auto usuario__altura= .0f; /// define uma varável do tipo [f], que é o tipo desejado de informação std::string tmp= {}; /// define uma instância string, que é a variável para implementação da expressão de descarte /* No caso abaixo, os comandos estão 'presos' num ciclo enquanto falhar a captura do dado determinado pelo parâmetro; saltando para o início do bloco a partir do fim do seu bloco 'else', que contém alguns comandos que trata e ignora uma falha do fluxo! */ Forca_A_Captura: { if(std::cin >>usuario__altura) { /// se [não está sinalizada como nula ou falha] std::cout <<"Captura BEM Sucedida, fail: " <<std::cin.fail() <<std::endl; /// escrever Captura Bem ... sinalização atual: fail } else { /// do contrário std::cout <<"Captura MAL Sucedida, fail: " <<std::cin.fail() <<std::endl; /// escrever Captura MAL ... sinalização atual: fail std::cin.clear(); /// Limpar a sinalização. std::getline(std::cin, tmp); /// Talvez opti por std::cin.ignore(BUFSIZ, '\n'); que é mais usual /// Ambos tenta capturar, duma linha de entrada, compatível com fluxo de caractere goto Forca_A_Captura; // compatível com parâmetro no método cin() } } /// Fim de Forca_A_Captura return 0; }
  8. Falha na captura! O método deve retorna fail (0 ou -1 consulte o manual) para sinalizar que o formato requerido no parâmetro e os dados na entrada são incompatíveis. Se descartar uma entrada, lendo após a falha uma ‘string’, talvez resolva.
  9. Use dois tabuleiros. Você tem o tabuleiro com as combinações certas, falta o tabuleiro de combinações já acertadas. Desvirar significa exibir o que tem nas coordenadas escolhidas, acrescentar ao tabuleiro das escolhas acertadas, quando certas. e sempre exibir esse tabuleiro no final. Concorda?
  10. Olá! MAX_ELEMENTOS é uma constante, localize sua declaração e defina-a com valor que deseja para o n. de repetições.
  11. @Diovani Facco Da mesma maneira que em qualquer outra linguagem. Por exemplo, aplique versores. Mova-se, pelos elementos na matriz, nas 4 direções do enunciado e exiba seus valores durante a iteração. Depois será mais fácil para programar a troca de valores. Programe os versores como valores de uma matriz e itere sobre eles com laço externo enquanto um interno acrescenta um versor ao índice da matriz a cada iteração, em específico, 2 acréscimos por versor. A matriz de versores tem 4 elementos: (0, 1)(1, 0)(0, -1)(-1, 0), respectivamente para o sentido horário. Se tem o mínimo de conhecimento de vetores no plano R2, sabe que estou certo e que os respectivos versores são: direta, baixo, esquerda, cima, ou seja: 2d, 2b, 2e, 2c formam o contorno dum arranjo 3x3. []
  12. De mesma maneira que em qualquer outra linguagem: Programe a captura das arestas (A1 e A2), uma expressão que é o produto da diferença reincidente do termo 3 vezes, ou simplesmente, V = (A2-A1) * (A2-A1) * (A2-A1). Para facilitar a leitura, atribua a diferença numa variável A (A = A2 - A1), depois programe a exibição de V = A * A * A. Além das operações de aritmética, precisa da scanf e printf, as funções normais de entrada e saída em C. A unidade do resultado, como bem sabe, é cm3. []
  13. O conectivo certo é conjunção (E[&&]) e não disjunção (OU[||]). Se já foi respondido, reforçarei: a expressão na condicional está falha porque mesmo com o número de lado válido, em duas das três expressões, será invalido, exceto se difere simultaneamente de todas, por exemplo, o valor 6, porém não 3, 4 ou 5, já que difere entre si. Corrija de maneira que seja uma Conjunção OU um Intervalo Proporcional, qualquer uma das duas práticas é certa. []
  14. É caso [exercício] para aplicação de tabela hash, sendo o número inteiro de uma variável int; a cada decomposição de unidade, determina-se uma chave da tabela hash [ou simplesmente o índice do vetor] que contém a quantidade de colisões [n. de ocorrências da unidade (0 – 9)]. Depois, determina-se qual índice tem o maior número e pronto!
  15. @Anny Silva Com base na pergunta. Em específico, comensurar pares e ímpares de uma pilha; envolve relacionar os métodos: desempilhar [pop] e um contar. No caso, como não escrevemos o método empilhar, usa-se uma pilha já pronto para debug: escrita na programação.
  16. SEMPRE! E não perca mais tempo. Digo isso porque se estudou; gastou tempo e dinheiro, é porque queria aprendeu algo, e não esperar o primeiro "babac4" que faça tudo por você. Enfim, o que te falta para começar/ qual a dúvida?
  17. Olá, uma técnica usual para solução desse exercício consiste em comparar 1 com todos de todos, assim se um dado índice; sendo um elemento, escolhido e comparado com "conjunto", resolve-se que existe apenas 1x repetição é porque não há cópias desse elemento. Outra técnica consististe em usar segundo vetor chamado tabela hash, associado pelos valores dos índices o número de ocorrências, tal que pelos menos existirá uma ocorrência da chave indicando não haver repetição, ou mais de uma ocorrência indicando muitas repetições.
  18. Essa estrategia aplicada a um categoria superior de programas, que não se vê nesse fórum; é ruim, e precisa do conteúdo da 'main' para aplicar uma estratégia melhor que essa, independente de como funciona compilação para esse caso particular. Não está redirecionando para página inicial, está definindo uma nova página inicial ou NOVO PROGRAMA; suponho que um novo programa no "programa", cada vez que erra um dado, não era sua intenção com inicial. []
  19. Olá! Depreende d'exemplo; a segunda parcela [na ordem de leitura] sendo o número d'chamadas recursivas e incrementos. Logo sua função @rafolas, se aceitar minha recomendação, terá dos parâmetros [formais] de nomes: valor e incremento. Suponha q'incremento nunca será < 0, como, a princípio, sugere no seu exemplo, logo se ela tem valor > 0, chama a função na função com subcontratação [-1] no parâmetro incremento, e isso é a bendita recursão. Lógica da Função soma adição valor, incremento Se incremento MAIOR 0: retorno adição ++valor, --incremento; retorno valor Talvez isso baste para qualquer um fazer sua tentativa, mas é importante não esperar por alguém mais desocupado faze-lá por você. Até mesmo porque é apenas um exercício []
  20. Persiste à repetição aleatória dos valores [e não]. Um par de letra na matriz[8 * 8] é 64 DIV 32 [e não 26] igual 2 símbolos. Qual a situação [fora do escopo de programação em C]? É uma situação, que no ensino médio, por exemplo: símbolos estão nas posições do vetor [Matriz e Vetor são intercambiáveis], existem 64 posiç~, quero 32 dessas [COM REPETIÇÃO]. Qual quer algoritmo de embaralhamento sobre um matriz [8][8] ou, sendo logicamente igual, um vetor [64] resposte essa questão. Exitem um algoritmo de embaralhamento usual e talvez queira saber. Ele consiste no sorteio de uma posição do vetor [aleatoriamente], depois se troca o valor na posiç~ sorteada com que há na última do vetor, e reduz em 1 [logicamente] o tamanho dele. Com isso se oculta a antiga última [posição] e emparelha-se um par por ciclo. Ex.: A B C D E F G H A B C D E F G H um vetor de valores lineares de cartas_com_tamanho = 16 Suponha que a posição sorteada no 1.º ciclo [rand() % cartas_com_tamanho] é 5 então o valor nessa posiç~ e na cartas_com_tamanho - 1 serão trocados. Seja: Antes 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 cartas = A B C D E F G H A B C D E F G H cartas [5] <> cartas [cartas_com_tamanho - 1] Depois 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 cartas = A B C D E H G H A B C D E F G F cartas_com_tamanho -= 1 Fim do 1.º ciclo. [] Os recursos na linguagem c para a programação desse exercício você já demostrou. É só "coda"
  21. Olá! Talvez procure a função fscanf combinada à 'scanset' - sem/com gravação p. ex: signed answer = -1; for (unsigned nregistro = 0 ; nregistro < 3 ; ++ nregistro) { answer = fscanf(arquivo , " %*[^\n]"); if (answer != 0) break; } " %*[^\n]" --- registra que todos os caracteres até \n (Nova Linha) são lidos e não gravados. Para gravação, delete o asterisco e forneça um endereço de memória no argumento seguinte à 'strings' de formato. char buff[BUFSIZ]; signed answer = -1; for (unsigned nregistro = 0 ; nregistro < 3 ; ++ nregistro) { answer = fscanf(arquivo , " %[^\n]" , &buff[0]); if (answer != 0) break; } () --- é isso?
  22. Olá! #1 "0,70 fica maior que 0,65" Na imagem ao lado, o banco da 'garotada', tinha um rendimento anual que convertido para mensal é de 0,37%. E não existe rendimento diário acumulativo, assim quando sua poupança completa ANIVERSÁRIO mensal, aplica-se o rendimento do dia base. O dia base (do depósito) é o dia em que, no mês anterior, realizou-se o investimento na poupança. Recomendam que se aplique montantes em semanas diferentes do mês para melhor rentabilidade, porém mais antigamente a recomendação diferiu: Em 2015, por exemplo, quando o investimento ainda era um bicho complicado, o comum era recomendar aos estudantes (e trabalhadores) investirem um pedaço da mesada no mesmo dia, sempre. Assim, o segundo período (0.70%) tem rentabilidade maior que os outros (0.60% e 0.65%). [] Uma criança esperta deposita, sua mesada, nos períodos de maior rentabilidade: 11 a 31 (28) de cada mês.
  23. Olá! #1 "0.65/100 o valor da menor do que o do dia 11." #2 "11... o rendimento será de 0,7% MAIOR QUE 21... o rendimento será de 0,65%" O último (dos 3 períodos) é 0.05% menor que o segundo, e 0.05% maior que o primeiro período. if ((dia >= 1) && (dia <= 10)) { soma = poupanca * 1.0060; } else if ((dia >= 11) && (dia <= 20)) { soma = poupanca * 1.0070; } else if ((dia >= 21) && (dia <= 31)) { soma = poupanca * 1.0065; } #R Como resultado da expressão, a variável soma, contém o valor da poupança + rendimento. [] @Rebeka O rendimento mensal da poupança hoje é de 0,24%, ou seja, poupança = 1.0024 * poupança.
  24. Olá! #1 este é o algoritmo ou função: inversão dos valores nas posições equidistantes, excluído a última (tam). #2 esta é a "result" ou saída Há lógica que relacione função e "result"? Não! E necessário saber quais os valores de ENTRADA e SAÍDA para desenvolver sua lógica (PROCESSO)! Explique-se [] @Caio Fagundes21
  25. Olá! O programa principal necessita do subprograma (ou função) que faz o https://pt.wikipedia.org/wiki/Teste_de_primalidade. Compreenda que o teste é o cerna da questão (não importando a linguagem) e tu (e mais ninguém) precisas de uma tentativa sincera de solução: é um exercício (e não uma prova) para você então faça os seguintes passos; 1. Releia o apontamento da questão quando (e se) precisar, apos, 2. Escreva suas dúvidas e 3. Poste na comunidade que eu verei a melhor forma ajudar-vos no vosso exercício. []

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!