Ir ao conteúdo
  • Cadastre-se

Leotanis Leite Moraes

Membro Pleno
  • Posts

    47
  • Cadastrado em

  • Última visita

Tudo que Leotanis Leite Moraes postou

  1. então, para resolver sua divida, faça o seguinte. Este mesmo programa que você fez, faça como a dica acima, e use um for para o programa ficar mais limpo. nos limites do for faça: (i=limite inferior;i<=limite superior;i++). Mande ler os 2 limites antes, resto você ja fez!!
  2. Cara, este jogo da forca eu fiz um bem parecido. Qual sua duvida??
  3. É um programa didático ou profissinal??? qual ambiente sera desenvolvido???
  4. Cara, ja resolvi este mesmo problema em outro tópico. Tambem nao entendi o termo programação dinâmica, mas este exercicio você resolve utilizando pilha de dados. você cria uma função para criar uma pilha de dados (pilha de dados= onde você só pode retirar dados do topo ou botar dado em cima do topo). Depois você cria uma função bool para retornar positivo se a pilha esta cheia, Cria ou função para armazenar dados na pilha, onde o dado sera armazenado na variavel+1 onde variavel é o valor do ponteiro que acusa o topo da pilha, depois acrescendo +1 para este ponteiro. E cria uma função para retirar dados da pilha, onde vai retirar no endereço do topo, e depois fazer topo-1. Lembrando sempre que para retirar dados ou incluir dados na pilha, veririfcar se o mesmo esta cheio ou nao.
  5. Oliver, sou novo no forum, e realmente ja acabei percebendo isto mesmo. Mas tento botar explicações nas linhas de comando para a pessoa ver o que eu fiz, mas bom saber que nas próximas vou evitar fazer o programa e sim tentar resolver a duvida.
  6. então, o programa 1 você faz da seguinte forma: (não fiz tratamento de erro pois não foi pedido no enunciado) #include <stdio.h> #include <stdlib.h> int main() { int lin,col,i,j; int mata[99][99]; scanf("%d",&lin); //recolhe os dados do tamanho da matriz setbuf(stdin,NULL); scanf("%d",&col); setbuf(stdin,NULL); for (i=0;i<lin;i++){ //para colher os dados da matriz for (j=0;j<col;j++){ scanf("%d",&mata[j]); setbuf(stdin,NULL); } } for (i=0;i<lin;i++){ //para imprimir a matriz printf("\n"); for (j=0;j<col;j++){ printf(" %d",mata[j]); } } return 0; } Para o segundo exercicio, você copia este primeiro, declar mais uma matriz com nome matb, e na parte de imprimir, você substitui o comando printf(" %d",mata[j]); por matb[j]=mata[j]*mata[j]; para o terceiro exercicio, você copia o segundo, declara mais duas matrizes matc e matct, e incrementa com este codigo: for (i=0;i<lin;i++){ for (j=0;j<col;j++){ matc[j]=mata[j]+matb[j]; //para criar a matriz c } } for (i=0;i<lin;i++){ for (j=0;j<col;j++){ // para criar a transposta de c matct[j]=matc[j] } } então, o programa 1 você faz da seguinte forma: (não fiz tratamento de erro pois não foi pedido no enunciado) #include <stdio.h> #include <stdlib.h> int main() { int lin,col,i,j; int mata[99][99]; scanf("%d",&lin); //recolhe os dados do tamanho da matriz setbuf(stdin,NULL); scanf("%d",&col); setbuf(stdin,NULL); for (i=0;i<lin;i++){ //para colher os dados da matriz for (j=0;j<col;j++){ scanf("%d",&mata[j]); setbuf(stdin,NULL); } } for (i=0;i<lin;i++){ //para imprimir a matriz printf("\n"); for (j=0;j<col;j++){ printf(" %d",mata[j]); } } return 0; } Para o segundo exercicio, você copia este primeiro, declar mais uma matriz com nome matb, e na parte de imprimir, você substitui o comando printf(" %d",mata[j]); por matb[j]=mata[j]*mata[j]; para o terceiro exercicio, você copia o segundo, declara mais duas matrizes matc e matct, e incrementa com este codigo: for (i=0;i<lin;i++){ for (j=0;j<col;j++){ matc[j]=mata[j]+matb[j]; //para criar a matriz c } } for (i=0;i<lin;i++){ for (j=0;j<col;j++){ // para criar a transposta de c matct[j]=matc[j] } }
  7. #include <stdio.h> #include <stdlib.h> int vet[25]; int busca (int x){ int ini,meio,fim; ini=0; fim=24; while (ini<=fim){ meio=(fim+ini)/2; if (vet[meio]==x){ return meio; }else if (vet[meio]<x){ ini=meio+1; }else{ fim=meio-1; } } return -1; } void ordenar(int vet[]) { int i, j, z; for (i = 1; i < 25; i++){ z = vet; j = i - 1; while ((j>=0) && (z < vet[j])) { vet[j+1] = vet[j]; j--; } vet[j+1] = z; } } int main() { int i,z,x; for (i=0;i<25;i++){ scanf("%d",&vet); setbuf(stdin,NULL); } printf("\nInforme o numero a ser pesquisado: "); scanf("%d",&x); ordenar(vet); z=busca(x); if (z !=-1){ printf("Nao encontrado o numero"); }else { printf("Numero econtrado na posicao %d do vetor ordenado",z); } return 0; }
  8. então, tentar ajudar por partes: #include <stdio.h> #include<stdlib.h> // Bibliotecas que vão ser utilizadas Int main (){ int n,posit,neg; // declarei as variaveis que vou usar posit=0; neg=0; scanf("%d",&i); //vai ler o numero while (n!=0){ // condicao para rodar o programa, que vai continuar lendo ate ser lido um numero diferente de zero; if (n>0){ posit=n+positivo; }else { neg=neg+n; } scanf("%d",&i); //vai ler o numero novamente; } printf("\nA SOMA DOS NUMEROS POSITIVOS E %d , DOS NEGATIVOS %d E O TOTAL E %d ",posit,neg,posit+neg); return 0; }
  9. então, separei a pesquisa binaria numa outra função, e o programa ficou assim: #include <stdio.h> #include <stdlib.h> int meio; int pesquisabinaria (int FIBO[25],int n,int ini,int fim){ while (ini <= fim) { meio = (ini + fim)/2; if (n == FIBO[meio]) return meio; else if (n < FIBO[meio]) fim = meio-1; else ini = meio+1; } return 0;} int main (){ int FIBO[30]; int i,n,ini,fim; bool teste=true; //Para preencher a serie de fibonanaci FIBO[0]=0; FIBO[1]=1; for (i=2;i<25;i++){ FIBO=FIBO[i-1]+FIBO[i-2]; } while (n!=0){ printf("\nINFORME O NUMERO QUE DESEJA ENCONTRAR OU ZERO PARA SAIR: "); scanf("%d",&n); if (n==0){ continue; } ini=0; fim=24; if (pesquisabinaria(FIBO,n,ini,fim)!=0){ printf("\nNUMERO ENCONTRADO NO VETOR, NA POSICAO %d",meio); } else{ printf("\nNAO FOI ENCONTRADO ESTE NUMERO NO VETOR"); } } printf("\nVOCE SAIU DO PROGRAMA"); return 0; }
  10. Verifica se deu certo ae; #include <stdio.h> #include <stdlib.h> int main (){ int numeros[100]; char operadores[100]; int i,n,cont,resp; bool funcionando = true; char l; cont=0; while (funcionando == true){ printf("\nINFORME QUANTOS NUMEROS TERA SUA OPERACAO: "); scanf("%d",&n); while (n<0 || n>100){ printf("\nN TEM QUE ESTAR ENTRE 0 E 100, DIGITE NOVAMENTE: "); scanf("%d",&n); setbuf(stdin,NULL); } for (i=0;i<n;i++){ printf("\nINFORME O NUMERO DE SUA OPERACAO: "); scanf("%d",&numeros); setbuf(stdin,NULL); if (i<n-1){ printf("\nINFORME O OPERADOR DE SUA OPERACAO: (+ ou -)"); scanf("%c",&operadores); setbuf(stdin,NULL); } } resp=0; for (i=0;i<n;i++){ if (i==0){ resp=numeros; } if (operadores=='+'){ resp=resp + numeros[i+1]; } if (operadores=='-'){ { resp = resp - numeros[i+1]; } } } cont=cont+1; printf("\nTEXTE %d",cont); printf("\n %d",resp); printf("\n\n"); } return 0; }
  11. Cara, eu posso ate arrumar um jeito de consertar estes erros faltantes, das variáveis não declaradas, porém gerar uma variavel dentro duma função pode acarretar algum problema na lógica do programa. E pelos tipos de erros que encontrei antes e resolvi, este programa nem deve ter sido testado.
  12. Na linha 82 esta dando um erro, pois esta chamando uma função sem nenhum valor de entrada, sendo que a mesma pede um valor de entrada. Joguei a variavel s da struct global nela e parece que resolveu este problema. Na linha 108, o ponteiro para abrir arquivo esta escrito errado, escreve FILE nao file; 121 e 135 faltou fechar um parenteses; 158 as variaveis estão escritas erradas; 172 faltou o ; resto dos erros são questões de variáveis nao declaradas dentro do escopo de algumas funções, ae ja nao quis mexer pois nao to entendendo a lógica deste programa kk
  13. Cara, nao compilei nao, mas acho q assim roda do jeito q você quer: #include <stdio.h> #include <stdlib.h> int main() { int n,i,z; int vetor [10]; scanf("%d",&n); vetor[0]=n; for (i=1;i<10;i++){ scanf("%d",&n); for (z=0;z<i;z++){ if (vetor[z]==n){ printf("JA DIGITOU ESTE NUMERO ANTES"); scanf("%d",&n); } else{ vetor=n; } } } system("cls"); for (i=0;i<10;i++){ printf(" %d",vetor); } return 0; }
  14. Estou desenvolvendo um software de poker, e esta parte ja consegui resolver. Para o baralho com 52 cartas, criei uma matriz do tipo [52][3] - onde esta armazenado em cada uma das 52 linhas um vetor com uma carta tipo string, na forma "Ac" ou "9o" para As de copas ou 9 de ouros. Para gerar um numero aleatorio, uso a função: srand(time(NULL)); // gera uma semente para gerar um numero aleatorio, baseado nos segundos do relogio. aleat = rand() % 52; // aleat é a variavel que vai receber o numero aleatorio. fiz o %52 para limitar o aleatorio para 52. Atribuo o valor da carta para um char vetor [3], passando os dados da matriz [aleat][0 a 3] para este vetor. apos isto, atribuo no lugar que foi tirada esta carta da matriz, um valor "xx", como se tivesse retriado a carta dela. para segunda carta, faço uma condicional de continuar buscando carta enquanto o valor aleatorio for igual a "xx"; Lembrando que para cada carta que tirar do baralho, botar um valor "xx" no lugar da carta tirada para continuar usando uma condicional para nao repetir; Espero ter ajudado;
  15. Corrigi. O erro era que nao defini o tamanho da matriz na main, e o code nao aceita. pode testar rs
  16. Este exercicio é o basico da parte de pilha estatica com uma struct. Tenho pronto aqui um exemplo das funções que eu costumo usar para pilha estatica, que fica facim para você adaptar para seu exercicio. So que ao inserir algo na pilha, voce utilisa uma struct em vez de um vetor simples igual no exemplo. #include <stdio.h> #include <stdlib.h> int pilha [1000]; int topo,valor,opcao,i,aux; bool programa = true; void pilha_contruir (){ topo = -1; } bool pilha_vazia (){ if (topo==-1){ return true; } else { return false; } } bool pilha_cheia (){ if (topo==999){ return true; } else { return false; } } void inserirpilha (int valor){ if (pilha_cheia()==true){ printf("PILHA ESTA CHEIA"); } else{ topo=topo+1; pilha[topo]=valor; printf("\nVALOR %d INSERIDO COM SUCESSO!",valor); } } void retirarpilha (int &valor){ if (pilha_vazia()==true){ printf("\n\nPILHA ESTA VAZIA"); } else { valor = pilha[topo]; topo=topo-1; printf("\n\nO VALOR %d FOI RETIRADO DA PILHA",valor); } } int main() { printf("\033[44m"); printf("PROGRAMA PARA GERIR PILHA ESTATICA"); pilha_contruir(); while (programa=true){ printf("\n\n\n"); printf("\nESCOLHA:"); printf("\nDIGITE 1 PARA INSERIR DADOS NA PILHA"); printf("\nDIGITE 2 PARA RETIRAR VALOR DA PILHA"); printf("\nDIGITE 3 PARA MOSTRAR TAMANHO DA PILHA"); printf("\nDIGITE 4 PARA IMPRIMIR OS VALORES DA PILHA"); printf("\nINFORME A OPCAO DESEJADA: "); setbuf(stdin,NULL); scanf("%d",&opcao); switch (opcao) { case 1: printf("\n\n\nINFORME O VALOR QUE DESEJA INSERIR: "); scanf("%d",&valor); inserirpilha(valor); break; case 2: retirarpilha(valor); break; case 3: printf("\nA PILHA TEM %d ITENS\n",topo+1); break; case 4: aux=topo; while (aux>-1){ printf("\n%d",pilha[aux]); aux=aux-1; } break; } printf("\n\n"); system("pause"); system("cls"); } return 0; }
  17. Obrigado!! è texas holdem mesmo. Pelo q vi é bem complexo mesmo. E isto depois eu queria fazer que o boot tenha reações com estrategia ( que deve ser estão difícil quanto). Pretendo tirar proveito destas informações, estudar a logica usada por eles e tentar fazer a minha própria ( reparei que usam um vetor so para pontuar cada carta, já é um bom ponto de partida). Vi um projeto pronto que o cara demorou um ano para fazer.
  18. Boa tarde! Primeira vez minha em um forum! Sou auto didata em programação, no atual momento programo somente em c e c++. Para testar e aprimorar meu raciocinio para situações complexas, estou criando um jogo de poker, inicialmente contra 1 boot só. O baralho é armazenado numa matriz [52][3] e dela é sorteado aleatoriamente as cartas para serem distribui das entre os dois jogadores. Logicamente com o cuidado para nao repetir cartas. Ja foi criado todas as fases do poker, inseri movimento do botom, pagamento das blinds, pote. Como estou criando ainda, o boot esta programado so para pagar dar "call" em tudo que é apostado. A parte que eu "agarrei" no meu programa foi como eu comparo se o jogador fez dupla, duas duplas, trinca, full house, etc e caso os dois tenham o mesmo jogo, comparar qual dupla é melhor. Qualquer sugestao é bem vinda!!

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!