Ir ao conteúdo
  • Cadastre-se

JVGS1111

Membro Pleno
  • Posts

    30
  • Cadastrado em

  • Última visita

posts postados por JVGS1111

  1. Boa tarde a todos, estou com o seguinte problema:

     

     

    "Elaborar código computacional para resolver o problema do quebra-cabeça de blocos deslizantes de terceira ordem.

    A entrega será arquivo em PDF com a caracterização do problema (segundo preceitos da IA), código documentado e evidências de funcionamento."

     

     

    Não tenho nenhuma noção sobre IA, Heurística, etc... alguém poderia me orientar como posso resolver isso ?

  2. Boa tarde, estou fazendo uma verificação de um array com FOR, o código tem que detectar se dentro do array o valor é '.', se for 2 variáveis recebem a posição(linha, coluna),com o tempo este array vai ser modificado e preciso que o código encontre um lugar 'vazio' porém estão sempre entregando o mesmo valor,

    public class Testes {
    
    
    	public static void main(String[] args) {
    		
    		
    				
    		int lin = 0, col = 0;
            int LinCPU = 0;
            int ColCPU = 0;
            final char pt = '.';
    		byte [][] m =
    			{
    				{pt, pt, pt},
    				{pt, pt, pt},
    				{pt, pt, pt}
    			};
    		
    			
    			for (lin = 0; lin < 2; lin++)
    			{
    				for (col = 0; col < 2; col++)
    				{
    					
    			        if(m[lin][col] == pt) 
    			        	LinCPU = lin;
    			        	ColCPU = col;
    			        	
    			        	System.out.println(LinCPU + " " + ColCPU);
    						break;
    				}
    				
    			break;
    							
    			}
    			
    						
    		
    		
    	}
    }

    o que há de errado ?

  3. boa noite, estou fazendo um jogo da velha em java, estou tentando aprender classe e métodos e estou com dificuldade nisso, eu tenho o programa em estruturado e estou quebrando ele em partes e colocando em classes. Minha dificuldade no momento é imprimir o array do jogo da velha como um método. no caso o metodo esta imprimindo um único ponto ao invés da grade. desde já agradeço a quem ajudar.

    package jogoDaVelha;
    /*deve armazenar e controlar a condiçao 
    do tabuleiro, saber responder se o 
    jogo esta empatado, vitoria, derrota ou
    inacabado*/
    
    import java.util.Scanner;
    
    public class Tabuleiro {
    	
    		final char pt = '.';
    		char [][] m =
    			{
    				{pt, pt, pt},
    				{pt, pt, pt},
    				{pt, pt, pt}
    			};
    		
    		int lin1 = 0;
    		int col1 = 0;
    		char jogo;
    		
    		
    		public char jogo(){
    			
    			for (lin1 = 0; lin1 < 3; lin1++)
    			{
    				for (col1 = 0; col1 < 3; col1++)
    				{
    					jogo = m[lin1][col1];
    					
    					// System.out.printf("%c", m[lin1][col1]); como estruturado assim funcionava
    				}
    				
    			}
    			return jogo;
    		}
    		
    }
    package jogoDaVelha;
    
    import java.util.Scanner;
    
    public class Inicio {
    
    	
    	public static void main(String[] args) {
    		
    		
    		var classeTabuleiro = new Tabuleiro();
    		
    		
    		System.out.println(classeTabuleiro.jogo());
    		
    		
    	}
    	
    	
    	
    }

     

  4. boa noite, estou tentado aprender a logica do jogo da velha em c estruturado e depois vou converter o codigo para java orientado a objeto, mas não estou conseguindo terminar o código, esta dando algum erro na execução, 

    imagina o que pode ser ?

    desde já obrigado 😀

    #include <stdio.h>
    #include <stdlib.h>
    
    
    int main() {
    	
    	const char pt = '.';
    	unsigned char m[3][3] = {{pt,pt,pt}, {pt,pt,pt}, {pt,pt,pt}};
    	
    	int lin, col, j = 0;
    	int lin1, col1;
    	
    	const int TRUE = 1;
    	const char O = 'O', X = 'x';
    	
    	printf("Digite coordenadas na fomra linha e coluna :\n");
    	
    	while(TRUE)
    	{
    		for(lin1 = 0; lin1 < 3; lin1++)
    		{
    			for(col1 = 0; col1 < 3; col1++)
    				printf("%c", m[lin1][col1]);	
    			printf("\n");
    		}
    		
    		if	((m[0][0]==O && m[0][1]==O && m[0][2]==O)||
    			(m[1][0]==O && m[1][1]==O && m[1][2]==O)||
    			(m[2][0]==O && m[2][1]==O && m[2][2]==O)||
    			(m[0][0]==O && m[1][0]==O && m[2][0]==O)||
    			(m[0][1]==O && m[1][1]==O && m[2][1]==O)||
    			(m[0][2]==O && m[1][2]==O && m[2][2]==O)||
    			(m[0][0]==O && m[1][1]==O && m[2][2]==O)||
    			(m[0][2]==O && m[1][1]==O && m[2][0]==O))
    			{
    				printf("\a voce ganhou, PRIMEIRO jogador!!!\n");
    				break;
    			}
    		if	((m[0][0]==X && m[0][1]==X && m[0][2]==X)||
    			(m[1][0]==X && m[1][1]==X && m[1][2]==X)||
    			(m[2][0]==X && m[2][1]==X && m[2][2]==X)||
    			(m[0][0]==X && m[1][0]==X && m[2][0]==X)||
    			(m[0][1]==X && m[1][1]==X && m[2][1]==X)||
    			(m[0][2]==X && m[1][2]==X && m[2][2]==X)||
    			(m[0][0]==X && m[1][1]==X && m[2][2]==X)||
    			(m[0][2]==X && m[1][1]==X && m[2][0]==X))
    			{
    				printf("\a voce ganhou, SEGUNDO jogador!!!\n");
    				break;
    			}
    		if (j == 9){
    			printf("\aempatou\n");
    			break;
    		}
    		printf("Coordenada: ");
    		scanf("%d%d", &lin, &col);
    		
    		if(m[lin][col] == pt){
    			
    			if(j% 2){
    				m[lin][col] = X;
    			}
    			else {
    				m[lin][col] = O;
    			}
    				j++; 
    		}
    	}
    	
    	system("PAUSE");
    	return 0;
    }

     

    • Amei 1
  5. @devair1010 acho que entendi, vou tentar fazer a modificação 

    adicionado 18 minutos depois

    @devair1010  tirei o for e usei mais 2 variáveis e deu certo, obrigado. 

    #include <stdio.h>
    #include <stdlib.h>
    
    int cont(int a11, int a22);
    
    int contagem(int a1, int a2) //funcao comum
    {
    	
      int resultado = 0;
      
      resultado = a2 - a1; // modificacao
      return(resultado); //retornando o valor para main
    }
    
    
    int main() {
    	
    int resultadoRecursivo = 0;
    
    	int numero1, numero2, resultado;
    	int a = 0,b = 0;
    	
    	printf("Insira o primeiro numero:        ");
    	scanf("%d", &numero1);
    	b = numero1; // nova variavel
    	printf("Insira um numero menor que o anterior:        ");
    	scanf("%d", &numero2);
    	a = numero2;// nova variavel
    	
    	resultadoRecursivo = cont(numero1, numero2);
    	resultado = contagem(a,b);	
    	
    	system("cls");
    	printf("Comum - Existem %d entre %d e %d\n", resultado, a, b);	
    	printf("Recursivo - Existem %d entre %d e %d\n", resultadoRecursivo, numero1, numero2);
    	
    	system("pause");
    	return 0;
    }
    
    int a3 = 0;
    int a11 = 0;
    int a22 = 0;
    
    int cont(int a11, int a22){ // funcao recursiva 
    	
    	if(a11 != a22)
    	{
    		a11--;
    		a3++;
    		return(cont(a11, a22));
    	}
    	else
    	{
    		return(a3);
    	}
    }

     

    • Curtir 1
  6. Boa Noite estou fazendo um código em C e não esta funcionando de forma correta, a função recursiva funciona e a comum não, antes estava funcionando quando apenas a comum estava implementada. A função deve pegar 2 valor e calcular quantos números entre os dois valores existem. segue có

    #include <stdio.h>
    #include <stdlib.h>
    
    int contagem(int a1, int a2) //conta as variaveis //funcao comum
    {
    	
      int resultado = 0;
      
      for(a1; a1 < a2; a1++){
      	resultado++;	
      }
      return(resultado); //retornando o valor para main
    }
    
    int a3 = 0;
    int resultadoRecursivo = 0;
    int a11 = 0;
    int a22 = 0;
    
    int cont(int a11, int a22){ // recursiva
    	if(a11 != a22)
    	{
    		a11--;
    		a3++;
    		return(cont(a11, a22));
    	}
    	else
    	{
    		return(a3);
    	}
    }
    
    int main() {
    
    	int numero1, numero2, resultado;
    	
    	printf("Insira o primeiro numero:        ");
    	scanf("%d", &numero1);
    	printf("Insira um numero menor que o anterior:        ");
    	scanf("%d", &numero2);
    	
    	resultado = contagem(numero1,numero2);	
    	resultadoRecursivo = cont(numero1, numero2);
    	
    	printf("Existem %d entre %d e %d\n", resultado, numero1, numero2);	
    	printf("Existem %d entre %d e %d\n", resultadoRecursivo, numero1, numero2);
    	
    	system("pause");
    	return 0;
    }
    

    digo:

    • Obrigado 1
  7. Boa tarde, estou fazendo um programa com struct e vetores, é um programa registra 10 usuários e mostra a media de altura, media de peso, o mais obeso e o menos obeso, o programa esta apresentando problemas na hora de selecionar uma opção:

     

    Percebi que deixei de lado algumas boas praticas, sorry.

    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    #include <locale.h>
    
    
    int main() {
    	
    	int i, escolha = 10;
    	int menos = 0, mais = 0;
    	setlocale(LC_ALL, "Portuguese");
    	
    	struct ficha_paciente{
    		
    		int id[10];				
    		int peso[10];
    		float altura[10];
    		float imc[10];
    				
    	};
    	
    	struct ficha_paciente paciente;
    	
    	struct resultado_paciente{
    		
    		int maisObeso;
    		int menosObeso;
    		int mediaDePeso;
    		float mediaDeAltura;
    				
    	};
    
    	struct resultado_paciente resultado;
    	
    	for(i = 0; i< 10; i++){
    				
    		printf("Digite o peso da %d° pessoa\n", 1 + i);
    		scanf("%d", &paciente.peso[i]);
    		printf("Digite a altura da %d° pessoa\n", 1 + i);
    		scanf("%f", &paciente.altura[i]);
    		
    		paciente.imc[i] = ((float)paciente.peso[i]/(paciente.altura[i]*paciente.altura[i])); //calculo de IMC
    		paciente.id[i] = 1 + i;
    		
    		resultado.mediaDeAltura += paciente.altura[i]; //media altura
    		resultado.mediaDePeso += paciente.peso[i]; //media peso
    		mais = paciente.peso[i];
    		menos = paciente.peso[i];
    		if(paciente.peso[i] > mais){
    			resultado.maisObeso = i;
    		}
    		if(paciente.peso[i] < menos){
    			resultado.menosObeso = i;
    		}
    	}
    	system("cls");
    	
    	while(escolha != 5){
    		
    		system("cls");
    		
    		printf("MENU DA OBESIDADE\n\n");
    		printf("1 - informar mais obeso\n");
    		printf("2 - informar menos obeso\n");
    		printf("3 - informar a média de peso\n");
    		printf("4 - informar a média de altura");
    		printf("5 - sair\n");
    		scanf("%d", &escolha);
    		
    		system("cls");
    		
    		switch(escolha){
    			
    			case 1:
    				printf("paciente mais obeso:\n");
    				printf("id: %d\n peso:%d\n altura:%.2f\nIMC:%.2f\n", paciente.id[resultado.maisObeso], paciente.peso[resultado.maisObeso], paciente.altura[resultado.maisObeso],paciente.imc[resultado.maisObeso]);
    				break;
    			case 2:
    				printf("paciente menos obeso:\n");
    				printf("id: %d\n peso:%d\n altura:%.2f\nIMC:%.2f\n", paciente.id[resultado.menosObeso], paciente.peso[resultado.menosObeso], paciente.altura[resultado.menosObeso],paciente.imc[resultado.menosObeso]);
    				break;
    			case 3:
    				printf("Media de peso: %d\n",resultado.mediaDePeso / 10);
    				break;
    			case 4:
    				printf("Media de altura: %.2f\n",resultado.mediaDeAltura / 10);
    				break;
    			case 5:
    				printf("SAINDO\n");
    				break;
    			default: 
    				printf("Valor invalido!");
    				system("pause");
    				break;			
    		}
    
    	}	
    	return 0;
    }

     

    • Amei 1
  8. Deu certo, obrigado @Luís Roberto C. da Silva @Isadora Ferraz

    ficou assim:

    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    
    
    int funcao(int);
    	
    int main() {
    	
    	int x, y, f;
    	
    	printf("Digite o primeiro valor: \n");
    	scanf("%d", &x);
    	printf("Digite o segundo valor: \n");
    	scanf("%d", &y);
    	//Resultados:
    	printf("A soma entre os numeros e: %d\n", x+y);
    	printf("A diferenca entre os numeros e: %d\n", x-y);
    	printf("A multiplicacao entre os numeros e: %d\n", x*y);
    	
    	if(x ==0 || y ==0){
    		
    		printf("Nao é possivel dividir por 0\n");
    		
    	}else{
    		
    		printf("A divisao entre os numeros e: %.2f \n", (float)x/y);
    	}
    	
    	f = funcao(x);
    	
    	printf("A funcao f(x) = 2x(x*x) - x + 10 e: %d\n", f);
    	
    	system("pause");
    	return 0;
    	
    }
    
    int funcao(int variavel){ //funcao da funcao matematica
    	
    	int a;
    	a = 2*(variavel*variavel)-variavel+10;
    	return a;
    	
    }

     

    • Curtir 3
  9. Estou tentando fazem um programa básico em C que mistura as cores primarias. O problema é que o resultado sai errado, o programa sempre mostra o primeiro resultado das 3 respostas possível e junto o resultado correto.. Acredito que se passa de um erro de logica

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main() {
    
    	char cor1[10], cor2[10];
    	
    	//escolha da primeira cor primeria 
    	printf("Bem vindo ao sistema de mistura de cores primarias, selecione uma cor para continuar:\n");
    	printf("\n vermelho");
    	printf("\n verde");
    	printf("\n azul\n");
    	
    	// ordena na variavel a string da esquerda para direita
    	gets(cor1);
    	
    	system("cls");
    	
    	printf("Escolha a segunda cor:\n");
    	printf("\n verde");
    	printf("\n azul");
    	printf("\n vermelho\n");
    		
    	gets(cor2);
    	
    	system("cls");
    
    	if (strcmp (cor1,"vermelho") == 0) {
    		
    		if (strcmp (cor2,"verde") == 0); {
    			printf("\na miscura deu AMARELO\n");
    
    		} if (strcmp (cor2, "azul")==0) {
    			printf("\na mistura deu ROSA\n");
    
    		} if (strcmp (cor2,"vermelho")==0) {
    			printf("\na mistura deu VERMELHO\n");
    		}
    
    	}if (strcmp (cor1,"verde") == 0)   {
    		if (strcmp(cor2, "verde") == 0) ; {
    			printf("\na miscura deu VERDE\n");
    
    		} if (strcmp (cor2,"azul") == 0)  {
    			printf("\na mistura deu CIANO");
    
    		} if (strcmp (cor2,"vermelho") == 0) {
    			printf("\na mistura deu AMARELO");
    		}
    
    	}if (strcmp (cor1,"azul") == 0) {
    		if (strcmp (cor2,"verde") == 0); {
    			printf("\na miscura deu CIANO\n");
    
    		}if (strcmp(cor2,"vermelho") == 0) {
    			printf("\na mistura deu ROSA");
    
    		} if (strcmp (cor2,"azul") == 0) {
    			printf("\na mistura deu AZUL");
    		}
    }
    	
    	system ("pause");
    	return(0);
    
    }

     

  10. estou tentando concatenar 2 strings em C, deveria funcionar da seguinte maneira:

    o usuário digita seu primeiro nome, depois o seu segundo nome e escolhe uma posição no vetor.

    a saída deveria ser o primeiro nome do usuário ate a posição do vetor selecionada em seguida o seu segundo nome concatenado e depois o restante do seu primeiro nome.

     

    EX:JOAO

    guerber

    POSIÇAO : 2

    saida: JOguerberAO

     

    porém meu código percorre o vetor mas não concatena o restante da string no caso o "AO" nao aparece.

    alguém consegue identificar o erro?

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(){
    	
    	char str1[100], str2[100], str3[100];
    	int RU, i, x;
    	
    	printf("Digite seu primeiro nome: "); //salva o primeiro nome
    	scanf("%s", &str1);
    	printf("Digite seu segundo nome: "); // salva o segundo nome
    	scanf("%s", &str2);
    	printf("Digite uma posicao: ");//salva a posicao para concatenar
    	scanf("%d", &RU);
    	// salva a parte concatenada de str1 em str3
    	x= 0;
    	for(i= 0; i < RU ; i++){
    		str3[i] = str1[i]; 
    		x = i;
    	}
    	// concatena str2 com str3
    	x += 1;
    	i = 0;
    	while (str2[i] != '\0' )  {
    		str3[x] = str2[i];  
    		x++;
    		i++;
    		
    	}
    	 // deveria concatenar o restante de str1 par str3
    	x += 1;	
    	for(i = RU+1; str1[i]!= '\0' ; i++){
    		str3[x] = str1[i];                
    		x++;
    	}
    	
    	printf("%s\n", str3); // resultado 
    	printf("%d\n", x); // mostra o indice x
    	printf("%d\n", i);// mostra o indice i
    	
    	system ("pause");
    	return 0;
    	
    }

     

    • Curtir 1
  11. Eu estou no começo da faculdade, perdoem minha ignorância, fiz algumas mudanças porém em alguns casos a saída sai totalmente errada, segue como nas fotos. 

    Anotação 2019-07-14 005647.png

    Anotação 2019-07-14 005751.png

    adicionado 5 minutos depois
    3 horas atrás, AnsiC disse:

    @JVGS1111 ✋Boa Noite!

     

        #️⃣ Só 5 pontos que notei que são interessantes 🙊:

    1. Percebeu que maior e posmaior são logicamente a mesma coisa, idem menor e posmenor ?
    2. A função scanf tem uma pequena correção para ela em seus argumentos: ("%[^\n]",nome[linha]).
    3. As variáveis cont,cont2,cont3,cont4 bem que podem ser todas em uma, vetor cont(4) ?
    4. Todas as variáveis declaradas no topo precisam ser inicializadas isso evita erros lógicos mais tarde. 
    5. A função principal main precisa de normalização, pois ela de outra maneira facilita testes e correções.

    |

     

     

     

    Obrigado pelas digas, estou refletindo.

    as variáveis cont1,cont2,cont3.... estou usando como índice, eu tive problemas em usar uma apenas porque as entradas anteriores ficavam salvas e eu optei por fazer varias ao invés de zerar o valor dela. É uma questão de economia de tempo. 

    • Curtir 2
  12. Eu fiz as mudanças no código porém ainda esta quebrado:

     

    Existe algum erro aparente agora ?

    #include <stdio.h>
    #include <stdlib.h>
     
    
    int main() {
    
    	char nome[200][50];
    	int ID[50], KW[50], escolha, cadastrar, cont, media, cont2, cont3 = 0, cont4 = 0;
    	int sair = 2, maior, posmaior, posmenor, menor; 
    	float total[200];
    	static int linha = 0;
    	
    
    	while (sair == 2) {
    		
    		system("cls");
    		printf("1- cadastro\n");
    		printf("2- relatorio geral\n");
    		printf("3- relatorio de consumo\n");
    		printf("4- relatorio de consumidores\n");
    		scanf("%d", &escolha);
    
    		switch (escolha)
    		{
    		case 1: 
    			system("cls");
    			printf("quantos deseja cadastrar ?\n");
    			scanf("%d", &cadastrar);
    			for (cont = 0; cont < cadastrar; cont++) {
    
    				printf("digite o nome: ");
    				fflush(stdin);
    				scanf("%[^\n]s", &nome[linha]);
    
    				printf("digite o ID: ");
    				fflush(stdin);
    				scanf("%d", &ID[linha]);
    
    				printf("digite o consumo de KW: ");
    				fflush(stdin);
    				scanf("%d", &KW[linha]);
    				if (KW[linha] > 170){				
    				cont2++;
    			}
    				total[linha] += (KW[linha] * 1.75);
    				media += KW[linha];
    
    				system("pause");
    				linha++;
    			}
    		system ("cls");	
    		break;
    		
    		case 2:
    			system("cls");
    			for (cont = 0; cont < cadastrar; cont++) {
    			printf("nome: %s\nID: %d\nconsumo de KW: %d\ntotal a pagar:%.2f \n", nome[cont], ID[cont], KW[cont], total[cont]);
    			system("pause");
    			
    			}
    		system ("cls");	
    		break;
    			
    		case 3:
    			system("cls");
    			printf("media de consumo da cidade: %d \n", media / linha);
    			printf("numero de consumidores que consumiram mais de 170 KW: %d\n", cont2);
    		system("pause");	
    		break;
    		
    		case 4: 
    		
    		// identificaçao do maior (quem gastou mais)
    		maior = KW[0];
    		for (cont3 = 0; cont3 < cadastrar; cont3++) {
    			if (KW[cont3] > maior){
    				posmaior = cont3;
    		
    			}	
    		}
    		menor = KW[0];
    		for (cont4 = 0; cont4 < cadastrar; cont4++) {
    			if (KW[cont4] < menor){
    				posmenor = cont4;
    			}	
    		}
    			printf("Consumidor que mais consumiu: \n");
    			printf("nome:%s\nID:%d\nconsumo:%d\n",nome[posmaior], ID[posmaior], KW[posmaior]);
    			printf("Consumidor que menos consumiu: \n");
    			printf("nome:%s\nID:%d\nconsumo:%d\n",nome[posmenor], ID[posmenor], KW[posmenor]);
    			system("pause");
    			break;
    			
    		default:
    			printf("valor invalido\n");
    			system("pause");
    			break;
    		}
    	}
    }

     

    • Curtir 1
    • Obrigado 1

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...