Ir para conteúdo
Fórum Script Brasil

Pesquisar na Comunidade

Mostrando resultados para as tags ''Binário''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • Programação & Desenvolvimento
    • ASP
    • PHP
    • .NET
    • Java
    • C, C++
    • Delphi, Kylix
    • Lógica de Programação
    • Mobile
    • Visual Basic
    • Outras Linguagens de Programação
  • WEB
    • HTML, XHTML, CSS
    • Ajax, JavaScript, XML, DOM
    • Editores
  • Arte & Design
    • Corel Draw
    • Fireworks
    • Flash & ActionScript
    • Photoshop
    • Outros Programas de Arte e Design
  • Sistemas Operacionais
    • Microsoft Windows
    • GNU/Linux
    • Outros Sistemas Operacionais
  • Softwares, Hardwares e Redes
    • Microsoft Office
    • Softwares Livres
    • Outros Softwares
    • Hardware
    • Redes
  • Banco de Dados
    • Access
    • MySQL
    • PostgreSQL
    • SQL Server
    • Demais Bancos
  • Segurança e Malwares
    • Segurança
    • Remoção De Malwares
  • Empregos
    • Vagas Efetivas
    • Vagas para Estágios
    • Oportunidades para Freelances
  • Negócios & Oportunidades
    • Classificados & Serviços
    • Eventos
  • Geral
    • Avaliações de Trabalhos
    • Links
    • Outros Assuntos
    • Entretenimento
  • Script Brasil
    • Novidades e Anúncios Script Brasil
    • Mercado Livre / Mercado Sócios
    • Sugestões e Críticas
    • Apresentações

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

Encontrado 19 registros

  1. elabore um programa que leia dois numeros decimais inteiros de no maximo 32 bits e determine, bit a bit, quais bits são iguais nos dois numeros, e dos que forem igual se são '' 0 '' ou '' 1''. Por exemplo, os numeros 0 e 255 contem 24 bits iguais (bit8...bit31), em zero, e 8 bits diferente ( bit0...bit7). nesse caso a impressao seria: bits iguais: || valor 7 0 8  0 9 0 . . . 31 0
  2. não converte o codigo na hora de ir de binario para hexa ou etc #include <stdio.h> #include <math.h> #include <stdlib.h> #define SIZE 255 #define ALG 17 int number,opcao; // Esta função converte um número decimal para a base 2, 8 ou 16. // Recebe como parâmetro um número decimal (num_dec), e a base (base) cujo número será convertido. void decToBase(int num_dec, int base) { char resto[ALG] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}, num_conv; int indx = 0; // Este loop realiza as operações de divisão. Os restos são guardados no vetor 'num_conv' while(num_dec > 0) { num_conv[indx] = resto[num_dec % base]; num_dec /= base; indx++; } // Exclui o caractere especial '\0' do final da string indx -= 1; // Utilizado para identificar a saída do programa switch(base) { case 2 : printf("BINÁŔIO: "); break; case 8 : printf("OCTAL: "); break; case 16 : printf("HEXADECIMAL: "); break; } // Inverte a string contida no vetor num_conv for(indx; indx >= 0; indx--) printf("%c", num_conv[indx]); printf("\n"); switch(opcao) { int num_salva; case 2: if(base=2) { for(indx; indx >= 0; indx--) { number+=num_conv[indx]; } } break; case 3: if(base=8) { for(indx; indx >= 0; indx--) { number+=num_conv[indx]; } } break; case 4: if(base=16) { for(indx; indx >= 0; indx--) { number+=num_conv[indx]; } } break; } } // Esta função permite converter um número na base 2, 8 ou 16 para a base decimal. // Recebe como parâmetro uma string (representação do número), e um número inteiro que // determina em qual base está o número do primeiro parâmetro. void baseToDec(char* num_base, int base) { int indx = 0, exp = 0, cont = 0, dec = 0, num = 0; // Este loop determina o tamanho da string while(num_base[cont] != '\0') { cont++; } // Neste loop, a string é percorrida de trás para frente. Cada caractere é convertido // em um número inteiro, multiplicado pela base elevada ao expoente (0..Comprimento da string) // e somado ao valor da variável 'dec', que recebe as somas sucessivas. for(exp, indx=(cont-1); exp < cont; exp++, indx--) { if(base == 16) { switch(num_base[indx]) { case 'A' : case 'a' : num = 10; break; case 'B' : case 'b' : num = 11; break; case 'C' : case 'c' : num = 12; break; case 'D' : case 'd' : num = 13; break; case 'E' : case 'e' : num = 14; break; case 'F' : case 'f' : num = 15; break; default : num = (int)num_base[indx] - (int)'0'; } } else num = (int)num_base[indx] - (int)'0'; // Aqui avalia se o usuário digitou um número válido ou não! if(num > (base-1) || num < 0) { printf("Você informou um número inválido!\n"); exit(0); } dec += num * pow(base, exp); } // O número convertido para decimal é exibido printf("DECIMAL: %d\n", dec); } // Função que imprime o menu da calculadora void menu(void) { printf("\nBEM-VINDO AO CONVERSOR DE BASES NUMÉRICAS\n"); printf("QUAL OPERAÇÃO DESEJA REALIZAR? \n"); printf("[ 1 ] DECIMAL -> BINARIO, OCTAL e HEXADECIMAL\n"); printf("[ 2 ] BINARIO -> DECIMAL, OCTAL e HEXADECIMAL\n"); printf("[ 3 ] OCTAL -> DECIMAL, BINARIO e HEXADECIMAL\n"); printf("[ 4 ] HEXADECIMAL -> DECIMAL, BINARIO, OCTAL\n"); printf("[ 0 ] SAIR\n"); } // Função que chama as funções correspondentes à opção escolhida void process_calc(int opt) { char str; switch(opt) { case 0 : printf("CALCULADORA ENCERRADA!\n"); exit(0); case 1 : printf("DECIMAL: "); scanf("%d", &number); decToBase(number, 2); decToBase(number, 8); decToBase(number, 16); break; case 2 : printf("BINÁRIO: "); scanf("%s", str); baseToDec(str, 2); decToBase(number, 8); decToBase(number, 16); break; case 3 : printf("OCTAL = "); scanf("%s", str,3); baseToDec(str, 8); decToBase(number, 2); decToBase(number, 16); break; case 4 : printf("HEXADECIMAL = "); scanf("%s", str); baseToDec(str, 16); decToBase(number, 2); decToBase(number, 8); break; default : printf("OPÇÃO NÃO PERMITIDA!\nTENTE NOVAMENTE\n"); break; } } int main(void) { menu(); printf("QUAL OPERAÇÃO DESEJA REALIZAR? "); scanf("%d", &opcao); process_calc(opcao); return 0; }
  3. alguém pra me tirar uma duvida que está incomodando e muito. Bom, trabalhamos com Binario em matriz multinivel, temos uma "Arvore" como exemplo em nosso site, porém ela não fica da mesma forma quando vista do celular e a web já está responsiva, ou seja já está programada pra computador ou celular, tablets etc. Esta é a imagem do computador: no celular, fica assim: Algo está errado, ela fica toda desmontada^^ já tentei colocar barra de rolagem para que possa arrastar pra um lado e para outro, porem no celular não aparece a barra, somente no computador, gostaria de saber se alguém poderia dar essa ajudinha.
  4. Olá a todos, boa noite! sou novo no forum, e desde já peço desculpas caso essa pergunta já tenha sido respondida em outro tópico. Bom o caso é o seguinte, estou no II Semestre do curso de Sistemas de informação (Na verdade o semestre nem começou kkkk) entretanto to ainda com um pouco de dificuldade em criar funções recursivas. Eu estava resolvendo umas questões da ultima prova da unidade que eu fiz, e me ocorreu que uma das questões que eu praticamente tinha certeza que estava certa, esta dando a saída errada. Eu deveria criar uma função recursiva que recebesse um numero decimal e convertesse o mesmo para binário. meu codigo ficou assim: /* função recebe um numero decimal inteiro positivo e verifica se o numero é menor que 2, caso seja ela ira retornar o valor da variável (0 ou 1), se o numero não for menor que 2, ela irá imprimir o valor da variavel mod 2 e retornar de modo recursivo o valor da decimal dividido por 2. O erro ocorre porque o valor mostrado como resultado fica invertido, por exemplo se o valor for 1010 (base 2) ele aparece 0101(base 2) */ int binario (int decimal) { if (decimal < 2) { return decimal; }else { cout<<decimal%2; return binario(decimal/2); }
  5. Eu estou com o seguinte problema: receber dois números decimais e convertê-los para binário e depois realizar a soma binaria dos números que foi convertidos (considerar números negativos). Eu consegui fazer a maior parte, mas a soma esta saindo errada. Quem puder me ajudar eu agradeço.Segue o código do programa ate agora: #include <stdio.h> #define na 16 int main() { int n,n1,r[na],r1[na],i,somav[na],vaium=0,invert[na],np=1; /*Lê o número*/ printf("\n Digite o primeiro numero: "); scanf("%d", &n); /* Utiliza um número de 16 bits como base para a conversão.*/ for(i = na-1; i >= 0; i--) { r[i] = (n >> i) & 1; /*Por meio do "e" lógico ele compara se o valor na posição mais à direita é 1 ou 0 e imprime na tela até reproduzir o número binário.*/ if(r[i] & 1) printf("1",r[i]); else printf("0",r[i]); } printf("\n Digite o segundo numero: "); scanf("%d", &n1); for(i = na-1; i >= 0; i--) { r1[i] = (n1 >> i) & 1; if(r1[i] & 1) printf("1",r1[i]); else printf("0",r1[i]); } /*for (i=na-1;i>=0;i--) vaium[i]=0;*/ if(n<0) { for(i=na-1;i>=0;i--){ if(r[i]==1) invert[i]=0; else if(r[i]==0) invert[i]=1; } for (i=na-1;i>=0;i--) r[i]=invert[i]+np+vaium; if(r[i]==2){ r[i]=0; vaium++; } } else if(n1<0){ for(i=na-1;i>=0;i--){ if(r1[i]==1) invert[i]=0; else if(r1[i]==0) invert[i]=1; } for (i=na-1;i>=0;i--) r1[i]=invert[i]+np+vaium; if(r1[i]==2){ r1[i]=0; vaium++; } } for(i=na-1;i>=0;i--){ somav[i]=r[i]+r1[i]+vaium; if((somav[i]==2) || (somav[i]==3)){ somav[i]=0; vaium++; } } printf("\n Soma dos numeros binarios:"); for (i=na-1;i>=0;i--) printf("%d",somav[i]%2); return 0; }
  6. Meu programa para converter decimal para binario ficou assim, não estou conseguindo entender muito bem recursão int main(){ int n; scanf("%d", &n); printf("%d", bin(n)); } int bin(int num){ if(num==1){ return 1; } else{ printf("%d",num%2); return bin(num/2); } } porem assim ele imprime o numero binario ao contario, ao invez de imprimir por exemblo 1010 ele imprime 0101. Gostaria de saber o por que, e como corrigir e também entender porque o codigo abaixo funciona if(num==1){ return 1; } else{ return bin(num/2)*10+num%2; } OBRIGADO!
  7. Ola pessoal, primeiro brigado a quem responder. Estou com duvidas neste exercicio ja pensei e pensei e não consigo chegar a resposta. O Exercicio é o seguinte: Escreva a função findsaw que procura, no inteiro value, a mais longa sequência de bits consecutivos com valores alternados. A função retorna apenas o índice do primeiro bit dessa sequência, sendo 0 o índice do bit de menor peso. No caso de haver mais do que uma resposta possível, deve ser retornada a que corresponder ao menor índice. Por exemplo, a chamada findsaw(0xEAEA476B) deve retornar 23. unsigned int findsaw(int value); OBS: eu fiz algumas coisas so que não estou a conseguir encontrar a "máscara" necessária para resolver o problema Abaixo Segue o que eu consegui fazer. [code] #include <stdio.h> unsigned int findsaw(int value); int main(){ printf("%d\n", findsaw(0x6)); return 0; } unsigned int findsaw(int value){ int count; int bigger; for(count = 0; value != 0; value >>= 1){ if((value & 01) || (value & 010)) count++; else if((value & 00) || (value & 011)){ if(count > bigger) bigger = count; count = 0; } bigger = count; } return bigger; } [/code] Ups sou novo neste forum e não consegui por o codigo bem desculpem pensava que tinha de usar [\code] mas não deu Penso que dá para entender de qualquer forma Obrigado desde já :)
  8. Olá Pessoal, estou há algum tempo fazendo um trabalho de curso, no qual não consigo andar com isso. Meu sistema c# tem um banco de dados SQL Server e nele eu realizo uma pesquisa e os registros aparecem em um datagridview porem teria quando o registro aparecer, na teoria teria que seleciona-lo e a imagem aparecer em um pictureBox, porem travei nessa parte e não consigo mais achar mais informações sobre isso. eu tenho dois modos que eu fiz: // instancia da minha conexao Conexao ObjetoDados = new Conexao(); OpenFileDialog of = new OpenFileDialog(); SqlCommand cmd1 = new cmd1 SqlCommand("Select FSDATA from FSDATA where FSDATA" + lstPesquisa) // em cima é o select do banco para trazer a imagem que esta vinculado com o registro trazido da pesquisa //cmdsql = "Select FSDATA from FSDATA where idFSDATA = 1"; SqlDataAdapter dp = new SqlDataAdapter(cmd1); DataSet ds = new DataSet("FSDATA"); byte[] MisDados = new byte[0]; dp.Fill(ds, "FSDATA"); DataRow myRow = ds.Tables["FSDATA"].Rows[0]; MisDados = (byte[])myRow["FSDATA"]; MemoryStream ms = new MemoryStream(MisDados); picImage.Image = Image.FromStream(ms); e o outro é: //Instancio minha classe de conexao /* */Conexao ObjetoDados = new Conexao(); OpenFileDialog of = new OpenFileDialog(); try { FileStream fs = new FileStream("FSDATA", FileMode.OpenOrCreate, FileAccess.Read); byte[] bImage = new byte[fs.Length]; fs.Read(bImage, 0, Convert.ToInt32(fs.Length)); fs.Close(); conn.Open(); cmd = new SqlCommand("Select FSDATA from FSDATA where FSDATA " + lstPesquisa , conn); cmd.Parameters.Add("FSDATA", SqlDbType.VarBinary).Value = bImage; cmd.ExecuteNonQuery(); conn.Close(); } catch (SqlException sqle) { MessageBox.Show(sqle.ErrorCode.ToString()); } Sobre isso não achei muitas informações e estou precisando um pouco de ajuda. meu email é: gomes.augustovilla@hotmail.com
  9. Ao Inserir a mercadoria, programa acusa que já existe. Não estou achando o problema, alguém consegue? // Christiano Bremm - 37301 #include <ctype.h> #include <conio.h> #include <stdio.h> #include <stdlib.h> struct loja { int cod; char fornecedor[20]; float val_forn; }; struct Comp_forn { int cod; int cod_prod; char nome_prod[20]; float val_unit; int quantidade; }; int VerifForn(FILE *arq, char arquivo[100],int cod); void inserir (FILE *arq, char arquivo[100],int alt); void verificarF(FILE *arq,char arquivo[100]); void consultar (FILE *arq, char arquivo[100], int alt); void apagar(FILE *arq, char arquivo[100], int alt); void alterar(FILE *arq, char arquivo[100], int alt); int main() { int A; int B; char C; char fornecedor_arq[100] = "fornecedores.txt"; char compra_arq[100] = "compras.txt"; struct loja fornec; struct Comp_forn compras; FILE *arquivo_fornecedor, *arquivo_compras; verificarF(arquivo_fornecedor, fornecedor_arq); verificarF(arquivo_compras, compra_arq); do{ system("cls"); printf("=======LOJA DE CHOCOLATE======= \n"); printf("(1) - INSERIR INFORMACOES\n"); printf("(2) - MODIFICAR INFORMACOES\n"); printf("(3) - CONSULTAR INFORMACOES\n"); printf("(4) - APAGAR INFORMACOES \n"); printf("(0) - SAIR\n\n"); printf("OPCAO DESEJADA : "); fflush(stdin); C=tolower(getchar()); system("cls"); switch (C) { case 49: printf("==INSERIR==\n"); printf("1-FORNECEDOR \n2-MERCADORIAS\n3-SAIR\nOPCAO: "); scanf("%i",&A); while(A==1 || A==2){ if (A==1) inserir(arquivo_fornecedor, fornecedor_arq,A); else inserir(arquivo_compras, compra_arq,A); system("cls"); printf("==INSERIR==\n"); printf("1-FORNECEDOR \n2-MERCADORIAS\n3-SAIR\nOPCAO: "); scanf("%i",&A); } break; case 51: printf("==CONSULTAR==\n"); printf("1-FORNECEDOR \n2-MERCADORIAS\n3-SAIR\nOPCAO: "); scanf("%d",&A); while(A==1 || A==2){ if (A == 1) consultar(arquivo_fornecedor, fornecedor_arq,A); else consultar(arquivo_compras, compra_arq,A); system("cls"); printf("==CONSULTAR==\n"); printf("1-FORNECEDOR \n2-MERCADORIAS\n3-SAIR\nOPCAO: "); scanf("%d",&A); } break; case 50: printf("==MODIFICAR==\n"); printf("1-FORNECEDOR \n2-MERCADORIAS\n3-SAIR\nOPCAO: "); scanf("%d",&A); while(A==1 || A==2){ if (A == 1) alterar(arquivo_fornecedor, fornecedor_arq,A); else alterar(arquivo_compras, compra_arq,A); system("cls"); printf("==MODIFICAR==\n"); printf("1-FORNECEDOR \n2-MERCADORIAS\n3-SAIR\nOPCAO: "); scanf("%d",&A); } break; case 52: printf("==APAGAR==\n"); printf("1-FORNECEDOR \n2-MERCADORIAS\n3-SAIR\nOPCAO: "); scanf("%d",&A); while(A==1 || A==2){ if (A == 1) APAGAR(arquivo_fornecedor, fornecedor_arq,A); else APAGAR(arquivo_compras, compra_arq,A); system("cls"); printf("==APAGAR==\n"); printf("1-FORNECEDOR \n2-MERCADORIAS\n3-SAIR\nOPCAO: "); scanf("%d",&A); } break; case 48: exit(1); default: printf("==OPCAO INVALIDA==\n"); getch(); break; } } while (C != 48); return 0; } void verificarF(FILE *arq, char arquivo[100]){ arq = fopen(arquivo, "rb+"); if(arq == NULL){ arq = fopen(arquivo,"wb+"); if(arq == NULL){ printf("==ARQUIVO COM PROBLEMA NA CRIACAO OU ABERTURA==\n"); exit(1); } } } void inserir(FILE *arq, char arquivo[100],int alt) { arq = fopen(arquivo, "rb+"); char XYZ[25]; int iXYZ; if (alt == 1){ struct loja sXYZ; printf("INSIRA O CODIGO DO FORNECEDOR:\n"); fflush(stdin); gets(XYZ); iXYZ = VerifForn(arq, arquivo,atoi(XYZ)); while(iXYZ==1){ printf("==já CRIADO==\n"); printf("INSIRA O CODIGO DO FORNECEDOR: "); gets(XYZ); iXYZ = VerifForn(arq, arquivo,XYZ); fflush(stdin); } sXYZ.cod = atoi(XYZ); printf("INSIRA O NOME DO FORNECEDOR: \n"); gets(sXYZ.fornecedor); fflush(stdin); sXYZ.val_forn=0; fseek(arq,0,SEEK_END); fwrite(&sXYZ, sizeof(struct loja), 1, arq); } else{ struct Comp_forn sXYZ; printf("INSIRA O CODIGO DO FORNECEDOR: \n"); fflush(stdin); gets(XYZ); iXYZ = VerifForn(arq, arquivo,XYZ); while(iXYZ==0){ printf("==já CRIADO==\n"); printf("INSIRA O CODIGO DO FORNECEDOR:\n"); fflush(stdin); gets(XYZ); iXYZ = VerifForn(arq, arquivo,XYZ); } sXYZ.cod=atoi(XYZ); fflush(stdin); printf("INSIRA O CODIGO DO PRODUTO: \n"); gets(XYZ); sXYZ.cod_prod = atoi(XYZ); fflush(stdin); printf("INSIRA O NOME DO PRODUTO: \n"); gets(sXYZ.nome_prod); fflush(stdin); printf("INSIRA O preço DO PRODUTO:\n"); scanf("%.2f", &sXYZ.val_unit); fflush(stdin); printf("INSIRA A QUANTIDADE COMPRADA DO PRODUTO: \n"); scanf("%i", &sXYZ.quantidade); fflush(stdin); fseek(arq,0,SEEK_END); fwrite(&sXYZ,sizeof(struct Comp_forn),1, arq); } fclose(arq); printf("REGISTRO EXECUTADO! PRESSIONE ENTER PARA PROSSEGUIR\n"); getch(); system("cls"); } void consultar (FILE *arq, char arquivo[100], int alt) { if (alt == 1){ struct loja fornecedor; int cod, ok = 0; char XYZ[25]; fflush(stdin); arq = fopen(arquivo, "rb+"); printf("INSIRA O CODIGO DO FORNECEDOR\n"); fflush(stdin); gets(XYZ); cod = atoi(XYZ); rewind(arq); while(!feof(arq) && ok==0){ fread(&fornecedor, sizeof(struct loja), 1, arq); if(fornecedor.cod == cod) { printf("NOME DO FORNECEDOR: %s\n", fornecedor.fornecedor); ok = 1; } } if (ok == 0){ printf("NADA ENCONTRADO!\n"); } } else { struct Comp_forn compras; int cod, ok = 0; char XYZ[25]; fflush(stdin); arq = fopen(arquivo, "rb+"); printf("INFORME O CODIGO DO PRODUTO: \n"); fflush(stdin); gets(XYZ); cod = atoi(XYZ); rewind(arq); while(!feof(arq) && ok==0){ fread(&compras, sizeof(struct Comp_forn), 1, arq); if(compras.cod_prod == cod) { printf("CODIGO DO FORNECEDOR: %i \n", compras.cod); printf("CODIGO DO PRODUTO: %i \n", compras.cod_prod); printf("NOME DO PRODUTO: %s \n", compras.nome_prod); printf("QUANTIDADE COMPRADA: %i \n", compras.quantidade); printf("VALOR (und): %.2f \n", compras.val_unit); ok = 1; } } if (ok == 0){ printf("NADA ENCONTRADO\n"); } } fclose(arq); printf("PRESSIONE ENTER\n"); getch(); } void APAGAR(FILE *arq, char arquivo[100], int alt) { if (alt == 1){ struct loja fornecedor; int cod, ok = 0, stop = -1; char XYZ[25]; fflush(stdin); arq = fopen(arquivo, "rb+"); printf("INFORME O CODIGO DO FORNECEDOR: \n"); fflush(stdin); gets(XYZ); cod = atoi(XYZ); rewind(arq); while(!feof(arq) && ok == 0){ stop++; fread(&fornecedor, sizeof(struct loja), 1, arq); if(fornecedor.cod == cod) { printf("NOME DO FORNECEDOR: %s \n", fornecedor.fornecedor); ok = 1; } } if (ok != 0){ int escolha; printf("DESEJA APAGAR FORNECEDOR? %s (SIM = 1, não = 0)?", fornecedor.fornecedor); fflush(stdin); scanf("%i", &escolha); if (escolha == 1){ fornecedor.cod = 999; fseek(arq, sizeof(struct loja) *stop, SEEK_SET); fwrite(&fornecedor,sizeof(struct loja),1, arq); printf("==REGISTRO APAGADO==\n"); } } else { printf("==NADA ENCONTRADO==\n"); } } else { struct Comp_forn compras; int cod, ok = 0, stop = -1; char XYZ[25]; fflush(stdin); arq = fopen(arquivo, "rb+"); printf("INFORME O CODIGO DO PRODUTO:\n"); fflush(stdin); gets(XYZ); cod = atoi(XYZ); rewind(arq); while(!feof(arq) && ok==0){ stop++; fread(&compras, sizeof(struct Comp_forn), 1, arq); if(compras.cod_prod == cod) { ok = 1; } } if (ok != 0){ int escolha; printf("APAGAR PRODUTO? %s (SIM = 1, não = 0)?", compras.nome_prod); fflush(stdin); scanf("%i", &escolha); if (escolha == 1){ compras.cod_prod = 999; compras.cod = 999; fseek(arq, sizeof(struct Comp_forn) *stop, SEEK_SET); fwrite(&compras,sizeof(struct Comp_forn),1, arq); printf("==REGISTRO EXCLUIDO==\n"); } } else { printf("==NADA ENCONTRADO==\n"); } } fclose(arq); printf("TECLE ENTER\n"); getch(); } void alterar(FILE *arq, char arquivo[100], int alt) { if (alt == 1){ struct loja fornecedor; int cod, ok = 0, stop = -1; char XYZ[25]; fflush(stdin); arq = fopen(arquivo, "rb+"); printf("INFORME O CODIGO DO FORNECEDOR: \n"); fflush(stdin); gets(XYZ); cod = atoi(XYZ); rewind(arq); while(!feof(arq) && ok==0){ stop++; fread(&fornecedor, sizeof(struct loja), 1, arq); if(fornecedor.cod == cod) { printf("NOME DO FORNECEDOR: %s \n", fornecedor.fornecedor); ok = 1; } } if (ok != 0){ struct loja insertdados; insertdados.cod = fornecedor.cod; insertdados.val_forn = fornecedor.val_forn; printf("INSIRA NOVO NOME: \n"); fflush(stdin); scanf("%s", &insertdados.fornecedor); fseek(arq, sizeof(struct loja) *stop, SEEK_SET); fwrite(&insertdados, sizeof(struct loja),1, arq); printf("==INFORMACOES ALTERADAS==\n"); } else { printf("==NADA ENCONTRADO==\n"); } } else { struct Comp_forn compras; int cod, ok = 0, stop = -1; char XYZ[25]; fflush(stdin); arq = fopen(arquivo, "rb+"); printf("INSIRA O CODIGO DO PRODUTO:\n"); fflush(stdin); gets(XYZ); cod = atoi(XYZ); rewind(arq); while(!feof(arq) && ok==0){ stop++; fread(&compras, sizeof(struct Comp_forn), 1, arq); if(compras.cod_prod == cod) { ok = 1; } } if (ok != 0){ struct Comp_forn insertdados; insertdados.cod = compras.cod; insertdados.cod_prod = compras.cod_prod; printf("NOVO NOME DO PRODUTO:\n"); fflush(stdin); scanf("%s", &insertdados.nome_prod); printf("NOVO VALOR (und):\n"); fflush(stdin); scanf("%s", &insertdados.val_unit); printf("NOVA QUANTIDADE DE COMPRA:\n"); fflush(stdin); scanf("%s", &insertdados.quantidade); fseek(arq, sizeof(struct Comp_forn) *stop, SEEK_SET); fwrite(&insertdados, sizeof(struct Comp_forn),1, arq); printf("==INFORMACOES ALTERADAS==\n"); } else { printf("==NADA ENCONTRADO==\n"); } } fclose(arq); printf("==PRESSIONE ENTER==\n"); getch(); } struct loja fornecedor; int VerifForn(FILE *arq, char arquivo[100],int cod){ int ok = 0; rewind(arq); while(!feof(arq) && ok==0){ fread(&fornecedor, sizeof(struct loja), 1, arq); if(fornecedor.cod == cod) { ok = 1; } } return(ok); }
  10. Olá, recebi como tarefa de meu curso técnico desenvolver uma balança com o microcontrolador 8051. A balança vai de 0 kg até 150 kg e enviará o valor da massa para o porto P3 do microcontrolador. O problema é que o porto P3 receberá o valor em binário e para realizar a regra de três para obter uma massa e enviá-la para o display, preciso dos valores em decimal e eu não sei como realizar essa conversão. Vejam o que já consegui: //Balanca #include <8052.h> #define display P2 #define RS P0_2 #define RW P0_1 #define EN P0_0 #define Delay 200 #define NumCol 15 #define Linha1 0x80 #define Linha2 0xC0 #define MSG1 0 #define MSG2 1 #define Grau_C 0x00 #define Seta_E 0x01 #define Seta_D 0x02 #define Seta_C 0x03 #define Seta_B 0x04 #define Grau_F 0x05 #define massa P3 unsigned long x; unsigned long y; unsigned char mint, resto, mdec; unsigned char Tab_Conf[5] = {0x38, //Display matriz 7x5 e 8 bits 0x0E, //Habilita cursor 0x06, //Deslocando para a direita 0x01, //Limpa display 0x0C}; //Desliga cursor void Disp_8bits (void) { for (y=0; y<=4; y++) { display = Tab_Conf[y]; RS = 0; RW = 0; EN = 1; for (x=0; x<=Delay; x++); EN = 0; } } void Posi_Char (unsigned char Position) { display = Position; RS = 0; RW = 0; EN = 1; for (x=0; x<=Delay; x++); EN = 0; } void Escreve_Char (unsigned char Num_CGRAM) { display = Num_CGRAM; RS = 1; RW = 0; EN = 1; for (x=0; x<=Delay; x++); EN = 0; } void Escreve_Frase (unsigned char Local) { unsigned char Message[2][16] = {" BALANCA ", " , kg "}; for (y=0; y<=NumCol; y++) { display = Message[Local][y]; RS = 1; RW = 0; EN = 1; for (x=0; x<=Delay; x++); EN = 0; } } void main (void) { TMOD = 0x11; Disp_8bits ( ); Posi_Char (Linha1); Escreve_Frase (MSG1 ); Posi_Char (Linha2); Escreve_Frase (MSG2); while(1) { mint=(massa*150)/255; resto=(massa*150)%255; mdec=(resto*100)/255; Posi_Char (Linha2+1); Escreve_Char (mint + 0x30); Posi_Char (Linha2+5); Escreve_Char (mdec + 0x30); } }
  11. Olá, estou recebi como tarefa de meu curso técnico desenvolver uma balança com o microcontrolador 8051. A balança vai de 0 kg até 150 kg e enviará o valor da massa para o porto P3 do microcontrolador. O problema é que o porto P3 receberá o valor em binário e para realizar a regra de três para obter uma massa e enviá-la para o display, preciso dos valores em decimal e eu não sei como realizar essa conversão. Vejam o que já consegui: //Balanca #include <8052.h> #define display P2 #define RS P0_2 #define RW P0_1 #define EN P0_0 #define Delay 200 #define NumCol 15 #define Linha1 0x80 #define Linha2 0xC0 #define MSG1 0 #define MSG2 1 #define Grau_C 0x00 #define Seta_E 0x01 #define Seta_D 0x02 #define Seta_C 0x03 #define Seta_B 0x04 #define Grau_F 0x05 #define massa P3 unsigned long x; unsigned long y; unsigned char mint, resto, mdec; unsigned char Tab_Conf[5] = {0x38, //Display matriz 7x5 e 8 bits 0x0E, //Habilita cursor 0x06, //Deslocando para a direita 0x01, //Limpa display 0x0C}; //Desliga cursor void Disp_8bits (void) { for (y=0; y<=4; y++) { display = Tab_Conf[y]; RS = 0; RW = 0; EN = 1; for (x=0; x<=Delay; x++); EN = 0; } } void Posi_Char (unsigned char Position) { display = Position; RS = 0; RW = 0; EN = 1; for (x=0; x<=Delay; x++); EN = 0; } void Escreve_Char (unsigned char Num_CGRAM) { display = Num_CGRAM; RS = 1; RW = 0; EN = 1; for (x=0; x<=Delay; x++); EN = 0; } void Escreve_Frase (unsigned char Local) { unsigned char Message[2][16] = {" BALANCA ", " , kg "}; for (y=0; y<=NumCol; y++) { display = Message[Local][y]; RS = 1; RW = 0; EN = 1; for (x=0; x<=Delay; x++); EN = 0; } } void main (void) { TMOD = 0x11; Disp_8bits ( ); Posi_Char (Linha1); Escreve_Frase (MSG1 ); Posi_Char (Linha2); Escreve_Frase (MSG2); while(1) { mint=(massa*150)/255; resto=(massa*150)%255; mdec=(resto*100)/255; Posi_Char (Linha2+1); Escreve_Char (mint + 0x30); Posi_Char (Linha2+5); Escreve_Char (mdec + 0x30); } }
  12. Estou estudando as conversões para binário e vice versa, mas eu sei apenas a conversão binária decimal e, gostaria de aprender como converter um caractere ou frases para binário. Dês de já, agradeço a ajuda!
  13. Olá galera. Estou iniciando na linguagem e gostaria de criar um conversor de binário em decimal p/ aprender os conceitos de programação. Teriam algumas dicas? Já descobri que terei que usar o 'for', mas não tenho nenhuma ideia.
  14. Boa tarde :D esse e meu primeiro post no forum, sou novato então se estiver publicando no forum, errado peço desculpas desde já. Estou fazendo tentando fazer uma calcula de IP, é meu trabalho para a matéria da faculdade. Estou fazendo pelo dev c++ estou com dificuldades de transforma o ip, de decimal para binario. Segue o Print do meu código e do resultado. Eu gostaria que no final, ele convertesse o IP todo não so a primeira casa, Se alguém poder me ajudar agradeço sou novato em c++. Obrigado ! .
  15. Preciso calcular um numero binário com ponto flutuante. Por exemplo: 101.1 deve me dar o valor 5.5. O problema é que eu pensei em separar em 101 e 0.1 e então transformar o 0.1 em um numero inteiro mas quando faço isso ele arredonda para menos! ex: scanf("%lf", &bin); dec = bin - (int)bin; printf("%lf", dec); res2 = dec*10*10*10*10*10*10*10*10*10*10*10*10; printf("\n%f", res2); sendo bin 101.1 o resultado para esse .1 convertido para inteiro é 99999999. Reparem que eu multiplico várias vezes por 10 para mover a vírgula. Agradeço desde já. Sei que tá confuso mas vou explicando conforme surgirem dúvidas :D
  16. Gostaria de ideias sobre como fazer um dado numero real em base binária (ponto flutuante) passe para base decimal com precisão de uma casa após a virgula. Por exemplo: 10100.1 = 20,5
  17. Olá, depois de apanhar muito dentro do scriptcase e também em php com estouro de memória, decidi que o melhor lugar para calcular todas aquelas regras de MMN Binário, é dentro do próprio banco de dados. Assim, a aplicação fica mais leve, e limpa. Então , como marinheiro de primeira viagem em PL Sql, estou tendo algumas dificuldades, como trabalhar com cursores, extruturas de repetição, e chamar uma procedure dentro da outra... neste primeiro exemplo, quero apenas somar os pontos de todos os downlines a partir de uma determinada franquia, porém, está com um erro que não consigo achar. Alguém pode me ajudar? Segue a procedure: -- -------------------------------------------------------------------------------- -- Routine DDL -- Note: comments before and after the routine body will not be stored by the server -- -------------------------------------------------------------------------------- DELIMITER $$ CREATE PROCEDURE `lkp_diretos_de` (IN upline int,IN market int, IN ciclo int, IN secao varchar(45),OUT total_pontos float) BEGIN DECLARE done_arr_rede1,done_arr_rede2,diretos1,diretos2,fra_id,fra_derramado_em_id,fra_upline_id ,fra_id2,fra_derramado_em_id2,fra_upline_id2 INTEGER DEFAULT 0; DECLARE fra_dat_cadasto,fra_dat_cadasto2 DATETIME; DECLARE fra_lado_equipe_upline,fra_lado_equipe_upline2 char(1); DECLARE fra_saldo_pontos,fra_saldo_pontos2 float DEFAULT 0; DEClARE arr_rede1 CURSOR FOR SELECT mmn_franquias.fra_id, mmn_franquias.fra_dat_cadasto, mmn_franquias.fra_derramado_em_id, mmn_franquias.fra_upline_id, mmn_franquias.fra_lado_equipe_upline, mmn_franquias.fra_saldo_pontos FROM mmn_franquias ORDER BY mmn_franquias.fra_dat_cadasto; DEClARE arr_rede2 CURSOR FOR SELECT mmn_franquias.fra_id, mmn_franquias.fra_dat_cadasto, mmn_franquias.fra_derramado_em_id, mmn_franquias.fra_upline_id, mmn_franquias.fra_lado_equipe_upline, mmn_franquias.fra_saldo_pontos FROM mmn_franquias ORDER BY mmn_franquias.fra_dat_cadasto; -- declare NOT FOUND handler DECLARE CONTINUE HANDLER FOR NOT FOUND SET done_arr_rede1 = 1; -- declare NOT FOUND handler DECLARE CONTINUE HANDLER FOR NOT FOUND SET done_arr_rede2 = 1; OPEN arr_rede1; REPEAT FETCH arr_rede1 INTO fra_id, fra_dat_cadasto, fra_derramado_em_id, fra_upline_id, fra_lado_equipe_upline, fra_saldo_pontos; IF NOT done_arr_rede1 THEN if locate(fra_upline,upline)>0 then OPEN arr_rede2; while done_arr_rede2 = 1 do FETCH arr_rede2 INTO fra_id2, fra_dat_cadasto2, fra_derramado_em_id2, fra_upline_id2, fra_lado_equipe_upline2, fra_saldo_pontos2; if fra_upline_id2 = fra_upline_id1 then set done_arr_rede2 = 1; set upline = concat (upline,',',fra_upline_id2); set total_pontos = total_pontos + fra_saldo_pontos2; end if; end while; CLOSE arr_rede2; end if; END IF; UNTIL done END REPEAT; CLOSE arr_rede1; END
  18. Oi pessoal, sou novo aqui no fórum e queria saber do que vocês acharam desse código-fonte que converte números decimais em números binários #include <stdio.h> #include <stdlib.h> int program() { int a,b,c,d,i,z; int s_0[16]; int def_0, def_1; int v_d = 0; int v_d1 = 1; int var_p; for(z = 0; z < 16; z++) s_0[z] = 0; if(v_d1 == 1) { printf("Digite um numero a ser convertido:\n"); scanf("%d", &a); b = a/2; c = b*2; d = a-c; s_0[16] = d; while ( b > 0) { if(v_d == 0) { def_0 = 15; } i = b; b = b/2; c = b*2; d = i-c; s_0[def_0] = d; def_0--; v_d++; } printf("resultado: \n"); for(var_p = 1; var_p <= 16; var_p++) { printf("%d", s_0[var_p]); } printf("\n"); } } int main() { int pa; int internal_error = 0; char help[20] = "ajuda"; char conversor[20] = "conversor"; char sair[20] = "sair"; char ler[20]; comparations: { printf("funcao: "); scanf("%s", &ler); /////////// if(strcmp(ler, conversor) == 0) { { program(); } goto comparations; } if(strcmp(ler, help) == 0) { printf("convertor: converte numeros decimais em binario\nquit: finaliza o programa\n"); } else { if(strcmp(ler, sair) == 0) { return; //terminará o programa } printf("Esta funcao não e reconhecida, digite help para mais informacoes\n"); goto comparations; } } goto comparations; }
  19. Gostaria de copiar o conteúdo inteiro de um arquivo binário e transferir para uma sequência de linhas e bytes de um outro binário. Tipo conteúdo do primeiro para o endereço do segundo que é 315 75BF até 315 791F. Mas tem 10 arquivos e os primeiros arquivos e endereços e segundos arquivos são diferentes. Estou tentando fazer em C mas não estou conseguindo. Se explicarem um, os outros eu mudo os endereços. E compilo no CodeBlocks.
×
×
  • Criar Novo...