Benjamin Breeg
Membro Pleno-
Posts
226 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que Benjamin Breeg postou
-
O mais difícil de programação 3d é a matemática,é preciso ter um razoável conhecimento de álgebra, trigonometria, geometria, manipulação de vetores etc etc. Sendo um novato acho que esta muito cedo para você entrar nessa área. Bom minha opinião pelo menos. Melhor você primeiro dominar bem a linguagem, ai depois partir para alguma API tipo SDL ou Allegro ou se aventurar em engines já prontas tipo a Unreal Engine que usa código c++, a engine certamente faz a matemática pesada por você mas ainda assim vai ser bem difícil fazer algo seu sem ter pelo menos um mínimo conhecimento das formulas envolvidas.
-
É acho que para C seria legal aprender o SDL, eu também não entrei nessa parte de interfaces ainda, primeiro quero assimilar bem a linguagem C++, ai depois seguir nessa linha SDL ou Allegro, dizem que Allegro é mais fácil para quem esta começando. Parabéns, ficou excelente, impressionante a velocidade que você conseguiu implementar o algoritmo minimax.
-
Hehe mas jogo da velha é assim mesmo, não lembra no filme Jogos de Guerra (clássico dos anos 80) que o personagem do Matthew Broderick fez o computador torrar jogando jogo da velha contra si mesmo e impedindo ele de lançar os misseis. https://www.youtube.com/watch?v=F7qOV8xonfY Ficou excelente o jogo cara, concordo com nosso amigo, realmente merece uma interface gráfica.
-
Procure por Algoritmo Minimax https://www.youtube.com/watch?v=cwzKjFkSyIE Se você procurar tic tac toe minimax algorithm vai encontrar vários exemplos em c de jogo da velha com IA.
-
O problema ali do segundo programa é que você colocou um . (ponto) quando formatou o tamanho do buffer para aceitar a entrada de 10 caracteres. O correto seria: char nome[11]; e scanf ("%10s", nome); Se você entrar com uma string maior que 10 buga o programa, para resolver isso voce pode usar esse comando apos o scanf ("%10s", nome); desta maneira mesmo que seja entrada um string maior que o limite ele simplesmente ignora o restante e mostra apenas 10 no caso. while(1) { c = getchar(); if (c == ' ' || c == '\n' || c == EOF) break; }
-
Se você usar o PI com mais casas decimais, os cálculos serão mais precisos, eu costumo usar const double PI = 3.14159265358979323846. porém como o enunciado do exercício já especifica um valor para PI pode ser que o professor crie caso. hehe
-
calcula a resistência equivalente de N resistores em paralelo dados como entrada
Benjamin Breeg respondeu ao tópico de fagner S Silva em C/C#/C++
Esse teu programa esta um tanto confuso, seguindo a teoria que vi no vídeo abaixo fica algo assim: Aula 5 - Associação de resistores série e paralelo #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int i=1, n; float a, b, r, rt; // Ponto A, Ponto B printf("Informe numero de resistores: "); scanf("%d",&n); for (i; i<=n; i++) { printf("Informe valor do resistor %d: ",i); scanf("%f", &r); a = 1 / r; b = a + b; rt = 1 / b; } printf("%f\n",rt); system("PAUSE"); } Os cálculos feitos com o algoritmo bateram com os da professora. -
Eu tinha feito algo parecido em c++ só que usei as funções da biblioteca <ctime> Lembrando que você pode formatar a saída do strftime, tipo colocar segunda-fera no lugar de seg, 2017 no lugar de 17 etc etc. http://www.cplusplus.com/reference/ctime/strftime/ #include <iostream> #include <windows.h> // Funcao Sleep() #include <cstdlib> #include <ctime> #include <clocale> int main() { time_t rawTime; struct tm * relogio; char a[100]; while(1) { system("cls"); setlocale(LC_ALL, "Portuguese"); rawTime = time(NULL); relogio = localtime(&rawTime); strftime(a, 100, "%I:%M:%S", relogio); std::cout << a << std::endl; strftime(a, 100, "%a %d %b %y", relogio); std::cout << a; Sleep(1000); } return 0; }
-
Veja se é isso Para validar o funcionamento eu coloquei para verificar os números perfeitos de 1 a 500 e ele mostrou o 6, 28 e 496 comprovando o funcionamento do código. #include <iostream> int main () { int i, j, ini, fim, soma=0; std::cout << "Digite o primeiro termo do intervalo de numeros desejado: "; std::cin >> ini; std::cout << "Digite o ultimo termo do intervalo desejado: "; std::cin >> fim; i = ini; while(i <= fim) { soma = 0; i++; j = 1; while( j < i) { if ((i%j)==0) soma = soma + j; j++; } if(soma==i) { std::cout << i << " e um numero perfeito" << "\n"; } else if(soma != i) { std::cout << i << " nao e um numero perfeito" << "\n"; } i++; } return 0; }
-
Erro na execução de um exercício simples, o que pode ser?
Benjamin Breeg respondeu ao tópico de ÉlissonMoura em C/C#/C++
Olhando por alto você esqueceu o & nos scanf e mudei o "and" por &&. #include <stdio.h> #include <stdlib.h> #include <locale.h> int main(){ setlocale(LC_ALL, "portuguese"); // variáveis aqui float n1, n2, n3, resultado, ME; //início do códgio, obtendo valores das variáveis necessárias printf("Digite a primeira nota do aluno: \n"); scanf("%f", &n1); setbuf(stdin, NULL); printf("Digite a segunda nota do aluno: \n"); scanf("%f", &n2); setbuf(stdin, NULL); printf("Digite a terceira nota do aluno: \n"); scanf("%f", &n3); setbuf(stdin, NULL); printf("Digite a nota da média dos exercícios realizados pelo aluno: \n"); scanf("%f", &ME); setbuf(stdin, NULL); // processo de resultado resultado = (n1+n2*2+n3*3+ME)/7; // Condicionais para saber a nota de acordo com a Tabela dada //maior ou igual a 9 A //maior ou igual a 7.5 e menor que 9 B //maior ou igual a 6 e menor que 7.5 C //maior ou igual a 4 e menor que 6 D //menor que 4 E if(resultado<4){ printf("O aluno tirou nota: E \n\n"); }else if((resultado >= 4) && (resultado<6)){ printf("O aluno tirou nota: D \n\n"); }else if((resultado >= 6) && (resultado <7.5)){ printf("O aluno tirou nota: C \n\n"); }else if((resultado >= 7.5) && (resultado<9)){ printf("O aluno tirou nota: B \n\n"); }else if(resultado >= 9){ printf("O aluno tirou nota: A \n\n"); } // demonstração de todas as notas adquiridas pelo aluno para realizar o cálculo final printf(" De acordo com as seguintes notas! \n\n"); printf("Primeiro bimestre %f com peso 1 \n", n1); printf("Segundo bimestre %f com peso 2 \n", n2); printf("Terceiro bimestre %f com peso 3 \n", n3); printf("Nota adquirida pela média de exercícios %f com peso 1 \n", ME); system("pause"); return 0; } -
C: usando a biblioteca Expat para XML
Benjamin Breeg respondeu ao tópico de ShadowlordCefet em C/C#/C++
Essa lib tem uma arquivo que voce precisa carregar, so o cabeçalho não basta Bom eu nao sei como trabalhar o Linux mas tenta colocar em settings / compiler / aba Linker settings add e escreve libexpa sem aspas, extensao etc etc. -
Que problema estranho! Você tentou compilar pela linha de comando? Para usar o compilador na linha de comando segue os procedimentos desse site aqui. https://terminaldeinformacao.com/2015/10/08/como-instalar-e-configurar-o-gcc-no-windows-mingw/ se der que o comando não existe segue esse tutorial aqui para colocar o gcc na path do sistema pra ele poder ser acessado de qualquer lugar, basicamente fica assim: Se você instalou o MinGW separadamente adiona na path ;C:\MinGW\bin Se você instalou o CodeBlocks com MinGW integrado adiciona na path ;C:\Program Files (x86)\CodeBlocks\MinGW\bin Feito isso aproveitando o codigo do Ola enviado pelo nosso amigo digita "gcc Ola.c -o Ola.exe" sem aspas e cola aqui o resultado, se não funcionar o problema pode estar na versao ou instalacao do compilador visto que tanto o CodeBlocks e o Dev c++ usa o mesmo, se funcionar o problema esta na configuração das IDE, o que seria estranho ja que as opções default funcionam perfeitamente mas vamos por parte. Tente fazer o procedimento desse video:
-
O seu programa parece estar certo, você so esqueceu de inicializar as variáveis de soma e multiplicação. somatorio=0, mult=1; //Instituto Federal de São Paulo - Campus Sertãozinho //Disciplina: M2LPBA //Programação de Computadores e Dispositivos Móveis //Aluno.....: Gleiciane Tolentino #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { //declaração de variaveis int numeros[5], cont, somatorio=0, mult=1; //loop para receber os valores digitados pelo usuario for (cont=0; cont<5; cont++){ printf ("Digite um numero [%d]: ", cont); scanf ("%d", &numeros[cont]); } //Somando os valores do vetor for (cont=0;cont<5;cont++) { somatorio = somatorio + numeros[cont]; mult = mult * numeros[cont]; } //imprimindo a soma e o produto printf("O somatorio é = %d\n", somatorio); printf("Multiplicacao = %d\n", mult); return 0; }
-
Exibir letras mais repetidas em uma palavra
Benjamin Breeg respondeu ao tópico de 28guga28 em C/C#/C++
Esse programa pode te ajudar, ele faz o que voce inicialmente queria, que era contar cada letra. http://www.programmingsimplified.com/c-program-find-characters-frequency #include <stdio.h> #include <string.h> int main() { char string[100]; int c = 0, count[26] = {0}; printf("Enter a string\n"); gets(string); while (string[c] != '\0') { /** Considering characters from 'a' to 'z' only and ignoring others */ if (string[c] >= 'a' && string[c] <= 'z') count[string[c]-'a']++; c++; } for (c = 0; c < 26; c++) { /** Printing only those characters whose count is at least 1 */ if (count[c] != 0) printf("%c occurs %d times in the entered string.\n",c+'a',count[c]); } return 0; } -
Dev C++ ConsolePauser.exe parou de funcionar
Benjamin Breeg respondeu ao tópico de celsonasciutti em C/C#/C++
Isso ai parece ser um bug em alguns computadores, eu tive esse problema quando usava o Dev, solucionei usando uma versao do ConsolePauser.exe escrita por um cara que mantinha uma versao propria do Dev. http://pastebin.com/xbNZGkHx Baixe o código desse link e gere o executável com o nome ConsolePauser.exe, ai você substitui o antigo. Usei assim durante muito tempo mas depois acabei trocando pelo Code Blocks. A versao que falei é essa mas também teve o desenvolvimento interrompido pelo que parece. http://orwelldevcpp.blogspot.com.br -
Cara confere direitinho, aqui esta funcionando corretamente, testei vários números de acordo com uma tabela e bateu tudo certinho. A lógica funciona assim, um numero é primo se ele for divisível apenas por si próprio e por um, o loop vai dividir todos os números entre o numero digitado e 1 pra descobrir quantos divisores o numero tem, ai entra na regrinha do inicio, se ele for divisível apenas por 2 números que nao sobra resto, é um numero primo. Cara estude a teoria das operações matemáticas que você vai trabalhar, apesar de muitos falarem que programação nao precisa de matemática, nao tem como bolar algoritmos como este se você nao sabe ou esqueceu a teoria dos números primos. Se não tem paciência pra ler no YouTube é cheio de pessoas que ensinam matemática, posso indicar o canal do marcos aba. É muito bom http://www.planetaescuro.com/numeros-primos/
-
matematicamente falando o único numero par que é primo é o numero "2", mudei o seu código para mostrar se é primo ou nao de forma correta. #include <stdio.h> #include <conio.h> #include <math.h> int main() { int n,i, cont=0; printf("Digite um numero positivo\n"); scanf("%d",&n); if(n>1) { for(i=1; i<= n; i++) { if(n % i == 0) cont++; } } if(cont ==2) printf("%d e primo\n",n); else printf("%d nao é primo\n",n); getch(); return 0; }
-
C++;Colocar frase em maiscula.
Benjamin Breeg respondeu ao tópico de Pedro Henrique Faria Teixe em C/C#/C++
Procure por função "toupper" da biblioteca "ctype.h" -
O que está errado? (Cálculo da média em C)
Benjamin Breeg respondeu ao tópico de Juliana Duque em C/C#/C++
Se a condição tiver apenas uma linha você não precisa usar {}, o que você deve ter visto era algo parecido com isso, no seu exemplo era mais de 1 linha por isso o compilador acusou erro. Eu também estou começando e sempre coloco os {} para seguir uma boa pratica de programação. #include<stdio.h> #include<stdlib.h> int main() { float nota1,nota2,media; printf("Digite a primeira nota: "); scanf("%f",¬a1); printf("Digite a segunda nota: "); scanf("%f",¬a2); media = (nota1+nota2)/2; if (media>=5) printf("Aprovado(a) %.2f\n",media); //Verdadeira else printf("Prova final %.2f\n", media); system("pause"); return 0; } -
Haha agora que você falou, eu vi que fiz uma caca enorme na hora de contar os espaços pra casar com a palavra sonho. Muito obrigado Devair1010
-
Esse problema 2 do exercício 2 eu consegui fazer o triangulo ficar reverso no mesmo padrão da foto mas quando tento colocar a palavra sonho não consigo fazer o alinhamento. Alguém sabe o que pode ser? #include<stdio.h> int main() { int i; int j; int k; for(int i=0;i<=5;i++) { for(int j=0;j<=i;j++) { printf(" "); } for(int k=5;k>i;k--) { printf("*"); } printf("\n"); } return 0;
-
Muito Obrigado MassakiMsk, editei o código com a sua a sua explicação, esta funcionando direitinho agora.
-
Ola, pessoal estou com um problema para converter um algoritmo em portugol para linguagem c. Estou enviando o código do visualg e o código do que já fiz em C A parte que pega a maior nota esta funcionando bem mas quando tento atribuir a variável melhorAluno = nome, o compilador da essa mensagem de erro. "error: assignment to expression with array type". Acho que eu teria que criar um vetor pra usar strings mas nao estou entendendo como fazer. Eu tentei colocar o melhorAluno = nome / nome = melhorAluno na parte dos IFs mas da esse erro, pelo visto nao é estão simples assim no c hehe. algoritmo "detectaCDF" var tot, cont: Inteiro nome, melhorAluno: Caractere nota, maiorNota: Real inicio Escreval("------------------------") Escreval(" Escola Santa Paciencia ") Escreval("------------------------") Escreva("Quantos alunos a turma tem? ") Leia(tot) cont <- 1 Enquanto (cont <= tot) faca Escreval("---------------") Escreval("ALUNO ", cont) Escreva("Nome do aluno: ") Leia(nome) Escreva("Nota de ", nome, ": ") Leia(nota) Se (nota > maiornota) então maiorNota <- nota melhorAluno <- nome FimSe cont <- cont + 1 FimEnquanto Escreval("-------------------") Escreval("O melhor aproveitamento foi de ", melhorAluno, " com a nota ", maiorNota:3:1) fimalgoritmo #include<stdio.h> int main() { int tot, cont, i; char nome[20], melhorAluno[20]; float nota, maiorNota; printf("------------------------\n"); printf(" Escola Santa Paciencia \n"); printf("------------------------\n"); printf("Quantos alunos a turma tem?"); scanf("%i", &tot); cont = 1; while(cont <= tot) { printf("\n---------------\n"); printf("\nALUNO %i\n", cont); printf("Nome do aluno: "); scanf("%s", nome); printf("\nNota de %s: ", nome); scanf("%f", ¬a); if(nota > maiorNota) { maiorNota = nota; strcpy(melhorAluno, nome); } if(maiorNota > nota) { nota = maiorNota; strcpy(nome, melhorAluno); } cont = cont + 1; } printf("\n-------------------"); printf("\nO melhor aproveitamento foi de %s com a nota %.2f", melhorAluno, nota); }
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
