Ir ao conteúdo
  • Cadastre-se

KXSY

Membro Pleno
  • Posts

    559
  • Cadastrado em

  • Última visita

Tudo que KXSY postou

  1. @mopcop Compre um adaptador dvi para vga, e ligue tudo na placa de vídeo.
  2. KXSY

    C Jogo da velha em C

    Quando eu falei em configurar, você realmente tem que configurar o CodeBlocks para compilar como C a extensão pouco importa para o IDE. Abra um novo projeto em C que talvez resolva, mas se você mudou as diretivas de compilação pode ser que você tenha alguns problemas. Pois é! quando eu o fiz eu estava fazendo pelo celular a parte do game play, era para representar o teclado numérico ;-;, mas agora que eu percebi eu inverti tudo. Para jogar é só pressionar o numero na posição que você deseja jogar, é pressionar enter.
  3. KXSY

    C Jogo da velha em C

    @devair1010 Você está usando um compilador de C++, você teria que usar um de C. Basta você configurar o CodeBlocks para compilar para C, eu te ajudaria nisso mas eu uso um editor de texto aqui. Exemplo:JogoDaVelhaC
  4. KXSY

    C Jogo da velha em C

    @devair1010 me desculpe! erro meu, eu esqueci que o fórum está acentuando os códigos fontes. Vou deixar a versão em zip para download. velha.zip
  5. @Juju122 kkk então vai ter que ser na mão mesmo! @Juju122 Você deveria organizar melhor o código, ele está meio criptográfico. Uma organização melhor seria assim. Só fiz um pedaço para você ter uma ideia de como seria.
  6. @Juju122 Você poderia escrever a data na hora da venda. ¯\_(ツ)_/¯ Mas é obrigatório usar o PZim?
  7. Só funciona no delphi e freepascal. Program DataEHora; uses Crt, SysUtils; begin writeln('Hora atual:', TimeToStr(Time)); writeln('Data atual:', DateToStr(Date)); readln; end. Pelo o que eu entendi ela (@Juju122 ) quer colocar a data na hora de registrar uma venda, até onde eu usei o PascalZim ele não tem nenhuma função para fazer isso.
  8. Existem duas respostas para a sua pergunta, a resposta curta é "não tem como fazer usando o pascalzim" e a resposta longa e "e plenamente possível se você trocar o compilador, exemplo usar o freepascal". Vai depender de você.
  9. KXSY

    C Jogo da velha em C

    Eu fiz esse jogo da velha ontem, ainda não terminei, mas ele está funcionando. #include <stdio.h> #include <stdlib.h> #include <time.h> #include <string.h> /* Constantes */ #define V_LINHAS 3 #define V_COLUNAS 3 #define T_NOME 10 enum v_objetos{VAZIO, XIS, BOLA, VELHA}; struct jogador_dados { char nome[T_NOME]; unsigned short vitorias; int iniciado; enum v_objetos objeto; }; void iniciaTabuleiro(enum v_objetos *tabuleiro); void destroiTabuleiro(enum v_objetos **tabuleiro); void colocaObjetoTabuleiro(enum v_objetos *tabuleiro, enum v_objetos objeto, unsigned char linha, unsigned char coluna); void mostraTabuleiro(enum v_objetos *tabuleiro); void pegaNomeJogador(struct jogador_dados *jogador); int menuPrincipal(void); int pegaJogadaValida(enum v_objetos *tabuleiro); enum v_objetos *criaTabuleiro(void); enum v_objetos pegaObjetoTabuleiro(enum v_objetos *tabuleiro, unsigned char linha, unsigned char coluna); enum v_objetos checaVitoria(enum v_objetos *tabuleiro); int main(void) { enum v_objetos *tabuleiro = criaTabuleiro(); struct jogador_dados jogador1, jogador2; int opções, posições[V_LINHAS*V_COLUNAS]; if (tabuleiro == NULL) { perror("Erro nao foi possivel reservar memoria do sistema! -"); exit(EXIT_FAILURE); } /* Inicia os jogadores */ jogador1.vitorias = jogador1.iniciado = 0; jogador2 = jogador1; jogador1.objeto = XIS; jogador2.objeto = BOLA; /* Inicia as posições do tabuleiro */ for (int cont = 0; cont < V_LINHAS*V_COLUNAS; cont++) { posições[cont] = cont; } srand(clock()); /* Loop principal */ do { int vez_jogador = rand()%2; /* Menu principal */ opções = menuPrincipal(); switch (opções) { case 1: iniciaTabuleiro(tabuleiro); if (!jogador1.iniciado) { pegaNomeJogador(&jogador1); jogador1.iniciado = 1; } strcpy(jogador2.nome, "COMP!\n"); /* Loop do jogo */ do { mostraTabuleiro(tabuleiro); if (vez_jogador) { int jogada; printf("\nVez do jogador:\t%s", jogador1.nome); jogada = pegaJogadaValida(tabuleiro); colocaObjetoTabuleiro(tabuleiro, jogador1.objeto, jogada/V_LINHAS, jogada%V_COLUNAS); vez_jogador = 0; } else { int cont; /* Mistura as posições do tabuleiro */ for (cont = 0; cont < V_LINHAS*V_COLUNAS; cont++) { int indice = rand()%(V_LINHAS*V_COLUNAS), tmp; tmp = posições[indice]; posições[indice] = posições[cont]; posições[cont] = tmp; } printf("\nVez do jogador:\t%s", jogador2.nome); /* Pega uma posição valida */ cont = 0; for (cont = 0; cont < V_LINHAS*V_COLUNAS; cont++) { if (pegaObjetoTabuleiro(tabuleiro, posições[cont]/V_LINHAS, posições[cont]%V_COLUNAS) == VAZIO) { colocaObjetoTabuleiro(tabuleiro, jogador2.objeto, posições[cont]/V_LINHAS, posições[cont]%V_COLUNAS); break; } } vez_jogador = 1; } if (checaVitoria(tabuleiro) == XIS || checaVitoria(tabuleiro) == BOLA) { printf("\nVitoria:"); if (checaVitoria(tabuleiro) == XIS) { putchar('X'); } else { putchar('O'); } opções = 0; } else if (checaVitoria(tabuleiro) == VELHA) { for (int cont = 0; cont < V_LINHAS*V_COLUNAS; cont++) tabuleiro[cont] = VELHA; puts("Deu velha!"); opções = 0; } } while (opções != 0); mostraTabuleiro(tabuleiro); puts("\nPressione enter para continuar..."); getchar(); break; } } while (opções != 3); destroiTabuleiro(&tabuleiro); return(0); } void iniciaTabuleiro(enum v_objetos *tabuleiro) { unsigned char cont; for (cont = 0; cont < V_LINHAS*V_COLUNAS; cont++) { tabuleiro[cont] = VAZIO; } } void destroiTabuleiro(enum v_objetos **tabuleiro) { if (*tabuleiro != NULL) { free(*tabuleiro); } *tabuleiro = NULL; } void colocaObjetoTabuleiro(enum v_objetos *tabuleiro, enum v_objetos objeto, unsigned char linha, unsigned char coluna) { tabuleiro[(linha*V_LINHAS)+coluna] = objeto; } void mostraTabuleiro(enum v_objetos *tabuleiro) { unsigned char linha, coluna, cont = 1; putchar('\n'); for (linha = 0; linha < V_LINHAS; linha++) { putchar('\n'); for (coluna = 0; coluna < V_COLUNAS; coluna++) { switch (pegaObjetoTabuleiro(tabuleiro, linha, coluna)) { case VAZIO: printf("%i", cont); break; case XIS: putchar('X'); break; case BOLA: putchar('O'); break; case VELHA: putchar('V'); } if (coluna == 0 || coluna == 1) { putchar('|'); } cont++; } } } void pegaNomeJogador(struct jogador_dados *jogador) { char str[256]; do { puts("\nDigite o nome do jogador:\t"); fgets(str, 256, stdin); if (strlen(str) <= 1 || strlen(str) > T_NOME-1) { printf("\nO nome do jogador deve ser menor que %i.", T_NOME); puts("\nPressione enter para continuar..."); getchar(); } } while (strlen(str) <= 1 || strlen(str) > T_NOME-1); strcpy(jogador->nome, str); } int menuPrincipal(void) { int opcao; do { char str[100]; puts("\nJogo da velha"); puts("1 - Novo jogo."); puts("2 - Versus."); puts("3 - Sair"); putchar('>'); if (fgets(str, 100, stdin) != NULL) { opcao = atoi(str); if (opcao < 1 || opcao > 3) { puts("\nOpcao invalida!"); puts("Pressione enter para continuar..."); getchar(); } } else { opcao = 0; } } while (opcao < 1 || opcao > 3); return(opcao); } int pegaJogadaValida(enum v_objetos *tabuleiro) { int jogada = 0; do { char str[256]; putchar('>'); if (fgets(str, 256, stdin) != NULL) { jogada = atoi(str); jogada--; if (jogada < 0 || jogada > 8) { puts("Jogada invalida!"); puts("Pressione enter para continuar..."); getchar(); } else { if (pegaObjetoTabuleiro(tabuleiro, jogada/V_LINHAS, jogada%V_COLUNAS) == VAZIO) { return(jogada); } else { puts("Espaco invalido!"); puts("Pressione enter para continuar..."); getchar(); jogada = 0xff; } } } else { jogada = 0xff; } } while (jogada < 0 || jogada > 8); return(jogada); } enum v_objetos *criaTabuleiro(void) { enum v_objetos *tabuleiro = malloc(sizeof(*tabuleiro)*V_LINHAS*V_COLUNAS); if (tabuleiro == NULL) { return(NULL); } iniciaTabuleiro(tabuleiro); return(tabuleiro); } enum v_objetos pegaObjetoTabuleiro(enum v_objetos *tabuleiro, unsigned char linha, unsigned char coluna) { return(tabuleiro[(linha*V_LINHAS)+coluna]); } enum v_objetos checaVitoria(enum v_objetos *tabuleiro) { unsigned char linha, coluna; unsigned char cont; enum v_objetos tmp; /* Checa vitoria linhas */ for (linha = 0; linha < V_LINHAS; linha++) { cont = 0; tmp = pegaObjetoTabuleiro(tabuleiro, linha, 0); for (coluna = 0; coluna < V_COLUNAS; coluna++) { if (tmp == pegaObjetoTabuleiro(tabuleiro, linha, coluna)) { cont++; } } if (cont >= V_LINHAS) { if (tmp != VAZIO) return(tmp); } } /* Checa vitoria colunas */ for (coluna = 0; coluna < V_COLUNAS; coluna++) { cont = 0; tmp = pegaObjetoTabuleiro(tabuleiro, 0, coluna); for (linha = 0; linha < V_LINHAS; linha++) { if (tmp == pegaObjetoTabuleiro(tabuleiro, linha, coluna)) { cont++; } } if (cont >= V_COLUNAS) { if (tmp != VAZIO) return(tmp); } } /* Checa vitoria diagonal */ tmp = pegaObjetoTabuleiro(tabuleiro, 0, 0); cont = 0; for (linha = 0, coluna = 0; linha < V_LINHAS; linha++, coluna++) { if (tmp == pegaObjetoTabuleiro(tabuleiro, linha, coluna)) { cont++; } } if (cont >= V_COLUNAS) { if (tmp != VAZIO) return(tmp); } tmp = pegaObjetoTabuleiro(tabuleiro, 0, V_COLUNAS-1); cont = 0; for (linha = 0, coluna = V_COLUNAS-1; linha < V_LINHAS; linha++, coluna--) { if (tmp == pegaObjetoTabuleiro(tabuleiro, linha, coluna)) { cont++; } } if (cont >= V_COLUNAS) { if (tmp != VAZIO) return(tmp); } /* Checa se deu velha */ cont = 0; for (linha = 0; linha < V_LINHAS; linha++) { for (coluna = 0; coluna < V_COLUNAS; coluna++) { if (pegaObjetoTabuleiro(tabuleiro, linha, coluna) != VAZIO) cont++; } } if (cont == V_LINHAS*V_COLUNAS) return(VELHA); return(VAZIO); }
  10. Você tem duas opções, a que eu acho horrível e não portável seria usar o API do Windows, ou utilizar a ncurses. Que pra mim seria a melhor opção utilizar a ncurses, fora que ela é bem menos complexa do que o API do Windows.
  11. Uma outra ideia seria assim, mas essa usa um baralho francês.
  12. @fernandoRomes Você está fazendo a fila de voos errada, você teria que pegar os nomes dos voos como char e não int. Fora que você deveria fazer uma matriz de char dessa forma char fila[MAX][TAMANHO_DO_NOME_DO_VOO]; Exemplo de como deveria ser inserido o voo.
  13. @joaoz1404 Você teria que fazer um loop que aceitasse sair só com a condição 0 ou 5. Dessa maneira. Vou deixar mais um exemplo pra você ir quebrando a cabeça.
  14. Cara você fez certinho, só errou na logica do final. program calculadora; uses crt; var n1,n2,resultado: real; op: string; begin while op <> '5' do begin writeln('1-adição'); writeln('2-subtração'); writeln('3-divisão'); writeln('4-multiplicação'); writeln('Escolha uma opção de 1 a 5'); readln(op); writeln('Valor 1: '); readln(n1); writeln('Valor 2: '); readln(n2); //soma if (op='1') then resultado:= n1+n2 //subtração else if (op='2') then resultado:= n1-n2 // divisão else if (op='3') then resultado:= n1/n2 //multiplicação else if (op='4') then resultado:= n1*n2 ; //resultado writeln('resultado: ', resultado:0:2); writeln('Digite 5 para sair ou 0 para continuar.'); readln(op); end; end. Recomendo experimentar fazer com case of também.
  15. @Murilo Murilo Boa sorte com o seu dever, tomara que você passe
  16. Se eu fosse você tentaria conversar com o seu professor, porque esse enunciado está muito confuso. É para fazer uma arvore binaria? ou seria um vetor organizado? O elemento tem a prioridade separada ou ele mesmo é sua própria prioridade? Fora que não seriam só essas questões, ainda há muito mais Se fosse eu faria assim, ignorando tudo que não faz sentido no enunciado. #include <stdio.h> #include <stdlib.h> struct pilha_info { unsigned short tamanho; unsigned short posicao; unsigned short *pilha; }; void organizaPilha(struct pilha_info *pilha); void iniciaPilha(struct pilha_info *pilha, int tamanho_pilha); void apagaPilha(struct pilha_info *pilha); void inserePilha(struct pilha_info *pilha, unsigned short valor); void mostraPilha(struct pilha_info *pilha); int main(void) { int d; struct pilha_info pilha; iniciaPilha(&pilha, 10); inserePilha(&pilha, 12); inserePilha(&pilha, 11); inserePilha(&pilha, 1); inserePilha(&pilha, 2); inserePilha(&pilha, 3); inserePilha(&pilha, 4); inserePilha(&pilha, 5); inserePilha(&pilha, 6); inserePilha(&pilha, 7); inserePilha(&pilha, 8); inserePilha(&pilha, 9); inserePilha(&pilha, 10); inserePilha(&pilha, 0); mostraPilha(&pilha); apagaPilha(&pilha); return(0); } void iniciaPilha(struct pilha_info *pilha, int tamanho_pilha) { /* Cria a pilha */ pilha->pilha = malloc(sizeof(*pilha->pilha)*tamanho_pilha); if (pilha->pilha == NULL) { perror("Erro! nao foi possivel reservar memoria!"); exit(EXIT_FAILURE); } pilha->tamanho = tamanho_pilha; pilha->posicao = 0; } void apagaPilha(struct pilha_info *pilha) { if (pilha->pilha != NULL) { free(pilha->pilha); } pilha->pilha = NULL; pilha->tamanho = pilha->posicao = 0; } void organizaPilha(struct pilha_info *pilha) { int contador = 1; while (contador) { contador = 0; for (int tmp = 0; tmp < pilha->posicao-1; tmp++) { if (pilha->pilha[tmp] > pilha->pilha[tmp+1]) { unsigned short aux = pilha->pilha[tmp]; pilha->pilha[tmp] = pilha->pilha[tmp+1]; pilha->pilha[tmp+1] = aux; contador++; } } } } void inserePilha(struct pilha_info *pilha, unsigned short valor) { /* Checa se a pilha ainda tem espaço */ if (pilha->posicao < pilha->tamanho) { pilha->pilha[pilha->posicao] = valor; } else { /* Cria uma pilha maior */ unsigned short *tmp = malloc(sizeof(*pilha->pilha)*(pilha->posicao+1)); if (tmp == NULL) { perror("Erro! nao foi possivel reservar memoria!"); exit(EXIT_FAILURE); } /* Copia a pilha anterior para a nova */ for (int cont = 0; cont < pilha->tamanho; cont++) { tmp[cont] = pilha->pilha[cont]; } /* Insere o novo elemento na pilha */ tmp[pilha->posicao] = valor; /* Apaga a pilha antiga */ free(pilha->pilha); /* Coloca a nova pilha */ pilha->pilha = tmp; /* Coloca o novo tamanho da pilha */ pilha->tamanho = pilha->posicao+1; } pilha->posicao++; if (pilha->posicao > 1) organizaPilha(pilha); } void mostraPilha(struct pilha_info *pilha) { for (int contador = 0; contador < pilha->posicao; contador++) printf("\n%hu", pilha->pilha[contador]); printf("\nPressione enter para continuar."); getchar(); }
  17. KXSY

    C++ Programa de comparação C++

    Eu não sei C++, mas vai um exemplo bem comentado em C. #include <stdio.h> /* Define o tamanho dos vetores */ #define VETOR_T 10 int main(void) { /* Cria os vetores */ int vetor1[VETOR_T], vetor2[VETOR_T], vetor3[VETOR_T]; int contador1, contador2; /* Cria dois vetores iguais */ for (contador1 = 0; contador1 < VETOR_T; contador1++) { vetor1[contador1] = vetor2[contador1] = contador1; } /* Cria um vetor diferente dos dois anteriores */ for (contador1 = 0; contador1 < VETOR_T; contador1++) { if (contador1 < 5) vetor3[contador1] = 0; else vetor3[contador1] = contador1+10; } /* Compara os vetores */ contador2 = 0; for (contador1 = 0; contador1 < VETOR_T; contador1++) { if (vetor1[contador1] == vetor2[contador1]) { contador2++; } } printf("\nVetor1 e vetor2\n"); /* Checa se os dois vetores são iguais */ if (contador2 == VETOR_T) { printf("\nOs vetores são iguais!"); /* Checa se os dois vetores compartilham elementos em comum */ } else if (contador2 > 0 && contador2 < VETOR_T) { printf("\nOs vetores compartilham algumas semelhancas!"); /* Mostra que os dois vetores não compartilham nada em comum */ } else { printf("\nOs vetores nao sao iguais!"); } getchar(); /* Pausa */ printf("\nVetor2 e vetor3\n"); /* Compara os vetores */ contador2 = 0; for (contador1 = 0; contador1 < VETOR_T; contador1++) { if (vetor2[contador1] == vetor3[contador1]) { contador2++; } } /* Checa se os dois vetores são iguais */ if (contador2 == VETOR_T) { printf("\nOs vetores são iguais!"); /* Checa se os dois vetores compartilham elementos em comum */ } else if (contador2 > 0 && contador2 < VETOR_T) { printf("\nOs vetores compartilham algumas semelhancas!"); /* Mostra que os dois vetores não compartilham nada em comum */ } else { printf("\nOs vetores nao sao iguais!"); } getchar(); /* Pausa */ return(0); }
  18. @Murilo Murilo você deveria começar a fazer do zero o programa, é focando nas partes que você tem mais dificuldade. Exemplo de login simples.
  19. @leonardoaraujo34 sim, mas toda fonte tem o sinal para liga-lá, se você sabe qual é o cabo da fonte basta redimensionar a tensão com um resistor é ligar no ps-on das outras fontes.
  20. @leonardoaraujo34 Se você quiser ligar mais de uma fonte ao mesmo tempo, é basicamente como o @Shanks. Falou. Basta você ligar todos os ps-on das fontes que seriam ligadas na fonte do computador.
  21. @NhemonF Não encare como se eu estivesse tentado desanimá-lo. Mas você não está passando os parâmetros para a função corretamente. Você deveria passar o ponteiro para o aluno, dessa maneira. void lerAlunos(struct Alunos *alunos) Eu dei uma modificada no exemplo que eu dei lá atrás para você ver a maneira correta de como pegar as informações do aluno.
  22. Pois eu tenho que concordar em discordar de você, o seu problema é memoria, e você deveria saná-lo antes de passar para alguma coisa maior.
  23. @NhemonF Você está reservando memoria para a estrutura incorretamente. Você está passando o tipo int para o sizeof sendo que você deveria passar o tipo e a referencia, dessa forma alunos = malloc(MAX * sizeof(struct Alunos)); Fora que você está pegando a quantidade de alunos depois de reservar a memoria para os mesmos. Dica é de graça, então aqui vai algumas. 1>De nomes significativos para as suas declarações. 2>Resolva as partes importantes primeiro, exemplo vai trabalhar com a memoria ou ponteiros, então aprenda primeiro como funcionam. Aqui um exemplo de como reservar memoria. #include <stdio.h> #include <stdlib.h> #include <string.h> /* Constantes */ #define T_NOME 50 #define T_RA 10 #define T_EMAIL 30 #define Q_PROVAS 3 //Struct struct aluno_dados { char nome[T_NOME]; int idade; char ra[T_RA]; char email[T_EMAIL]; float prova[Q_PROVAS]; float media; }; int main(void) { struct aluno_dados *alunos = NULL; int q_alunos = 0; printf("\nDigite a quantidade de alunos:\t"); scanf("%i%*c", &q_alunos); /* Reserva a memoria */ alunos = malloc(sizeof(*alunos)*q_alunos); if (alunos == NULL) { perror("Erro memoria! "); exit(EXIT_FAILURE); } else { printf("\nMemoria reservada com sucesso!"); } getchar(); /* Apaga o ponteiro */ free(alunos); return(0); } Fique a vontade para tirar qualquer duvida.
  24. Kkkk eu lembro de quando aconteceu isso comigo. Vá em preferências, é em preferências vá em temas e mude para o tema claro (Se estiver em português é assim). Se for só para programar em c eu recomendo o VSCode.

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!