Ir ao conteúdo

Flávio Pedroza

Membro Pleno
  • Posts

    2.145
  • Cadastrado em

  • Última visita

Tudo que Flávio Pedroza postou

  1. Posta as configurações do pc (processador, placa-mãe, placa de vídeo, etc.)
  2. if (strcmp (cor2,"verde") == 0); (...) if (strcmp(cor2, "verde") == 0) ; (...) if (strcmp (cor2,"verde") == 0); Remova esses ";". Obs.: vermelho + azul = roxo.
  3. int main(){ int i, j; char str[2]="x", str1[2]="."; for(i=1; i<=7; i++){ for(j=1;j<=7; j++) if((i+j == 8) || (i == j)) { printf("%s", str); }else printf("%s", str1); printf("\n"); } }
  4. Lembre-se que membros estáticos são compartilhados por todos as instâncias das classes. Suponha que fosse permitido um membro estático acessar membro não estáticos da classe. #include <iostream> using namespace std; class Teste { public: int atributo_nao_estatico; static int membro_estatico () {return atributo_nao_estatico;}; }; int main() { Teste c1, c2; c1.atributo_nao_estatico = 0; c2.atributo_nao_estatico = 1; cout << Teste::membro_estatico(); return 0; } O resultado do programa acima iria imprimir o quê? 0 ou 1? Na sua opinião qual dos atributos o método "membro_estatico" iria retornar? O atributo da instância c1 (=0) ou da instância c2 (=1)? Ficou em dúvida? Então, o compilador também ficaria...
  5. Sim, para que der resultado diferente tem que mudar a taxa de rendimento.
  6. Não fica claro no problema se será apenas uma aplicação ou se será aplicado todo mês o salário integral Acredito que seja a primeira. Nesta caso, basta multiplicar a aplicação inicial pela taxa de juros: #include <iostream> #include <math.h> using namespace std; int main() { float sal_carlos, sal_joao; int meses; cout << "\nDigite o salario do Carlos: "; cin >> sal_carlos; sal_joao = sal_carlos / 3; meses = 0; do { sal_carlos *= 1.02; sal_joao *= 1.05; meses += 1; } while (sal_joao < sal_carlos); cout << "Meses necessarios = " << meses; cin.get(); return 0; } No entanto, se for o caso de aplicação integral do salario mês a mês: #include <iostream> #include <math.h> using namespace std; int main() { float sal_carlos, sal_joao; float sal_carlos_ini, sal_joao_ini; int meses; cout << "\nDigite o salario do Carlos: "; cin >> sal_carlos_ini; sal_joao_ini = sal_carlos_ini / 3; sal_carlos = sal_carlos_ini; sal_joao = sal_joão_ini; meses = 0; do { sal_carlos = (sal_carlos*1.02) + sal_carlos_ini; sal_joao = (sal_joao*1.05) + sal_joao_ini; meses += 1; } while (sal_joao < sal_carlos); cout << "Meses necessarios = " << meses; cin.get(); return 0; }
  7. Sua lógica de recursividade está errada. Nunca tem fim. int soma(int n){ if (n == 0){ return 0; }else{ return (soma(n-1)+pow(n, 3)); } }
  8. Deve ter algo em curto nela.
  9. CS:GO exige mais da CPU, enquanto PUBG exige placa de vídeo, acredito.
  10. Para que o HDMI da placa-mãe funcione é necessário que o processador possua vídeo integrado. Confirme se seu processador possuí vídeo integrado.
  11. O ideal e ler linha por linha void lerArqTxt(const char *palavra) { char caracter; char line[150];//acredito que 150 eh suficiente para ler uma linha int loop_var, contador; bool flag; FILE *arq; arq=fopen("arquivo1.txt","r"); if(!arq) fclose(arq); else while((fgets(line,150, arq)!=NULL) { if (strstr(line, palavra) != NULL) ++contador; } fclose(arq); printf("\n\n%d", contador); } int main() { char palavra[50]; fgets(palavra, 50, stdin); palarava[strlen(palavra)-1]='\0';//remove o enter lerArqTxt(palavra); // Passaria o nome por parâmetro para a função. return (0); } Veja se assim funciona, não testei.
  12. Com está formatado o arquivo? os nome estão separados por espaço? Poste um trecho do arquivo .txt
  13. Ok, entendi sua dúvida. Realmente, no caso de atributos, é necessário uma definição fora da classe. Infelizmente não sei a razão para isso.
  14. Sem placa de vídeo, não. Fique usando a placa antiga mesmo por enquanto.
  15. Não sei se entendi muito bem sua pergunta, mas basta declarar dentro da classe. Exemplo: #include <iostream> using namespace std; class Classe { public: static void membro_estatico() { cout << "Este é um método estático"; } }; int main() { Classe::membro_estatico(); return 0; }
  16. Provavelmente acontece isso por causa do "ENTER" que você para inserir o número. Tenta isso: printf("n: "); scanf("%d", &n); getchar();//se livra do ENTER printf("operacao '*' para multiplicar, '+' para somar"); op = getchar(); De modo semelhante: printf("n: "); scanf("%d%*%c", &n);//*%c faz o scanf ignorar o ENTER printf("operacao '*' para multiplicar, '+' para somar"); op = getchar();
  17. Tenta assim: op=getchar();
  18. printf("operacao '*' para multiplicar, '+' para somar"); scanf("%c", &op); Tenta assim.
  19. Tá faltando um break. Lembre-se, casa "case" tem que ter o "break" correspondente. case 1: //mamiferos printf("\n1 para quadrupedes\n2 para bipedes\n3 para voador\n4 para aquatico"); scanf("%d", &op2); switch(op2) { case 1: //quadrupedes printf("\n1 para carnivoros \n2 para herbivoros"); scanf("%d", &op3); switch(op3){ case 1: //carnivoros printf("Leao"); break;//op3 - case 1 case 2://herbivoros printf("Cavalo"); break;}//op3 - case 2 break;//op2 - case 1: Bota uns cometários como fiz, para se guiar.
  20. O correto seria: sint main() { int op, op2, op3; printf("-----------------------MENU--------------------"); printf("\n1 para mamiferos\n2 para aves\n3 para repteis"); printf("digite a opcao: "); scanf("%d", &op); switch(op){ case 1: //mamiferos printf("\n1 para quadrupedes\n2 para bipedes\n3 para voador\n4 para aquatico"); scanf("%d", &op2); switch(op2) { case 1: //quadrupedes printf("\n1 para carnivoros \n2 para herbivoros"); scanf("%d", &op3); switch(op3){ case 1: //carnivoros printf("Leao"); break; case 2://herbivoros printf("Cavalo"); break; } break; case 2: //bipedes break; case 3: //voador break; case 4: //aquatico break; } break; case 2: //aves break; case 3: //repteis break; } return 0; }
  21. O primeiro passo é ler corretamente o nome, pois o scanf não aceita espaços. Use fgets. int main() { printf("Digite seu nome"); fgets(nome, 50, stdin); nome[strlen(nome)-1]="\0";//remove o enter você pode usar a função strstr para encontrar a primeira ocorrência do espaço e assim delimitar o nome/sobrenome: char* ch = strstr (nome, " " ); int pos = ch - nome; pos vai dizer em que posição o espaço está. Então você deve separar o nome em dois: primeiro_nome e sobre_nome. você copia os caracteres de 0 até pos-1 no primeiro_nome e de pos+1 até o fim em sobre_nome. Depois é só imprimir na tela ordem que você quer. Veja se consegue terminar.
  22. A maneira mais simples para "embaralhar" (criptografar) é deslocar os elementos uma certa quantidade de casas. Essa quantidade é a chave: void encriptar(char* vetor, char* cripto, int chave) { int tam = strlen(vetor); for (int i = 0; i< tam; i++) cripto[(i+chave) % tam] = vetor[i]; printf("%s\n", cripto); } a função acima deslocar os elementos em "chave" casas. Para descriptografar, chame novamente a mesma função, mudando a chave: //***Criptografar encriptar(vetor, cripto, chave); //***Descriptografar encriptar(cripto, descripto, tam - chave); "chave" deve ser menor ou igual ao tamanho do veto original. "cripto" é um vetor que armazena o resultado criptografado, que deve ter tamanho igual a "vetor"; "descripto" é um vetor que armazena o resultado descriptografado, que também deve ter tamanho igual a "vetor";
  23. //scanf("%f %f", &codigo[i], &price[i]); scanf("%d %f", &codigo[i], &price[i]); Percebi esse erro. Mas, tirando esse, qual seria o problema?
  24. O problema que o resultado pode dar um número irracional (na maioria das vezes, na verdade), pois nem sempre a raiz quadrada será um número exato, de modo que não há como representar esse números em forma de fração. Mas se quiser, poderia implementar um código para representar a saída da forma (2 + raiz(3))/2, por exemplo, simplificar nos casos de raiz exata e etc., mas deixaria o código um tanto mais complexo.
  25. Os números aleatórios são "lixo" da memória. você tem que definir um valor padrão para as variáveis a fim de evitar isso: int v1[8] = {0,0,0,0,0,0,0,0}; int v2[8] = {0,0,0,0,0,0,0,0}; int v[8] = {0,0,0,0,0,0,0,0}; //essas de baixo não precisa int i, x, aux; Em relação a segunda parte, crie dois contadores (cont_pos e cont_neg), um para os número positivos e outro para os negativos e incremente-os de acordo com as entradas do usuário e na hora de imprimir faça: for(i=0; i<cont_pos; i++){ printf("\nvalores positivos %d", v1[i]);} for(i=0; i<cont_neg; i++){ printf("\nvalores negativos %d", v2[i]);} Perceba no código acima que os laços só serão executados caso cont_pos e cont_neg sejam maiores que zero.

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!