-
Posts
3.601 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que Midori postou
-
C++ Faca um algoritmo que encontre o primeiro multiplo de 11, 13 ou 17 após um númer
Midori respondeu ao tópico de Bianca Gomes em C/C#/C++
@phzsantos Todos os loops (while/do...while/for) vão rodar enquanto a parte da expressão testar verdadeira. Em C tudo que é diferente de zero é verdadeiro e o que é zero é falso. Na expressão AND (&&) só existe verdade quando os operandos forem verdadeiros, então no tesde dos módulos o loop encerra quando qualquer um retornar o resto zero. Assim não dá certo porque OR vai ser verdadeiro inclusive para todos os módulo com resto. E o loop termina ao negar isso. -
C tenho grandes dificuldades nessa parte de vetores
Midori respondeu ao tópico de guilherme ramos4545 em C/C#/C++
@guilherme ramos4545 Faltou você dizer em qual parte está com dificuldade. Se não sabe como criar um vetor, armazenar e ler algum valor dele, então precisa procurar um livro ou material básico para entender como funciona. Mas se já tem uma noção disso, organize o seu o código e resolva por partes. Basicamente terá que usar o operador módulo (%). Comece fazendo o somatório de todos os pares e se tiver dificuldade volte com o código para receber ajuda. -
Windows pedindo ativação após troca de placa-mãe
Midori respondeu ao tópico de Gustavo Ceron Lombardi em Windows 10
@Gustavo Ceron Lombardi Se nada deu certo é melhor entrar em contato com a Microsoft para tentar resolver com o suporte. -
C++ Faca um algoritmo que encontre o primeiro multiplo de 11, 13 ou 17 após um númer
Midori respondeu ao tópico de Bianca Gomes em C/C#/C++
Dá para deixar mais simples com do...while e sem if. Com o operador AND o loop termina quando um dos módulos for igual a zero. do{ n += 1; }while(n % 11 && n % 13 && n % 17); -
Windows pedindo ativação após troca de placa-mãe
Midori respondeu ao tópico de Gustavo Ceron Lombardi em Windows 10
@Gustavo Ceron Lombardi A linceça é vinculada ao hardware, tente seguir estes passos para reativar com o novo, https://support.microsoft.com/pt-br/windows/reativando-o-windows-após-uma-alteração-de-hardware-2c0e962a-f04c-145b-6ead-fb3fc72b6665#ID0EBD=Windows_10 -
Aí tem duas variáveis com as atribuições 2005 e 2021. E a estrutura if...else para testes condicionais, esta é a sintaxe, if(condição){ }else{ } Veja que dentro do parênteses vai a condição que pode ser verdadeira ou falsa. E após esse teste o próximo comando será um dos blocos (entre chaves) de acordo com o resultado. Esse código está testando se a diferença dos anos é menor que 18. Se for verdadeiro executará o primeiro bloco e se falso o segundo (else). Faça a conta e saberá a resposta.
-
@alessa.chagas Com o enunciado fica mais fácil entender. Como são muitas coisas, tente resolver cada uma e só avance para a próxima quando estiver funcionando corretamente. Primeiro acho que devia focar nas entradas válidas, a variável flag é que recebe a validação dos dados e faz sair do loop quanto tudo estiver ok. Se criar uma função com as validações exigidas, pode atribuir o retorno dela ao flag, p.ex, #include <stdio.h> #define MAX_SIZE 250 #define MAX_SIZE_WORD 16 int conta(char *); int valida(char *, int); int main(){ int c; int flag = 0; int tamanho = 0; char str[MAX_SIZE]; do{ str[0] = 0; printf("Palavra: "); scanf("%50[^\n]", str); while((c = getchar()) != '\n' && c != EOF){} tamanho = conta(str); flag = valida(str, tamanho); }while(flag == 0); return 0; } int valida(char *str, int n){ if(n == 0 || n >= MAX_SIZE_WORD){ return 0; } for(int i = 0; i < n; i += 1){ if(!( (str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z') ) ){ return 0; } } return 1; } int conta(char *str){ int i = 0; while(str[i]){ i += 1; } return i; } Crie duas funções para facilitar isso, uma para contar os caracteres e outra só para retornar se a string é válida. Acho que assim fica mais organizado do que fazer tudo em main.
-
Excel Excel vba Erro 91, "A variável do objeto ou a variável do bloco "with" ..."
Midori respondeu ao tópico de fradseu em Microsoft Office e similares
@fradseu On Error não é muito recomendável já que se tiver outro erro na execução da Sub também será desconsiderado e o programa seguirá em frente sem alertar. Da forma que comentei fica assim, Private Sub CommandButton14_Click() Dim Celula As Range Dim Atualiza As Long If TextBox2001 = "" Then Label74.Caption = "Nº da OS de produção necessário para continuar!" Label74.BackColor = &H8080FF Else Sheets("bd_rastre").Select Set Celula = Sheets("bd_rastre").Range("A:A").Find(TextBox2013.Value) If Celula Is Nothing Then MsgBox "Valor não encontrado", vbInformation Else Atualiza = Celula.Row MsgBox "Linha = " & Atualiza End If End If End Sub -
@alessa.chagas O seu código tem muitos problemas e algumas partes que estão lá sem um motivo claro (talvez se postar e enunciado ajude a entender...). Por exemplo, por que está verificando se a variável i é menor ou igual a 16? Você só declarou essa variável e não atribuiu nada. O mesmo vale para a variável tam, ela só foi iniciada com zero e nenhuma atribuição foi feita. E na parte em que tenta pegar a metade, só divide zero com 2. Seu código tem dois loops para pegar a metade da string, mas isso não é necessario. Se quer testar um palíndromo pode usar apenas um loop. Postei um exemplo assim. Tente começar de novo, crie uma string com um texto qualquer e teste se é um palíndromo.
-
@alessa.chagas A parte que pede a palavra é do único scanf. Na linha seguinte a ele você fez um loop, não é esse o problema? Ele deve estar rodando indefinidamente... Mas você pode remover esse loop. Alguns usam um recuros parecido por causa daquela questão do buffer que faz o programa pular a linha da próxima entrada, mas o seu código só tem uma, então não precisa disso. Se ainda não conseguir resolver poste o seu código completo para melhor entendimento do problema.
-
@alessa.chagas Está atribuindo valor a esse flag no teste das letras do alfabeto. Qual a necessidade disso? E essa condicional está errada, veja que você colocou o ponto e vírgula no fim sem nenhum bloco ou comando referente a esse teste. E parece que fechou chaves onde não devia.
-
VisualG IMC só aparece a primeira condicional
Midori respondeu ao tópico de Marigimenez em Programação - iniciantes
@Marigimenez No cálculo do IMC o denominador é o quadrado da altura, mas você está multiplicando por 2. Sobre a condicional, seu código só está testando o valor menor ou igual nos dois intervalos. E devia ser maior ou igual e depois menor ou igual, p.ex, se (IMC >= 18.6) e (IMC <=24.9) entao Na primeira condicional também faça menor ou igual para pegar o valor 18.5. -
@alessa.chagas Se criar funções ficará bem mais fácil. Já que não pode usar nada de string.h, pode fazer uma função com a mesma característica da que achar necessária para o seu código. Uma para contar as letras seria útil, assim você pode passar a quantidade de caracteres como argumento para outra que testa se a palavra é um palindromo, p.ex, int palindromo(const char *palavra, int n){ for(int i = 0; i < n/2; i += 1){ if(palavra[i] != palavra[n - i - 1]){ return 0; } } return 1; } Como é só um exemplo não me preocupei se tem maiúsculas e minúsculas. Veja que o parâmetro int n espera o tamanho da palavra, assim fica simples testar a string.
-
Seu código lê o arquivo e copia o conteúdo para uma string (vetor de char), é isso que fez quando usou fgets. Portanto o dado lido do arquivo já está pronto para pode ser manipulado como qualquer string, inclusive como comentei que é pegando letra por letra sem a necessidade de uma função para isso, p.ex, for(p = 0; texto3[p]; p += 1){ texto4[p] = texto3[p]; printf("Letra %c\n", texto4[p]); } texto4[p] = 0; puts(texto4);
-
@IzeraXD Se postar enunciado fica mais fácil ajudar, mas já que esta fazendo o loop para mostrar as letras de cada posição da string não precisa de uma função para copiar. Você pode ir atribuindo cada letra de uma para a outra com base no índice/posição.
-
Excel Excel vba Erro 91, "A variável do objeto ou a variável do bloco "with" ..."
Midori respondeu ao tópico de fradseu em Microsoft Office e similares
@fradseu Se o erro é na linha da atribuição da variável atualiza, então é porque a função Find não encontrou nada na busca e por isso não há linha para retornar. Nesse caso você pode evitar essa mensagem de erro testando o retorno de Find com Is Nothing. -
C++ Programa de IMC não aceita número quebrado e não calcula.
Midori respondeu ao tópico de nathaly123 em C/C#/C++
@nathaly123 Está usando o tipo int para as variáveis quando devia ser float ou double. E o separador decimal é o ponto. -
Excel Erro de automação - Excel
Midori respondeu ao tópico de josequali em Microsoft Office e similares
@josequali Esse erro acontece porque não está fechando o banco de dados após atualizar. Se abrir o arquivo do Access após uma atualização, verá que está Read-Only e por isso não vai conseguir inserir mais nenhum registro enquanto estiver assim. Reveja as chamadas que fez ao método Close e se atribuiu corretamente Nothing. -
Excel executar um vídeo na abertura no excel - deixar o excel de forma .exe
Midori respondeu ao tópico de samara.vba em Microsoft Office e similares
Você pode adicionar o controle Windows Media Player, sobre as células da planilha ou em um formulário. Aí via macro pode passar o caminho do arquivo salvo no computador para carregar o vídeo ao abrir a planilha. -
@nagatonie Seu código só lê a primeira posição porque você já faz o return true ou false na leitura do primeiro caractere. Como comentado acima, no teste da condição só retorne quando for falsa e deixe o return no fim da função como true.
-
Faltou zerar a variável da soma para não ficar com o total do cálculo anterior, veja que no trecho que postei faço isso antes do loop das colunas.
-
A linha que postei vai ficar dentro do loop das linhas (quantidade de alunos), no lugar da atribuição que está no código do seu primeiro post.... Assim será calculada a média individual de cada aluno já que no loop das colunas tem o cálculo da soma de cada nota, p.ex, for(controle_Linha = 0; controle_Linha < QTD_LINHAS; controle_Linha ++){ soma_Notas = 0; for(controle_Coluna = 0; controle_Coluna < QTD_COLUNAS; controle_Coluna ++){ soma_Notas += notas_Alunos[controle_Linha][controle_Coluna]; } media_Aluno = soma_Notas/QTD_COLUNAS; printf("A Média das Notas do %dº Aluno %s, é: %.2f \n \n", controle_Linha + 1, nome_Aluno[controle_Linha], media_Aluno); }
-
Excel Numerar sequencialmente conforme a data
Midori respondeu ao tópico de Eder Enrique em Microsoft Office e similares
@Eder Enrique Use a fórmula countif, cole em A1 e arraste (D1 é o critério), =SE(B1=$D$1;CONT.SE($B$1:B1;$D$1);0) Assim o argumento trava no primeiro range B1 para contar sempre do primeira linha até a atual. -
C Faça um programa que leia as seguintes informações sobre os alunos
Midori respondeu ao tópico de oromotoceu em C/C#/C++
@oromotoceu Para entrar com os elementos é com as funções de input (scanf e fgets). Se quiser iniciar a estrutura com os elementos para testar os percentuais pode fazer algo assim, int main(void){ Aluno aluno[5] = { {"Aluno 1", 2}, {"Aluno 2", 3}, {"Aluno 3", 10}, {"Aluno 4", 0}, {"Aluno 5", 5} }; for(int i = 0; i < 5; i += 1){ printf( "%d) %s | Faltas = %d\n", i, aluno[i].nome, aluno[i].faltas ); } return 0; } -
Excel Localizar última linha e auto preencher excel
Midori respondeu ao tópico de RAIMUNDO LIMA DE ARAUJO em Microsoft Office e similares
@RAIMUNDO LIMA DE ARAUJO Pegue o volume total de cada um com a formula sumif. Em L12, p.ex: =SUMIF(D:D;K12;G:G) Para preencher as células em branco automaticamente com os terminais crie uma macro que faça um loop a partir da linha 13 até a última, p.ex, Set Celula = Cells(Linha, [D:D].Column) If Celula <> "" Then Terminal = Celula End If Celula = Terminal Veja que no loop a variável Terminal só recebe o valor da célula com algum dado e depois atribui para as demais. Assim a coluna D terá todos os terminais para retornar o volume na fórmula.
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