Ir ao conteúdo

devair1010

Membro Pleno
  • Posts

    6.318
  • Cadastrado em

  • Última visita

Tudo que devair1010 postou

  1. devair1010

    Matriz em C

    @silvaojunior2017 o código que enviei é o mesmo que está lá no tópico de programação iniciantes, o que você precisa fazer é pegar aquele código e colar lá antes do inicio. e se quiser baixe o visualg 3 e cole o código nele para testar se ele está funcionando.
  2. devair1010

    Matriz em C

    @Gabriel Cauê você precisa declarar a matriz assim int matriz1 [ 5 ] [ 5 ] ; int matriz2 [ 5 ] [ 5 ] ; int matriz3 [ 5 ] [ 5 ] ; essa matriz tem cinco linhas por cinco colunas, então você usa dois loop for indo de 0 ate 4 e dentro desse loop pegue os valores da matriz usando o a função scanf assim for(j=0;j<5;j++){ for(i=0;i<5;i++){ printf("digite o %d numero da %d linha ",i+1,j+1); scanf ( " %d " , & matriz1 [j] [i] ) ; } } faça o mesmo para pegar os valores da segunda matriz a matriz2, e para fazer a multiplicação use outros dois loop for iguais a esses e dentro dos loop faça a multiplicação assim matriz3 [j] [ i ] = matriz1 [j] [ i ] * matriz2 [j] [ i ] ; printf ("multiplicacao de %d com %d = %d",matriz1[j][i],matriz2[j][i],matriz3[j][i]);
  3. @Paulo Eduardo Ramos você pode usar os dias do mês, então ele não iria de acordo com os dias da semana ele atualizaria o dia conforme o dia que o programa fosse usado. veja esse código que pega o dia do mês do computador . #include <stdio.h> #include <time.h> int main(){ char data[9]; char hora[9]; _strdate(data); /*isso pega a data do sistema*/ printf( "A data atual em inglês é %s \n",data); _strtime( hora ); /*isso pega a hora do sistema*/ printf( "A hora atual é %s \n",hora); int b=data[3]-48+(data[4]-48); printf("O Dia Do Mes é %d",b); return 0; }
  4. @Gabriel Pic não sei sobre pic , mas sei alguma coisa sobre a linguagem c, e nesse trecho aqui : o else if não está certo, está faltando comparar com alguma coisa, e esse while ficaria em loop infinito por que não tem nada que mude o valor do while, precisa colocar um jeito de mudar o valor de while e isso seria com uma variável, mudando o valor da variável sairia do loop. while(1) { if (S1 == 1 && estado1 == 1){ servo_centro(); } else if ( servo_horario(); } } o else if seria assim: while(1) { if (S1 == 1 && estado1 == 1){ servo_centro(); } else{if (s1==0){servo_horario();}/*aqui coloquei s1 mas precisa ver se é essa variável mesmo*/ } } e dentro desse while teria que ter um jeito de mudar esse s1 para pode ir para a função servo_centro ou servo_horário. já nessa função aqui parece que ficaria em loop infinito //função move serve horario. void servo_horario() { do{ motor = 0; delay_us(18000); motor = 1; delay_us(2000); }while (S1 == 0 && estado1 == 1); } porque s1 e estado1 permanece com o mesmo valor, para resolver isso precisa colocar uma leitura de teclado para mudar o valor de s1 e estado1 para que o programa siga. e nessa função aqui /função move servo antihorario. void servo_antihorario() { motor = 0; delay_us(19000); motor = 1; delay_us(1000); } se motor = 0 significa que o motor deve ficar desligado e motor =1 significa que o motor seja ligado então está certo e o motor ficará desligado por um tempo e depois será ligado e vai aguardar um curto tempo e sairá da função mas o motor permanecerá ligado.
  5. @rjort_nine quando você diz que quer calcular as linhas, será que significa que você quer somar os números de cada linha assim : B= --> 1 + 0 + 0 + 3 => 4 --> 0 + 1 + 0 + 1 => 2 --> 0 + 0 + 1 + 2 => 3 isso você faz assim : matriz [0] [0] + matriz [0] [1] + matriz [0] [2] + matriz [0] [3] matriz [1] [0] + matriz [1] [1] + matriz [1] [2] + matriz [1] [3] matriz [2] [0] + matriz [2] [1] + matriz [2] [2] + matriz [2] [3] matriz [3] [0] + matriz [3] [1] + matriz [3] [2] + matriz [3] [3] seria isso ?
  6. devair1010

    jogo da velha

    @MassakiMsk valeu, obrigado, era isso mesmo não sei como fui errar nesse detalhe, muito obrigado mesmo, me ajudou muito. agora está funcionando, mas não estou conseguindo um jeito de fazer o computador jogar, como seria uma função para que o computador jogue.
  7. devair1010

    jogo da velha

    olá galera, meu professor de lógica de programação pediu para fazer um programa de jogo da velha, para jogar contra o computador . então fiz esse código mas está dando um monte de erros e não estou conseguindo descobrir onde e qual é o erro . por favor será que alguém pode ajudar ? Agradeço desde já. #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <time.h> #include <windows.h> int vet [4][4]; int vet2[4][4]; int i,j,a,b,g,h,r,k,w,f; int qg,vjc,qjp,cg,vg; int ja[11][7]={{126, 32, 32, 32, 33, 18, 12}, /* letra J*/ { 28, 34, 65, 65, 65, 34, 28}, /* letra O*/ { 60, 66, 1, 1,113, 98, 92}, /* letra G*/ { 28, 34, 65, 65, 65, 34, 28}, /* letra O*/ { 31, 33, 65, 65, 65, 33, 31}, /* letra D*/ { 28, 34, 65, 65,127, 65, 65}, /* letra A*/ { 65, 65, 65, 34, 34, 20, 8}, /* letra V*/ { 63, 1, 1, 31, 1, 1, 63}, /* letra E*/ { 1, 1, 1, 1, 1, 1,127}, /* letra L*/ { 65, 65, 65,127, 65, 65, 65}, /* letra H*/ { 28, 34, 65, 65,127, 65, 65}};/* letra A*/ char c[5]; void gotoxy(int x, int y){ COORD c; c.X = x; c.Y = y; SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c); } void desenha(int vt){ gotoxy(71,4) ;printf(" ///" ); gotoxy(71,5) ;printf("(. .)" ); gotoxy(72,6) ;printf(" -" ); gotoxy(72,18);printf("%c",184); gotoxy(0,0) ;printf("\n\n" ); printf(" 1 2 3\n" ); printf(" %c %c %c\n\n",31,31,31); for(i=1;i<4;i++){ if(i==1){printf(" A -%c ",16);} else{ if(i==2){printf(" B -%c ",16);} else{ printf(" C -%c ",16); } } for(j=1;j<4;j++){ if(vt==1){ if(vet[i][j]==1){if(vjc==1){printf(" O ");}else{printf(" X ");}} else{ if(vet[i][j]==2){if(vjc==2){printf(" O ");}else{printf(" X ");}} else{printf(" ");} }} else{ if(vet2[i][j]==1){if(vjc==1){printf(" O ");}else{printf(" X ");}} else{ if(vet2[i][j]==2){if(vjc==2){printf(" O ");}else{printf(" X ");}} else{printf(" ");} }} if(j==3){printf("\n");} if(j<3){printf("|");} } if(i<3){printf(" -----------\n");} } printf(" Vit%crias Do Computador ------> %d\n",224,cg); printf(" Vit%crias Do Jogador Humano --> %d\n",224,vg); } int inicio(int tp){ c[0]='p'; if(tp==1){printf("\nVoc%c Quer Jogar Mais Uma Partida ? S/N ",136);gets(c);goto l6;} do{ desenha(2); if(tp==2){printf("\nO Computador Ganhou Essa Partida");} if(tp==3){printf("\nVoc%c Ganhou Essa Partida ",136);} printf("\nVoc%c Quer Jogar Mais Uma Partida ? S / N ",136); for(f=0;f<100000;f++){for(k=0;k<3000;k++);} desenha(1); if(tp==2){printf("\nO Computador Ganhou Essa Partida");} if(tp==3){printf("\nVoc%c Ganhou Essa Partida ",136);} printf("\nVoc%c Quer Jogar Mais Uma Partida ? S / N ",136); for(f=0;f<100000;f++){for(k=0;k<1000;k++);} if(kbhit()){gets(c);} }while(c[0]!='s'&&c[0]!='n'); l6: k=0; if(c[0]=='n'){k=27;} for(i=0;i<4;i++){ for(j=0;j<4;j++){ vet[i][j]=0; } } system("cls"); desenha(1); return k; } int verifica_se_ganhou(int g,int h){ for(i=1;i<4;i++){for(j=1;j<4;j++){vet2[i][j]=vet[i][j];}} if(vet[1][1]==h&&vet[1][2]==h&&vet[1][3]==h){g=1;vet2[1][1]=3;vet2[1][2]=3;vet2[1][3]=3;} if(vet[2][1]==h&&vet[2][2]==h&&vet[2][3]==h){g=1;vet2[2][1]=3;vet2[2][2]=3;vet2[2][3]=3;} if(vet[3][1]==h&&vet[3][2]==h&&vet[3][3]==h){g=1;vet2[3][1]=3;vet2[3][2]=3;vet2[3][3]=3;} if(vet[1][1]==h&&vet[2][1]==h&&vet[3][1]==h){g=1;vet2[1][1]=3;vet2[2][1]=3;vet2[3][1]=3;} if(vet[1][2]==h&&vet[2][2]==h&&vet[3][2]==h){g=1;vet2[1][2]=3;vet2[2][2]=3;vet2[3][2]=3;} if(vet[1][3]==h&&vet[2][3]==h&&vet[3][3]==h){g=1;vet2[1][3]=3;vet2[2][2]=3;vet2[3][3]=3;} if(vet[1][1]==h&&vet[2][2]==h&&vet[3][3]==h){g=1;vet2[1][1]=3;vet2[2][2]=3;vet2[3][3]=3;} if(vet[1][3]==h&&vet[2][2]==h&&vet[3][1]==h){g=1;vet2[1][3]=3;vet2[2][2]=3;vet2[3][1]=3;} return g; } void marca(){/*para jogar com X ou O */ l7: gotoxy(23,22); printf("Voc%c Quer Jogar Com X ou O ",136); scanf("%s",&c[0]); if((c[0]!='x' && c[0]!='X') && (c[0]!='o' && c[0]!='O')){goto l7;} if(c[0] =='x'|| c[0] =='X'){vjc=1;}/*voce joga com */ if(c[0] =='o'|| c[0] =='O'){vjc=2;} } int tela(){ int y1=5,x1=23,y2=y1; for(i=0;i<11;i++){ if(i==4){y1=13;x1=10;y2=y1;} if(i==6){y1=13;x1=30;y2=y1;} for(j=0;j<7;j++){ gotoxy(x1,y1); a=ja[i][j]; for(b=0;b<7;b++){ if(a % 2 != 0){printf("%c",219);}else{printf(" ");} a=a/2; } y1++; } x1=x1+8; y1=y2; } printf(" %c",169); gotoxy(5,1);printf("%c",201); for(i=2;i<23;i++){ gotoxy(5,i) ;printf("%c",186); gotoxy(72,i);printf("%c",186); } for(i=6;i<72;i++){ gotoxy(i,1) ;printf("%c",205); gotoxy(i,23);printf("%c",205); gotoxy(i,21);printf("%c",205); } gotoxy(72,1) ;printf("%c",187); gotoxy(72,23);printf("%c",188); gotoxy(5,23) ;printf("%c",200); gotoxy(5,21) ;printf("%c",204); gotoxy(72,21);printf("%c",185); gotoxy(66,3) ;printf("%c%c%c",92,92,92); gotoxy(66,4) ;printf("(. .)" ); gotoxy(66,5) ;printf(" -" ); return 0; } int main(){ tela(); qjp=1; marca(); do{ l1: system("cls"); desenha(1); printf("\nDigite A B C p/ Linha"); printf("\nDigite 1 2 3 p/ Coluna < ou S para Parar >"); gotoxy(10,16);printf("%c%c%c%c%c%c",201,205,205,205,205,187); gotoxy(10,20);printf("%c%c%c%c%c%c",200,205,205,205,205,188); gotoxy(10,17);printf("%c %c" ,186,186 ); gotoxy(10,18);printf("%c %c" ,186,186 ); gotoxy(10,19);printf("%c %c" ,186,186);gotoxy(12,18 ); fflush(stdin); gets(c); if(c[0]=='a' || c[0]=='A'){a=1;} if(c[0]=='b' || c[0]=='B'){a=2;} if(c[0]=='c' || c[0]=='C'){a=3;} if(c[1]=='1'){b=1;} if(c[1]=='2'){b=2;} if(c[1]=='3'){b=3;} if(c[0]=='s'||c[0]=='S'){printf("\n\n");break;} if(strlen (c) > 2){ printf("\n\n\nS%c Pode Ser Duas Coordenadas >>> Tecle <<<",224);getch();goto l1;} if(vet[a][b] != 0){ printf("\n\n\nEsta Posi%c%co Est%c Ocupada >>> Tecle <<<",135,198,160);getch();goto l1;} if(c[0]!='a'&&c[0]!='b'&&c[0]!='c'){printf("\n\n\nS%c Pode Ser A B C >>> Tecle <<<",224);getch();goto l1;} if(c[1]!='1'&&c[1]!='2'&&c[1]!='3'){printf("\n\n\nS%c Pode Ser 1 2 3 >>> Tecle <<<",224);getch();goto l1;} vet[a][b] = 2;/*voce joga*/ system("cls"); desenha(1); g = 0; h = 2; qg = 0;/* 2 é humano*/ r=verifica_se_ganhou(g,h);/*se r=1 então humano ganhou*/ system("cls"); desenha(1); if(r == 1){printf("\nVoc%c Ganhou Essa Partida ",136);vg++;k=inicio(3);qg=1;} if(k == 27){goto l5;}else{if(r==1){marca();}} l5: if(k!=27){} }while(k!=27); return 0; }
  8. @Anderson da Silva Ramos parece que os fios são nessas posições que marquei aí na foto . testa antes de soldar definitivo . precisa ver qual transformador usar.
  9. @Anderson da Silva Ramos só analisando a placa do lado das trilhas, geralmente onde estava ligado fica um pedaço do fio e o transformador geralmente faz conexão com os diodos. posta o lado das trilhas para que possamos ver.
  10. @Luis Ligabo posta aí o seu código que você já fez, assim poderemos ver em que podemos ajudar. para fazer você precisa declarar um vetor assim : int vetor [ 10 ]; e depois pegar os dez números; e para isso use um laço for indo de zero até nove e dentro desse laço use o comando scanf assim: scanf ( " %d " , & numero ) ; e coloque esse numero no vetor que você criou, assim no final do loop você terá os dez números armazenados no vetor, depois faça outro laço for indo de zero até nove e dentro desse loop multiplique cada número por ele mesmo, com o comando printf assim. printf ( " %d " , numero * numero ) ;
  11. @Zweiss você colocou o vetor vect dentro da função main e isso costuma causar erros, é melhor declarar o vetor como global colocando essa declaração lá no inicio antes da main, então coloquei essa declaração lá no inicio : veja como ficou o seu código : #include <stdio.h> int tam=1,vect[1]; int pedir_tamanho(); int pedir_valor_vect(int n); void func(int vector[], int tamanho); void func_mostra(int vector[], int tamanho); void mostra_int (int pos_vect,int i); int main (){ setvbuf (stdout, NULL, _IONBF, 0); tam = pedir_tamanho(); vect[tam]; func (vect, tam); int i, soma=0; //somar as posições do vetor for (i=0; i<tam; i++) { soma=soma+vect[i]; } func_mostra (vect, tam); } //pedir o tamanho do vetor int pedir_tamanho (){ int tama; printf ("Insira o tamanho do vector a criar: "); scanf ("%d", &tama); return tama; } void func(int vector[], int tamanho){ int i; for (i=0; i<tamanho; i++) { vector[i]=pedir_valor_vect(i); } } //mostrar o vetor void func_mostra(int vector[], int tamanho){ int i; for (i=0; i<tamanho; i++) { mostra_int(vector[i],i); } } //pedir valores int pedir_valor_vect(int n){ int a; printf ("Insira numero %d: ", n+1); scanf ("%d", &a); return a; } //mostra a posicão e o número void mostra_int (int pos_vect,int i){ printf ("O %d valor : %d \n",i+1,pos_vect); }
  12. @Rodrigo2018 esse código parece ser do visualg, então a sintaxe das funções no visualg seria assim: funcao Nome-da-função(variável : tipo) : tipo inicio retorne expressão fimfuncao Exemplo de como criar uma função: funcao somar(x,y : inteiro) : inteiro var soma : inteiro inicio soma := x + y retorne soma fimfuncao
  13. @João Pedro Hass pode conectar o resistor no positivo ou no negativo não faz diferença você liga o positivo da pilha no terminal com sinal + que é o positivo aí do led, se você tiver um led novo ele terá uma perninha maior que a outra então essa perninha maior é o positivo do led , mas se você tem um led já usado ele provavelmente terá as duas pernas do mesmo tamanho então o negativo será o lado que tiver um chanfro ( uma parte reta ) na direção da perna.
  14. @João Pedro Hass sim funciona sim , înclusive se você ligar só a bateria de 9v funciona também; esses soquetes você compra em loja de componentes eletrônicos ou pela internet é só pesquisar no google, veja aí na sua cidade onde tem uma loja dessas de componentes eletrônicos.
  15. @João Pedro Hass você pode colocar 6 pilhas comum que vai dar 9v aí o cooler vair rodar bastante mas para rodar no máximo precisa colocar 8 pilhas comum que vai dar 12v e para ligar pode ligar o positivo das pilhas no fio vermelho do cooler e o negativo das pilhas no fio preto, mas se inverter também não tem problema não, apenas que o cooler vai girar ao contrário . veja como ligar as pilhas umas nas outras e depois no cooler : você pode usar um soquete de pilhas para quatro pilhas que vai dar 6v ou unir dois soquetes de 4 pilhas formando 12v ou conseguir um soquete de 8 pilhas
  16. @João Pedro Hass eu também não sei muito sobre eletrônica não, mas pelo que sei para você ligar um led você precisa ligar do lado certo pois ele tem dois terminais sendo que um é o anodo que se liga no positivo e o outro é o catodo que se liga no negativo, então para que o led se acenda você precisa ligar no mínimo 3v nele observando o positivo e o negativo, se usar 3v que é igual a duas pilhas, não precisa de resistor, mas se usar maior tensão, como por exemplo 5v, será preciso usar resistores para que o led não se queime . veja como são os terminais de um led :
  17. @gustavodbg pelo que sei esses driver eram necessários para os monitores antigos (crt) que informavam para o sistema operacional as sincronizações horizontal e vertical para eles funcionar certo, já nos monitores novos não precisa deles não.
  18. @Rafael Filho sinceramente eu não sei o motivo desse erro por que sou apenas iniciante em lógica de programação, mas já vi esse erro acontecer várias vezes e todas as vezes que acontecia eu colocava esse comando e resolvia, eu uso o codeblocks, não sei qual compilador você usa, por que em outro compilador pode ser que não dê certo.
  19. @Rafael Filho essa solução do @isrnick resolve certinho, mas tem uma outra solução que é usar a instrução fflush ( stdin ) ; antes do scanf ( " %c " , & duvida ) ; aqui eu testei e funciona bem.
  20. @Liandra Giovanna você precisa colocar em qual posição do vetor está se referindo, e precisa inicializar as variáveis maior e menor com o primeiro número digitado para que a partir daí ele faça as verificações de maior e menor . veja seu código com algumas modificações : Algoritmo "semnome" var i : inteiro x : vetor[1..10] de inteiro menor : inteiro maior : inteiro inicio escreval ("digite 10 números") para i de 1 ate 10 faca escreva("digite o ",i,"º número --> ") leia(x[i]) fimpara para i de 1 ate 10 faca se i=1 ENTÃO maior:=x[i] menor:=x[i] fimse se (maior < x[i]) ENTÃO maior <- x[i] fimse se (menor > x[i]) ENTÃO menor := x[i] fimse fimpara escreval("o menor número é = ",menor) escreval("o maior número é = ",maior) fimalgoritmo
  21. @Kiuski posta o código que você já fez assim poderemos ver como está e em que poderemos ajudar.
  22. @eyjafjallajokull_ a flag é apenas uma variável comum, apenas que eu inicializei ela com o valor zero antes de testar se algum aluno ficou reprovado, então se algum aluno tiver ficado reprovado a flag passa a ter o valor hum assim saberei que teve aluno reprovado, caso no final dos testes a flag continuar com valor zero é por que não teve nenhum aluno reprovado e aí escreve aquela mensagem informando que nenhum aluno foi reprovado.
  23. @eyjafjallajokull_ o que vi de errado é que estava juntando o nome com o sexo, e isso é por que você declarou a variável nome do tipo char com tamanho estipulado por MAX que vale 3 então o nome poderia ter apenas 3 caracteres e não sei bem por que mas ele juntava as duas variáveis, então para corrigir coloque nome com tamanho de 10 e sexo com tamanho 3. e lá na função lista_reprovados o else estava causando um erro também, então modifiquei isso colocando uma flag para imprimir o resultado certo. veja seu código com algumas modificações : #include <stdio.h> #include <string.h> #define MAX 3 struct vetor{ char nome[10], sexo[3], n_matricula [9]; int ano_nasc; float nota1, nota2, nota3, nota4; }; void leitura_alunos (struct vetor CAD[MAX]){ int i; char nMaior[MAX], nMenor[MAX]; float media, Mmenor=300, Mmaior=0; for (i=0;i<MAX;i++){ printf ("Insira o numero da matricula: "); fflush (stdin); gets (CAD[i].n_matricula); printf ("Digite o nome do aluno: "); fflush (stdin); gets (CAD[i].nome); printf ("Digite o sexo, 'M' para masc. e 'F' para fem.: "); scanf ("%c", &CAD[i].sexo); printf ("Digite o ano de nascimento: "); scanf ("%d", &CAD[i].ano_nasc); printf ("Insira aqui a nota da primeira prova: "); scanf ("%f", &CAD[i].nota1); printf ("Insira aqui a nota da segunda prova: "); scanf ("%f", &CAD[i].nota2); printf ("Insira aqui a nota da terceira prova: "); scanf ("%f", &CAD[i].nota3); printf ("Insira aqui a nota da quarta prova: "); scanf ("%f", &CAD[i].nota4); media = (CAD[i].nota1 + CAD[i].nota2 + CAD[i].nota3 + CAD[i].nota4)/4; printf ("Media = %.2f\n", media); if (media>=5) printf ("APROVADO!\n"); else printf ("REPROVADO!\n"); printf ("\n"); if (media>Mmaior){ Mmaior=media; strcpy (nMaior,CAD[i].nome); } else if (media<Mmenor){ Mmenor=media; strcpy (nMenor,CAD[i].nome); } } printf ("Aluno com a maior media = %s\nAluno com a menor media = %s\n\n", nMaior, nMenor); } void lista_reprovados (struct vetor CAD[MAX]){ int i,flag; float media; printf ("ALUNOS REPROVADOS:\n\n"); flag=0; for (i=0;i<MAX;i++){ media = (CAD[i].nota1 + CAD[i].nota2 + CAD[i].nota3 + CAD[i].nota4)/4; if (media<5){ printf("%s\n", CAD[i].nome); flag=1; } } if(flag==0){printf ("Nenhum aluno foi reprovado!");} } main (){ struct vetor CAD[MAX]; int i; leitura_alunos (CAD); lista_reprovados (CAD); }
  24. @Filipe de Luca pelo que vi ele está funcionando bem.
  25. @Filipe de Luca nesse caso para você fazer multiplicação de int com double ou float é preciso fazer a conversão colocando esse comando (float) antes do número int . veja como seu código ficaria : #include<stdio.h> int main(){ int num,horas; double valorh, sal; scanf("%d", &num); scanf("%d", &horas); scanf("%lf",&valorh);/*não pode colocar esse .2 aqui não, tem que colocar no printf*/ printf("NUMBER = %d\n", num); sal=valorh*(float)horas; printf("SALARY = U$ %.2lf\n", sal); }

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!