Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.

Lucas Assunção de Sousa

Membros Juniores
  • Total de itens

    15
  • Registro em

  • Última visita

  • Qualificações

    N/D

Reputação

10

Sobre Lucas Assunção de Sousa

Informações gerais

  • Cidade e Estado
    Lins/SP
  • Sexo
    Masculino
  1. C Meu Código está dando erro não consigo identificar alguém poderia me Indetifica?

    Como você não falou o que o programa faz, deu a entender que você realiza a checagem de dois valores e eles não estão imprimindo de maneira certa, apenas lixo de memória. Eu fiz uma versão minha desse programa: #include <stdio.h> #include <stdlib.h> #include <locale.h> main () { setlocale(LC_ALL,"portuguese"); int sorteado[6], aposta[6], cont, acertos[6]; cont = 0; puts("Informe os números sorteados"); for(cont = 0; cont < 6; cont = cont + 1) { scanf("%i", &sorteado[cont]); } puts("Informe os números da aposta"); for(cont = 0; cont < 6; cont = cont + 1) { scanf("%i", &aposta[cont]); } for(cont = 0; cont < 6; cont = cont + 1) { if(sorteado[cont] == aposta[cont]) { acertos[cont] = aposta[cont]; } } puts("Números sorteados"); for(cont = 0; cont < 6; cont = cont + 1) { printf("%i\n\n", sorteado[cont]); } puts("Números acertados"); for(cont = 0; cont < 6; cont = cont + 1) { printf("%i\n", acertos[cont]); } } A minha versão funciona certa se os números forem colocados em ordem (6,5,4,3,2,1...) O que poderia resolver esse problema é que antes de realizar a checagem seria organizar os dois vetores em ordem para depois realizar a checagem.
  2. C Problema com dimensões em OpenGL

    Olá a todos! Estou começando a estudar OpenGL e estou seguindo a apostila fornecida pelo meu professor, porém estou com um problema. No momento que adicionei as funções para fazer com o desenho (um triângulo vermelho) não sofra mudanças em suas dimensões após a janela ser alterada, mas mesmo assim ainda não funciona, mesmo dando rebuild no projeto. #include <windows.h> #include <gl/glut.h> int altura, largura; //Função que for chamada sempre que for preciso para desenhar na tela void desenha(void) { //Limpa a janela de visualização glClearColor(1.0f,1.0f,1.0f,0.0f); //Especifica a cor da tela de fundo para branco glClear(GL_COLOR_BUFFER_BIT); //Define a cor do desenho como vermelho glColor3f(1,0,0); //Desenha o triângulo glBegin(GL_TRIANGLES); glVertex2f(-15.0f,-7.0f); glVertex2f(0.0f,7.0f); glVertex2f(15.0f,-7.0f); glEnd(); glFlush(); //Executa os comandos OpenGL } //Função que inicializa o ambiente de trabalho void inicializacao() { //Dimensões do viewport glViewport(0,0,largura,altura); //Define a janela de visualização 2D glMatrixMode(GL_PROJECTION); gluOrtho2D(-20.0f,20.0f,-10.0f,10.0f); glMatrixMode(GL_MODELVIEW); } //Redesenha a janela void AlteraTamanhoJanela(GLsizei w, GLsizei h) { //Evita divisão por zero if(h == 0) { h = 1; } if(w == 0) { w = 1; } largura = w; altura = h; //Dimensões da ViewPort glViewport(0,0,largura, altura); glMatrixMode(GL_PROJECTION); glLoadIdentity(); //Estabelece Janela de Seleção if(largura <= altura) { gluOrtho2D(-20.0f, 20.0f,-10.0f * altura / largura, 10.0f * altura / largura); } else { gluOrtho2D(-20.0f * altura / largura, 20.0f * altura / largura, -10.0f, 10.0f); } glMatrixMode(GL_MODELVIEW); } //Função que sempre for pressionada uma tecla ASCII void teclado(unsigned char tecla, int x, int y) { if(tecla == 27) //Se pressionou tecla ESC, sai do programa { exit(0); } } //Programa principal int main(void) { glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //Modo de exibição da GLUT glutInitWindowSize(600,400); //Tamanho inicial em pixel da janela GLUT glutInitWindowPosition(100,100); //Posição Inicial da janela glut glutCreateWindow("Trabalho de Programação II - OpenGL"); //Título da janela glutDisplayFunc(desenha); //Registra a função de redesenho a tela glutReshapeFunc(AlteraTamanhoJanela); //Função para redesenhar glutKeyboardFunc(teclado); //Registra a função para tratamento de teclas inicializacao(); glutMainLoop(); //Inicia o processamento e aguarda interações do usuário return 0; } TrabalhoOpenGL.rar
  3. C Maneira de fazer com que o programa inicie lentamente

    Bom dia, Eu estava curioso e gostaria de saber se existe alguma maneira de fazer com que esse trecho do meu código inicie de uma maneira como se alguém tivesse digitando na tela, letra a letra normalmente nesse trecho especifico do meu código. Existe algum comando especifico ou precisa de fazer de alguma maneira? Obrigado. void introducao () { puts("Bem-vindo ao Batalha Naval"); printf("\n"); puts("Você é um almirante que tem a missão de derrubar as embarcações inimigas\ne dar vantagem para o seu país na guerra"); puts("Suas Embarcações"); printf("\nSubmarino = SSS ou \nS\nS\nS"); printf("\nHidro-Avião = H em V ou > ou <"); printf("\nPorta-Aviões = PPP ou \nP\nP\nP"); printf("\nDestroyer = DDD ou \nD\nD\nD"); printf("\n"); printf("\n"); puts("Qual seu nome?"); fflush(stdin); gets(jogador.nome); }
  4. C Batalha Naval erro de execução

    Nossa! Não sabia que podia usar o switch dessa maneira, só usava em casos para fazer menus simples. Obrigado@TYSQUARE89 você me ajudou bastante. Só uma dúvida, o que significa o "?" na sintaxe? Esse é novo para mim.
  5. C Batalha Naval erro de execução

    Oh, perdão! #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <locale.h> struct almirante //Perfil e dados dos jogadores { char nome[100]; int placar; }; void batalha_naval () //Jogo { char campo[14][14]; //Campo int hidro_cont, porta_cont, des_cont; int l, c; int c1 = 0, l1 = 0; int vida = 36; struct almirante jogador; jogador.placar = 0; //Placar hidro_cont = 0; porta_cont = 0; des_cont = 0; char inimigo[14][14] = { //Arena do jogo {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 4}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 4}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0}, {4, 4, 4, 0, 0, 0, 2, 3, 2, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0}, {0, 3, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0}, {0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2}, {0, 3, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0}, {0, 3, 3, 3, 3, 3, 2, 0, 2, 0, 0, 1, 0, 2} }; //Desenha a arena for(l = 0; l < 14; l = l + 1) { for(c = 0; c < 14; c = c + 1) { campo[l][c] = '~'; printf(" \t%c" , campo[l][c]); } printf("\n"); } //Condição para continuar jogando while (vida != 0) { printf("Vida: %i\n", vida); printf("Informe a linha: "); scanf("%i", &l); printf("Informe a coluna: "); scanf("%i", &c); printf("\n"); c1 = c; l1 = l; if(inimigo[l][c] == 0) { for(l = 0; l < 14; l = l + 1) { for(c = 0; c < 14; c = c + 1) { if(l == l1 && c == c1) { campo[l][c] = '*'; } printf(" \t%c" , campo[l][c]); } printf("\n"); } puts("Errou"); } if(inimigo[l][c] == 1) { for(l = 0; l < 14; l = l + 1) { for(c = 0; c < 14; c = c + 1) { if(l == l1 && c == c1) { campo[l][c] = 'S'; vida = vida - 1; } printf(" \t%c" , campo[l][c]); if(campo[l][c] == 'S') { vida = vida - 0; } } printf("\n"); } puts("Submarino destruído"); } if(inimigo[l][c] == 2) { for(l = 0; l < 14; l = l + 1) { for(c = 0; c < 14; c = c + 1) { if(l == l1 && c == c1) { campo[l][c] = 'H'; vida = vida - 1; hidro_cont = hidro_cont + 1; if(hidro_cont == 3) { hidro_cont = 0; } } printf(" \t%c", campo[l][c]); } printf("\n"); } puts("Hidro-Avião destruído"); } if(inimigo[l][c] == 3) { for(l = 0; l < 14; l = l + 1) { for (c = 0; c < 14; c = c + 1) { if(l == l1 && c == c1) { campo[l][c] = 'P'; vida = vida - 1; porta_cont = porta_cont + 1; if(porta_cont == 4) { porta_cont = 0; } } printf(" \t%c", campo[l][c]); } printf("\n"); } puts("Porta-aviões destruído"); } if(inimigo[l][c] == 4) { for(l = 0; l < 14; l = l + 1) { for(c = 0; c < 14; c = c + 1) { if(l == l1 && c == c1) { campo[l][c] = 'D'; vida = vida - 1; if(l == c) { des_cont = des_cont + 1; if(des_cont == 3) { } } } printf(" \t%c", campo[l][c]); } printf("\n"); } puts("Destroyer destruído"); } if(vida == 0) { system("cls"); puts("FIM DO JOGO"); jogador.placar = jogador.placar + 1; printf("Placar: %i", jogador.placar); } } } main () { setlocale(LC_ALL,"portuguese"); batalha_naval (); getch(); return 0; } Eu só coloquei a condição quando um submarino é atingido, para testar se funcionasse. Todas os números "1" na matriz representam um submarino. Quando eu digito 0 e 1 (coordenadas) para atingir um submarino e digito novamente, a vida é extraída do mesmo jeito.
  6. C Batalha Naval erro de execução

    Usei mais por formalidade mesmo, o que não entendo é porque a condição não está funcionando. Isso que, quando uso uma mesma coordenada que já foi descoberta, a vida ainda é subtraída. Pensei que usando essa condição resolveria o problema, mas não adiantou.
  7. C Batalha Naval erro de execução

    Olá novamente, percebi um erro lógico no meu código, quando digito em uma mesma posição onde o setor está localizado, a vida é subtraída mesmo assim. Eu já tentei fazer isso. if(inimigo[l][c] == 1) { for(l = 0; l < 14; l = l + 1) { for(c = 0; c < 14; c = c + 1) { if(l == l1 && c == c1) { campo[l][c] = 'S'; vida = vida - 1; } if(campo[l][c] == 'S') { vida = vida - 0; } printf(" \t%c" , campo[l][c]); } printf("\n"); } puts("Submarino destruído"); } E mesmo assim a vida é subtraída. Tentei colocar ela em diferentes posições e mesmo assim não funciona, o que estou fazendo de errado?
  8. C Batalha Naval erro de execução

    Muito obrigado @TYSQUARE89
  9. C Batalha Naval erro de execução

    Bom dia, estou desenvolvendo um jogo de Batalha Naval, quando executo o programa apenas uma vez o computador pede a linha e a coluna, em seguida fica mostrando várias mensagens de erro em seguida, alguém sabe no que deu errado? #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <locale.h> struct almirante //Perfil e dados dos jogadores { char nome[100]; int placar; }; void batalha_naval () { char campo[14][14]; int cont, sub_cont, hidro_cont, porta_cont, des_cont; int l, c; int vida = 14; struct almirante jogador; char inimigo[14][14] = { {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 4}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 4}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0}, {4, 4, 4, 0, 0, 0, 2, 3, 2, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0}, {0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2}, {0, 3, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0}, {0, 3, 3, 3, 3, 0, 2, 0, 2, 0, 0, 1, 0, 2} }; for(l = 1; l < 14; l = l + 1) { for(c = 1; c < 14; c = c + 1) { campo[l][c] = '.'; printf(" |%c|" , campo[l][c]); } printf("\n"); } printf("Informe a linha: "); scanf("%i", &l); printf("Informe a coluna: "); scanf("%i", &c); printf("\n"); while (vida != 0) { if(inimigo[l][c] == 0) { campo[l][c] == '*'; puts("Errou"); } if(inimigo[l][c] == 1) { campo[l][c] = 'S'; puts("Submarino destruído"); vida = vida - 1; } if(inimigo[l][c] == 2) { campo[l][c] = 'H'; hidro_cont = hidro_cont + 1; if(hidro_cont == 3) { puts("Hidro-Avião destruído"); hidro_cont = 0; vida = vida - 1; } } if(inimigo[l][c] == 3) { campo[l][c] = 'P'; porta_cont = porta_cont + 1; if(porta_cont == 4) { puts("Porta-aviões destruído"); porta_cont = 0; vida = vida - 1; } } if(inimigo[l][c] == 4) { campo[l][c] = 'D'; des_cont = des_cont + 1; if(des_cont == 3) { puts("Destroyers destruído"); des_cont = 0; vida = vida - 1; } } jogador.placar = jogador.placar + 1; puts("Fim de jogo"); printf("Placar: %i", jogador.placar); } } main () { setlocale(LC_ALL,"portuguese"); batalha_naval (); getch(); return 0; }
  10. Checando se um programa está no vetor

    Sempre me esqueço do cont precisa estar igual a 0, e essa condição foi um deslize. Obrigado!
  11. Checando se um programa está no vetor

    Boa tarde! Estou fazendo um programa onde tenho que digitar um vetor de 10 índices, após isso digitar um número e ver se esse número digitado está contido no vetor. Obrigado! #include <stdio.h> #include <stdlib.h> #include <locale.h> main () { setlocale(LC_ALL,"portuguese"); int i, vet[10], cheque, cont; printf("Checando um número no vetor\n\n"); for(i = 0; i < 10; i = i + 1) //Conta o vetor { printf("Digite o [%i°] valor: ", i + 1); scanf("%i", &vet[i]); } printf("\nTecle um número para checar se está no vetor: "); //Número a ser checado para ver se está no vetor fflush(stdin); scanf("%i", &cheque); for(i = 0; i < 10; i = i + 1 ) //Laço para checar se contém o número { if(cheque == vet[i]) { cont = cont + 1; } } if(cont == 0) { printf("\nContem"); } else { printf("\nNão Contém"); } getch(); return 0; }
  12. Soma de Matriz com Vetor

    Olá! Estou com um problema em um exercício onde preciso somar a linha de uma matriz com um bloco de vetor. Basicamente o que eu fiz no meu código foi tentar somar as linhas das matrizes e passar para um vetor para que no final eu usasse um outro vetor para simplesmente fazer uma soma e com isso eu tentei usar o exemplo que o meu professor usou e quando fiz os resultados saíram errado. #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <locale.h> main () { setlocale(LC_ALL,"portuguese"); int m[4][4], v[4], v2[4], result; int l, c; printf("Soma de Matriz com vetor"); printf("\nPrimeira matriz: "); for(l = 0; l < 4; l = l + 1) { for(c = 0; c < 4; c = c + 1) { scanf("%i", &m[l][c]); } } printf("\nVetor: "); for(l = 0; l < 4; l = l + 1) { scanf("%i", &v[l]); } for(l = 0; l < 4; l = l + 1) { for(c = 0; c < 4; c = c + 1) { v2[l] += m[l][c]; } } printf("\nResultado\n"); for(l = 0; l < 4; l = l + 1) { result = v[l] + v2[l]; printf("%i ", result); } getch(); return 0; }
  13. Condições IF e Else

    @devair1010 Seu código está funcionando corretamente, vou checar as chaves, porém está imprimindo dois IMC, um com mais de dois pontos após a vírgula. E percebi que você usa o else if de maneira diferente, funciona da mesma maneira? adicionado 9 minutos depois @devair1010 Consegui resolver! Não foi problema de chave no meu, na verdade foi a condição (IMC == PESO || IMC == PESO) Só substitui o "||" por "&&", isso tava bloqueando imprimir o resultado certo, só não entendo, o "||" não significa "ou", então deveria estar certo.
  14. Condições IF e Else

    Boa noite O problema que estou tendo é em que tenho que criar um programa que calcule o IMC de uma pessoa, contudo está tendo problemas nas condições. Abaixo de 18,5 Abaixo do peso ideal Entre 18,5 e 24,9 Peso normal Entre 25,0 e 29,9 Acima de seu peso (sobrepeso) Entre 30,0 e 34,9 Obesidade grau I Entre 35,0 e 39,9 Obesidade grau II 40,0 e acima Obesidade grau III O IMC é calculado = peso / (altura*altura) Estou tentando com 1,69 de altura e 100 quilos e o resultado está dando 35,01 e fala que está dando Peso Normal ao invés de Obesidade Grau II #include <stdio.h> #include <stdlib.h> #include <locale.h> main () { setlocale(LC_ALL,"portuguese"); float peso, altura, imc; printf("Cálculo do IMC"); printf("\nDigite sua altura: "); scanf("%f", &altura); printf("\nDigite seu peso: "); scanf("%f", &peso); imc = peso / (altura * altura); if(imc < 18.5) { printf("\nIMC: %.2f\nAbaixo do Peso", imc); } else if(imc >= 18.50 || imc <= 24.90) { printf("\nIMC: %.2f\nPeso Normal", imc); } else if (imc >= 25.00 || imc <= 29.90) { printf("\nIMC: %.2f\nSobrepeso", imc); } else if (imc >=30.00 || imc <= 34.9) { printf("\nIMC: %.2f\nObesidade Grau I", imc); } else if (imc >= 35.00 || imc <= 39.90) { printf("\nIMC: %.2f\nObesidade Grau II", imc); } else if (imc >= 40.00) { printf("\nIMC: %i\nObeisdade Grau III", imc); } return 0; getch(); }
  15. Preenchimento de Matriz automático e Soma de Matriz com Vetor

    Olá à todos! Eu estou começando a estudar matrizes em C e atualmente estou com problemas em dois exercícios (resolvi postar os dois num só tópico para evitar dois tópicos, sou novo no fórum e li as regras de maneira muito superficial ainda, peço desculpas inicialmente). Pois bem, basicamente o primeiro exercício exige que um faça uma Matriz desse tipo: 1 1 1 1 1 1 1 2 2 2 2 1 1 2 3 3 2 1 1 2 3 3 2 1 1 2 2 2 2 1 1 1 1 1 1 1 Basicamente preciso fazer uma matriz igual a essa de maneira automática, esse é o meu código: #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <locale.h> main () { setlocale(LC_ALL,"portuguese"); int m[6][6], l, c; for (l = 0; l < 6; l = l + 1) { for(c = 0; c < 6; c = c + 1) { if(l == 0 && c == 5) { m[l][c] = 2; } else if (l == 1 && c == 4) { m[l][c] = 2; } else if (l == 2 && c == 3) { m[l][c] = 2; } else if (l == 3 && c == 2) { m[l][c] = 2; } else { m[l][c] = 3; } } } for (l = 0; l < 6; l = l + 1) { for(c = 0; c < 6; c = c + 1) { if(l == c) { m[l][c] = 1; } } } for (l = 0; l < 6; l = l + 1) { printf("\n"); for(c = 0; c < 6; c = c + 1) { printf("%d",m[l][c]); } } getch(); return 0; } Basicamente o resultado está só imprimindo 1 e nada do que fiz adiantou, tentei usar outros métodos, mas o programa dava crash ou o resultado não mostrava o que era esperado. Já o segundo o problema é mais simples, quero simplesmente imprimir o resultado da soma de uma linha de matriz com um vetor, porém apenas o resultado certo não está sendo mostrado: #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <locale.h> main () { int m[1][4]; int v[1]; int v2[1]; int l, c, result; printf("Matriz (4x4) :\n"); for (l = 0; l < 1; l = l + 1) { for(c = 0; c < 4; c = c + 1) { scanf("%d", &m[l][c]); result = result + m[l][c]; } printf("\n"); } printf("\nVetor:\n"); for (l = 0; l < 1; l = l + 1) { scanf("%d", &v[l]); } printf("\nResultado: "); for (l = 0; l < 1; l = l + 1) { v2[l] = v[l] + result; printf("%d", v2[l]); } }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×