Ir ao conteúdo

Lucca Rodrigues

Membro Pleno
  • Posts

    1.065
  • Cadastrado em

  • Última visita

Tópicos solucionados

  1. O post de Lucca Rodrigues em O que fazer quando tem fonte independente no quadripolo? foi marcado como solução   
    Já foi resolvido. O exercício estava incorreto
    Quadripolos não têm fontes independentes.
  2. O post de Lucca Rodrigues em Problema com Potencia em C foi marcado como solução   
    @Serena Variáveis na função printf() não levam &.
     
  3. O post de Lucca Rodrigues em Pesquisa Sequencial em C++ foi marcado como solução   
    @fspjonny Olhe aqui:
    Se o número 8 ta na posição 0 do vetor, e você atribui essa posição 0 à variável posicao, embora o número tenha sido encontrado, ela não vai passar nesse teste.
    Você pode tentar imprimir logo de cara a posição se valor == vet[a], daí depois de imprimir, poderia atribuir 12 ao índice 'a', e verificar depois que sair do laço se 'a' < 12, pois 'a' é incrementado no laço até atingir valor 11 e só poderia ter valor 12 caso a atribuição fosse feita, ou seja, caso o número seja encontrado.
    Não esqueça de incluir a biblioteca locale.h, você está usando funções dela.
     
    Teste isso:
    #include <iostream> #include <locale.h> using namespace std; int main(){ setlocale(LC_ALL,"Portuguese"); int valor, a, vet[] = {8,0,5,1,7,2,4,9,3,6,10}; cout << "Digite o valor a procurar: "; cin >> valor; for(a=0; a<sizeof(vet)/sizeof(int); a++){ if(valor == vet[a]){ cout << "\nEncontrado na posição: " << a; a = 12; break; } } if(a < 12){ cout << "\nNão encontrado!!!"; } return 0; }  
  4. O post de Lucca Rodrigues em Como imprimir um programa todo no estilo RPG foi marcado como solução   
    @Taynara Diniz Linux?
    Daí não da pra usar a função PlaySound(), nem a função Beep() que o @herbertbahia usou...
    Talvez possa usar o seguinte no lugar da função PlaySound() ou da Beep():
    printf("\a"); É só 1 frequência, mas acho que serve para o que você quer. '\a' (BEL) é um caractere da tabela ASCII, pode ser usado pra reproduzir um som de beep.
    Já a função Sleep()... Já tentou incluir a biblioteca unistd.h no lugar da windows.h? Não tenho como te dizer com toda a certeza, até porque meu sistema operacional é Windows, mas se não me engano, para microssegundos, a função seria usleep(), e para segundos, sleep().
  5. O post de Lucca Rodrigues em Soma de 3 números foi marcado como solução   
    @KloZee Tente isolar as condições intercaladas por OU com parênteses:
    Se ((n1 = 0) OU (n2 = 0) OU (n3 = 0)) Entao
  6. O post de Lucca Rodrigues em Condicionais IF em Linguagem C foi marcado como solução   
    @Malcolm X
    O valor inválido ocorre caso: nota1 < 0 ou nota1 > 10 ou nota2 < 0 ou nota2 > 10.
    Não tem E lógico no meio, talvez por isso tenha ocasionado o erro. Se tiver um E lógico, é esperado que 2 situações ocorram, que no caso seria ambas as notas possuírem valor inválido, para acusar erro. Trocando E por OU, se ao menos 1 das notas possuir valor inválido, já acusa erro.
     
    Não imprima "tente novamente", leia o enunciado:
    Simplesmente imprima "valor inválido" e retorne 0.
     
    O identificador nessa função printf() está errado:
    As variáveis são do tipo float, use %f ou algo como %.2f caso queira limitar as casas após a vírgula.
  7. O post de Lucca Rodrigues em Colocar a primeira letra em Maiúsculo foi marcado como solução   
    @emanoel souza costa É claro que está deixando toda a string em letras maiúsculas, tem um laço de repetição pra fazer isso.
    Uma dica: não use gets().

    Se você inserir uma string cujo tamanho seja maior do que o tamanho declarado, poderá ocasionar um buffer overflow. Use a função scanf() e, por segurança, limite a quantidade de caracteres com os quais o usuário poderá entrar.
    O identificador nesse caso seria %s, e para limitar, apenas insira o tamanho da string - 1 após o %. Como você declarou que o tamanho da string nome é 30, o correto seria usar %29s para deixar espaço para o caractere NULL, que encerra a string.
    Você incluiu muitas bibliotecas e com certeza você não precisa de tudo isso. Imagino que você não saiba o que cada uma contém.
     
    O que você pode fazer é o seguinte, veja esse pedaço da tabela ASCII:

    Percebe que a diferença entre letras maiúsculas e minúsculas é sempre 32?
    Você pode simplesmente usar uma estrutura condicional para avaliar se o primeiro caractere se trata de uma letra minúscula e, caso seja, poderia ser efetuada a subtração:
    if(nome[0]>='a' && nome[0]<='z'){ // Verificando letra minúscula nome[0]=nome[0]-32; } Por fim, se você substituir getch() por getchar(), você vai precisar incluir somente a biblioteca stdio.h.
     
    Pesquise sobre operadores em C.
    != corresponde a "diferente de".
    ++ se trata de um Incremento pós-fixado.
    '  ' é o caractere espaço.
     
    A string se inicia em 0, a primeira letra estaria em nome[0], e mesmo assim, eu não usaria uma função para algo tão simples.
  8. O post de Lucca Rodrigues em Antivirus apaga meu programa em C foi marcado como solução   
    @Juliano Colere Moreira Abra o Avast e siga esse procedimento:
    Menu > Configurações > Geral > Exceções > Adicionar Exceção.
    Pode adicionar tanto o ambiente quanto a pasta em que estão seus programas.
  9. O post de Lucca Rodrigues em What does it mean in scanf C? foi marcado como solução   
    @AnonymousLPH Por que fez a postagem em inglês?
    Nevermind... kk
    Respondi essa pergunta ontem em uma postagem, vou só copiar e colar a resposta:
    %[] é um identificador mais específico que o %s.
    Com o %[], você pode escolher o que quer ler.
    Dentro dos parênteses, você escreve os caracteres permitidos. A diferença é que para negar, você coloca um ^ antes dos caracteres.
    com %[^\n], a string será lida até encontrar o \n que, nesse caso, é o enter que damos ao terminar de digitar. \n é o caractere negado, ou seja, tudo além dele será lido.
  10. O post de Lucca Rodrigues em Luva anti estatica caseira foi marcado como solução   
    @dennis felix 
    Ajuda gerando menos eletricidade estática que uma luva de material sintético, principalmente se for 100% algodão.
    O ideal é evitar vestes de nylon, poliéster, lã, etc. Use vestes de algodão e, se possível, pulseirinha com aterramento. Ficar descalço também é bom.
  11. O post de Lucca Rodrigues em Exercício de Menor , Intermediário e Maior foi marcado como solução   
    @Pedrockz Não precisa comparar 1 por 1.
    Como não tem um intervalo (por exemplo, poder apenas inserir números de 0 a 100), você poderia fazer o seguinte:
    Maior tem que ser inicializado como um número menor que todos inseridos, e Menor, tem que ser maior que os mesmos, mas como você não sabe se os números inseridos serão negativos ou positivos, para isso, declare mais 3 variáveis e use a função fabs(), a fim de obter o valor absoluto dos números (por exemplo: num1 = -1, fabs(num1) = 1, num2 = 1, fabs(num2) = 1).
    Dessa forma, some todos os valores absolutos dos números e atribua à Menor, e depois subtraia todos os valores absolutos dos números e atribua à Maior.
    Depois, basta comparar Maior e Menor com todos os números inseridos e, por fim, se um número não for maior que Maior, nem menor que Menor, este é o intermediário:
    #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { double num1, num2, num3, fnum1, fnum2, fnum3, menor, inter, maior; printf("DIGITE UM NUMERO: "); scanf("%lf", &num1); printf("DIGITE UM SEGUNDO NUMERO: "); scanf("%lf", &num2); printf("DIGITE UM TERCEIRO NUMERO: "); scanf("%lf", &num3); fnum1 = fabs(num1); fnum2 = fabs(num2); fnum3 = fabs(num3); menor = fnum1+fnum2+fnum3; maior = -fnum1-fnum2-fnum3; printf("\n"); if(menor > num1){ menor = num1; } if(menor > num2){ menor = num2; } if(menor > num3){ menor = num3; } if(maior < num1){ maior = num1; } if(maior < num2){ maior = num2; } if(maior < num3){ maior = num3; } if(num1 < maior && num1 > menor){ inter = num1; } else if(num2 < maior && num2 > menor){ inter = num2; } else if(num3 < maior && num3 > menor){ inter = num3; } printf("MENOR = %.2lf \n", menor); printf("INTERMEDIARIO = %.2lf \n", inter); printf("MAIOR = %.2lf \n", maior); return 0; } @herbertbahia Muito mais que mostrar a solução: mostre a resolução.
    É interessante explicar como chegar neste algoritmo que você propôs, ou adicionar comentários no mesmo para facilitar a compreensão por parte do usuário.
  12. O post de Lucca Rodrigues em digite uma data valida foi marcado como solução   
    @Pedrockz Como "mes>0 && mes<13 && ano>0" está presente em todas as condições, da pra fazer desse jeito:
    #include <stdio.h> #include <stdlib.h> #include <locale.h> int main() { setlocale(LC_ALL, "Portuguese"); int dia, mes, ano; printf("*VERIFICAÇÃO DE DATA VÁLIDA* \n"); printf("\n"); printf("DIGITE UM DIA: "); scanf("%d", &dia); printf("DIGITE UM MES: "); scanf("\n%d", &mes); printf("DIGITE UM ANO: "); scanf("\n%d", &ano); if(mes>0 && mes<13 && ano>0){ if((mes==4||mes==6||mes==9||mes==11) && (dia>0 && dia<=30)){ printf("%d/%d/%d eh valida", dia, mes, ano); } else if(mes==2 && (dia>0 && dia<=28)){ printf("%d/%d/%d eh valida", dia, mes, ano); } else if((mes==1||mes==3||mes==5||mes==7||mes==8||mes==10||mes==12) && (dia>0 && dia<=31)){ printf("%d/%d/%d eh valida", dia, mes, ano); } else{ printf("ESSA DATA EH INVALIDA"); } }else{ printf("ESSA DATA EH INVALIDA"); } return 0; } Se bem que poderia pedir dia, mês e ano de uma só vez:
    printf("Entre com a data no seguinte formato DD/MM/AAAA: "); scanf("%d/%d/%d%*c", &dia, &mes, &ano); printf("%d %d %d", dia, mes, ano);  
  13. O post de Lucca Rodrigues em Questão Sobre circuitos digitais. foi marcado como solução   
    @Y.T É... Em geral, uma entrada deve ser configurada "ts" antes de determinado evento, e mantida por "th" após determinado evento para que o valor de entrada seja armazenado corretamente. Se um destes não for respeitado, não há alteração, o estado permanece como estava.
  14. O post de Lucca Rodrigues em Converter de C para Python foi marcado como solução   
    @by Owen Você pode fazer o laço assim:
    for variável in range(valor inicial, valor final, valor a ser incrementado)
    E o printf ficaria assim:
    print("Texto: {}" .format(variável))
    Então, ficaria + ou - assim:
    x = 0 y = 0 for y in range(0, 1000001, 1): x += y print("Soma dos números de 1 a 1000000: {}" .format(x)) print("\n\n\n")  
  15. O post de Lucca Rodrigues em Programar com números gigantes (Milhões) foi marcado como solução   
    @by Owen Da esse resultado mesmo... 500.000.500.000.
    Teste isso:
    #include <iostream> #include <stdio.h> int main() { long long x, y; for (x=0,y=0; y<=1000000; y++){ x+=y; } printf("%lld", x); return 0; } int é de -32767 até +32767 (16 bits)
    long é de -2147483647 até +2147483647 (32 bits)
    long long é de -9223372036854775807 até +9223372036854775807 (64 bits)
  16. O post de Lucca Rodrigues em Programa de divisão sem div(/) e sem mod(%) foi marcado como solução   
    @Ragnarbrody Erros:
    Faltou & nos scanfs;
    Usou muitas bibliotecas, não precisou de todas, só stdio.h e locale.h são suficientes;
    Não precisa colocar n1=n1, n1 é igual a si mesmo, pode deixar vazio dentro do for mesmo;
    Está subtraindo 1 de n1 a cada passagem no laço, não faz sentido fazer isso;
    Está somando 1 no resultado, mas poderia fazer isso dentro do for, com result2++;
    O loop não deve persistir enquanto n1>=0, restos podem ser maiores que 0, deveria ser enquanto n1>=n2;
    Lembre que o resultado é o quociente, chame de quociente;
    Comente seu código, assim todos podem entender o que se passa nele.
    //Divisão e módulo #include <stdio.h> #include <locale.h> int main() { setlocale(LC_ALL, "Portuguese"); int n1, n2, quociente, resto; printf("Insira aqui os números a serem divididos: "); printf("\nDividendo: "); scanf("%d", &n1); printf("\nDivisor: "); scanf("%d", &n2); printf("\nDivisão de %d por %d:", n1, n2); for (; n1>=n2; quociente++) { //Loop para subtrair n2 de n1, até que n1 seja menor que n2 n1 -= n2; } resto = n1; //Resto é o que sobrar de n1 printf("\nQuociente é: %d", quociente); printf("\nResto é: %d", resto); }  
  17. O post de Lucca Rodrigues em Como fazer Potenciação usando a estrutura de DO-WHILE ?? foi marcado como solução   
    @Ary_job Lembre de comentar seu programa, assim todos podem entender o que se passa nele, e é ainda mais útil para descobrir onde se quer chegar.
    Seguindo o que eu disse anteriormente, você consegue desenvolver um algoritmo?
    adicionado 48 minutos depois Tente interpretar esse algoritmo, e desenvolva o seu próprio a partir dele.
    Segue a mesma lógica que eu havia mencionado, está bem mal otimizado kkk, tente encurtá-lo.
    //Potenciação #include "stdio.h" #include "locale.h" int main() { double base, pot; int expoente, n; char novamente; setlocale(LC_ALL,"Portuguese"); printf("Bem-vindo(a) à calculadora (totalmente não otimizada) de potenciação!\n"); do{ printf("Entre com a base: "); scanf("%lf", &base); printf("Entre com o expoente: "); scanf("%d", &expoente); n = 0; pot = base; //3 casos: expoente = 0, < 0 e > 0, nesses 2 últimos podendo ser = 1 ou = -1 if (expoente == 0){ //Qualquer número elevado a 0 é 1 printf("O resultado da potenciação é: 1"); } else if (expoente > 0){ //Fazer pot * base o tanto de vezes que corresponde ao expoente do { pot = pot * base; n += 1; } while(n + 1 < expoente); if (expoente == 1){ //Qualquer número elevado a 1 é ele mesmo printf("O resultado da potenciação é: %.4lf", base); } else { printf("O resultado da potenciação é: %.4lf", pot); } } else if (expoente < 0){ //Mesma mecânica para expoente > 0, mas inverte-se pot no final expoente = -expoente; do { pot = pot * base; n += 1; } while(n + 1 < expoente); if (expoente == 1){ //Qualquer número elevado a -1 é 1/ele mesmo printf("O resultado da potenciação é: %.4lf", 1/base); } else { printf("O resultado da potenciação é: %.4lf", 1/pot); } } printf("\n\nQuer calcular novamente (s/n)? "); scanf("%s", &novamente); //Teste para calcular novamente } while (novamente == 's'); return 0; }  
  18. O post de Lucca Rodrigues em Leitura de Capacitor Cerâmico foi marcado como solução   
    @olliver.soul É de 50V, modelo Z5V. Para esse modelo, menor capacitância é 4700pF. Este ai é de 22nF.

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!