Ir para conteúdo
Fórum Script Brasil

Durub

Moderadores
  • Total de itens

    788
  • Registro em

  • Última visita

Tudo que Durub postou

  1. Se for Windows, o melhor jeito é usar as funções da API e fazer um gotoxy + getchar mesmo. Assim quando você ler um caractere, você volta uma posição e escreve um asterisco. Guarda a letra em uma string. Você vai ter que lidar com backspace e tudo mais, mas nada que uma horinha fazendo não resolva. gotoxy (Windows): BOOL gotoxy( const WORD x, const WORD y ) { COORD xy; xy.X = x; xy.Y = y; return SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), xy ); } No Linux o certo seria usar os caracteres de escape do terminal. Bom, dependendo do que você precisar, vá procurando que você acha. Qualquer dúvida a mais pode postar que podemos te auxiliar. Abraços.
  2. Durub

    ajuda com programa

    Qual sua dúvida? O que você já sabe? O que você já fez? Abraços.
  3. Durub

    Problema em C

    Então, seria mais fácil se você analizasse as malhas por inspeção, aí colocasse direto os valores na matriz. Por exemplo, você pediria (para uma matrix 3x3), os 4 valores da malha 1, depois os 4 valores da malha 2 etc. [Valor 1 Valor 2 Valor 3] = [Valor 4] Pedia para as três malhas, e depois aplicava a regra de Cramer para descobrir I1, I2 e I3. Seia interessante se você fizesse um mecanismo para resolver soma e subtração, aí você poderia colocar assim na matriz: [30+60+90-30 -90+30-10 10+90] = [30] Podendo resolver escrevendo os valores direto (olhando do circuito). Abraços.
  4. Essa sugestão que eu ia dar. Que bom que conseguiu sozinho! Abraços.
  5. Durub

    Problema em C

    O que você está tentando fazer, especificamente? Descobrir as correntes I1, I2 e I3 a partir de uma análise de malhas? O que você quis dizer nessa parte: ".Pois depois disso irei informar i1,i2 e i3 para outra função calcular."? Pergunto pois pode ter um meio melhor para fazer o que você quer. Abraços.
  6. Comparação se faz utilizando ==. Você está atribuindo string = 'a', que certamente é true, executando o bloco dentro do if. Dentro do if você troca o 'a' que foi atribuido para 'b'. Só trocar o = 'a' para == 'a'. Abraços.
  7. Durub

    Programa C - Frigorífico

    Não entendi seu loop. Você tá fazendo isso 9100 vezes. 90 vezes cada vez, 90 vezes. Por quê? Vocẽ pode fazer tudo em um loop só: (e é o certo) for (j=0;j<90;j++){ boi[j] = 5 * (rand() % 100) + 500; } Abraços.
  8. Durub

    Programa C - Frigorífico

    Veja a função rand. Abraços.
  9. Durub

    Importação Arquivo

    Veja a função strtok. Abraços.
  10. Precisa estar logado para baixar. Abraços.
  11. Você também poderia, ao invés de usar a sprintf, converter "você mesmo". Crie outra variável do tipo char, com 12 posições. (11 para o cpf, 1 para o NULL) Depois percorra 11 vezes em um loop. Para 0-10, faça: string[i] = cpf[i] + 0x30 Depois coloque o NULL na string. string[11] = 0; Acho que é 0x30 que é preciso somar para converter para ASCII. Seria bom consultar uma tabela. Este método funciona se você estiver armazenando o CPF como descrito. Um número de 0 a 9 em cada posição do array. Se for um número maior que 9 em alguma posição, sprintf seria a melhor solução. Abraços.
  12. Você também poderia, ao invés de usar a sprintf, converter "você mesmo". Crie outra variável do tipo char, com 12 posições. (11 para o cpf, 1 para o NULL) Depois percorra 11 vezes em um loop. Para 0-10, faça: string[i] = cpf[i] + 0x30 Depois coloque o NULL na string. string[11] = 0; Acho que é 0x30 que é preciso somar para converter para ASCII. Seria bom consultar uma tabela. Abraços.
  13. scanf não lê com espaço. Veja a função gets e fgets. Abraços!
  14. Problema é que você deve chamar sem o &. Usando o &, você está enviando o endereço do ponteiro para a struct. Ou seja, um ponteiro para o ponteiro da struct aluno. Outra coisa é no scanf: quando é string, lembre-se que você não deve usar o &. (pelo mesmo motivo citado acima, geralmente a string já é um endereço) Ou seja, nos números e todos os outros (que você usa %d, %f etc.), mantenha o &. Ao ler uma string (%s), não use o &. Abraços!
  15. A única coisa que vejo que está faltando é você retornar o aluno na função alocar_aluno(). return aluno; Também não se esqueça de liberar a memória alocada: system("PAUSE"); free(A); return 0; Abraços.
  16. Isso mesmo. Bind é pra você escutar em um endereço interno específico. Digamos que você tem, por exemplo, 2 placas de rede. Você escolhe em qual escutar. Ou um loopback e uma placa de rede, assim vai... Abraços.
  17. Durub

    scanf sem enter

    Você vai precisar utilizar funções assíncronas de leitura. Assumindo que você esteja programando para Windows, veja esta função: http://msdn.microsoft.com/en-us/library/ms646293(VS.85).aspx Para uma referência completa: http://msdn.microsoft.com/en-us/library/ms...0(v=VS.85).aspx Abraços.
  18. Durub

    Programação C

    Há um jeito melhor de fazer o que você deseja. Isto é, fazer um array abrigando todos os alunos, ao invés de usar variáveis separadas. Assim: int idade[10]; /* alunos vão de 1 a 10 */ char nomes[10][64]; /* alunos vão de 1 a 10, podendo colocar até 64 caracteres no nome */ Depois você pode usar um loop para ler: for(int i = 0; i < 10; ++i) { printf("Aluno %d\n", i); printf("Nome: "); gets(nomes[i]); printf("Idade: "); scanf("%d", &(idade[i])); printf("\n"); } Para calcular a média, some todas as idades, e depois divida por 10. Para ver o aluno mais velho, percorra o array em um loop. Se a idade atual for maior que a registrada, registre a nova e guarde o índice do aluno. Depois leia a idade e o nome, tendo o índice. Abraços.
  19. Durub

    Erro no vetor

    Você "não está alocando memória" pro carro. typedef struct filaCarros{ int comeco, fim, carro[]; }; Deveria ser: typedef struct filaCarros{ int comeco, fim, carro[x]; }; Com x sendo uma constante com o número de carros que você quer poder armazenar. No momento você está escrevendo em regiões de memória que seu programa não é dono, e o que deve estar acontecendo é que outro programa esta escrevendo nessa mesma região. O programa realmente compila? Abraços.
  20. Use a função sprintf, da stdio.h http://www.cplusplus.com/reference/clibrary/cstdio/sprintf/ Abraços.
  21. Então... como funciona. Três partes: <--------2------><--3--> <----1---> return (b >> (qual - 1)) & 0x1; 1 Por que ele subtrai 1 do qual? Porque se não o fizesse, o bit começaria por 0, como a maioria das coisas na programação. Para nós isso não é tão intuitivo, pois geralmente tudo começa com 1. Então, se você quer pegar o bit 1: qual - 1 = 1 - 1 = 0 (bit zero) Isto vai ser aparente no 2. 2 O shift. Conhece o operador shift? Ele "transporta" n bits para a direita ou esquerda, mas sem rotacionar. Exemplo: 2 >> 1 Decimal: 2 Binário: 0010 0010 >> 1 = 0001 6 >> 1 Decimal: 6 Binário: 0110 0110 >> 1 = 0011 6 >> 2 Decimal: 6 Binário: 0110 0110 >> 2 = 0001 Ou seja, aqui ele rotaciona o bit que você quer pegar para ser o primeiro. (pensando da direita para a esquerda) Se você não quer transportar nada (que é o caso de quando você quer pegar o primeiro bit), você transporta "0" bits. Por isso a diminuição de 1 do valor de qual. 3 O que ele faz aqui é transformar o bit que você quer em um valor booleano, 0 ou 1. O seu bit já está lá, sendo o primeiro da direita para a esquerda, e agora, o que faz para isolá-lo? Você faz um AND com 1. Conhece a operação AND? 0 com 0, 0; 0 com 1, 0; 1 com 1; 1. 2 & 1 10 & 01 = 00 3 & 1 11 & 01 = 01 (decimal 1) 6 & 4 110 & 010 = 010 (decimal 4) O AND é feito com 0x01, pois em binário, 0x01 só tem o bit mais da direita ativo. Ou seja, quando você quer pegar o bit mais da direita, você faz um AND de todo o valor com 0x01, e isto te retornará esse bit. A sua variável fica com valor 0 ou com o valor 1, só um desses dois. Exemplo 1 getBit(18, 1); 18 DEC -> 10010 BIN 1: qual - 1 = 1 - 1 = 0 2: 10010 >> 0 = 10010 3: 10010 & 0x01 = 00000 getBit retorna 0. Exemplo 2 getBit(7, 2); 7 DEC -> 0111 BIN 1: qual - 1 = 2 - 1 = 1 2: 0111 >> 1 = 0011 3: 0011 & 0x01 = 0001 getBit retorna 1. Entendeu? Abraços!
  22. Durub

    Erros estranhos

    Que compilador está usando? Se me lembro bem, estas funções são da conio.h, tente inclui-la. Se ainda não der certo, é porque o seu compilador não as suporta. Neste caso, você terá que substituir por algo que seja similar. clrscr: system("cls"); // No Windows system("clear"); // No *NIX getch: getchar(); Abraços!
  23. Durub

    Struct

    O seu erro é nas funções. Você está passando a struct como valor, então na função uma nova cópia da struct está sendo gerada, e você está escrevendo nesta cópia. Quando ela volta para o main, a struct que você tem (pontos), não tem nenhum valor lido. Você deve fazer igual ao scanf, passar seu endereço. ler_pontos(&pontos). Obviamente, também deve arrumar a função correspondente para arrumar isso. Quando for ponteiro, troque de &P.x para &(P->x). Abraços.
  24. Durub

    Validação de CPF

    Estranho. Qual a mensagem do erro? Talvez seja a classe... Qual o conteúdo do Cpf.h? Abraços.
×
×
  • Criar Novo...