Ir ao conteúdo
  • Cadastre-se

Flávio Pedroza

Membro Pleno
  • Posts

    2.074
  • Cadastrado em

  • Última visita

Tudo que Flávio Pedroza postou

  1. float a = 0; float b =0; float a_old = 0; float b_old =0; (...) else if(ev.type == ALLEGRO_EVENT_TIMER) { a_old = a; b_old = b; (...) else if(map[i][j] == 2) { //al_draw_bitmap(pedra,(j * BlockSize) + a, (i * BlockSize )+ b,0); mover essa linha para baixo if (colisao(px, py, 32, 32, (j* BlockSize) + a, (i*BlockSize+ b), 32, 32) == true) { cima = false; baixo = false; esquerda = false; direita = false; a = a_old; b = b_old; } al_draw_bitmap(pedra,(j * BlockSize) + a, (i * BlockSize )+ b,0); } Veja se assim funciona
  2. for(i=0; i<5; i++){ // ficha[i].cod == i; ficha[i].cod = i; (...) system("cls"); for(i=0; i<5; i++){ //system("cls"); printf("\nCÓDIGO: %d", ficha[i].cod); printf("\nTITULO DO LIVRO: %s", ficha[i].nomeLivro); printf("\nNOME DO AUTOR: %s", ficha[i].nomeAutor); printf("\nNOME DA EDITORA: %s", ficha[i].nomeEditora); }
  3. você pode declarar uma variável global que armazena o tamanho do vetor e decrementá-la cada vez que retira um elemento dele: int tamanho = 10; (...) void remover (int* v, int pos){ int i; for (i=pos+1;i<tamanho;i++){ v[i-1] = v[i]; } tamanho--; }
  4. No seu caso, você precisa usar matriz bi-dimensionais: #include <stdio.h> #include <string.h> #include <stdlib.h> #include <locale.h> #include <fstream> int main (){ char titulo[5][10], autor[5][10], editora[5][10]; int op,op1,i; setlocale(LC_ALL, "Portuguese"); i=0; while (1) { printf("\n 1 - INSERIR UM NOVO CADASTRO \n\n"); printf(" 2 - MOSTRAR TODOS OS CADASTROS \n\n"); printf(" 0 - ENCERRAR \n\n"); scanf("%d", &op); if(op==1){ while(i<5){ printf("\nINFORME O TITULO DA OBRA:\n"); scanf("%s", titulo[i]); fflush(stdin); printf("\nINFORME O AUTOR:\n"); scanf("%s", autor[i]); fflush(stdin); printf("\nINFORME A EDITORA:\n"); scanf("%s", editora[i]); fflush(stdin); i++; } printf("SISTEMA DE CADASTRO LOTADO\n"); } else if(op==2){ for(i=0;i<5;i++) { printf("\nTITULO: %s", titulo[i]); printf("\nAUTOR: %s", autor[i]); printf("\nEDITORA: %s", editora[i]); } } else if(op==0) return 0; else printf("opção invalida"); } }
  5. Não sei dizer, mas também não custa nada ativar o XMP na bios.
  6. Como dito pelos colegas acima, suporta até 1600 MHZ, mas tem que ativar o XMP PROFILE na bios da placa-mãe, caso contrário irá funcionar com o clock normal (1333).
  7. A lógica é a seguinte: 1. Leia a quantidade de produtos 2. Leia o preço do produto 3. Multiplique a quantidade pelo preço do produto e some ao valor total da compra 4. repita os passos 1, 2 e 3 até que a quantidade digitada seja menor ou igual a zero 5. Mostre na tela o valor total da compra
  8. você não está sobrescrevendo corretamente. É necessário que o método tenha a mesma quantidade de argumentos. O da classe base tem 3 argumentos, o da classe filho tem 2. Se quiser manter do jeitos que está, uma solução, sem usar polimorfismo, seria: static_cast<Ferreiro*>(persoDinam)->inicializar(300, 300); Outra coisa é que na classe Ferreiro você não precisa declarar novamente o x e o y, pois tais variáveis já existem na classe base.
  9. Primeiro você deve ler TODOS os elementos e só depois determinar qual o menor/maior. #include <stdio.h> int main() { int m[3][3],i,j,menor,maior,pma,pme; int i_maior, j_maior; for(i=0;i<3;i++){ for(j=0;j<3;j++){ scanf("%d",&m[i][j]); if (i == 0 && j == 0){ menor=m[0][0]; maior=m[0][0]; } } } for(i=0;i<3;i++){ for(j=0;j<3;j++){ if(m[i][j]>maior){ maior=m[i][j]; i_maior = i; j_maior = j; } } } printf("%d\n", maior); printf("maior i= %d menor j= %d", i_maior+1, j_maior+1); return 0; } Veja se agora consegue desenvolver o código para imprimir a linha.
  10. Não vejo nada de errado no código. você está digitando a entrada correta? Deve ser algo do tipo: "Letras 2 3", ou seja, separadas por espaços.
  11. Para permitir espaços no scanf: scanf_s("%[^\n]s", &prox_cad->nome, 45);
  12. "Diferentemente scanf e wscanf, scanf_s e wscanf_s exigem que você especificar tamanhos de buffer para alguns parâmetros. Especificar os tamanhos para todos os c, C, s, S, ou conjunto de controles de cadeia de caracteres [] parâmetros. O tamanho do buffer em caracteres é passado como um parâmetro adicional. Ele segue imediatamente o ponteiro para o buffer ou variável. Por exemplo, se você estiver lendo uma cadeia de caracteres, o tamanho do buffer para essa cadeia de caracteres é passado da seguinte maneira:" https://docs.microsoft.com/pt-br/cpp/c-runtime-library/reference/scanf-s-scanf-s-l-wscanf-s-wscanf-s-l?view=vs-2019 Então, o código seria: void cadastro() { int cont; t_cad* prox_cad; if (ini_cad == NULL) { ini_cad = (t_cad*)malloc(sizeof(t_cad)); ini_cad ->proximo = NULL; if (ini_cad == NULL) exit(1); } prox_cad = ini_cad; while (1) { printf("Digite o RU:"); scanf_s("%d", &prox_cad->ru); printf("Digite o Nome:"); scanf_s("%s", &prox_cad->nome, 45); //nome tem no máximo 45 caracteres printf("Digite o email:"); scanf_s("%s", &prox_cad->email, 60); //email tem no máximo 60 caracteres printf("Deseja continuar??? (1)SIM e (0)NAO"); scanf_s("\n %d", &cont); if (cont == 0) break; prox_cad->proximo = (t_cad *)malloc(sizeof(t_cad)); prox_cad = prox_cad->proximo; prox_cad->proximo = NULL; } printf("\n"); }
  13. Já que está usando o visual studio, remova os ifndef/define/endif e use "#prama once"
  14. #include <stdio.h> #include <string.h> struct data { int dia; int mes; int ano; }; struct pessoa { char nome [10]; data nascimento; }; void leituramatrizp (pessoa m_pessoa2[20][2]){ int i, j; for (i=0;i<20;i++){ for (j=0; j<2; j++){ printf ("\nEntre com o nome: "); fflush (stdin); fgets (m_pessoa2[i][j].nome, 10, stdin); printf ("\nEntre com o dia: "); scanf ("%d", &m_pessoa2[i][j].nascimento.dia); printf ("\nEntre com o mes: "); scanf ("%d", &m_pessoa2[i][j].nascimento.mes); printf ("\nEntre com o ano: "); scanf ("%d", &m_pessoa2[i][j].nascimento.ano); printf ("\n\n__________________________________\n"); } } } void exibematrizp (pessoa m_pessoa3[20][2]){ int i; int j; for (i=0; i<20;i++){ for (j=0; j<2; j++){ printf ("\nNome: %s", m_pessoa3[i][j].nome); printf ("\nDia: %d", m_pessoa3[i][j].nascimento.dia); printf ("\nMes: %d", m_pessoa3[i][j].nascimento.mes); printf ("\nAno: %d", m_pessoa3[i][j].nascimento.ano); } } } int main (){ pessoa m_pessoa[20][2]; data vet_data [20]; int op = 0; while (op != 3 ){ printf ("\n\n############### MENU ######################\n"); printf ("\n1 - Carregar a matriz de pessoas"); printf ("\n2 - Exibir a matriz de pessoas"); printf ("\n3 - Sair"); printf ("\nQual a sua opcao? "); scanf ("%d", &op); switch (op){ case 1: leituramatrizp (m_pessoa); break; case 2: exibematrizp (m_pessoa); break; } } }
  15. no cabeçalho (header) da classe Pedidos, faça o mesmo que fez na classe Cliente: use #ifndef #define para evitar a inclusão do mesmo cabeçalho mais de uma vez. Talvez resolva o erro de declaração dupla: #ifndef PEDIDOS_H #define PEDIDOS_H #include <string> #include "Cliente.h" #include "Publicacao.h" using std::pair; class Pedidos { private: pair<int, string> pedido_; public: //Cria novo pedido Pedidos(Publicacao *p, Cliente *c); //Retorna pedido pair<int, string> retornaPedido(); }; #endif
  16. você não inicializou o ponteiro "pont_tamanho_1" int main (){ int vet_1[50]; int tamanho_1; int *pont_tamanho_1 = &tamanho_1;
  17. A biblioteca dirent.h não está corretamente instalada no seu compilador.
  18. Exponencial em C é dada pela função exp(x). Para calcular o quadrado, você pode usar a função pow(x,2) ou simplesmente x*x. Ambas funções são da biblioteca math.h. A função F(X) seria algo assim: y = 2*x*x - 5*exp(2*x) - 12; você tem que fazer um laço interativo para calcular a área dos retângulos entre A e B (no caso serial 6 retângulos). A altura do retângulo é o valor de F(X) (y) e a base é 0,05 ((1,75 - 1,45) / 6) .
  19. você está manipulando as strings de forma errada. Para comparar strings, não use "==", use a função strcmp. Para copiar o conteúdo de um string não use "=", use strcpy. http://www.cplusplus.com/reference/cstring/strcmp/ http://www.cplusplus.com/reference/cstring/strcpy/
  20. você pode usar a biblioteca <dirent.h> para obter todos os nomes de arquivos de um diretório: #include <dirent.h> #include <stdio.h> int main() { DIR *d; struct dirent *dir; d = opendir("."); //diretório atual; if (d != NULL) { while ((dir = readdir(d)) != NULL) //lsita todos os arquivos do diretorio { printf("%s\n", dir->d_name); FILE * pFile; pFile = fopen (dir->d_name,"r"); //abre o arquivo if (pFile!=NULL) { // insira aqui o codigo que manipula o arquivo fclose (pFile); } } closedir(d); } return 0; }
  21. int escolhaOpção1 = 0; do { Console.WriteLine("Menu locação:"); Console.WriteLine("1 //////// Cadastro do aluno"); Console.WriteLine("2 //////// Locação"); Console.WriteLine("3 //////// Vizualar cadastro"); Console.WriteLine("4 //////// Sair"); Console.Write("Escolha uma opção:"); escolhaOpção1 = int.Parse(Console.ReadLine()); switch (escolhaOpção1) { case 1: Console.Write("Digite seu login:"); string login = Console.ReadLine(); Console.Write("Digite sua senha:"); string senha = Console.ReadLine(); Console.Write("Digite seu e-mail:"); String email = Console.ReadLine(); Console.WriteLine("Cadastro feito com sucesso, deseja voltar ao menu?"); break; } } while (escolhaOpção1 != 4);
  22. //while(fread(&reg2, sizeof(nome),1,PONTARP)==1){ while(fread(&reg2, sizeof(pedido),1,PONTARP)==1){ Na consulta

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!