Ir ao conteúdo
  • Cadastre-se

devair1010

Membro Pleno
  • Posts

    6.293
  • Cadastrado em

  • Última visita

Tópicos solucionados

  1. O post de devair1010 em Como ligar um led em um interruptor foi marcado como solução   
    @WhoTiEIK_    eu entendi que seja assim  :

     
  2. O post de devair1010 em Por onde poderia começar essas duas avaliações foi marcado como solução   
    @Neilton102      como no enunciado  disse que  o programa apresenta uma mensagem motivacional , então não precisa do usuário informar essa tal mensagem ,  seria você mesmo que criaria essa mensagem e coloca no programa , uma para cada signo ,  para que quando o usuário inserir a data  o programa calcula o signo correspondente e imprime a mensagem , então uma ideia poderia ser assim  :
    #include <stdio.h> #include <conio.h> #include <string.h> int main(){ int d,m,fim,flag; char s[12]; do{ do{ do{ printf("informe o dia de nascimento de ( 1 ate 31 ) "); scanf("%d",&d); }while( d<1 || d>31 ); /* ate inserir um valor válido */ flag=0; printf("informe o mes de nascimento de ( 1 ate 12 ) "); scanf("%d",&m); if((m==4 || m==6 || m==9|| m==11) && d>30)flag=1; if(m==2&&d>29)flag=1; }while( flag ); /* ate inserir um valor válido */ strcpy(s,""); /* zerar a variável do signo */ if(m==1 && (d>20 && d<32))strcpy(s,"Aquario");/* para o mês de aquário */ else if(m==2 && d<20) strcpy(s,"Aquario"); /* outros blocos como esse ai de cima para calcular os outros signos */ if(strcmp(s,"Aquario")==0)/* verifica qual o signo corresponde a essa data */ printf("\n%s -> bom dia para ir pescar !\n",s); /* imprime a mensagem */ printf("\noutro signo ? S/N "); /* se quiser ver outro signo */ fim=getch(); /* pega uma tecla sem esperar pressionar enter */ printf("\n\n"); }while(fim != 110 && fim != 77 ); /* se precionar S maiúsculo ou minúsculo */ printf("\n\n Tecle !\n\n"); getch(); /* espera até precionar alguma tecla do teclado */ return 0; }  
  3. O post de devair1010 em Erro em SWITCH...CASE no programa foi marcado como solução   
    @NhemonF     testei e está funcionando e mostrando as opções

  4. O post de devair1010 em vetores em arquivos em lote batch foi marcado como solução   
    @ricardo_br @ricardo_br    ô Obrigado mesmo , agora ficou do jeito que  preciso ! ! ! . . .
    o código final ficou assim  :
    @echo off setlocal EnableDelayedExpansion set g=1 set vetor[0]=comandcom set vetor[1]=comentarios set vetor[2]=enabled echo conteudo do vetor com variavel = !vetor[%g%]! echo conteudo do vetor com numero = %vetor[1]% echo. for /l %%n in (0,1,2) do ( echo vetor dentro do loop ---------= %%n -= !vetor[%%%n]! ) echo. echo. pause
  5. O post de devair1010 em PASCAL error com código identificador de Palavras. foi marcado como solução   
    @TheMajor   está com um erro no último until , que parece ser da linguagem lua ou python ,  então seu código com algumas modificações poderia se assim   :
    Program Pzim ; uses crt; var P,sair : string; //Palavra Cont : string; //palavra ao contrario x : integer; r : char; Begin repeat cont:=''; write('Digita a palavra: '); readln(P); P := upcase(P); repeat delete(P,pos(' ',P),1) until pos(' ',P) = 0; //remover espaços repeat delete(P,pos('-',P),1) until pos('-',P) = 0; //remover hífens for x := length(P) downto 1 do begin cont := cont + P[x]; end; clrscr; writeln(' A palavra normal é: ', P); writeln(' A palavra ao contrario é: ',cont); if P = cont then writeln(' Essa palavra é Polindromo!!') else writeln(' Essa palavra não é um Polindromo.'); //====================================================================================// writeln; write('OUTRA CONSULTA? [S/N] >> '); repeat sair := upcase(readkey); until (sair = 'S') or (sair = 'N'); // in ['S','N']; writeln; writeln; until sair='N'; End.  
  6. O post de devair1010 em implementar estruturas do do-while e for. foi marcado como solução   
    @Adrielle Maques     você usou o sinal maiorque  e menorque do teclado , mas o certo nesse caso seria usar o    simbolo  <>  que está desenhado lá na barra de ferramentas da janela de postar ,  e para usar cinco variáveis você pode colocar junto com as que já tem no código , ali :
    int a,b,c,d,e,temp; o do - while é igual ao while , apenas que você coloca o do , e coloca seu código , e depois no final coloca o while com as condições dele , e ele é usado para que o código que esteja dentro dele seja rodado pelo menos uma vez ,  pois no while pode acontecer de não usar nenhuma vez ,    e o for também seria a mesma coisa apenas que ao invés de usar o while você coloca o for e as condições para ele rodar , o restante que está entre as chaves é igual  .
    #include <stdio.h> #include <stdlib.h> int main(){ int a,b,c,d,e,temp; printf ("Ordenar tres numeros em ordem crescente \n\n"); printf ("\n Entre com o valor de a: "); scanf ("%d" ,&a) ; printf ("\n Entre com o valor de b: "); scanf ("%d" ,&b) ; printf ("\n Entre com o valor de c "); scanf ("%d" ,&c); system ("cls"); for(d=0;d<3;d++)/*while(a > b || b > c)*/{ if(a > b){ temp = a; a = b; b = temp ; } if(b > c){ temp = b; b = c; c = temp ; } } printf ("\n Resultado \n\n") ; printf ("%d\t%d\t%d\n",a,b,c) ; return 0; } o que está entre os sinais / *    e     * /    são comentários que serão ignorados pelo compilador ,   deixei aí apenas para ver o que se modificou   .
  7. O post de devair1010 em Raíz quadrada em java foi marcado como solução   
    @Ray fourth  o T é  a quantidade de testes , se T for 2 então serão duas linhas de testes e em cada linha terá um número  N que precisa ser calculado a raiz quadrada dela , e essa função  , raiz ,   não funciona , por que você não usa a função Math.sqrt(x) ? .
    package raiz_quadrada; import java.util.Scanner; public class Raiz_quadrada { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Scanner st = new Scanner(System.in); int x = 12; System.out.println("informe a quantidade de testes"); int op1 = sc.nextInt(); for(int j=0;j<op1;j++){ System.out.println("informe um numero maior que zero e menor que 10001"); int op2=st.nextInt(); System.out.println("valor da raiz quadrada "+Math.sqrt(op2)); } } }  
  8. O post de devair1010 em Como deleta o conteúdo de um arquivo txt em c++ foi marcado como solução   
    @Khaled M    você quer deletar apenas uma linha do arquivo ou deletar tudo que está no arquivo ?  pois para deletar  todo o arquivo você pode usar a função remove , que irá remover todo o arquivo e depois você cria o arquivo novamente e ele estará vazio , assim  :
    remove("ARQTXT.txt"); /* remove o arquivo */ ARQTXT.open("ARQTXT.txt", ios_base::app);/* cria o arquivo novamente vazio */ mas para deletar apenas algum caractere ou mesmo uma linha do arquivo você pode criar um arquivo auxiliar e abrir o arquivo onde você quer deletar os dados e ir lendo o arquivo e comparando com o que você quer deletar e se for diferente você coloca esse dado no arquivo auxiliar , assim no final o arquivo auxiliar conterá todos os dados menos os dados que você quer deletar , depois use a função remove para deletar o arquivo  , que nesse caso seria o ARQTXT.txt , e em seguida renomeie o arquivo auxiliar com o nome do primeiro arquivo , assim  :
    ofstream ARQTXT; ofstream aux; ARQTXT.open("ARQTXT.txt", ios_base::app); aux.open("auxiliar.txt", ios_base::app); . deletar os dados . fclose(aux); fclose(ARQTXT); remove("ARQTXT.txt"); rename("auxiliar.txt","ARQTXT.txt"); mas antes de remover e renomear precisa fechar os dois arquivos , assim você terá seu arquivo original contendo todos os dados menos os que você quis deletar .
  9. O post de devair1010 em Wumpus posiçoes aleatorias para os objetos na matriz foi marcado como solução   
    @zepelinmdr    para gerar apenas duas posição você coloca um loop que repita duas vezes , então seu código com algumas modificações poderia ser assim  :
    #include<stdlib.h> #include<stdio.h> #include<time.h> int main(){ srand(time(NULL)); int i,j,cont=0,flag; //contadores int const N; // constante para definir o tamanho da matriz ambiente printf("informe o tamanho do ambiente:"); scanf("%i", &N); int Am[N][N];//matriz usada como ambiente for(i=0;i<N;i++) for(j=0;j<N;j++) Am[i][j] = 0; //matriz ambiente criada e preenchida com 0*/ flag=0; for(cont=0;cont<2;cont++){ do{ i=rand()%N; j=rand()%N; if(Am[i][j]!= 0)flag=1; }while( flag ); Am[i][j]=rand()%100; } for(i=0; i<N; i++){ for(j=0;j<N; j++){ printf(" %2i",Am[i][j]); } printf("\n"); } printf("\n\n"); return 0; }  
  10. O post de devair1010 em Alterações e Queue ou Fila foi marcado como solução   
    @MrCricket    para alterar algum dado você procura no vetor de struct qual a posição que está o dado que quer alterar , e coloca o valor que quiser , como no exemplo o número do celular então use o scanf para inserir novo número ,   e para eliminar algum componente você procura no vetor o dado que quer excluir e a posição onde se encontra esse elemento , em seguida copie o que está na posição seguinte a ele em cima dele e assim com os próximos até o final do vetor e decremente o contador ,    poste seu código para vermos como está e em que podemos ajudar   .
  11. O post de devair1010 em Scanf limitado para determinado numero de caracteres foi marcado como solução   
    @Rafael Carvalho Alencar     uma função para fazer esse procedimento não existe naturalmente na linguagem  c / c++ ,  então você pode criar uma função que faça isso  ,   aqui um exemplo de uma bem simples  , mas que funciona bem  nesse caso  com esses números que você disse   :
    #include <stdio.h> #include <conio.h> #include <math.h> int meu_scanf(int n){ int j,q=pow(10,n-1),a=0; for(j=n;j>0;j--){ a+=(getche()-48)*q; q=q/10; } return a; } int main(){ int a,b,c; printf("Dois numeros "); a = meu_scanf(2);/* quantidade de números */ printf("\nnumeros digitados -> %d\n\n",a); printf("Dois numeros "); b = meu_scanf(2);/* quantidade de números */ printf("\nnumeros digitados -> %d\n\n",b); printf("Quatro numeros "); c = meu_scanf(4);/* quantidade de números */ printf("\nnumeros digitados -> %d\n\n",c); return 0; }  
  12. O post de devair1010 em programa em c++ que leia arquivo txt e salve valores em struct foi marcado como solução   
    @Rafael Carvalho Alencar    seu código está bom ,  então para gravar os dados seria melhor no final  do código , quando tiver usado o programa e ter feito outros cadastrado e modificado , etc ... então ele grava tudo de uma vez , então seu código com algumas modificações poderia ser assim  :
    #include <stdio.h> #include <string.h> #include <conio.h> #include <stdlib.h> #include <ctype.h> #include <windows.h> /* 0 1 2 3 4 5 6 7 8 */ typedef enum{BLACK,BLUE,GREEN,CYAN,RED,MAGENTA,BROWN,LIGHTGRAY,DARKGRAY, /* nome das cores */ LIGHTBLUE,LIGHTGREEN,LIGHTCYAN,LIGHTRED,LIGHTMAGENTA,YELLOW,WHITE} COLORS; /* 9 10 11 12 13 14 15 */ static int __BACKGROUND = 1/*BLACK*/;/*pode ser o numero ou o nome da cor*/ static int __FOREGROUND = LIGHTGRAY; void textcolor (int letras, int fundo){/*para mudar a cor de fundo mude o background*/ __FOREGROUND = letras; __BACKGROUND = fundo; SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), letras + (__BACKGROUND << 4)); } void gotoxy(int x, int y){ COORD c; c.X = x; c.Y = y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c); } struct Usuarios { int codigo[ 5]; char nome[ 15]; char sobrenome[30]; char cargo[ 30]; }; struct Usuarios usuario[100]; void imprime(int j){ printf(" codigo ---: %d\n" ,usuario[j].codigo[0]); /* imprime os dados referente ao usuário */ printf(" nome ------: %s\n" ,usuario[j].nome ); printf(" sobrenome -: %s\n" ,usuario[j].sobrenome); printf(" cargo -----: %s\n\n",usuario[j].cargo ); } int main(){ textcolor(12,15); system("cls"); int i=0,j=0,w,flag; // valor que o usuario vai digitar para identificar a que usuario está se referindo. int carac[8]={179,47,196,92,179,47,196,92}; int tam_struct,opc; /* informa a posição da struct onde vai colocar novos dados */ char op,cod[10]; FILE *arq=fopen("arquivo_de_dados.txt","a+");/* cria o arquivo txt e abre para leitura e escrita no final */ if(arq==NULL){printf("erro no arquivo !\n");exit(0);} printf("Lista com todos os usuarios cadstrados !\n\n"); while( fscanf(arq, "%d" , &usuario[j].codigo[0])!= EOF && /* aqui pega do arquivo e coloca na struct */ fscanf(arq, "%s" , &usuario[j].nome )!= EOF && /* seguindo nessa ordem */ fscanf(arq, "%s" , &usuario[j].sobrenome)!= EOF && /* no arquivo precisa estar nessa mesma ordem */ fscanf(arq, "%s" , &usuario[j].cargo )!= EOF ){ imprime(j); j++; } fclose(arq); /* fecha o arquivo */ tam_struct=j; printf(" Tecle !"); getch(); do{ system("cls"); printf("\n\n Menu\n\n\n"); printf(" 1 - Listar hum usuario\n"); printf(" 2 - Listar Todos usuario\n"); printf(" 3 - Cadastrar usuario\n"); printf(" 4 - Excluir hum usuario\n"); printf(" 5 - Alterar hum usuario\n"); printf(" 6 - sair do programa\n\n"); for(j=1;j<41;j++){ if(j<12){ gotoxy(20,j); printf("%c",186); gotoxy(60,j); printf("%c",186); } gotoxy(j+19,1); printf("%c",205); gotoxy(j+19,3); printf("%c",205); gotoxy(j+19,12); printf("%c",205); } gotoxy(60,1 );printf("%c",187); gotoxy(20,1 );printf("%c",201); gotoxy(20,12);printf("%c",200); gotoxy(60,12);printf("%c",188); gotoxy(60,3 );printf("%c",185); gotoxy(20,3 );printf("%c",204); gotoxy(30,14); printf("Opcao : "); opc = getch()-48; /* pegando o numero de codigo do usuario */ printf("\n"); switch( opc ){ case 1 : flag=0; printf("Qual o n%cmero do usu%crio ",233,160); /* esses números se refrem às letras ú á ASCII */ fflush(stdin); scanf("%d",&i); /* pegando o numero de codigo do usuario */ for(j=0;j<tam_struct;j++) if(usuario[j].codigo[0] == i ){ imprime(j); flag=1; } if( ! flag )printf("\nCodigo inexistente !\n"); printf(" Tecle "); getch(); break; case 2 : for(j=0;j<tam_struct;j++){ imprime(j); } if( ! j)printf("\nNenhum usuario cadastrado !\n"); printf(" Tecle !"); getch(); break; case 3 : printf("\nCadastrando usuario\n\n"); do{ do{ printf("codigo usuario "); fflush(stdin); /* limpa o buffer do teclado para não pegar sujeira que esteja lá */ scanf("%s", cod ); /* pega o codigo do usuario em uma string */ flag=0; /* flag igual falso */ for(j=0;j<strlen(cod);j++) /* percorre todos os caracteres da string */ if( ! isdigit(cod[j])) /* se algum caractere não for um digito de zero a nove */ flag=1; /* flag igual verdadeiro */ if( flag ) /* se flag verdaeiro */ printf("O codigo precisa ser só numeros , e nesse tem caracteres invalidos .\n");/* imprime mensagem */ for(j=0;j<tam_struct;j++) if(usuario[j].codigo[0] == atoi(cod)){ /* atoi converte string para inteiro */ printf("Esse codigo ja existe , insira outro .\n"); flag=1; break; } }while( flag ); /* se flag verdaeiro repete para pegar um codigo valido */ usuario[tam_struct].codigo[0] = atoi(cod); /* coloca o codigo valido na struct */ printf("nome usuario "); fflush(stdin); /* limpa o buffer do teclado para não pegar sujeira que esteja lá */ scanf("%s", usuario[tam_struct].nome); /* pega o nome do usuario */ printf("sobrenome usuario "); fflush(stdin); scanf("%s", usuario[tam_struct].sobrenome); /* pega o sobrenome do usuario */ printf("cargo usuario "); fflush(stdin); scanf("%s", usuario[tam_struct].cargo); /* pega o cargo do usuario */ tam_struct++; printf("Quer inserir outro usuario S/N "); printf("\n\n"); op=getche(); }while(toupper(op) != 'N'); break; case 4 : flag=0; printf("\nNome usuario excluir "); scanf("%s",cod); for(j=0;j<tam_struct;j++){ if(strcmp(usuario[j].nome,cod)==0){ imprime(j); printf("Quer mesmo excluir S/N "); op = getche(); if(toupper(op) == 'S'){ for(w=j;w<tam_struct;w++){ usuario[w] = usuario[w+1]; } flag=1; tam_struct--; break; } else break; } } if( flag ) printf("\nUsuario excluido com sucesso !\n Tecle "); else printf("\nOk , Usuario nao foi excluido !\n Tecle "); getch(); break; case 5 : flag=0; printf("Alerando hum usuario \n\n"); printf("\nNome usuario alterar "); scanf("%s",cod); for(w=0;w<tam_struct;w++){ if(strcmp(usuario[w].nome,cod)==0){ imprime(w); printf("\nQuer mesmo alterar S/N "); op = getche(); if(toupper(op) == 'S'){ do{ printf("\ncodigo usuario "); fflush(stdin); /* limpa o buffer do teclado para não pegar sujeira que esteja lá */ scanf("%s", cod ); /* pega o codigo do usuario em uma string */ flag=0; /* flag igual falso */ for(j=0;j<strlen(cod);j++) /* percorre todos os caracteres da string */ if( ! isdigit(cod[j])) /* se algum caractere não for um digito de zero a nove */ flag=1; /* flag igual verdadeiro */ if( flag ) /* se flag verdaeiro */ printf("O codigo precisa ser só numeros , e nesse tem caracteres invalidos .\n");/* imprime mensagem */ for(j=0;j<tam_struct;j++) if(usuario[j].codigo[0] == atoi(cod)){ /* atoi converte string para inteiro */ printf("Esse codigo ja existe , insira outro .\n"); flag=1; break; } }while( flag ); /* se flag verdaeiro repete para pegar um codigo valido */ usuario[w].codigo[0] = atoi(cod); /* coloca o codigo valido na struct */ printf("nome usuario "); fflush(stdin); /* limpa o buffer do teclado para não pegar sujeira que esteja lá */ scanf("%s", usuario[w].nome); /* pega o nome do usuario */ printf("sobrenome usuario "); fflush(stdin); scanf("%s", usuario[w].sobrenome); /* pega o sobrenome do usuario */ printf("cargo usuario "); fflush(stdin); scanf("%s", usuario[w].cargo); /* pega o cargo do usuario */ printf("Usuario alterado com sucesso !\n Tecle "); flag=1; break; } } } if( ! flag ) printf("\nOk , Usuario nao foi aletrado !\n Tecle "); getch(); break; default : if(opc!=6){ printf("Opcao invalida !\n Tecle "); getch(); } } }while(opc!= 6 ); arq=fopen("arquivo_de_dados.txt","w"); /* abre o arquivo e reseta ele para gravar dese o inicio do arquivo */ for(j=0;j<tam_struct;j++){ fprintf(arq, "%d " , usuario[j].codigo[0]); /* grava no arquivo txt */ fprintf(arq, "%s " , usuario[j].nome ); /* grava no arquivo txt */ fprintf(arq, "%s " , usuario[j].sobrenome); /* grava no arquivo txt */ fprintf(arq, "%s " , usuario[j].cargo ); /* grava no arquivo txt */ } fclose(arq); for(j=0;j<10;j++){ gotoxy(0,23); printf("Ok , Vamos fechar o programa "); for(w=0;w<8;w++){ gotoxy(j*2+29,23); printf("%c",carac[w]); Sleep(70); } gotoxy(j*2+29,23); printf("."); if(j==9)printf(" !"); printf(" %d",9-j); gotoxy(79,23); Sleep(50); } gotoxy(53,23); printf(" \n\n"); textcolor(0,15); return 0; }  
  13. O post de devair1010 em somar diagonal principal e multiplicar foi marcado como solução   
    @Luiz Jordão    no enunciado pede para preencher um vetor com os valor gerados das diagonais principais de duas matrizes , então para gerar esses valores das diagonais você verifica se i igual j e se for multiplica a matriz A na posição i  j e coloca no vetor e também multiplica a matriz B e coloca no vetor na posição + l*c/2 e depois imprimir esses valores que estarão no vetor .
    essa parte seria assim  :
    //Processamento e saida em tela printf("---------------------------- 3 - Matriz Gerada == SOMA E MULTIPLICA PELOS ULTIMOS NUMEROS DA MATRICULA == ----\n\n"); int cont=0; for(i=0; i<l; i++){ for(j=0; j<c; j++){ if(i==j){ vetor[cont ] = matrizA[i][j]*13; vetor[cont+l*c/2] = matrizB[i][j]*13; printf("%6.f %6.f",vetor[cont],vetor[cont+l*c/2]); cont++; } /*// REALIZA A SOMA DAS MATRIZES E MULTIPLICA POR 13 matrizC[i][j] = (matrizA[i][j] + matrizB[i][j])*13; // IMPRIMI A MATRIZ NA TELA printf("%6.f", matrizC[i][j]);*/ } rintf("\n\n"); } printf("\n\n");  
  14. O post de devair1010 em Como posso escrever esse algoritmo ? foi marcado como solução   
    @Luiz Jordão     você pode criar os três vetores colocando eles com 100 posições e coloque eles antes da main , para que eles sejam inicializados com valor zero , e  em seguida pegue o valor de N digitado pelo usuário e se o valor for maior que 100 faça N igual a 100 ou se for menor que hum faça N igual a 1 , e use esse valor em for que começa em zero e vai até N e dentro do for pegue os números em uma variável e compare se é par ou ímpar usando o comando mod  e se for par coloque no vetor_par senão coloque no vetor_impar e para imprimir use um for com o valor de N e imprima o valor que está no vetor ,    poste seu código que você já tenha feito para podermos ajudar  .
  15. O post de devair1010 em Cadastro de alunos em linguagem c foi marcado como solução   
    @João Luiz Mainardi     para ele imprimir o que foi salvo no arquivo precisa pegar esses dados lá no arquivo antes de imprimir , e se você usar arquivo binário fica mais fácil , mas pode fazer com arquivo txt também , então seu código pode ser assim  :
    #include <stdio.h> #include <stdlib.h> #include <string.h> #define TAM 1000 typedef struct { char matricula[10]; char nome[50]; char curso[25]; } Aluno; void inicializaLista(Aluno *lista, int n) { int i; for (i = 0; i < n; i++) { strcpy(lista[i].matricula,""); strcpy(lista[i].nome,""); strcpy(lista[i].curso,""); } } void copiaAlunosLista2Arquivo(Aluno *lista, int n, char *nomeArquivo) { FILE *procurador = fopen(nomeArquivo,"a"); //foi aberto para escrita int i; //fprintf(procurador, "ALUNOS MATRICULADOS\n\n"); for (i = 0; i < n; i++) { if (strcmp(lista[i].matricula,"") == 0) { break; } fprintf(procurador, "%s ", lista[i].matricula); fprintf(procurador, "%s ", lista[i].nome); fprintf(procurador, "%s\n", lista[i].curso); fflush(procurador); } fclose(procurador); } void insereAluno(Aluno *lista, int n) { int i; FILE *procurador = fopen("salvaAlunos.txt","a"); char matricula[10]; printf("Matricula : "); scanf("%s", matricula); fflush(stdin); for (i = 0; i < n; i++) { if (strcmp(lista[i].matricula, matricula) == 0) { printf("Matricula já cadastrada. Voltando para menu\n"); break; } if (strcmp(lista[i].matricula,"") == 0) { printf("Aluno sera inserido na posicao %d.\n", i); strcpy(lista[i].matricula, matricula); fflush(stdin ); printf("Nome: " ); scanf("%s",lista[i].nome ); fflush(stdin ); printf("Sigla curso: " ); scanf("%s", lista[i].curso); fprintf(procurador, "%s " , lista[i].matricula); fprintf(procurador, "%s " , lista[i].nome ); fprintf(procurador, "%s\n", lista[i].curso ); break; } } fclose(procurador); if (i == n) printf("Lista cheia!\n"); } int pega_do_arquivoTXT(Aluno *lista, int n){ FILE *fp = fopen("salvaAlunos.txt","r"); if(fp == NULL)return 0; int i=0; while(fscanf(fp,"%s",&lista[i].matricula)!= EOF && fscanf(fp,"%s",&lista[i].nome )!= EOF && fscanf(fp,"%s",&lista[i].curso )!= EOF ){ i++; } return 1; } void exibeAlunos(Aluno *lista, int n) { int i; for (i = 0; i < n; i++) { if (strcmp(lista[i].matricula,"") == 0) { break; } printf("Matricula -: %s\n", lista[i].matricula); printf("Nome ------: %s\n", lista[i].nome ); printf("Curso -----: %s\n", lista[i].curso ); printf("-----------------------------------\n"); } } int main() { Aluno lista[TAM]; int opcao,r; inicializaLista(lista, TAM); r = pega_do_arquivoTXT(lista,TAM);/* pega os dados que foram gravados anteriormente no arquivo txt*/ do { printf("1 - Insere aluno\n"); printf("2 - Lista alunos\n"); printf("3 - Remove aluno\n"); printf("4 - Sair\n"); printf("Opcao: "); scanf("%d", &opcao); switch (opcao) { case 1 : printf("INSERCAO DE ALUNO !\n\n"); insereAluno(lista,TAM); r=1; break; case 2 : printf("\nEXIBICAO DE ALUNOS !\n\n"); if( r )exibeAlunos(lista, TAM); else printf("Primeiro Insira Os Dados !"); printf("\n\n"); break; case 3 : break; case 4 : break; default : printf("Opcao invalida ! !\n"); } } while (opcao != 4); //copiaAlunosLista2Arquivo(lista, TAM, "salvaAlunos.txt"); return 1; }  
  16. O post de devair1010 em Como acessar o conteúdo de um ponteiro? foi marcado como solução   
    T@BlackM00n_     você precisa criar os dois ponteiro colocando asterisco antes das duas variáveis , depois inicializar os dois ponteiros e em seguida faça ponteiro2 igual ponteiro1.        poste seu código para vermos como está .
  17. O post de devair1010 em como faz para mostrar qm tem mais tempo de servico??? foi marcado como solução   
    @l8i9l0o5     para isso você precisa amarrar uma coisa à outra , primeiro você precisa verificar qual é o maior tempo de serviço e encontrando atribua a uma variável auxiliar para guardar o nome de quem teve o maior tempo de serviço ,  então seu código poderia ser assim  :
    Program Pzim ; var soma,somam,somaf,anos,anos1 : integer; anos2,anos3,f,m,cont,idade,s : integer; anosmaior,sexo,nome,aux : string ; anos_trabalhados : integer; Begin for cont:=1 to 2 do begin writeln('nome'); readln(nome); writeln('idade'); readln(idade); writeln('anos trabalhando'); readln(s); writeln('sexo'); readln(sexo); if s > anos_trabalhados then begin anos_trabalhados := s; aux := nome; end; if sexo='f' then f := f+1; if sexo='m' then m := m+1; if (s>0) and (sexo='m') then anos := anos +1; if (s=0) and (sexo='m') then anos1 := anos1+1; if (s>0) and (sexo='f') then anos2 := anos2+1; if (s=0) and (sexo='f') then anos3 := anos3+1; if sexo='f' then somaf := somaf + idade; if sexo='m' then somam := somam + idade; soma := soma+idade; end; writeln('1-' ,f ); writeln('2-' ,m ); writeln('3-' ,anos ); writeln('4-' ,anos1 ); writeln('5-' ,anos2 ); writeln('6-' ,anos3 ); writeln('7-' ,anosmaior ); writeln('8-' ,soma ); writeln('9-' ,soma /2 :0:0); writeln('10-',somaf/2 :0:0); writeln('11-',somam/2 :0:0); write ('O Funcionário '); textcolor(lightred); textbackground(white); write(' ',aux,' '); textcolor(green); textbackground(black); write(' Tem O Maior Tempo De Serviço Com '); textcolor(lightred); textbackground(white); write(' ',anos_trabalhados,' '); textcolor(green); textbackground(black); write(' Anos Trabalhados'); textcolor(yellow); writeln(' tecle'); readkey; End.  
  18. O post de devair1010 em Fazer um algoritmo em c foi marcado como solução   
    @Felipe Eduardo R. Mesquita      para postar seu código é melhor usar o botão   <>   que está lá na barra de ferramentas da janela de postar , pois senão seu código fica faltando alguns caracteres como os  [ i ]  que sumiram do seu código ,  e você postou no tópico de c++  mas seu código que você postou é em  c  ,  pois os comandos do c++ são outros , apesar de que esses aí funcionam em c++ também , mas os comandos do c++ não funcionam no  c  , mas tudo bem , nesse caso funcionará bem ,  então seu código poderia ser assim   :
    #include <string.h> #include <conio.h> #include <math.h> #include <stdlib.h> #include <iostream> int main(){ int i,j,c,vetor[10]; for(i=0; i<10; i++){ printf("Digite O Valor Da Posicao %2d : ",i+1); scanf("%d",&vetor[i]); } for(i=0; i<9; i++){ c=0; for(j=i+1; j<10; j++){ if(vetor[i] == vetor[j] && vetor[i]!=0){ vetor[j]=0; c++; } } if(c > 0){ printf("O Numero %d Saiu %d Vezes\n",vetor[i],c+1); vetor[i]=0; } } for(i=0;i<9;i++) /* essa parte aqui não foi pedida no enunciado */ for(j=i+1;j<10;j++){ /* mas ela serve para colocar os números em ordem Crescente */ if(vetor[i]>vetor[j]){ c=vetor[i]; vetor[i]=vetor[j]; vetor[j]=c; } } printf("Os Numeros Sem Repeticao Sao : "); for(j=0;j<10;j++) if(vetor[j] != 0) printf("%d ",vetor[j]); getch(); return 0; }  
  19. O post de devair1010 em problema com posicionamento de sprite sfml foi marcado como solução   
    @João Augusto Gomes Ribeiro      não uso essa biblioteca pois ainda não consegui instalar ela , já tentei várias vezes e nada ,   mas no seu código me parece que está precisando você usar uma bandeira para indicar que chegou do lado direito da tela e é hora de voltar para o lado esquerdo da tela , então essa parte do seu código poderia ser assim   :
    int flag=0; if(ini2[0][8].getPosition().x + ini2[0][8].getLocalBounds().width >= window.getSize().x){ flag=1; /* indicando que chegou do lado direito da tela */ } if(ini2[0][8].getPosition().x + ini2[0][8].getLocalBounds().width <= window.getSize().x){ flag=0; /* indica que chegou do lado esquerdo da tela */ } if(flag==1){ for (int p = 0; p < 9; p++){ X1[p] -= 0.3; /* volta para o lado esquerdo */ } } else{ for (int p = 0; p < 9; p++) { X1[p] += 0.3; /* vai para o lado direito */ } } for(int i = 0; i < 2; i++){ /* são duas linhas de alliens */ for(int p = 0; p < 9; p++){ /* são nove alliens em cada linha */ ini2[i][p].setPosition(X1[p], Y1[i]); } }  
  20. O post de devair1010 em Soma de vetores em Lua foi marcado como solução   
    @ffeliperobot       seu código está bom ,  só precisa organizar melhor  ,  e para preencher o vetor você usa o valor da variável de controle do loop , então seu código pode ser assim  :
    vetor = {} total = 0 for x = 0, 99, 1 do vetor[x]=x total = total + vetor[x] end io.write("Resultado Da Soma => ",total ,"\n\n")  
  21. O post de devair1010 em Comparação de strings em Java foi marcado como solução   
    @Joanderson Pereira     melhor usar uma função do java para comparar string , e pode ser essa   variavel_string . equalsIgnoreCase("outra_string")  , então seu código pode ser assim  :
    package quest2; import java.util.Scanner; public class Quest2 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Scanner scanner2 = new Scanner(System.in); Scanner scanner3 = new Scanner (System.in); //Entrada System.out.println("Seja Bem vindo ao Java Calculator"); System.out.println("Digite um número"); double n1 = scanner.nextDouble(); System.out.println("Digite outro número"); double n2 = scanner2.nextDouble(); //Processamento double r1 = n1 + n2; double r2 = n1 - n2; double r3 = n1 * n2; double r4 = n1 / n2; System.out.println("Agora digite um operador correspondente a operação desejada: " + "Adição +, Subtração -, Multiplicação *, Divisão /"); String op1 = scanner3.nextLine(); //System.out.println("valor de op1= "+op1); //Saída //if( op1.charAt(0) == '+') este aqui também funciona desse jeito if(op1.equalsIgnoreCase("+")) System.out.println("A soma deles é :" + r1 ); else if (op1.equalsIgnoreCase("/")) System.out.println("O quociente deles é :" + r4 ); else if (op1.equalsIgnoreCase("*")) System.out.println("O produto deles é :" + r3 ); else if (op1.equalsIgnoreCase("-")) System.out.println("A subtração deles é :" + r2 ); else { System.out.println("Digite um operador válido!"); } } }  
  22. O post de devair1010 em Leia um vetor de 10 posições e verifique se existem valores iguais e os escreva. foi marcado como solução   
    @mln_r     você não usou o botão   <> que está lá na barra de ferramentas da janela de postar e por isso seu código ficou faltando alguns caracteres como os [ i ] que sumiram do seu código , e seu código está bom , mas precisa de mais alguns comandos e alguns que você colocou a mais , então seu código poderia ser assim  :
    #include <stdio.h> #include <conio.h> int main(){ /*Declaração de variáveis*/ int a=0,i,j,w,flag; int vetor[10],iguais[10];/* a=0 então esse vetor não teria nenhuma posição , erro ! */ /*Entrada*/ for(i=0;i<10;i++){ printf("Entre com o elemento[ %d ] : ",i+1); scanf("%d",&vetor[i]); } for(i=0; i<10; i++){ for(j=0; j<10; j++){ /*if(j==i){ continue; /* não precisa desse trecho */ /*} else */ flag=0; if(vetor[i]==vetor[j] && i != j){ for(w=0; w<10; w++){ if(iguais[w] == vetor[j])/* se o numero já estiver nesse vetor de iguais */ flag=1; } if(flag==0){ iguais[a]=vetor[i];/* para escrever o numero apenas uma vez */ a++; } /*break; nem desse break */ } } } for(i=0; i<a; i++){ printf("%d ",iguais[i]); } getch(); return 0; }  
  23. O post de devair1010 em Atribuição de caracteres em C foi marcado como solução   
    @paulo pinheiro 1301      sim , da para fazer isso sim , do jeito que você fez está certo ,  mas você primeiro precisa declarar a variável char que no caso seria a letra a e ela seria sem aspas simples , mas se o que você que é que quando encontrar uma letra c no texto ou frase ela seja convertida para que seja a letra a também da para fazer e para isso você coloca um if para ver qual letra é .   se você puder poste seu código para podermos ajudar  melhor  .
  24. O post de devair1010 em como fazer para imprimir todos os numeros primos foi marcado como solução   
    @Josuke   seu programa está bom , mas precisa uma  melhor organização , e um erro , você esqueceu alguns ponto_e_virgula no final da linha que precisa na linguagem c/c++ etc... ,  colocou cout sem declarar using namespace std; , o scanf é assim scanf("%d",&num1);  , existe o do/while e o while sozinho , ali você misturou os dois , na opção 4 ,   e precisa fazer a identação do código , para que ele fique mais legível e fácil de ler , nos printf precisa observar as aspas duplas ,  não precisa repetir o código pois para isso existe os laços de repetição for while do/while ,  na opção 3 seu método de ordenação está certo mas você usou uma variável simples para guardar os números digitado e precisa ser um vetor ,  então seu código com algumas modificações poderia ser assim   :
    #include<stdio.h> #include<stdlib.h> #include<conio.h> int main(){ int ano,i,h,t,a=-1,m=-1,d=-1,ah=-1,opcao; int mh=-1,dh=-1,ida,mi,id,bissexto=0; int y,z,x[10],aux,n,p,c,r=1,num1,par,impar,resto; int Numero,Fatorial,Primo,Resposta,Flag; do{ printf("_____________________________ \n"); printf("[1] para receber Dez numeros e classifica-los em par ou impar.\n"); printf("[2] para receber numeros naturais de 1 ate 20 e exibir todos os valores primos.\n"); printf("[3] para receber 10 números e coloca-los em ordem decrescente.\n"); printf("[4] para calcular a idade de uma pessoa em Dias ,\n"); printf(" a partir da data de nascimento e data atual.\n"); printf("[5] para sair . . . !\n"); printf("==========_____________________________=============\n"); printf("DIGITE DE 1 A 5 PARA ESCOLHER UMA DAS OPÇÕES ACIMA: "); scanf("%d",&opcao); switch(opcao){ case 1: printf("Digite 10 Numeros Para Saber Se eh Par Ou Impar\n"); for(i=0;i<10;i++){ printf ("Digite O %d%c numero : ",i+1,167); scanf("%d",&num1); if(num1 % 2 == 0){ printf ("%d , Numero Par\n\n",num1); } else{ printf ("%d , Numero Impar\n\n",num1); } } break; case 2: system("cls"); printf("Digite 20 Numero Para Saber Se eh Primo\n"); while(r<21){ printf ("\nDigite o %d%c numero natural: ",r,167); scanf("%d",&Numero); for(Primo=2;Primo<=Numero;Primo++){ Fatorial = 2; Flag =0; while(Primo != Fatorial){ Resposta = Primo % Fatorial; Fatorial = Fatorial + 1; if(Resposta == 0 ){ Flag = 1; } } if(! Flag){ if(Numero==Primo)printf("%d%c Numero --> %d , eh Primo !",r,167,Primo); } } printf("\n"); r++; } break; case 3: printf("Insira 10 Numeros Para Colocar Em Ordem Decrescente\n"); for(y=0;y<10;y++){ printf("Digite O %d%c numero: ",y+1,167); scanf("%d",&x[y]); } for(y=0;y<10;y++) { for(z=y+1;z<10;z++) { if( x[z] > x[y]){ aux = x[y] ; x[y] = x[z] ; x[z] = aux ; } } } printf("\nOs numeros em ordem decrescente sao: \n\n"); for(y=0;y<10;y++){ printf("%d - ",x[y]); } printf("\n\n"); break; case 4: /*while(d<0 || m<0 || a<0){ if(d>31||d<1){ printf("Preencha os dados sobre a data de seu nascimento:\n"); printf("Informe o dia de nascimento (ex. 16): d = "); scanf("%d", &d); goto REFAZ; } if((m==4 || m==6 || m==9 || m==11) && (d>30||d<1)){ printf("\nFavor escolher um numero de 1 a 30. \n\n"); goto REFAZ; } if(((bissexto==1)&&(m==2))&&((d<1)||(d>29))){ printf("\nFavor escolher um numero de 1 a 29. \n\n"); goto REFAZ; } if(((bissexto==0)&&(m==2))&&((d<1)||(d>28))){ printf("\nFavor escolher um numero de 1 a 28. \n\n"); goto REFAZ; } if (m>12||m<1){ printf("Informe o mes de nascimento (ex. 11): m = "); scanf("%d", &m); } }while(m>12||m<1); if(a>2100||a<1900){ printf("Informe o ano de nascimento (ex.1984): a = "); } }while (a>2100||a<1900); if((a % 4 == 0) && ((a%400==0)||(a % 100 != 0))){ [printf("Ano Bissexto! \n\n"); bissexto = 1;} scanf("%d", &a); printf("Insira o mes: \n\n"); scanf("%d", &m); if((m==4 || m==6 || m==9 || m==11) && (d>30||d<1)) printf("\nData de nascimento informada = %d/%d/%d", d, m, a); printf("\nData atual informada = %d/%d/%d\n", dh, mh, ah); i = d + m*30 + a*365; h = dh + mh*30 + ah*365; id=h-i; ida = ah-a; mi= 12-m+mh+ida*12; } if(m>mh){ printf("\nIdade = %d",ida-1); else printf("\nIdade em anos = %d anos", ida); } printf("\nIdade em meses = %d meses", id/30); //12-m+(m-mh)+(ida*12) printf("\nIdade hoje = %d dias", id); }*/ break; case 5: printf("Saindo Do Programa . . . !\n\n"); system("pause"); break; default: printf ("Opcao selecionada não corresponde aos itens acima"); } }while(opcao !=5); return (0); }  
  25. O post de devair1010 em Dificuldade com strings em C foi marcado como solução   
    @Artur Simon      para postar seu código é melhor usar o botão   <>   que está lá na barra de ferramentas da janela de postar , pois senão seu código fica faltando alguns caracteres como os  [ i ]  que sumiram do seu código ,  e seu código está bom , apenas você colocou o j=0 dentro do while , assim a palavra teste ficará apenas com um caractere e na posição zero e na hora de comparar ele compara errado ,  então seu código modificado ficaria assim  :
    #include <stdio.h> #include <conio.h> #include <string.h> #include <windows.h> /* 0 1 2 3 4 5 6 7 8 */ typedef enum{BLACK,BLUE,GREEN,CYAN,RED,MAGENTA,BROWN,LIGHTGRAY,DARKGRAY, /* nome das cores */ LIGHTBLUE,LIGHTGREEN,LIGHTCYAN,LIGHTRED,LIGHTMAGENTA,YELLOW,WHITE} COLORS; /* 9 10 11 12 13 14 15 */ static int __BACKGROUND = 1/*BLACK*/;/*pode ser o numero ou o nome da cor*/ static int __FOREGROUND = LIGHTGRAY; void textcolor (int letras, int fundo){/*para mudar a cor de fundo mude o background*/ __FOREGROUND = letras; __BACKGROUND = fundo; SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), letras + (__BACKGROUND << 4)); } int som(int f){ Beep(f,150);/* primeiro a frquência depois o tempo de duração do som */ return 0; } int main(){ char texto[300], palavra[25]; char teste[25]; int i,j,k,result,contador = 0; int tamanho; textcolor(14,0); printf("Digite o texto ---------------------: "); fflush(stdin); textcolor(11,0); gets(texto); textcolor(14,0); printf("Digite a palavra ( sem espaços ) --: "); fflush(stdin); textcolor(11,0); scanf("%s",palavra); textcolor(10,0); printf("\nO Texto Digitado Foi: --------------: %s\n",texto ); printf("\nA Palavra Digitada Foi -------------: %s\n",palavra); tamanho = strlen(texto ); for(i=0; i<tamanho; i++){ j=0; while(texto[i]!=' ' && texto[i]!='\0'){ teste[j]=texto[i]; i++; j++; } teste[j]='\0'; if(strcmp(palavra,teste)==0)contador++; } textcolor(14,0); printf("\nA Quantidade De Vezes Que A Palavra Saiu Foi -> %d Vezes\n\n",contador); Sleep(1000); printf(" Tecle\n\n"); Sleep(300); som(800); getch(); return 0; }  

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!