Jump to content
Notícia
  • News ticker sample
  • News ticker sample

Search the Community

Showing results for tags 'c'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Anunciantes
    • Advertise here
    • silvaBR Cheats
    • Astaroth Medium
  • ################## WEB CHEATS ##################
  • Anúncios/Eventos
    • Regras
    • Anúncios
    • Eventos do fórum
  • Feedback & Suporte
    • Tutoriais WC
    • Suporte
    • Sugestões
    • Denúncias e Reclamações
    • Depósito
  • WebCheats Premium
    • Trackers & Warez
    • Download
    • Cracking & Serviços Pagos
    • MarketPlace
    • Conteúdo Adulto
    • Taverna WebCheats Premium
    • WebCheats Premium - Lixeira
  • Shooter Zone
  • RPG/MOBA Zone
  • Outros Games Zone
  • Design Zone
  • Info Zone
  • Video Games Zone
  • ################## WEB CHEATS ##################
  • Entretenimento & Diversão
  • 【FREE FIRE】▄︻┻┳═一's Fórum do Clube
  • teste's Tópicos

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Discord


Idade

 
or  

Found 30 results

  1. Bom, estou trabalhando em um projeto de autoUpdate para um game, e ele ta quase pronto, a não ser por uma exceção que resolveu surgir do nada. No erro diz que não foi possível encontrar o arquivo, porém o arquivo ta lá na pasta. Veja abaixo o erro: https://prnt.sc/kibnfo Tem hora que da "Acesso negado", porque o programa cria um zip do arquivo que é selecionado, e na hora da extração ao invés de extrair o arquivo extrai uma pasta vazia com o nome que era pra ser do arquivo e acaba que não da pra extrair o arquivo manualmente sem excluir a pasta criada no processo de atualização
  2. Eai galera, faz um tempão que não posto nada aqui kkk, e hoje resolvi compartilhar um código que fiz pra um amigo meu da faculdade, que está estudando isso agora. Só estou postando pra trazer um conteúdo pra essa área mesmo, já que hoje em dia pouca gente tem interesse em aprender mesmo, só pensam em hack hack hack. Não liguem se tem algo que não está bonitinho, fiz meio rapidão, então pode ter coisa que pode ser simplificada. O exercício consistia em basicamente digitar 2 vetores de tamanho 10, esses vetores não podiam possuir números repetidos ( apenas nele mesmo ), então mostrar os seguintes dados : - União dos vetores ( juntar os dois vetores sem repetir os números ). - Diferença ( o que possui no primeiro vetor que não possui no segundo ). - Soma ( somar cada elemento do vetor na sua respectiva posição ). - Produto ( fazer o produto de cada elemento do vetor na sua respectiva posição ). - Intersecção ( mostrar quais números estão presentes em ambos os vetores ). #include <stdlib.h> #include <stdio.h> #include <limits.h> char * vet[2] = { "primeiro", "segundo" }; int matriz[2][10]; void Intersccao_Dos_Elementos() { int cont = 0; int j, i, para, l = 0; for (i = 0; i < 10; i++) { para = 0; for (j = 0; j < 10; j++) { if (matriz[0][i] == matriz[1][j]) // verifica cada numero do vetor 2 para = 1; } if (para == 1) cont++; // faz a contagem de quantos numeros se repetem nos dois vetores } int *Inter_Vetores = (int *)malloc(cont * sizeof(int)); // cria um vetor com o tamanho dos numeros que foram contados no loop acima for (i = 0; i < 10; i++) { para = 0; for (j = 0; j < 10; j++) { if (matriz[0][i] == matriz[1][j]) // verifica cada numero do vetor 2 para = 1; } if (para == 1) { Inter_Vetores[l] = matriz[0][i]; // armazena ao vetor o valor do numero que se repete nos dois vetores l++; } } printf("\n\nInterseccao dos vetores : "); for (i = 0; i < cont; i++) printf("%d ", Inter_Vetores[i]); free(Inter_Vetores); } void Produto_Dos_Elementos() { int Resultado[10] = {}, i; for (i = 0; i < 10; i++) Resultado[i] = matriz[0][i] * matriz[1][i]; printf("\n\nO produto dos dois vetores : "); for (i = 0; i < 10; i++) printf("%d ", Resultado[i]); } void Somar_Todos_Elementos() { int Resultado[10] = {}, i; for (i = 0; i < 10; i++) Resultado[i] = matriz[0][i] + matriz[1][i]; printf("\n\nA soma dos dois vetores : "); for (i = 0; i < 10; i++) printf("%d ", Resultado[i]); } void Mostrar_Diferenca() { int i, j, para; printf("\n\nA diferenca dos vetores : "); for (i = 0; i < 10; i++) { para = 0; for (j = 0; j < 10; j++) if (matriz[0][i] == matriz[1][j]) para = 1; if (para == 0) printf("%d ", matriz[0][i]); } } void Mostrar_Uniao() { int cont = 10, i, j, k, para, l = 0; int saux[2][20]; for (i = 0; i < 10; i++) saux[0][i] = matriz[0][i]; for (i = 0; i < 10; i++) { para = 0; for (j = 0; j < 10; j++) if (matriz[1][i] == saux[0][j]) // verifica cada numero do vetor 1 para = 1; if (para == 0) { saux[1][i] = matriz[1][i]; cont++; } else { saux[1][i] = INT_MAX; // aqui informa q o numero ja existe, entao atribui um valor pra ser usado mais a baixo, significa q esse valor n faz parte da uniao } } int *Uniao_Vetores = (int *)malloc((cont) * sizeof(int)); // cria um vetor com o tamanho dos numeros que formam a uniao for (k = 0; k < 2; k++) for (i = 0; i < 10; i++) if (saux[k][i] != INT_MAX) // caso seja diferente do valor atribuido, quer dizer q o numero faz parte da uniao { Uniao_Vetores[l] = saux[k][i]; l++; } for (i = 0; i < cont; i++) // apenas coloca em ordem crescente os numeros do vetor da uniao { for (j = i + 1; j < cont; j++) { if (Uniao_Vetores[i] > Uniao_Vetores[j]) { int temp = Uniao_Vetores[i]; Uniao_Vetores[i] = Uniao_Vetores[j]; Uniao_Vetores[j] = temp; } } } printf("\nA uniao dos vetores : "); for (i = 0; i < cont; i++) printf(" %d", Uniao_Vetores[i]); free(Uniao_Vetores); } void Mostrar_Matrizes_Armazenadas() { int i, k; for (k = 0; k < 2; k++) // apenas mostrar as matrizes { printf("Vetor %d : ", k + 1); for (i = 0; i < 10; i++) printf("%d ", matriz[k][i]); printf("\n"); } } void Armazenar_Valores() { int i, j, k, para, aux[2][10]; for (k = 0; k < 2; k++) { for (i = 0; i < 10; i++) { if (i != 0) { do { para = 0; printf("Entre com o termo %d do %s vetor : ", i + 1, vet[k]); scanf("%d", &matriz[k][i]); for (j = 0; j < i; j++) { if (matriz[k][i] == aux[k][j]) // se o numero digitado for um q ja existe, a variavel para recebe 1 e o loop vai continuar para = 1; } } while (para == 1); aux[k][i] = matriz[k][i]; para = 0; } else { printf("Entre com o termo %d do %s vetor : ", i + 1, vet[k]); // como e o primeiro termo, nao tem como ele existir scanf("%d", &matriz[k][i]); aux[k][i] = matriz[k][i]; } } printf("\n\n"); } } int main() { Armazenar_Valores(); Mostrar_Matrizes_Armazenadas(); Mostrar_Uniao(); Mostrar_Diferenca(); Somar_Todos_Elementos(); Produto_Dos_Elementos(); Intersccao_Dos_Elementos(); return 1; } Bom, é isso ai galera, qualquer coisa só comentar. Fui.
  3. C Notes for Professionals Info: The C Notes for Professionals book is compiled from Stack Overflow Documentation, the content is written by the beautiful people at Stack Overflow. Text content is released under Creative Commons BY-SA. See credits at the end of this book whom contributed to the various chapters. Images may be copyright of their respective owners unless otherwise specified Book created for educational purposes and is not affiliated with C group(s), company(s) nor Stack Overflow. All trademarks belong to their respective company owners 342 pages, published on May 2018 DOWNLOAD [Hidden Content]
  4. #include <stdio.h> #include <stdlib.h> void mostravetor(int *vetor){ for(int i = 0; i < 5; ++i){ printf("%d", vetor[i]); } } int main(){ int vetorMain[] = {1,2,3,4,5}; mostravetor(vetorMain); }
  5. Preciso de um injetor em cmd , alguem pode me ajudar ?
  6. Bom dia/tarde/noite galera, Venho por meio desta pedir ajuda de vcs pois estou realizando um trabalho para faculdade e necessito encontrar 4 exemplos de aplicativos que utilizam a criptografia XOR e entre os 4 ao menos 2 tem que utilizar a linguagem de programação C. Já pesquisei e muito, porem não obtive sucesso... Agradeço e peço desculpas caso eu tenha postado na área errada.
  7. Boa, algoritmo que lê valores de uma matriz, mostra a soma total e imprime os valores lidos. #include<stdio.h> int main(){ int matriz[3][3]; void lerMatriz(int valor, int matriz[3][3]); lerMatriz(3, matriz); return 0; } void lerMatriz(int valor, int matriz[3][3]){ void imprimirMatriz(int valor, int matriz[3][3]); int soma; for(int i = 0; i < valor; ++i){ for(int j = 0; j < valor; ++j){ printf("Digite o valor: "); scanf("%i", &matriz[i][j]); soma = soma + matriz[i][j]; } } printf("Soma: %i\n", soma); imprimirMatriz(valor, matriz); } void imprimirMatriz(int valor, int matriz[3][3]){ for(int i = 0; i < valor; ++i){ for(int j = 0; j < valor; ++j){ printf("%i", matriz[i][j]); } } }
  8. Boa, calculadora que efetua cálculos básicos. #include<stdio.h> #include<locale.h> #include <ctype.h> #include <math.h> char gOp; float num,num2,resultado, gPeso, gAltura; short int gProsseguir; int main(){ setlocale(LC_ALL, ""); void menu(void); menu(); return 0; } void menu(){ void adicao(); void subtracao(); void multiplicacao(); void divisao(); void IMC(); void raiz(); void areaQuadrado(); void areaRetangulo(); void areaTriangulo(); void areaCirculo(); void areaTrapezio(); printf("Calculadora\n\n"); printf("[A] - Adição\n"); printf("[b] - Subtração\n"); printf("[C] - Multiplicação\n"); printf("[D] - Divisão\n"); printf("[E] - IMC\n"); printf("[F] - Raiz Quadada\n"); printf("[G] - Área do Quadrado\n"); printf("[H] - Área do Retangulo\n"); printf("[i] - Área do Triângulo\n"); printf("[J] - Área do Círculo\n"); printf("[L] - Área do Trapezio\n"); scanf("%c", &gOp); switch(toupper(gOp)){ case 'A':adicao(); break; case 'B':subtracao(); break; case 'C': multiplicacao(); break; case 'D':divisao(); break; case 'E':IMC(); break; case 'F':raiz(); break; case 'G':areaQuadrado(); break; case 'H':areaRetangulo(); break; case 'I':areaTriangulo(); break; case 'J':areaCirculo(); break; case 'L':areaTrapezio(); break; default:printf("Opção não encontrada !");break; printf("[1] - Voltar ao menu, [2] - Sair"); scanf("%i", &gProsseguir); } } void adicao(){ short int cont = 1; do{ printf("Digite o %i° Número: ",cont); scanf("%f", &num); resultado = resultado + num; printf("Tecle [1] para continuar a soma, [2] para finalizar."); scanf("%i", &gProsseguir); if(gProsseguir != 1 && gProsseguir != 2) printf("Opção não encontrada !"); ++cont; } while(gProsseguir == 1); printf("\nO resultado da soma é: %f ", resultado ); } void subtracao(){ short int cont = 1; do{ if(cont == 1){ printf("Digite o %i° Número: ",cont); scanf("%f", &num); ++cont; printf("Digite o %i° Número: ",cont); scanf("%f", &num2); resultado = num - num2; } else{ ++cont; printf("Digite o %i° Número: ",cont); scanf("%f", &num); resultado = resultado - num; } printf("Tecle [1] para continuar a subtração, [2] para finalizar."); scanf("%i", &gProsseguir); if(gProsseguir != 1 && gProsseguir != 2) printf("Opção não encontrada !"); } while(gProsseguir == 1); ++cont; printf("\nO resultado da subtração é: %f ", resultado); } void multiplicacao(){ short int cont = 1; do{ if(cont== 1) resultado = 1; printf("Digite o %i° Número: ",cont); scanf("%f", &num); resultado = resultado * num; printf("Tecle [1] para continuar a multiplicação, [2] para finalizar."); scanf("%i", &gProsseguir); if(gProsseguir != 1 && gProsseguir != 2) printf("Opção não encontrada !"); ++cont; } while(gProsseguir == 1); printf("\nO resultado da multiplicação é: %f ", resultado ); } void divisao(){ short int cont = 1; do{ if(cont== 1){ resultado = 1; printf("Digite o %i° Número: ",cont); scanf("%f", &num); resultado = num/resultado; } else{ printf("Digite o %i° Número: ",cont); scanf("%f", &num); if(num <1){ printf("Impossivel dividir por números menores que 1\n"); num = 1; } else{ resultado = resultado/num; } } if(cont >1 && num <1){ printf("Impossivel dividir por números menores que 1\n"); num = 1; } printf("Tecle [1] para continuar a divisão, [2] para finalizar."); scanf("%i", &gProsseguir); if(gProsseguir != 1 && gProsseguir != 2) printf("Opção não encontrada !"); ++cont; } while(gProsseguir == 1); printf("\nO resultado da divisão é: %f ", resultado); } void IMC(){ do{ printf("Digite seu peso: ") ;scanf("%f", &gPeso); printf("Digite sua altura: ") ;scanf("%f", &gAltura); resultado = gPeso / (gAltura*gAltura); if(resultado < 18.5) printf("Abaixo do peso.\n"); else if(resultado >= 18.5 && resultado < 24.9) printf("Peso normal.\n"); else if(resultado >= 24.9 && resultado < 29.9) printf("Sobrepeso.\n"); else if(resultado >=29.9 && resultado < 34.9) printf("Obesidade I.\n"); else if(resultado >=34.9 && resultado < 39.9) printf("Obesidade II.\n"); else if(resultado >= 39.9) printf("Obesidade III.\n"); printf("Tecle [1] para continuar usando o IMC, [2] para finalizar.");scanf("%i", &gProsseguir); } while(gProsseguir == 1); } void raiz(){ do{ printf("Digite o número para achar a raiz quadrada: "); scanf("%f", &num); if(num <= 0){ printf("Não existe raiz de números menores ou iguais a 0."); } else{ resultado = sqrt(num); printf("\nA raiz é: %f\n", resultado ); printf("Tecle [1] para achar a raiz de outro número, [2] para finalizar."); scanf("%i", &gProsseguir); if(gProsseguir != 1 && gProsseguir != 2) printf("Opção não encontrada !"); } } while(gProsseguir == 1); } void areaQuadrado(){ do{ printf("Digite um lado do quadrado: "); scanf("%f", &num); if(num <= 0){ printf("Valor Digitado incorreto !"); } else{ resultado = num * num; printf("\nA área do quadrado é: %fm²\n", resultado); printf("Tecle [1] para achar a área de outro quadrado, [2] para finalizar."); scanf("%i", &gProsseguir); if(gProsseguir != 1 && gProsseguir != 2) printf("Opção não encontrada !"); } } while(gProsseguir == 1); } void areaRetangulo(){ do{ printf("Digite o lado do retângulo: "); scanf("%f", &num); printf("Digite a altura do retângulo:"); scanf("%f", &num2); if(num <= 0 || num2 <=0){ printf("Valor Digitado incorreto !"); } else{ resultado = num * num2; printf("\nA área do retângulo é: %fm²\n", resultado); printf("Tecle [1] para achar a área de outro retângulo, [2] para finalizar."); scanf("%i", &gProsseguir); if(gProsseguir != 1 && gProsseguir != 2) printf("Opção não encontrada !"); } } while(gProsseguir == 1); } void areaTriangulo(){ do{ printf("Digite a base do triângulo: "); scanf("%f", &num); printf("Digite a altura do triângulo:"); scanf("%f", &num2); if(num <= 0 || num2 <=0){ printf("Valor Digitado incorreto !"); } else{ resultado = (num * num2) / 2; printf("\nA área do triângulo é: %fm²\n", resultado); printf("Tecle [1] para achar a área de outro triângulo, [2] para finalizar."); scanf("%i", &gProsseguir); if(gProsseguir != 1 && gProsseguir != 2) printf("Opção não encontrada !"); } } while(gProsseguir == 1); } void areaCirculo(){ do{ printf("Digite o raio do círculo "); scanf("%f", &num); if(num <= 0){ printf("Valor Digitado incorreto !"); } else{ resultado = 3.14 * (num * num); printf("\nA área do círculo é: %fm²\n", resultado); printf("Tecle [1] para achar a área de outro círculo, [2] para finalizar."); scanf("%i", &gProsseguir); if(gProsseguir != 1 && gProsseguir != 2) printf("Opção não encontrada !"); } } while(gProsseguir == 1); } void areaTrapezio(){ do{ printf("Digite a base maior do trapézio: "); scanf("%f", &num); printf("Digite a base menor do trapézio: "); scanf("%f", &num2); printf("Digite a altura do trapézio: "); scanf("%f", &gAltura); if(num <= 0 || num2 <= 0){ printf("Valor Digitado incorreto !"); } else{ resultado = ((num + num2) * gAltura) / 2; printf("\nA área do trapézio é: %fm²\n", resultado); printf("Tecle [1] para achar a área de outro trapézio, [2] para finalizar."); scanf("%i", &gProsseguir); if(gProsseguir != 1 && gProsseguir != 2) printf("Opção não encontrada !"); } } while(gProsseguir == 1); }
  9. Boa, sistema que cadastra 5 notas de 3 alunos e mostra quais passaram ou não. [code]#include<stdio.h> #include<locale.h> int main(){ setlocale(LC_ALL,""); float total; struct dados{ float notas[5]; float nFinal; }; struct dados alunos[3]; for(int i = 0; i <3; ++i){ for(int j = 0; j<5; ++j){ printf("Digite a %i° nota, do %i° aluno: ", j+1, i+1); scanf("%f", &alunos[i].notas[j]); total = total + alunos[i].notas[j]; } alunos[i].nFinal = total / 5; total = 0; } for(int i = 0; i < 3; ++i){ if(alunos[i].nFinal >= 5) printf("\nAprovado:Aluno %i, Nota:%f\n", i+1, alunos[i].nFinal); else printf("\nReprovado:Aluno %i, Nota:%f\n", i+1, alunos[i].nFinal); } return 0; }[/code]
  10. -RafaelSF-

    Jogo da Velha

    Boa, jogo da velha feito em C, qualquer erro comentem. #include<stdio.h> #include<windows.h> #include<locale.h> int main(){ setlocale(LC_ALL, ""); int linhaEscolhida, colunaEscolhida, fim = 0, lugarjaUsado = 0; int jogodaVelha[3][3] = {0}; // Mostra campo for(int linhas = 0; linhas < 3; ++linhas){ for(int colunas = 0; colunas < 3; ++colunas){ printf("%i ", jogodaVelha[linhas][colunas]); } printf("\n"); } // Ciclo principal while(fim != 1){ // Ciclo do primeiro jogador for(int tentativaJogador1 = 0; tentativaJogador1 < 1; ++tentativaJogador1){ do{ if(lugarjaUsado == 1){ for(int linhas = 0; linhas < 3; ++linhas){ for(int colunas = 0; colunas < 3; ++colunas){ printf("%i ", jogodaVelha[linhas][colunas]); } printf("\n"); } } printf("Vez do Jogador 1\n"); printf("Digite a posição para jogar:\n"); scanf("%i%i", &linhaEscolhida, &colunaEscolhida); system("cls"); if(jogodaVelha[linhaEscolhida][colunaEscolhida] != 0){ printf("Lugar escolhido já está sendo usado !\n"); lugarjaUsado = 1; } else{ jogodaVelha[linhaEscolhida][colunaEscolhida] = 1; break; } } while(lugarjaUsado == 1); // Zera lugar pra não bugar no if lugarjaUsado = 0; } // Mostra campo for(int linhas = 0; linhas < 3; ++linhas){ for(int colunas = 0; colunas < 3; ++colunas){ printf("%i ", jogodaVelha[linhas][colunas]); } printf("\n"); } // Ver se jogador 1 venceu if(jogodaVelha[0][0] == 1 && jogodaVelha[0][1] ==1 && jogodaVelha[0][2] ==1){ printf("Jogador 1 Venceu !"); fim = 1; break; } else if(jogodaVelha[1][0] == 1 && jogodaVelha[1][1] == 1&& jogodaVelha[1][2] == 1){ printf("Jogador 1 Venceu !"); fim = 1; break; } else if(jogodaVelha[2][0] == 1 && jogodaVelha[2][1] == 1&& jogodaVelha[2][2] == 1){ printf("Jogador 1 Venceu !"); fim = 1; break; } else if(jogodaVelha[0][0] == 1 && jogodaVelha[1][0] == 1&& jogodaVelha[2][0] == 1){ printf("Jogador 1 Venceu !"); fim = 1; break; } else if(jogodaVelha[0][1] == 1 && jogodaVelha[1][1] == 1 && jogodaVelha[2][1] == 1){ printf("Jogador 1 Venceu !"); fim = 1; break; } else if(jogodaVelha[0][2] == 1 && jogodaVelha[1][2] == 1 && jogodaVelha[2][2] == 1){ printf("Jogador 1 Venceu !"); fim = 1; break; } else if(jogodaVelha[0][0] == 1 && jogodaVelha[1][1] == 1 && jogodaVelha[2][2] == 1) { printf("Jogador 1 Venceu !"); fim = 1; break; } else if(jogodaVelha[2][0] == 1 && jogodaVelha[1][1] == 1 && jogodaVelha[0][2] == 1){ printf("Jogador 1 Venceu !"); fim = 1; break; } // Ciclo do segundo jogador for(int tentativaJogador2 = 0; tentativaJogador2 < 1; ++tentativaJogador2){ do{ if(lugarjaUsado == 1){ for(int linhas = 0; linhas < 3; ++linhas){ for(int colunas = 0; colunas < 3; ++colunas){ printf("%i ", jogodaVelha[linhas][colunas]); } printf("\n"); } } printf("Vez do Jogador 2\n"); printf("Digite a posição para jogar:\n"); scanf("%i%i", &linhaEscolhida, &colunaEscolhida); system("cls"); if(jogodaVelha[linhaEscolhida][colunaEscolhida] != 0) { printf("Lugar escolhido já está sendo usado !\n"); lugarjaUsado = 1; } else{ jogodaVelha[linhaEscolhida][colunaEscolhida] = 2; break; } } while(lugarjaUsado == 1); } // Zera lugar pra não bugar no if lugarjaUsado = 0; // Mostra campo for(int linhas = 0; linhas < 3; ++linhas){ for(int colunas = 0; colunas < 3; ++colunas){ printf("%i ", jogodaVelha[linhas][colunas]); } printf("\n"); } // Ver se jogador 2 venceu if(jogodaVelha[0][0] == 2 && jogodaVelha[0][1] ==2 && jogodaVelha[0][2] ==2){ printf("Jogador 2 Venceu !"); fim = 1; break; } else if(jogodaVelha[1][0] == 2 && jogodaVelha[1][1] ==2&& jogodaVelha[1][2] == 2){ printf("Jogador 2 Venceu !"); fim = 1; break; } else if(jogodaVelha[2][0] == 2 && jogodaVelha[2][1] == 2 && jogodaVelha[2][2] == 2){ printf("Jogador 2 Venceu !"); fim = 1; break; } else if(jogodaVelha[0][0] == 2 && jogodaVelha[1][0] == 2 && jogodaVelha[2][0] == 2){ printf("Jogador 2 Venceu !"); fim = 1; break; } else if(jogodaVelha[0][1] == 2 && jogodaVelha[1][1] == 2 && jogodaVelha[2][1] == 2){ printf("Jogador 2 Venceu !"); fim = 1; break; } else if(jogodaVelha[0][2] == 2 && jogodaVelha[1][2] == 2 && jogodaVelha[2][2] == 2){ printf("Jogador 2 Venceu !"); fim = 1; break; } else if(jogodaVelha[0][0] == 2 && jogodaVelha[1][1] == 2 && jogodaVelha[2][2] ==2) { printf("Jogador 2Venceu !"); fim = 1; break; } else if(jogodaVelha[2][0] == 2 && jogodaVelha[1][1] == 2 && jogodaVelha[0][2] == 2){ printf("Jogador 2 Venceu !"); fim = 1; break; } } for(int limparLinha = 0; limparLinha <3; ++limparLinha){ for(int limparColuna = 0; limparColuna <3; ++limparColuna){ jogodaVelha[limparLinha][limparColuna] = 0; } } return 0; }
  11. Dcan

    Introdução C

    C é uma linguagem de programação de propósito geral, estruturada, imperativa, procedural, de baixo nível e padronizada, criada em 1972, por Dennis Ritchie, nos laboratórios Bell, para ser usada no sistema operacional UNIX. Desde então, espalhou-se por muitos outros sistemas operativos, e tornou-se uma das linguagens de programação mais usadas. C tem como ponto forte, a sua eficiência, e é a linguagem de programação preferida para o desenvolvimento de sistemas e softwares de base, apesar de também ser usada para desenvolver programas de computador. É também muito usada no ensino de ciências da computação, mesmo não tendo sido projetada para estudantes e apresentando algumas dificuldades no seu uso. Outra característica importante de C, é sua proximidade do código de máquina, que permite que um projetista seja capaz de fazer algumas previsões de como o software irá se comportar, ao ser executado. C tem como ponto fraco, a falta de proteção que dá ao programador. Praticamente tudo que se expressa em um programa em C, pode ser executado, como por exemplo, pedir o vigésimo membro de um vetor com apenas dez membros. Os resultados são muitas vezes totalmente inesperados, e os erros, difíceis de encontrar.Muitas linguagens de programação foram influenciadas por C, sendo que a mais utilizada atualmente é C++, que por sua vez foi uma das inspirações para Java. História Desenvolvimentos Iniciais O desenvolvimento inicial de C, ocorreu nos laboratórios Bell da AT&T, entre 1969 e 1973. Segundo Ritchie, o período mais criativo ocorreu em 1972. Deu-se o nome "C" à linguagem porque muitas das suas características derivaram de uma linguagem de programação anterior chamada "B". Há vários relatos que se referem à origem do nome "B": Ken Thompson dá crédito à linguagem de programação BCPL mas ele também criou uma outra linguagem de programação chamada 'Bon', em honra da sua mulher Bonnie. Por volta de 1973, a linguagem C tinha se tornado suficientemente poderosa para que grande parte do núcleo de UNIX, originalmente escrito na linguagem de programação PDP-11/20 assembly, fosse reescrito em C. Este foi um dos primeiros núcleos de sistema operativo que foi implementado numa linguagem sem ser o assembly, sendo exemplos anteriores o sistema Multics (escrito em PL/I) e TRIPOS (escrito em BCPL). C ANSI e C ISO Durante os finais da década de 1970, a linguagem C começou a substituir a linguagem BASIC como a linguagem de programação de microcomputadores mais usada. Durante a década de 1980, foi adoptada para uso no PC IBM, e a sua popularidade começou a aumentar significativamente. Ao mesmo tempo, Bjarne Stroustrup, juntamente com outros nos laboratórios Bell, começou a trabalhar num projecto onde se adicionavam construções de linguagens de programação orientada por objectos à linguagem C. A linguagem que eles produziram, chamada C++, é nos dias de hoje a linguagem de programação de aplicações mais comum no sistema operativo Windows da companhia Microsoft; C permanece mais popular no mundo UNIX. Em 1983, o instituto norte-americano de padrões (ANSI) formou um comité, X3j11, para estabelecer uma especificação do padrão da linguagem C. Após um processo longo e árduo, o padrão foi completo em 1989 e ratificado como ANSI X3.159-1989 "Programming Language C". Esta versão da linguagem é freqüentemente referida como C ANSI. Em 1990, o padrão C ANSI, após sofrer umas modificações menores, foi adotado pela Organização Internacional de Padrões (ISO) como ISO/IEC 9899:1990. Um dos objetivos do processo de padronização C ANSI foi o de produzir um sobreconjunto do C K&R, incorporando muitas das características não-oficiais subseqüentemente introduzidas. Entretanto, muitos programas tinham sido escritos e que não compilavam em certas plataformas, ou com um certo compilador, devido ao uso de bibliotecas de funções não-padrão e ao fato de alguns compiladores não aderirem ao C ANSI. C99 Após o processo ANSI de padronização, as especificações da linguagem C permaneceram relativamente estáticas por algum tempo, enquanto que a linguagem C++ continuou a evoluir. (em 1995, a Normative Amendment 1 criou uma versão nova da linguagem C mas esta versão raramente é tida em conta.) Contudo, o padrão foi submetido a uma revisão nos finais da década de 1990, levando à publicação da norma ISO 9899:1999 em 1999. Este padrão é geralmente referido como "C99". O padrão foi adoptado como um padrão ANSI em Março de 2000. As novas características do C99 incluem: funções em linha remoção de restrições sobre a localização da declaração de variáveis (como em C++) adição de vários tipos de dados novos, incluindo o long long int (para minimizar problemas na transição de 32-bits para 64-bits), um tipo de dados boolean explicito (chamado _Bool) e um tipo complex que representa números complexos vetores de dados de comprimento variável (o vetor pode ter um tamanho diferente a cada execução de uma função, mas não cresce depois de criado) suporte oficial para comentários de uma linha iniciados por //, emprestados da linguagem C++ várias funções de biblioteca novas, tais como snprintf() vários ficheiros-cabeçalho novos, tais como stdint.h O interesse em suportar as características novas de C99 parece depender muito das entidades. Apesar do GCC e vários outros compiladores suportarem grande parte das novas características do C99, os compiladores mantidos pela Microsoft e pela Borland suportam pouquíssimos recursos do C99, e estas duas companhias não parecem estar muito interessadas em adicionar tais funcionalidades, ignorando por completo as normas internacionais. A Microsoft parece preferir dar mais ênfase ao C++. Visão Geral C é uma linguagem imperativa e procedural, para implementação de sistemas. Seus pontos de design foram para ele ser compilado, fornecendo acesso de baixo nível à memória e baixos requerimentos do hardware. Também foi desenvolvido para ser uma linguagem de alto nível, para maior reaproveitamento do código. C foi útil para muitas aplicações que forma codificadas originalmente em Assembly. Essa propriedade não foi acidental; a linguagem C foi criada com o objectivo principal em mente: facilitar a criação de programas extensos com menos erros, recorrendo ao paradigma da programação algorítmica ou procedimental, mas sobrecarregando menos o autor do compilador, cujo trabalho complica-se ao ter de realizar as características complexas da linguagem. Para este fim, a linguagem C possui as seguintes características: Uma linguagem nuclear extremamente simples, com funcionalidades não-essenciais, tais como funções matemáticas ou manuseamento de ficheiros (arquivos), fornecida por um conjunto de bibliotecas de rotinas padronizada; A focalização no paradigma de programação procedimental; Um sistema de tipos simples que evita várias operações que não fazem sentido Uso de uma linguagem de pré-processamento, o pré-processador de C, para tarefas tais como a definição de macros e a inclusão de múltiplos ficheiros de código fonte; Um acesso de baixo-nível à memória do computador, através do uso de ponteiros; Parâmetros que são sempre passados por valor para as funções e nunca por referência (É possível simular a passagem por referência com o uso de ponteiros); Definição do alcance lexical de variáveis; Estruturas de variáveis, (structs), que permitem que dados relacionados sejam combinados e manipulados como um todo. Algumas características úteis, que faltam em C, podem ser encontradas em outras linguagens, que incluem: Segurança de tipo; Coletor de lixo (mais encontrado em linguagens interpretadas); Vetores que crescem automaticamete; Classes ou objectos com comportamento (ver orientação a objetos); Um sistema avançado de sistema de tipos; Closures; Funções aninhadas; Programação genérica; Sobrecarga de operadores; Meta-programação; Apoio nativo de multithreading e comunicação por rede. Apesar da lista de características úteis que C não possui ser longa, isso não tem sido um impedimento à sua aceitação, pois isso permite que novos compiladores de C sejam escritos rapidamente para novas plataformas, e também permite que o programador permaneça sempre em controle do que o programa está a fazer. Isto é o que por várias vezes permite o código de C correr de uma forma mais eficiente que muitas outras linguagens. Tipicamente, só código de assembly "afinado à mão" é que corre mais rapidamente, pois possui um controle completo da máquina, mas avanços na área de compiladores juntamente com uma nova complexidade nos processadores modernos permitiram que a diferença tenha sido rapidamente eliminada. Uma consequência da aceitação geral da linguagem C é que frequentemente os compiladores, bibliotecas e até intérpretes de outras linguagens de nível maior sejam eles próprios implementados em C.
  12. Eae galera, vou postar esse vídeo que fiz ontem mostrando como a galera pode fazer uma calculadora simples em C. Não liguem pra minha voz zoada uaheuahe Nos próximos vídeos ensino como hackear, descobrir endereços e tudo mais.. Até mais.
  13. #include <stdio.h> int main(){ int escolha = -1; do{ printf("Opção 1\n"); printf("Opção 2\n"); printf("Opção 3\n"); printf("Opção 4\n"); printf("0 - Exit\n"); scanf("%d",&escolha); switch (escolha){ case 1: printf("Você escolheu a opção 1\n");break; case 2: printf("Você escolheu a opção 2\n");break; case 3: printf("Você escolheu a opção 3\n");break; case 4: printf("Você escolheu a opção 4\n");break; } }while(escolha != 0); return 0; }
  14. Sistema onde é possivel cadastrar um usuario com seu nome, email e cpf, é possivel pesquisar e listar os usuarios cadastros... #include<stdio.h> #include<windows.h> #include<cstdlib> #include <string.h> #define SIZE 200 char nome[size][50]; char email[size][50]; int cpf[size]; int op; void cadastro(); void pesquisa(); void lista(); int main(void){ do{ system("cls"); printf("---------------------\n"); printf(" CADASTRO DE DADOS \n"); printf("---------------------\n"); printf("---------------------\n"); printf(" OPCOES \n"); printf("---------------------\n"); printf(" [1] - Cadastrar \n"); printf("---------------------\n"); printf(" [2] - Listar \n"); printf("---------------------\n"); printf(" [3] - Pesquisar \n"); printf("---------------------\n"); printf(" [4] - Sair \n"); printf("---------------------\n"); scanf("%d", &op); system("cls"); puts("\a"); switch(op){ case 1: cadastro(); break; case 2: lista(); break; case 3: pesquisa(); break; case 4: return EXIT_SUCCESS; break; default: printf("Opcao invalida!"); break; } } while(op !=4); } void lista(){ int i; int verificarRegistros = 0; printf("--------------------\n"); printf("LISTA DE CADASTRADOS\n"); printf("--------------------\n"); for(i = 0; i<SIZE; i++){ if(cpf[i] > 0){ printf("\nNome: %s\nE-mail: %s\nCPF: %d\n", nome[i], email[i], cpf[i]); printf("--------------------\n"); ++verificarRegistros; } else{ if(verificarRegistros > 0 ) printf("\nSem mais registros....\n"); else printf("\nSem registros....\n"); break; } } getchar(); getchar(); } void cadastro(){ static int linha; int tamanhoEmail; do{ printf("---------------------\n"); printf(" INFORMACOES \n"); printf("---------------------\n"); printf("\n Digite o nome: "); scanf("%s", nome[linha]); printf("\n Digite o e-mail:"); scanf("%s", email[linha]); tamanhoEmail = strlen(email[linha]); if(tamanhoEmail < 10){ printf("\n E-mail muito curto!"); getchar(); getchar(); } else{ printf("\n Digite o cpf:"); scanf("%d", &cpf[linha]); system("cls"); printf("\n Digite [1] para continuar ou outro valor para sair\n "); puts("\a"); scanf("%d", &op); system("cls"); linha++; } } while(op == 1); } void pesquisa(){ int cpfPesquisa; int i; char emailPesquisa[50]; do{ printf("\nDigite [1] para pesquisar por CPF\n"); scanf("%d", &op); system("cls"); if(op == 1){ printf("\n Digite o CPF:\n "); scanf("%d", &cpfPesquisa); system("cls"); for(i = 0; i<SIZE; i++){ if(cpf[i] == cpfPesquisa){ printf("\n Nome: %s\n E-mail %s\n CPF: %d", nome[i], email[i], cpf[i]); } else{ printf(" CPF nao encontrado!\n"); break; } } } else{ printf("\n Opcao Invalida!"); } printf("\n Digite [1] para continuar pesquisando ou outro valor para sair\n "); puts("\a"); scanf("%d", &op); } while(op == 1); } Baseado no video de Leonardo Hipólito, com algumas adaptaçoes....
  15. INTRODUÇÃO Muitas pessoas por aí já devem ter pensado em algum momento, "como será que skins são criadas?", então venho através deste compartilhar meu método de criação, tentando deixar tudo de forma clara, porém direta e caso haja alguma dúvida durante o processo ou sobre a parte técnica de algo, basta deixar seu comentário que irei lhe responder com prazer. Então, vamos lá. Assuntos a serem abordados: Ferramentas utilizadas; Criação do background; Desenhando o layout; Configurando o layout; Limpando o projeto; Colocando a mão na massa; Download. 1. Ferramentas utilizadas Neste tutorial irei utilizar os programas: • Adobe Photoshop CS6 • Visual Studio 2008 2. Criação do background O que você precisa ter em mente primeiramente é, quais cores você irá usar e qual o tamanho de sua aplicação. No meu caso eu optei por uma escala de cinza entre #515151 (cinza médio) a #404040 (cinza escuro), para destaque #ff8703 (laranja) junto a #aeaeae (cinza claro) e com o tamanho de 250x300. 3. Desenhando o layout Crie um novo projeto no PS com as dimensões escolhidas, faça um degradê (no meu caso optei por este método) com as cores desejadas e uma linha separando a barra de menus, a idéia segue abaixo: Seguindo a base previamente criada, dei umas mexidas e ajeitei ao meu gosto para deixar bem simples e visível o que quero fazer, segue o exemplo: Basta ressaltar que o exemplo acima não será usado no projeto, mas sim o mesmo sendo apenas um passo opcional e de pré visualização do resultado final. Depois disso feito, converta a primeira imagem para as dimensões 1x300 (o que irá diminuir drasticamente o tamanho do arquivo) e salve como layout.bmp. 4. Configurando o projeto Após feito o item 3, entre no VS2008 e crie um novo projeto Win32 Application e selecione Empty Project. Crie dois arquivos, main.cpp em Source Files e resource.rc em Resource Files e neste arquivo, adicione a imagem layout.bmp e os ícones da DarkProgramming. Neste exemplo, eu usei também uma biblioteca que criei tempos atrás para otimizar o tempo trabalhando com Win32App, adicione em Header Files: [spoiler=DlgUtils.h] void CreateMyClass(HINSTANCE hInst, WNDPROC WindowProc, HBRUSH BackColor, char* ClassName) { WNDCLASSEXA WindowClass; RtlZeroMemory(&WindowClass,sizeof(WNDCLASSEXA)); WindowClass.cbSize = sizeof(WNDCLASSEXA); WindowClass.hInstance = hInst; WindowClass.lpfnWndProc = WindowProc; WindowClass.hbrBackground = BackColor; WindowClass.lpszClassName = ClassName; WindowClass.hCursor = LoadCursorA(0, (char*)IDC_ARROW); WindowClass.style = CS_OWNDC | CS_VREDRAW | CS_HREDRAW; RegisterClassExA(&WindowClass); } HWND CreateMyForm(HINSTANCE hInst, char* ClassName, char* Caption, DWORD Width, DWORD Heigth, HICON Icon) { HWND Window = CreateWindowExA(0,ClassName, Caption,WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX, (GetSystemMetrics(SM_CXSCREEN) - Width) / 2, //Center X (GetSystemMetrics(SM_CYSCREEN) - Heigth) / 2, //Center Y Width,Heigth,0,0,hInst,0); if ((int)Icon != -1) SendMessageA(Window,WM_SETICON,0,(LPARAM)Icon); UpdateWindow(Window); return Window; } HWND CreateMyComponent(HINSTANCE hInst, char* ClassName, char* Caption, HFONT Font, int x, int y, int Width, int Heigth, HWND Parent, int StyleEx, int Style) { HWND Window = CreateWindowExA(StyleEx,ClassName,Caption, WS_CHILD | WS_VISIBLE | Style,x,y,Width,Heigth,Parent,0,hInst,0); if (Font != 0) SendMessageA(Window,WM_SETFONT,(WPARAM)Font,0); return Window; } HFONT CreateMyFont(char* FontName, int Size, int Style,BOOL Italic, BOOL Underline, BOOL Strikeout) { return CreateFontA(Size, 0, 0, 0, Style, DWORD(Italic),DWORD(Underline), DWORD(Strikeout), DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, FontName); } char* GetText(HWND Window) { char* Text = (char*)malloc(256); GetWindowTextA(Window,Text,256); return Text; } BOOL SetText(HWND Window, char* Text) { return SetWindowTextA(Window,Text); } void RemoveBorder(HWND hWnd) { long style = GetWindowLongA(hWnd,GWL_STYLE); SetWindowLongA(hWnd,GWL_STYLE,style &~ WS_BORDER &~ WS_DLGFRAME); } 5. Limpando o projeto Como já devem saber, várias IDEs costumam colocar "lixo" no meio das dos arquivos, então vamos limpá-lo e deixar tudo do jeito correto com apenas o necessário. Primeiramente exclua o arquivo resource.h e então clique com o botão direito no arquivo resource.rc e apague tudo exceto as linhas referentes ao ícone e a imagem, ficando assim: LAYOUT BITMAP "Resources\\layout.bmp" ICON64 ICON "Resources\\dp64.ico" ICON16 ICON "Resources\\dp16.ico" 6. Colocando a mão na massa Seguem abaixo as sources do arquivos, em caso de quaisquer dúvidas, basta me perguntar que lhe responderei com prazer. [spoiler=main.cpp] //############################################################################# //################################# Includes ################################## //############################################################################# #include <Windows.h> #include "DlgUtils.h" //############################################################################# //################################# Constants ################################# //############################################################################# #define Orange 0x000387ff #define DarkGray 0x00404040 #define LightGray 0x00aeaeae #define Width 250 #define Height 300 #define fntName "Lucida Console" #define clsName "DP_CLASS" #define txtTitle "DP Skin Preview" #define txtFooter "-= DarkProgramming Team =-" const HBRUSH hBrushOrange = CreateSolidBrush(Orange); const HBRUSH hBrushDarkGray = CreateSolidBrush(DarkGray); const HPEN hPenOrange = CreatePen(PS_SOLID,1,Orange); //############################################################################# //################################# Variables ################################# //############################################################################# MSG Msg; HANDLE icon; HINSTANCE hInst; HFONT fntDefault; HFONT fntSize12; HFONT fntSize10; //Controls HWND frmMain; HWND lblClose; HWND lbList; HWND edtView; //############################################################################# //################################## Methods ################################## //############################################################################# int __stdcall WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { long Result = 0; if (uMsg == WM_PAINT) { //Pintira do form PAINTSTRUCT ps; RECT rcTitle = {30,9,150,20}; RECT rcFooter = {0,Height-23,Width,Height-1}; RECT rcList = {7,60,Width-8,Height-22}; BeginPaint(hWnd,&ps); DrawIconEx(ps.hdc,7,7,(HICON)icon,16,16,0,0,DI_NORMAL); //Desenha o ícone SetTextColor(ps.hdc,Orange); SetBkMode(ps.hdc,TRANSPARENT); SelectObject(ps.hdc,fntDefault); SelectObject(ps.hdc,hBrushOrange); SelectObject(ps.hdc,hPenOrange); DrawTextA(ps.hdc,txtTitle,sizeof(txtTitle),&rcTitle,DT_LEFT); //Desenha o título SelectObject(ps.hdc,fntSize10); SetTextColor(ps.hdc,LightGray); DrawTextA(ps.hdc,txtFooter,sizeof(txtFooter),&rcFooter,DT_CENTER | DT_VCENTER | DT_SINGLELINE); //Desenha o rodapé Rectangle(ps.hdc,Width-26,6,Width-26+19,19+6); //Desenha o quadrado do botão sair SetBkColor(ps.hdc,TRANSPARENT); Rectangle(ps.hdc,rcList.left,rcList.top,rcList.right,rcList.bottom); //Desenha o quadrado do listbox EndPaint(hWnd,&ps); } else { Result = DefWindowProcA(hWnd,uMsg,wParam,lParam); if (uMsg == WM_NCHITTEST) { //Mover a janela clicando na nossa barra de menu POINT pt = {LOWORD(lParam),HIWORD(lParam)}; RECT rect = {0,0,Width,30}; ScreenToClient(hWnd,&pt); if ((PtInRect(&rect,pt)) && (Result == HTCLIENT)) Result = HTCAPTION; } else if (uMsg == WM_COMMAND) { if ((HWND)lParam == lblClose) { //OnClick do "botão" fechar SendMessageA(hWnd,WM_DESTROY,0,0); } else if (((HWND)lParam == lbList) && (HIWORD(wParam) == LBN_SELCHANGE)) { //OnSelChanged do listbox char buffer[25]; long index = SendMessageA(lbList,LB_GETCURSEL,0,0); if (index != -1) { SendMessageA(lbList,LB_GETTEXT,(WPARAM)index,(LPARAM)&buffer); SetText(edtView,buffer); } } } else if (uMsg == WM_CTLCOLORSTATIC) { if ((HWND)lParam == lblClose) { //Pintura do "botão" fechar SetTextColor((HDC)wParam,DarkGray); SetBkMode((HDC)wParam,TRANSPARENT); Result = (long)GetStockObject(NULL_BRUSH); } else if ((HWND)lParam == edtView) { //Pintura do edit de visualização RECT rect; GetClientRect((HWND)lParam,&rect); SetTextColor((HDC)wParam,Orange); SetBkMode((HDC)wParam,TRANSPARENT); SelectObject((HDC)wParam,hBrushDarkGray); SelectObject((HDC)wParam,hPenOrange); Rectangle((HDC)wParam,0,0,rect.right-rect.left,rect.bottom-rect.top); Result = (long)GetStockObject(NULL_BRUSH); } } else if (uMsg == WM_CTLCOLORLISTBOX) { //Pintura do listbox SetTextColor((HDC)wParam,Orange); SetBkColor((HDC)wParam,DarkGray); Result = (long)hBrushDarkGray; } else if (uMsg == WM_DESTROY) { //Encerramento da aplicação PostQuitMessage(0); } } return Result; } int __stdcall WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil) { hInst = hThisInstance; //Salvando a Instância para uso posterior HBITMAP layout = LoadBitmapA(hInst,"LAYOUT"); //Obtendo nosso layout.bmp HICON icon64 = (HICON)LoadImageA(hInst,"ICON64",IMAGE_ICON,64,64,LR_LOADTRANSPARENT); //Obtendo nosso dp64.ico icon = LoadImageA(hInst,"ICON16",IMAGE_ICON,16,16,LR_LOADTRANSPARENT); //Obtendo nosso dp16.ico fntSize10 = CreateMyFont(fntName,10,FW_NORMAL,FALSE,FALSE,FALSE); //Criando a fonte 10 fntSize12 = CreateMyFont(fntName,12,FW_NORMAL,FALSE,FALSE,FALSE); //Criando a fonte 12 fntDefault = CreateMyFont(fntName,14,FW_NORMAL,FALSE,FALSE,FALSE); //Criando a fonte 14, principal do projeto CreateMyClass(hInst,(WNDPROC)WindowProc,CreatePatternBrush(layout),clsName); //Criando nossa Classe frmMain = CreateMyForm(hInst,clsName,"DarkProgramming",Width,Height,icon64); //Criando o formulário principal RemoveBorder(frmMain); //Removendo as bordas e menu padrões lblClose = CreateMyComponent(hInst,"Static","X",fntDefault,Width-26,7,19,19,frmMain,0,SS_CENTER | SS_CENTERIMAGE | SS_NOTIFY); //Criando o botão de fechamento edtView = CreateMyComponent(hInst,"Edit",0,fntDefault,7,39,Width-15,14,frmMain,0,ES_READONLY); //Criando o edit de visualização lbList = CreateMyComponent(hInst,"ListBox",0,fntSize12,8,61,Width-17,Height-63,frmMain,0,LBS_NOTIFY); //Criando o listbox for (int i = 1; i <= 15; i++) { char buffer[25]; wsprintfA(buffer,"DarkProgramming %d",i); SendMessageA(lbList,LB_ADDSTRING,0,(LPARAM)&buffer); } while (GetMessageA(&Msg,0,0,0)) { TranslateMessage(&Msg); DispatchMessageA(&Msg); } return 0; } 7. Download [Download] CONCLUSÃO Tentei deixar tudo bem simples e direto, pois apesar de que a primeira vista isso parecer complexo, basta um pouco de prática que tudo se resolve. :) Créditos Nytex
  16. INTRODUÇÃO Hoje em dia muitos programadores começaram a se preocupar com o quesito proteção contra as práticas da RCE (Reverse Code Engineering), mas muitos deles ainda utilizam de conhecimento simples e limitado, o que em grande maioria, contam com o uso de algo muito comum, do qual irei abordar hoje, falo da API (Application Programming Interface) IsDebuggerPresent. Os exemplos a seguir serão baseados nas linguagens C e Assembly e no disassembler OllyDbg. Assuntos a serem abordados: Usabilidade; Visão geral no disassembler; Como contornar com alterações físicas da memória estática do processo; Como contornar sem alterações físicas da memória estática do processo. 1. Usabilidade IsDebuggerPresent trata-se de uma função sem parâmetros de entrada cujo retorno é do tipo bool onde irá retornar true caso haja a presença de um depurador na aplicação e false caso não haja, exemplo: if (IsDebuggerPresent()) MessageBoxA(0,"Depurador detectado.","Atenção",MB_ICONWARNING); 2. Visão geral no disassembler 1. Função IsDebuggerPresent vista pelo depurador OllyDbg. Como podem ver, ela é uma função bem simples e pequena da qual irá apenas obter o valor de uma flag (BeingDebugged) com o tamanho de 1 byte localizado dentro da estrutura PEB (Process Environment Block) do processo. 3. Como contornar com alterações físicas da memória estática do processo 2. Função IsDebuggerPresent vista pelo depurador OllyDbg. O que foi feito não foi nada menos do que forçar o retorno false de todas as chamadas para essa API. Lógica: xor eax,eax //Instrução bit a bit que forçará o valor de 0 ao registrador eax ret //retorno forçado impedindo a execução do restante da função 4. Como contornar sem alterações físicas da memória estática do processo Forçamos assim o valor false diretamente no PEB. __declspec(naked) long GetPEB() { __asm { mov eax,fs:[30h] ret } } void DisableIsDebuggerPresent() { long peb = GetPEB(); //Obtendo o PEB *(char*)(peb + 2) = 0; //Alterando o valor para 0 (false) } CONCLUSÃO Apesar das falhas e simplicidade, essa é uma das APIs mais usadas quando o assunto é Anti RCE, porém é claro, o uso de tal hoje em dia é praticamente obsoleto, pois não se é preciso de muito para contorná-la. Créditos Nytex
  17. luis3232

    Jogo da Velha

    Eai, faz tempo que não posto nada no fórum, então decidi compartilhar esse código do jogo da velha. Fiz esse jogo como um " projeto final " do primeiro período da faculdade :p #include <stdio.h> #include <stdlib.h> #define Tamanho 4 int vez; void CriarTabuleiro(int Jogada[][Tamanho]) { int i, j; printf("\n"); for(i = 1; i < 4; i++) { for(j = 1; j < 4; j++) { if( Jogada[i][j] == 1 ) { printf(" X"); } else if( Jogada[i][j] == 2 ) { printf(" O"); } printf("\t|"); } printf("\n"); } printf("\n"); } void ZerarTabuleiro(int Jogada[][Tamanho]) { int i, j; for(i = 1; i < 4; i++) { for(j = 1; j < 4; j++) { Jogada[i][j] = 0; } } } int ChecarLocal(int Jogada[][Tamanho], int linha, int coluna) { if(linha < 0 || linha > (Tamanho-1) || coluna < 0 || coluna > (Tamanho-1) || Jogada[linha][coluna] == 1 || Jogada[linha][coluna] == 2 ) return 0; else return 1; } int TerminoContadas(int contador) { if(contador >= 10) return 1; return 0; } int TerminoFinal(int Jogada[][Tamanho]) { if( /*Linhas */ Jogada[1][1] == 1 && Jogada[1][2] == 1 && Jogada[1][3] == 1 || Jogada[2][1] == 1 && Jogada[2][2] == 1 && Jogada[2][3] == 1 || Jogada[3][1] == 1 && Jogada[3][2] == 1 && Jogada[3][3] == 1 || /*Diagonal*/ Jogada[1][1] == 1 && Jogada[2][2] == 1 && Jogada[3][3] == 1 || Jogada[1][3] == 1 && Jogada[2][2] == 1 && Jogada[3][1] == 1 || /*Reto*/ Jogada[1][1] == 1 && Jogada[2][1] == 1 && Jogada[3][1] == 1 || Jogada[1][2] == 1 && Jogada[2][2] == 1 && Jogada[3][2] == 1 || Jogada[1][3] == 1 && Jogada[2][3] == 1 && Jogada[3][3] == 1 ) return 1; if( /*Linhas */ Jogada[1][1] == 2 && Jogada[1][2] == 2 && Jogada[1][3] == 2 || Jogada[2][1] == 2 && Jogada[2][2] == 2 && Jogada[2][3] == 2 || Jogada[3][1] == 2 && Jogada[3][2] == 2 && Jogada[3][3] == 2 || /*Diagonal*/ Jogada[1][1] == 2 && Jogada[2][2] == 2 && Jogada[3][3] == 2 || Jogada[1][3] == 2 && Jogada[2][2] == 2 && Jogada[3][1] == 2 || /*Reto*/ Jogada[1][1] == 2 && Jogada[2][1] == 2 && Jogada[3][1] == 2 || Jogada[1][2] == 2 && Jogada[2][2] == 2 && Jogada[3][2] == 2 || Jogada[1][3] == 2 && Jogada[2][3] == 2 && Jogada[3][3] == 2 ) return 2; return 0; } void Jogar(int Jogada[][Tamanho]) { int linha, coluna, vencedor, contada = 1; printf("1 jogada :\n\n"); CriarTabuleiro(Jogada); for (;;) { inicio: printf("Vez do jogador : %d\n\nDigite a linha : ", vez % 2 + 1); scanf("%d", &linha); printf("Digite a coluna : "); scanf("%d", &coluna); system("cls"); if( ChecarLocal(Jogada, linha, coluna) == 0 ) { printf("\nFaca a jogada novamente!\n\n"); CriarTabuleiro(Jogada); printf("\n\n"); goto inicio; } printf("%d Jogada :\n\n", vez + 2); printf("\n\n"); if( vez % 2 == 0 ) { Jogada[linha][coluna] = 1; contada++; } else if( vez % 2 == 1 ) { Jogada[linha][coluna] = 2; contada++; } CriarTabuleiro(Jogada); vez++; if( TerminoFinal(Jogada) == 1 ) { vencedor = 1; break; } if( TerminoFinal(Jogada) == 2 ) { vencedor = 2; break; } if( TerminoContadas(contada) == 1 ) { vencedor = 3; break; } printf("\n\n"); } if( vencedor == 3 ) printf("\n\nO jogo terminou em empate !\n\n"); if( vencedor == 1 || vencedor == 2 ) printf("\n\nO jogo terminou !\n\nO vencedor foi : Jogador %d\n\n", vencedor); } void Jogo(int Jogada[][Tamanho]) { ZerarTabuleiro(Jogada); vez = 0; Jogar(Jogada); } int main() { char c; int Jogada[Tamanho][Tamanho]; do{ Jogo(Jogada); printf("\nDeseja jogar novamente ?\n\nS ou s para sim\n\n"); scanf("%s", &c); system("cls"); } while(c == 'S' || c == 's'); printf("O jogo sera fechado !\n"); return 0; } É isso, qualquer coisa só comentar ai, fui.
  18. Como eu faço para criar um arquivo .txt em linguagem C, no qual o usuário digita o nome do arquivo ... Exemplo, o usuário digita TESTE e aí cria o arquivo TESTE.txt .
  19. Não tenho certeza se esta é a área correta, se não, peço humildemente que reencaminhem meu post ... Estou trazendo uma calculadora vetorial que programei em C para um trabalho proposto ... queria saber quais dicas poderiam me dar, se o trabalho está bom, e se podem me ajudar em uma dúvida na parte do cálculo do ângulo entre os vetores, porque quando faço acos((escalar)/(moduloA * moduloB)) já não deveria dar a resposta do ângulo entre os vetores em graus? Esta vindo em radianos, aí tenho que converter para graus multiplicando por 180/pi ... É assim mesmo ? A função acos dá a resposta em radianos ou estou viajando e errando alguma coisa no cálculo? E se for em radianos mesmo, tem como colocar em graus ? ... Esse foi o exercício proposto: "Codifique uma calculadora específica para operações entre vetores. Inicialmente, o usuário deve informar a operação desejada(adição,subtração,produto escalar,produto vetorial, módulo, ângulo entre vetores). Em seguida, o aplicativo prossegue com a entrada dos vetores, sabendo que, para o caso da operação módulo, apenas 1 vetor é usado. Finalmente, o programa exibe o resultado e retorna ao estado inicial. " E aqui meu programa: #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { printf("\nBem vindo,\n\nCalculadora Vetorial Deus - Versao 1.0.0.1\n\n"); //Menu de Opções: int o; for(o = 1; o <= 160; o++){ printf("="); if(o == 80){ printf("Operacoes entre Vetores\n"); } } printf("\n\n1)Adicao\n2)Subtracao\n3)Produto Escalar\n4)Produto Vetorial\n5)Modulo\n6)Angulo entre vetores\n0)Sair\n\n"); for(o = 1; o <= 80; o++){ printf("="); } // Laço de Operações: while(0 == 0){ //Declaração dos Vetores: float Ax, Ay, Az; float Bx, By, Bz; float Cx, Cy, Cz;//Vetor Resultante //Selecionar opção de Operação: int opcao; printf("\n\nPressione um numero de 0 a 6 para selecionar uma opcao de operacao (respectivo ao menu de operacoes):"); scanf("%d",&opcao); while((((opcao == 1)||(opcao == 2))||((opcao == 3)||(opcao == 4)))||(opcao == 6)){ // Informando Vetores: printf("\nInforme o vetor A (separe por espacos):"); scanf("%f %f %f", &Ax, &Ay,&Az); printf("Informe o vetor B (separe por espacos):"); scanf("%f %f %f", &Bx, &By,&Bz); if(opcao == 1){ printf("\nOpcao de operacao selecionada - Adicao.\n"); Cx = Ax+Bx; Cy = Ay+By; Cz = Az+Bz; printf("\nVetor Resultante = (%.2f, %.2f, %.2f).\n",Cx,Cy,Cz); break; } else if(opcao == 2){ printf("\nOpcao de operacao selecionada - Subtracao.\n"); Cx = Ax-Bx; Cy = Ay-By; Cz = Az-Bz; printf("\nVetor Resultante = (%.2f, %.2f, %.2f).\n",Cx,Cy,Cz); break; } else if(opcao == 3){ printf("\nOpcao de operacao selecionada - Produto Escalar.\n"); float escalar; escalar = Ax*Bx + Ay*By + Az*Bz; printf("\nProduto Escalar = [%.2f].\n",escalar); if (escalar==0){ printf(" Os vetores sao ortogonais.\n"); } break; } else if(opcao == 4){ printf("\nOpcao de operacao selecionada - Produto Vetorial.\n"); Cx = (Ay*Bz) - (Az*By); Cy = (Az*Bx) - (Ax*Bz); Cz = (Ax*By) - (Ay*Bx); printf("\nProduto Vetorial = (%.2f, %.2f, %.2f).\n",Cx,Cy,Cz); if (Cx == 0 && Cy ==0 && Cz == 0){ printf("\nOs vetores sao paralelos.\n"); } break; } else if(opcao == 6){ printf("\nOpcao de operacao selecionada - Angulo.\n"); float escalar; escalar = Ax*Bx + Ay*By + Az*Bz; float moduloA, moduloB; moduloA = sqrt(Ax*Ax + Ay*Ay + Az*Az); moduloB = sqrt(Bx*Bx + By*By + Bz*Bz); float angulo; angulo = ((acos((escalar)/(moduloA * moduloB)))*180)/(M_PI); printf("\nAngulo Entre os Vetores = %.2f Grau. \n",angulo); break; } } if(opcao == 5){ printf("\nOpcao de operacao selecionada - Modulo.\n"); float modulo; printf("\nInforme o vetor(separe por espacos):"); scanf("%f %f %f", &Ax, &Ay,&Az); modulo = sqrt(Ax*Ax + Ay*Ay + Az*Az); printf("\nModulo = %.2f\n",modulo); } if(opcao == 0){ printf("\nOpcao de operacao selecionada - Sair.\n"); exit(0); } if((opcao>6) || (opcao<0)){ printf("\nOps, voce cometeu um erro... As opcoes de operacao vao de 0 a 6.\n\n"); } } return 0; }
  20. 'Dionísio

    Batalha Naval

    Funções: void inicializaTabuleiro() - inicialmente coloca o valor -1 em todas as partes do tabuleiro void mostraTabuleiro() - recebe o tabuleiro de inteiros e os exibe void iniciaNavios() - esse função sorteia 3 pares de inteiros, que são a localização dos 3 navios void darTiro() - recebe um tiro (linha e coluna) do usuário, e armazena na variável tiro[] boolean acertou() - checa se o tiro dado acertou um navio void dica() - dá a dica de quantos navios existem naquela linha e naquela coluna onde o tiro foi dado void alteraTabuleiro() - após o tiro ser dado, o tabuleiro é alterado, mostrando o tiro que foi dado(se acertou ou errou) #include <stdio.h> #include <stdlib.h> void inicializaTabuleiro(int tabuleiro[][5]) { int linha, coluna; for(linha=0 ; linha < 5 ; linha++ ) for(coluna=0 ; coluna < 5 ; coluna++ ) tabuleiro[linha][coluna]=-1; } void mostraTabuleiro(int tabuleiro[][5]) { int linha, coluna; printf("\t1 \t2 \t3 \t4 \t5"); printf("\n"); for(linha=0 ; linha < 5 ; linha++ ){ printf("%d",linha+1); for(coluna=0 ; coluna < 5 ; coluna++ ){ if(tabuleiro[linha][coluna]==-1){ printf("\t~"); }else if(tabuleiro[linha][coluna]==0){ printf("\t*"); }else if(tabuleiro[linha][coluna]==1){ printf("\tX"); } } printf("\n"); } } void iniciaNavios(int navios[][2]){ srand(time(NULL)); int navio, anterior; for(navio=0 ; navio < 3 ; navio++){ navios[navio][0]= rand()%5; navios[navio][1]= rand()%5; //agora vamos checar se esse par não foi sorteado //se foi, so sai do do...while enquanto sortear um diferente for(anterior=0 ; anterior < navio ; anterior++){ if( (navios[navio][0] == navios[anterior][0])&&(navios[navio][1] == navios[anterior][1]) ) do{ navios[navio][0]= rand()%5; navios[navio][1]= rand()%5; }while( (navios[navio][0] == navios[anterior][0])&&(navios[navio][1] == navios[anterior][1]) ); } } } void darTiro(int tiro[2]) { printf("Linha: "); scanf("%d",&tiro[0]); tiro[0]--; printf("Coluna: "); scanf("%d",&tiro[1]); tiro[1]--; } int acertou(int tiro[2], int navios[][2]) { int navio; for(navio=0 ; navio < 3 ; navio++){ if( tiro[0]==navios[navio][0] && tiro[1]==navios[navio][1]){ printf("Você acertou o tiro (%d,%d)\n",tiro[0]+1,tiro[1]+1); return 1; } } return 0; } void dica(int tiro[2], int navios[][2], int tentativa) { int linha=0, coluna=0, fila; //conta quantos navios há na linha tiro[0] for(fila=0 ; fila < 3 ; fila++){ if(navios[fila][0]==tiro[0]) linha++; if(navios[fila][1]==tiro[1]) coluna++; } printf("\nDica %d: \nlinha %d -> %d navios\ncoluna %d -> %d navios\n",tentativa,tiro[0]+1,linha,tiro[1]+1,coluna); } void alteraTabuleiro(int tiro[2], int navios[][2], int tabuleiro[][5]){ if(acertou(tiro,navios)) tabuleiro[tiro[0]][tiro[1]]=1; else tabuleiro[tiro[0]][tiro[1]]=0; } int main() { int tabuleiro[5][5]; int navios[3][2]; int tiro[2]; int tentativas=0, acertos=0; inicializaTabuleiro(tabuleiro); iniciaNavios(navios); printf("\n"); do{ mostraTabuleiro(tabuleiro); darTiro(tiro); tentativas++; if(acertou(tiro,navios)){ dica(tiro,navios,tentativas); acertos++; } else dica(tiro,navios,tentativas); alteraTabuleiro(tiro,navios,tabuleiro); }while(acertos!=3); printf("\n\n\nJogo terminado. Você acertou os 3 navios em %d tentativas", tentativas); mostraTabuleiro(tabuleiro); } Créditos ao site CProgressivo
  21. ~PROGRAMA PAPAGAIO~ #include <stdio.h> main() { char frase[141]; printf("-----\tPrograma Papagaio\t-----\n"); printf("Digite uma mensagem:\n"); for(;;) { scanf("%140[^\n]", frase); fflush(stdin); printf("Papagaio: %s\n", frase); } system("pause"); return 0; } Espero que se divirtam conversando com o papagaio virtual [plain]:D[/plain]
  22. #include <stdio.h> #include <math.h> void EncontrarABC (){ int a,b,c ; printf("Na equação o A será o número que antecedente o X²\n"); printf("Na equação o B será o número que antecedente o X\n"); printf("Na equação o C será o sozinho\n"); printf("Por exemplo, neste caso: x² + 9x + 8\n"); printf("O A = 0 , B = 9 e C = 8\n"); printf("Se não existe nada antes do x² ou x ou algo sozinho quer dizer que é 0\n"); printf("Agora que já aprendeu, digite A B e C da equação\n"); scanf("%d %d %d",&a,&b,&c); ResolverEquacao(a,b,c); } int ResolverEquacao (int a,int b,int c){ int delta,x1,x2; delta = pow(-b,2) - 4 * a * c; if(delta > 0){ x1 = ((-b + sqrt(delta)) / (2*a)); x2 = ((-b - sqrt(delta))/ (2*a)); printf("Delta = %d ; x1 = %d e x2 = %d",delta,x1,x2); } else if(delta == 0){ printf("As raízes são iguais, x1= %d e x2 = %d",x1,x2); } else{ printf("Não existe raízes reais"); } } int main(void) { int a,b,c; char confirmacao; do{ printf("Deseja saber como encontrar A B C na equação? [s ou N]\n"); scanf("%c",&confirmacao); }while(confirmacao != 'S' && confirmacao !='N') ; if(confirmacao == 'S'){ EncontrarABC(); } else{ printf("Digite A B e C\n"); scanf("%d %d %d",&a,&b,&c); ResolverEquacao(a,b,c); } return 0; } Qualquer dúvida com relação ao código só comentar.
  23. Fala galerinha, eu estava correndo atrás de alguns vídeos sobre o básico do C++ pra não ficar muito atras em conhecimento, já que trabalhei um tempo aqui na Web Cheats, e fazia alguns trainners em Delphi para Priston e achava a linguagem C e suas derivadas bem legais, então achei alguns vídeos por aí no youtube e resolvi trazer pra vocês. Em breve vocês devem ver alguns hacks meus na PBZone que fiz no meu velho e querido Delphi, com a ajuda do TeamKiller' (address) que é meu brother desde quando trabalhei por aqui em 2014 como programador! Contém 6 (seis) vídeos Contém 3 (três) vídeos Contém 3 (três) vídeos É isso aí galera, abraços do Tio Johnnie, que a força esteja com vocês. ~Abraços Obs. NoSlake é o [email protected], Vitor 4 ever <3 Pk é lindo.
  24. preciso montar um programa que calcula os juros de cada mes e o seu saldo restante. os resultados estao dando certo pelos testes que eu fiz mas meu professor disse que ainda tem coisa errada, alguem pode me ajudar a descobrir o que poderia ser? sendo que : os juros mensais sao calculados como juros anuais/ 12 #include<stdio.h> int main (void){ double juros,jurosmensal; double pagamentomes, saldo1; double emprestimo; scanf("%lf", &emprestimo); scanf("%lf", &juros); scanf("%lf", &pagamentomes); jurosmensal = juros/12.0; while(emprestimo > 0.0){ saldo1 = emprestimo;//saldo anterior para que o ultimo juros nao fique negativo emprestimo = emprestimo - pagamentomes; juros = (jurosmensal*emprestimo)/100.0; emprestimo = emprestimo + juros; //caso o emprestimo ou o juros fiquem abaixo de zero eles nao sairem negativos if (emprestimo < 0.0){ emprestimo = 0; pagamentomes = saldo1; } if (juros < 0.0) juros = 0; printf("%.2f %.2f %.2f\n",pagamentomes,juros,emprestimo); } return 0; }
  25. Bom, como o título diz, estou com um probleminha.. O meu objetivo é comparar dois números do tipo "Double" e verificar qual é maior. Caso o primeiro número seja maior que o segundo rertornar 1. Caso o segundo número seja maior que o primeiro retornar -1. E por fim, caso os dois sejam iguals, retornar 0. obs: Na função, o problema requer que as duas variáveis (a e b) sejam ponteiros de void. int compara_double(void *a, void *b){ if((double*)a>(double*)b) return 1; else if((double*)a == (double*)b) return 0; else if((double*)a < (double *)b) return -1; } Função main: int main(){ double d1=0.123412341,d2=0.34123; printf("%d",compara_double(d1,d2)); return 0; } Erro apresentado no compilador: "error: incompatible type for argument 1 of 'compara_double" " Obg desde já :)
×
×
  • Create New...