Ir ao conteúdo
  • Cadastre-se

1freakday

Membro Pleno
  • Posts

    667
  • Cadastrado em

  • Última visita

Tudo que 1freakday postou

  1. Como o Massaki disse, você pode alocar dinamicamente as pilhas de acordo com o tamanho necessário.
  2. Você pode usar a função system().
  3. Boa noite. Você precisará utilizar Sprites, o qual cada imagem (ou frame de imagem) representa um movimento do personagem, nessa lógica, você só precisara identificar qual imagem representa a direção que o usuário apertar, mudando conforme as teclas de direção. Exemplo: #define DIR_CIMA 0 #define DIR_BAIXO 1 #define DIR_ESQ 2 #define DIR_DIR 3 class Jogador { private: int direcao; public: void mover(int novaDirecao){ direcao = novaDirecao; //Agora so limpar e atualizar a tela com a imagem da nova direcao //DesenharJogador(direcao); } }; /* Desenhar imagem do jogador */ void DesenharJogador(int direcao){ switch(direcao){ case DIR_CIMA: //Desenhar imagem com jogador pra cima break; case DIR_BAIXO: //Desenhar imagem com jogador pra baixo break; case DIR_ESQ: //Desenhar imagem com jogador pra esquerda break; case DIR_DIR: //Desenhar imagem com jogador pra direita break; default: break; } } Para desenhar o fundo, apenas pesquise por Tiles e mapas usando matriz ( se for um código simples ), Para desenhar o pulo dele, basta mudar de sprite(de pulo no caso), e diminuir a coordenada y referente a imagem na janela.
  4. //Troque os 2 for(i>1000;i<=2000;i++) //Por for(i=1000;i<=2000;i++) Como você esta usando uma variável temporária resto, quando você mudar de numero no loop, você substituirá o valor armazenado anteriormente, então em vez de usar dois loop, use um, para mostrar se é resto ou não.
  5. E só você obter a primeira letra depois do primeiro espaço, e a primeira letra do segundo espaço, e armazenar o primeiro nome. Pode usar loops.
  6. Não, pois você não esta armazenando as informações dos alunos, apenas esta usando variaveis, e no fim do loop você reutiliza novamente. O certo seria armazenar em uma struct, depois seria possivel identificar onde esta o aluno, inserindo apenas o numero do cadastro, ou usando uma funcao de busca.
  7. #include <stdlib.h> #include <stdio.h> int main() { int n; float media, nota, total = 0.00; printf("Digite a quantidade de notas :\t"); scanf("%d", &n); for (int i = 0; i < n; i++) { printf("\n Digite o valor da nota %d:\t", i+1); scanf("%f", &nota); total += nota; } media = total / n; printf("\nA media dessas notas e :%.2f", media); return 0; system("PAUSE"); }
  8. #include <stdio.h> #include <stdlib.h> #define tam 5 int main () { int vet[tam], tmp = 0; for (int i=0; i<tam; i++) { // pedindo o vetor ao usuario printf("DIGITE O vet[%d]:", i); scanf("%d", &vet[i]); } for (int i=0; i<tam; i++){ //Crescente if(vet[i]>vet[i+1]){ tmp=vet[i+1]; vet[i+1]=vet[i]; vet[i]=tmp; i = -1; } } printf("\n*IMPRIME ORDEM CRESCENTE*\n"); for(int i=0; i<tam; i++){ // imprime numero em ordem crescente printf("%d\n", vet[i]); } for (int i=0; i<tam; i++){ //Decrescente if(vet[i]<vet[i+1]){ tmp=vet[i+1]; vet[i+1]=vet[i]; vet[i]=tmp; i = -1; } } printf("\n*IMPRIME ORDEM DECRESCENTE*\n"); for(int i=0; i<tam; i++){ // imprime numero em ordem Decrescente printf("%d\n", vet[i]); } }
  9. Não testei o código, mas não seria: sal = Convert.ToDouble(txSalario.Text); inss1 = Convert.ToDouble(txInss.Text); inss2 = Convert.ToDouble(txInss.Text); inss3 = Convert.ToDouble(txInss.Text); vala = Convert.ToDouble(txAlimentacao.Text); valt = Convert.ToDouble(txVale.Text);
  10. Caso queira usar menos memória: #include <string.h> class pessoa { private: char *nome, *email, *telefone, *rg, *codigo;//Nao alocado public: void cadastrar(); void consultar(); }; pessoa **p; //Aloca/copia string char* novastr(char *string,char *destino){ destino = new char[strlen(string)]; strcpy(destino,string); return destino; } void pessoa :: cadastrar() { char *buffer = new char[512]; cout << "Digite o Codigo: "; cin.getline(buffer,512); codigo = novastr(buffer,codigo);//obter codigo de buffer cout << "Digite o Nome: "; cin.getline(buffer,512); nome = novastr(buffer,nome); cout << "Digite o Email: "; cin.getline(buffer,512); email = novastr(buffer,email); cout << "Digite o Telefone: "; cin.getline(buffer,512); telefone = novastr(buffer,telefone); cout << "Digite o RG: "; cin.getline(buffer,512); rg = novastr(buffer,rg); free(buffer); };
  11. #include <iostream> #include <stdlib.h> #include <stdio.h> using namespace std; class pessoa{ private: char nome[30],email[50],telefone[10],rg[10],codigo[10]; public: void cadastrar(); void consultar(); }; pessoa **p;//*p[] void pessoa :: cadastrar(){ cout << "Digite o Codigo: "; cin >> codigo; cout << "Digite o Nome: "; cin >> nome; cout << "Digite o Email: "; cin >> email; cout << "Digite o Telefone: "; cin >> telefone; cout << "Digite o RG: "; cin >> rg; }; void pessoa :: consultar(){ cout << "Codigo: " << codigo; cout << " Nome: " << nome; cout << " Email: " << email; cout << " Telefone: " << telefone; cout << " RG: " << rg << endl; }; int main(){ int y=0,opc,new_opc; p = (pessoa **)malloc(sizeof(pessoa**)); do{ cout << "\n----- MENU -----" << endl; cout << "1- Cadastrar" << endl; cout << "2- Consultar" << endl; cout << "3- Alterar" << endl; cout << "0- Sair" << endl; cout << "----------------" << endl; cout << "Informe a Opcao: "; cin >> opc; switch (opc){ case 1: system("cls"); do{ p[y] = new pessoa; p[y]->cadastrar(); new_opc=0; cout << "Deseja continuar cadastrando? 1-Sim / 2-Nao " << endl; cin >> new_opc; y++; }while(new_opc==1); system("cls"); break; case 2: system("cls"); for(int i=0;i<y;i++){ p[i]->consultar(); } break; default: exit(0); } }while(opc!=0); delete[] p; return 0; }
  12. A unica maneira de conseguir é tentando.
  13. Arquivo QtCore/QVariant: não foi encontrado. Possíveis soluções: 1- Verificar na pasta QtCore (como você usa DevC++, vai ate a pasta do programa, em MingW -> include -> QtCore) se o arquivo QVariant existe, caso contrário procure baixa-lo e colocar na pasta dita anteriormente. 2- Verificar se #include <QtCore/QVariant> está com dados corretos.
  14. Se for no windows, para mudar a cor do prompt, você pode colocar no código, system("color numerodacor"); O numerodacor você coloca 0 a F para a cor, usando duas casas no numerodacor, voce pode mudar a cor do texto e fundo, como: system("color 1"); Altera a cor do texto apenas para Azul(1), o fundo é preto system("color 12"); Altera a cor do texto para Verde-Agua(2), e o fundo é 1
  15. #include <stdio.h> int main(){ //Como estamos iniciando o software //que controla os motores, o padrão //seria que eles iniciassem desligados, //portanto temos que definir as variaveis //na declaração int a = 0,//Motor A desligado b = 0,//Motor B " c = 0;//Motor C " //Sua versão não possui uma função para obter o valor //printf("digite o valor a: %d", 30); //Portanto, usamos scanf e deixamos as informações no Printf um pouco mais claras printf("Motor A - 30 Cavalos\nStatus do motor(1 Ligado e 0 desligado):"); scanf("%d",&a); //Assumindo que você sabe quando o motor A //pode ficar ligado, referente aos 100 cavalos, //sabendo que cada variavel é ligada a um motor, //o qual possui a potência ja definida, ai voce usa esse if. //Porém se você usar uma classe, ou estrutura, o qual é possivel //realizar a alteração da potência, é necessario um calculo, //como A+B <= LIMITE(100 Cavalos), etc, afim de que o A seja ligado. //O if abaixo é descrito assim: Se (A for = 1 e B = 0) verdadeiro? OU Se (A = 1 e B = 1 e C = 0) verdadeiro? if((a==1 && b==0) || (a==1 && b==1 && c==0)){ printf("Situacao: motor A ligado\n:"); }else printf("Situacao: motor A desligado\n:"); printf("Motor B - 30 Cavalos\nStatus do motor(1 Ligado e 0 desligado):"); //scanf("%d", 70); voce ja deu um valor, porém gostariamos de obter 0 ou 1 do usuario, por isso usamos a variavel b scanf("%d",&b); if((a==0 && b==1)||(a==0 && b==1 && c==0)){ printf("motor b ligado\n:"); }else printf("motor b desligado\n:"); printf("Motor C - 30 Cavalos\nStatus do motor(1 Ligado e 0 desligado):"); scanf("%d",&c); if(a==0 && b==0||a==0 && b==0 && c==1){ printf("motor c ligado\n:"); }else{ printf("motor c desligado\n:"); } }
  16. Em vez de usar char *gravidade, você pode usar um inteiro para determinar se é grave, ou não, exemplo: //Macros #define UTI 2 #define GRAVE 1 #define NORMAL 0 Existe dois momentos que você pode organizar, quando você estiver adicionando, ou após ter adicionado todos, porém o mais fácil é depois de ter adicionado todos cadastros. Seria bom criar uma função para fazer a troca, onde ela organiza dependendo da gravidade. Usando dois loops, um que seleciona um cadastro e outro loop dentro, vai procurando uma gravidade maior que o selecionado, se achar, é feito a troca. Duvidas pode perguntar.
  17. @Mayk.hsm Entendeu certo, mas se quiser identificar no meio de palavras, apenas alterar a parte de condições: if(pp == p){ //<espaco/inicio de frase>palavra<espaco/fim de frase> if(((s[ii] == ' ' || s[ii] == '\0') && (s[ii-p-1] == ' ' || ii-p-1 <= 0))) { qtd++; } else pp = 0;//A proxima letra e a ultima da frase nao era espaco } } //para if(pp == p)qtd++; else pp=0;
  18. Em vez de verificar se a próxima letra é 's', você precisa verificar se é um espaço, pois poderia ser diferente de s. Exemplo: //Retorna quatidade de palavras na frase s int exword(const char *s, char *palavra){ int i = strlen(s); int p = strlen(palavra), ii = 0, pp, qtd = 0; //Frase while(ii < i){ //Palavra for(pp = 0; ii < i && pp < p; ii++){ if(s[ii] == palavra[pp])//Letra da frase igual pp++; else //Letra diferente pp = 0; } if(pp == p){ //<espaco/inicio de frase>palavra<espaco/fim de frase> if(((s[ii] == ' ' || s[ii] == '\0') && (s[ii-p-1] == ' ' || ii-p-1 <= 0))) { qtd++; } else pp = 0;//A proxima letra e a ultima da frase nao era espaco } } return qtd;//Retorna quantidade de palavras }
  19. Se mandar o código do formulário ajudaria.
  20. 1freakday

    Programacao

    #include <stdio.h> #include <stdlib.h> /*Isso é o que deve ser feito no código->> 1 – Faça um programa leia uma Matriz M com dimensões m x n. Tanto as dimensões m e n quanto o conteúdo da matriz M são valores lidos do teclado e resolva as solicitações abaixo: a) Calcule e exiba a diferença entre o maior e o menor elemento da matriz; b) Imprima a posição do maior e do menor elemento encontrado.*/ int main() { int m,n,lin,col,dif=0,l1=0,c1=0,l2=0,c2=0; printf("m:"); scanf("%d",&m); printf("\nn:"); scanf("%d",&n); int v[m][n],maior=0,menor=0; //Em matriz, o uso é inverso de x,y -> sendo y,x ou col x lin for(lin=0; lin<m;lin++){ for(col=0;col<n;col++){ //ler scanf("%d",&v[lin][col]); //0,0 if(lin==0&&col==0){ maior=v[0][0]; menor=v[0][0]; } //maior else if(v[lin][col]>maior){ maior=v[lin][col]; l1=lin; c1=col; //menor }else if(v[lin][col]<menor){ menor=v[lin][col]; l2=lin; c2=col; } } } dif=maior-menor; //Como estamos identificando o local, precisamos ser mais especificos no texto printf("dif:%d",dif); printf("\nmaior lin:%d col:%d",l1,c1); printf("\nmenor lin:%d col:%d",l2,c2); return (0); } Você usou apenas if(col==0) para mudar as variáveis maior e menor, porém em uma matriz m x n temos n 0's, então toda vez que col for = 0, você esta alterando essas variáveis. Portanto corrigimos em usar um local que não vai repitir, sendo 0x0. Abaixo do else if menor, eu só dei uma mudada, mas não vai fazer muita diferença na funcionalidade do código, pois quando temos um else if, temos que continuar usando, mas se você usa else e abre {, e começa com mais if's fica meio que sem lógica, a não ser que coloque mais else if nesse else {}, enfim é tudo questão de perspectiva e lógica.
  21. Interessante o uso de operadores bit a bit, pena que o calculo é simples porém valido.Pelo que eu percebi, você usa apenas um inteiro para a chave, tenta usar um vetor, que representa uma quantidade maior de inteiros e a criptografia fica mais difícil de 'quebrar'.
  22. Se estiver em binário, é meio complicado pois tudo se resume a 0's e 1's, porém você pode criar um algorítimo, ou buscar algum online, que criptografe o texto do arquivo e crie um arquivo no output, e você pode implementar a função de descriptografar diretamente no jogo, assim você só deixa o arquivo criptografado anteriormente pelo algorítimo, nos arquivos do jogo, e ao abrir o jogo, ele já vai descriptografar e armazenar as informações. Esse algorítimo que criptografa, você pode criar como um programa separado do jogo, como uma tool para desenvolvimento, ai toda vez que for editar os arquivos do jogo você so usa para criptografar os arquivos e descriptografa-los, sem precisar alterar o codigo do jogo. Exemplo de criptografia: Você pode criar usar um alfabeto ANSI, e um que represente os codigos (considerando que contem a mesma quantidade de elementos que o alfabeto ansi), ai a parte da senha para descriptografar pode ser usado como jump, para um calculo qualquer, que faça embaralhar o uso dos codigos(os que representam uma letra ansi), exemplo: Palavra a ser criptografada: agua ANSI: a b c d e f g h i j k l m n o p q r s t u v x w y z CODIGOS: y r s L t 0 b Y x n v o g m a r d c k w e z 1 2 3 4 Se criptografar a palavra: agua sem uma senha seria: ybey Isso é inseguro, pois se alguém estivesse usando o alfabeto ANSI e CÓDIGO, traduziria rapidinho, porém se usarmos uma senha que possa criar um pulo no código, onde y poderia ser 1, sendo que só quem tivesse a senha poderia descriptografar corretamente, ajudaria a evitar isso. Vamos usar uma senha de 3 números, onde o calculo é usar pular a letra do código (como y) a cada um dos 3 numeros, exemplo a senha é 123, vamos pular de 3 para 1, e o código já traduzido é ybey, o pulo do código seria: y -> t -> pulo de 3 b -> t -> pulo de 2 e -> b -> pulo de 1 y -> t -> pulo de 3(começamos de novo) Resultado da criptografia da palavra água: agua -> ybey -> ttbt (senha 123) P.S: Existem muitos métodos de criptografar, uns que envolvem muitos cálculos matemáticos, outros que usam a memoria, informações do computador, etc, porém dependendo do objetivo, você precisa ter certeza do trabalho que deseja, se for um projeto pequeno não ha necessidade de se preocupar tanto com criptografia, se possível sempre procure pesquisar cálculos, mesmo que simples, para uma criptografia que não seja árdua de fazer, e não leve a perca de dados. Bom projeto.

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!