Ir ao conteúdo

edcronos

Membro Pleno
  • Posts

    264
  • Cadastrado em

  • Última visita

Tudo que edcronos postou

  1. uma pergunta que não quer calar digitar onde? considerando que sua pergunta é em cima da logica bem eu faria um contador de caractere em loop de entrada quando chegar ao limite para de aceitar entradas ou ao se pegar apenas as 4 1ª letras if(palavraDigitada[4]!='\0') {for(l=0;l<=3;l++) {palavra[l]=palavraDigitada[l] }} mas com certeza deve ter maneira de fazer o que você quer
  2. estou testando algumas ide para ve com qual me dou melhor o netbeans tem muita coisa legal, mas é tanta coisa legal que a gente acaba brincando mais na configuração do programa, e esquecendo da programação https://netbeans.org/features/cpp/index_pt_BR.html
  3. vou tentar explicar de forma generica a função recebe a string como parâmetro char StrNum[] varre essa string até achar o 1º nunmero no caso ela compara com cada item da matriz de caractere publica const char Arnut[]="0123456789-.,"; --> if (StrNum[L] == Arnut[C]) deve funcionar com "1000","-1.000","1,000" no caso varre StrNum até chegar ao fim da matriz, ou achar numeros e logo achar algo diferente da matriz Arnut R$-151 -pago vai ler letra por letra quando chegar ao 1 vai multiplicando ValorX por 10 adicionando o valor em ValorX 1ª ocorrencia numerica na string (valorx =0) *10 +1=1 na proxima letra que é 5 o valorx que é 1 é multiplicado por 10 o que dá 10 e somado 5 o que dá 15 na proxima letra que é 1 valorx que é 15 é multiplicado por 10 o que dá 150 e somado 1 =151 e na moxima como não tem nada que tenha arnut o ciclo para é verificado se antes do 1º numero achado tem um "-" se sim negativa o valorx e passa valor x para a função vou adicionar reconhecimento numeco de 000.009 e também vou fazer pegar pedaços 10/11/12 convertNUM("data10 /11/12" , 1)=--> 10 convertNUM("data10/11/12" , 2 )=--> 11 convertNUM("data10/11/12" , 3 )=--> 12 convertNUM(" 12 3456789", 1 , 2 )=--> 12 convertNUM(" 12345 6789" , 1 , 5 )=--> 12345 convertNUM("123456 789 ", 3 , 3 )=--> 789 eu coloquei Arnut[]="0123456789-.,"; como global para otimizar conversões extensas para não ter que montar a matriz de comparação a cada teste mas pretendo colocar a matriz de comparação como referencia assim o codidigo pode usar sua propria matriz de comparação tipo adicionar () e espaço , assim se pega numeros de telefone também (21) 99997777 ---> 2199997777 mas antes tenho que aprender a lidar com essas IDE
  4. Como leitura de referencia https://pt.wikipedia.org/wiki/C%2B%2B https://pt.wikipedia.org/wiki/Compilador dá alguns detalhes sobre as bibliotecas padrões https://pt.wikipedia.org/wiki/Biblioteca_padr%C3%A3o_do_C%2B%2B tem alguns detalhes implícitos sobre funcionamento http://homepages.dcc.ufmg.br/~rodolfo/aedsi-2-10/Funcoes/funcoes.html ferramentas em desenvolvimento bem avançadas, boas para não desanimar da linguagem https://pt.wikipedia.org/wiki/Biblioteca_Boost https://pt.wikipedia.org/wiki/Ponteiro_%28programa%C3%A7%C3%A3o%29 https://pt.wikipedia.org/wiki/Ponteiro_inteligente https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_gen%C3%A9rica https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_concorrente CURSOS http://www.rogercom.com/Principal.htm http://www.tiexpert.net/programacao/c/index.php http://pontov.com.br/site/index.php/cpp/46-conceitos-basicos http://pontov.com.br/site/index.php/cpp http://apostilacpp.awardspace.com/index.php?pagina=indice http://www.ime.usp.br/~pf/algoritmos/idx.html http://www.asciitable.com/ algo muito rápido de assembly http://www.fergonez.net/files/tut_memoria.pdf http://www.numaboa.com.br/informatica/oficina/123-so/735-curso-de-assembly?showall=&start=4 .http://www.hardware.com.br/comunidade/assembly-enderecos/1184631/1.html
  5. Decidi abrir esse tópico pelas dificuldade que estou enfrentando com a linguagem. Primeiramente com a IDE qual a ide mais apropriada que tenha dicas em PT, e de preferência, exclusiva da linguagem escolhida, até agora não sei a diferença de C e C++, a não ser que C++ aceita OOP, o que para mim não quer dizer grande coisa como são linguagens praticamente próximas do assembly só tem comandos basicos e tudo mais tem que se fazer na marra ou usar bibliotecas já prontas para ser embutidas no codigo, são como funções e trechos de programação de conversão entre outras coisas, pelo menos foi isso que entendi, quais são os #include que se deve incluir para os trabalhos mais amplos , como comparação de textos, numeros, entre outras coisas e onde se acha o codigo fonte deles para se estudar e adaptar para o uso mais próximo da realidade de cada um, ou apenas como estudo de criação Afinal porque depois de tantos anos não se tem ide com compilador já com funções basicas como padrão ´para o iniciante pegar gosto pela coisa sem ter que ficar pulando de ide em ide e de tutorial em tutoria para saber como comparar strings porque se precisa do ; no final da strução se poderia identificar o Enter também? são tantos padrões de linguagens criadas, tantos paradigmas em cima disso e daquilo, uns odeiam o GoTo e pelo visto somente pela palavra, sendo que os loop são gotos, "jump", gosub então nem se fala, é morte certa postar algo com ele as novas linguagens excluíram os ponteiros, das variaveis publicas nem sei, só sei que muitos querem matar os que usam, mesmo que seja para projetos próprios e como hobby o unico padrão que vejo atualmente é programas pesados mesmo que simples em maquinas cheio de recursos o C/C++ seria escolha absoluta se lançassem uma IDE com Compilador tão fácil de usar quanto o basic, e já com ferramentas para criar telas graficas mesmo que simples como os formr de maneira transparente como se usa o vba do excel , tá, não seria mais o C/C++ que se conhece, mas certamente iria matar essas linguagens que as pessoas ficam reaproveitando e acumulando codigos não otimizado assim os novos iriam se habituando e aprendendo enquanto tentam melhorar seus programas
  6. a função também separa numeros de textos valor1.000,joaão50 vai dar 1000, pelo menos é o que imaginei enquanto estava escrevendo, no vba é só valor = val(string) bem, eu estou fazendo para aprender, mesmo porque pelo que eu vi ,eu mesmo vou ter que criar minhas próprias funções sscanf( str, "%d", &n ); nunca vou lembrar como escrever isso mas o fato é, acho que estou apanhado da ide o codeblocks já acusa erro nos includs e dev achusa arquivo inexistente
  7. pensei que era apenas um logotipo pelo proprio excel você poderia interagir e adicionar esse codigo de barras se tiver a fonte o excel também poderia importar os ceps e endereços do site dos correios mas bem, são só ideias
  8. ainda não sou programador, mas sobre a marca d'água tem que ver eu tinha uma impressora que o drive dela tinha a opção de dimensionar e alocar na pagina uma imagem com transparência ou não essa que eu tenho agora somente permite texto " se bem que se poderia criar uma fonte com um dos caracteres imitando o logotipo"
  9. bem tem o lance de direitos autorais e essas coisas, tem que ver se a licença desse programa permite isso no mais o ideal seria desenvolver o proprio programa ou na hora de imprimir usar uma marca d´agua ou algo parecido para colocar o logotipo como um carimbo digital
  10. nem iniciei nisso ainda mas alem do que o vango falou while (contador>=10 && contador<=150){resultado=(n1*n1);} repare que while somente vai fazer loop se o valor de contador for MAIOR ou IGUAL a 10 E MENOR ou IGUAL a 150 mas você não coloca um valor inicial nem mesmo um valor de incremento imagina se o valor de contador for 0, nem vai fazer loop porque não vai estar na meta esse loop que você quer seria o mesmo que For (contador=10;contador<=150;contador++){resultado=(n1*n1);} no for o contador foi iniciado em 10 no while eu suponho que você tenha que dispor de um valor inicial antes para entrar em loop alem disso você tem que incrementar o contador senão o while encontrando sempre 10 vai entrar em loop infinito ou até dar estouro contador=10 while (contador>=10 && contador<=150) { resultado=(n1*n1); contador++; // ou contador+=1 ou contador=contador +1 } bem a logica no vb é essa, mas ainda estou perdido no C ou C++ ainda não encontrei uma diferença para me apoiar
  11. for ( ; StrNum[L] !='\0' ; L++){ é para varrer cada parte de StrNum que teoricamente pelo que eu li é um vetor de strings for (;C <= 12; C++) deveria adicionar 1 na variavel int C até chegar 12 if (StrNum[L] == Arnut[C]) deve comparar os itens do vetor StrNum definido por L com Arnut (const char Arnut[]="0123456789-.," ) na letra definida por C if (C < 10) {valorX = valorX * 10 + C;} se C for de o até 9 "0123456789-.," valorX é multiplicado por 10 e somado o valor de C imagina se a primeira letra encontrada em StrNum foi 2 e como ele tem o valor inicial de 10, seria 0*10 +C "2", e logo apos encontrou o 6 então seria valorX=valorX"2" *10=20+6 =26 se a proxima letra encontra não corresponder a umas das letras dentro do vetor Arnut vai sair do loop de C e encontrar if (n > 0){return valorX;} se ocorrência de numeros maior que zero retorna valorX senão continua o loop de L o Goto serve para sair do loop quando encontra uma ocorrência e para pular if (n>0) no caso do goto vou ter que mudar o loop em C for (C=0 ;C <= 12; C++), para poder reiniciar o loop com C em 0 senão iria chegar em 12 e depois nem entraria mais no loop apois o goto eu já tinha tirado o public: para falar a verdade eu não sei se isso é C se é C++ não existe nada básico embutido nas IDE para o iniciantes ou preguiçosos ou esquecidos que nem eu essa função foi após pesquisar sobre conversões de strig em numeros achei os Atoi atol e sei la mais o que "algo que eu nunca vou lembrar como usar , então como primeira experiencia decidir criar uma função de conversão mas nisso dei de cara nas strigs insisti porque de certa forma vou ter que aprender
  12. to eu aqui cheio de planos e ideias e simplesmente descubro que C/C++ é para maluco ou super dotado mentalmente não consegui fazer funcionar meu primeiro teste e nem tenho ideia onde estou errando #include <cstdlib>#include <iostream>#include <string>using namespace std;const char Arnut[]="0123456789-.,";double convertNUM(unsigned char StrNum[]) { double valorX = 0; int n = 0, L2 = 0, L,C; for ( L=0; StrNum[L] !='\0' ; L++) { for (C=0;C <= 12; C++) { if (StrNum[L] == Arnut[C]) { n = n + 1; if (n == 1){ L2 = L;} if (C < 10) {valorX = valorX * 10 + C;} goto prxL; } if (n > 0) { if (L2>0){if(StrNum[L2-1] == Arnut[10]) {valorX = -valorX;}} return valorX; } } prxL:; } return 0; }int dfakdjflkj(){ //string vkk = "a2000";cout << convertNUM("a2000") << endl;getch(); // cin.get(); return 0} não sou superdotado mentalmente e a logica é pular fora disso mas infelizmente sou maluco
  13. Fazendo umas considerações aqui eu vi que vou ter que mudar algumas de minhas logicas minhas macro trabalham com arrays geradas pelo vba a partir da planilha array(1 to Linha, 1 to Coluna) as array geradas pelos BD´s são vetores de vetores e com base 0 o que seria mais ou menos algo assim std::vector<Variant*> tabelax(C + 1); std::vector<long long> coluna1(L + 1); std::vector<std::wstring> coluna2(L + 1); std::vector<long long> coluna3(L + 1); for (n = 1; n <= L; n++) { coluna1[n] = n; coluna2[n] = std::wstring(L"A") + std::to_wstring(n); coluna3[n] = n + n; } tabelax[0] = coluna1; tabelax[1] = coluna2; tabelax[2] = coluna3; tabelax[0][100];//dá o valor do vetor Coluna1[100] então em vez de eu varrer as Array(linha,coluna) vai ter que ser Vetor[coluna] [Linha] também tenho que aprender a usar ponteiro de ponteiro com o vetor assim ao se trabalhar a "TabelaX" vai se estar trabalhando diretamente com os vetores ColunasN esse é um caso onde referenciar as vairaveis pelo nome ajudaria a tornar o codigo mais dinamico for (N = 1; N <= total_de_colunas; N++) { &tabelax[N] = ponteiroString(std::wstring(L"Culuna") + std::to_wstring(N)); } assim se faria codigos reduzidos que se auto adaptariam bem é apenas uma ideia, afinal porque tudo tem que ter #include <string> #include <vector> #include <...> std::wstring, std::to_wstring a ide não é capaz de lidar com essas coisas por si só não ( "string" & var ) ? até a pessoa descobrir o que está faltando está lascado encontri mais uma barreira, Datas as ferramentas que achei em c são totalmente obscuras e eu preciso delas não no formato dd/mm/aaaa e sim 42300 que é 23/10/2015 se bem que como estou criando meu proprio programa porque não ter um padrão proprio? "melhor não, senão vou ter que criar todas as ferramentas de conversão e comparação"
  14. é bem mais fácil mas quando se tem muitas interações individuais se torna difícil o raciocinio eu tenho uma macro que parte dela é assim if (L[ni] <= Lx) //vn1 ' { arr[L[ni]][c[ni]][ni] = Vn[ni]; Lini[L[ni]][ni] = Lini[L[ni]][ni] + 1; } if (ni == {ni2 = dix;} else {ni2 = ni - 1;} Vn[ni] = Vn[ni] + x[ni]; if (Vn[ni] > Nx[ni] || Vn[ni] < 1) { x[ni] = -x[ni]; if (vhc == 1) { vhc = 0; } else { vhc = 1; } Vn[ni] = invVal(Vn[ni], vhc, Nx[ni] - vhc, 3 + vhc); } no vba: If L(ni) <= Lx Then arr(L(ni), c(ni), ni) = Vn(ni): Lini(L(ni), ni) = Lini(L(ni), ni) + 1 'vn1 ' If ni = b Then ni2 = dix Else ni2 = ni - 1 Vn(ni) = Vn(ni) + x(ni) If Vn(ni) > Nx(ni) Or Vn(ni) < 1 Then x(ni) = -x(ni): If vhc = 1 Then vhc = 0 Else vhc = 1 Vn(ni) = invVal(Vn(ni), vhc, Nx(ni) - vhc, 3 + vhc) End If nesse caso foi fácil porque é tudo uma coisa só e tem poucas interações de ajuste, mas em uma logica como a mostrada inicialmente pela macro que realoca os valores da array seria impensável fazer assim
  15. e coloque inseguro nisso, nem os dados nem o projeto em sí é protegido nao mexo como trabalho comecei com o excel com uma ideia na cabeça a ideia ainda é a mesma inicial, mas não pensei que iria exigir tanto nem chegar tão longe passei para o vba por precisar de uma automação já tenho um banco de dados postgres incorporado na planilha que é administrado pelo vba mas a interação de dados que tenho na minha cabeça somente conseguiria desenvolver lidando diretamente com os dados e não com comandos com uma estrutura fixa eu conseguiria fazer com o vba, mas ele é muito lento para a quantidade de dados que precisa ser analisado e ficar fazendo testes até dár certo com algo demorado não é comigo por isso estou pulando para o C. o problema é que a sintaxe não combina muito bem com meu modo de analise que é visual somente aprendo mexendo e testando e consertando até assimilar o funcionamento com o excel foi igual, fui direto para algo totalmente fora da minha capacidade, hoje em dia consigo fazer malabarismo com os dados da planilha, mas em compensação não sei como proteger ela por senha "como só mexo para mim nunca precisei aprender as bases :P"
  16. eu sempre fui enrolado assim mesmo, as ideias ficam dando voltas e as vezes é difícil pegar a que se quer ou precisa no vba foi a mesma coisa "E por incrível que pareça apesar de tudo eu tenho avançado bastante," Cara, eu gaguejo horrores, se está difícil entender o que escrevo, imagina falando sabe a logica do barco? pois bem, minha mente trabalha por referencia também quando eu vejo OLi na macro é a mesma coisa que vizualizar o 1º quadrado de uma array OrigemLinhaInicial por isso que só uso variaveis com poucas letras, por que quando faço a macro e olho para ela é a mesma coisa que visualizar o percusso que está fazendo entre os itens da array, e se tem palavras grandes e complexas meu raciocínio congela para definir a palavra em si infelizmente isso me prejudica enormemente o entendimento das coisas como são passadas normalmente e acabo tendo que refazer para assimilar sobre esse monte de variaveis, eu achei como fazer um gosub para ser usado no C ------------------------------ sobre concatenar palavras para definir uma variavel seria algo como long long var1 = 0;long long var2 = 0;long long var3 = 0;for (void *n = 1; n <= 3; n++){&var= std::wstring(L"var") + n;*var=n;}//novo valor de var1,var2,var3//var1=1//var2=2//var3=3} é meio confuso mesmo
  17. Também, no momento é apenas aprendizagem, depois que definir os pontos importantes vai ser passar as macros que tenho para C e criar DLL's para o excel, e conforme for avançando se possivel fazer algo independente as macros que tenho basicamente usa o excel como arquivo não creio ter muita dificuldade de reescrever as minhas macros eu uso estrutura muito simples apenas com loops for next if e variaveis e arrays existe apenas 3 macros que trabalha diretamente em cima da planilha, o resto é tudo em cima dos arrays criados a maior dificuldade vai ser as dimensões dinamicas das arrays no vba para saber o tamanho é so usar Ubound(array, ) a tabela de controle tem esses dados, mas eu não defini nas macros que trabalham nas arrays para le dessa tabela e sim pegar com o Ubound estou pensando em definir as array com a primeira linha como cabeçalho
  18. em um dos link que passei tem a estrutura de uma ide de C++ eu vi até a parte de um onde é definido os colchetes mas eu somente peguei parte porque me ajuda a definir meu projeto de filtro por formula nem lembro onde foi ou se era mesmo de uma ide long n,m; n = s.Find(0,'{'); m = s.Find(n+1,'}'); if (n>-1 && m>-1 && m>n) { CString szMasterProjectGUID = s.Mid(n,m+1-n); // keep { and } s = s.ExcludeLeft(m+1); n = s.Find(0,'{'); m = s.Find(n+1,'}'); if (n>-1 && m>-1 && m>n) { CString szSubProjectGUID = s.Mid(n,m+1-n); // keep { and } você pode modificar ou pegar algum projeto abandonado que tenha o codigo fonte sobre as chaves de certa forma facilitaria por não precisar do shift mas não vejo em que o portugues facilitaria o entendimento os comando são poucos e de certa forma confundiria o ponto para mim realmente é a forma rigida que a linguagem exige o basic de certa forma é mais fácil porque te mostra a estrutura e já tem um pré tratamento das variaveis sem precisar ficar definido a cada momento o que vai ser o que em projetos pequenos e de testes é monotono ficar definindo tudo ainda mais para mim que faço tudo com um monte de variaveis, no vba eu apenas defino as variaveis depois de tudo pronto e testado algo mais que pode ajudar http://verto.sourceforge.net/
  19. a intenção é essa claro C não é simples e banco de dados muito menos, ainda mais para alguem como eu mas eu apenas defini uma meta mas ao mesmo tempo não estou querendo fazer nada no padrão "apenas no padrão que imagino" seria apenas para criar a array passa para arquivo e pegar de volta, de resto é usar as ferramentas que já tenho a estrutura de controle seria o que eu já tenho, mas que fica na planilha no caso seria passar essa tabela de controle da planilha para um arquivo que tem todas as configurações dos setores"tabelas" imagina alguem que aprende carpintaria enquanto constrói o barco dos sonhos no quintal de casa, pode até nunca sair para o mar, ou sequer ser capaz de boiar, mas somente a satisfação de ter construído algo com as próprias mão já vale a pena ao passo que o tanto de carpintaria que aprendeu no barco que provavelmente nunca irar navegar, já serve para coisas menores e mais simples como para fazer uma cadeira para a varanda
  20. Eu estou tentando me acostumar com a sintaxe do C, para falar a verdade eu gosto de codigos o mais comprimido possível para ter uma visão do total mas se está falando dos nomes das variaveis, já me falaram a respeito, mas eu só consigo fazer assim no vba eu uso gosub na macro de uso: OLin: If Op = 0 Then If t = 1 Then Loi = Loi + Lig If OZig_L = False Then If Loi = OLf Then If Oquadante_L = True Then OLf = OLf + OqL: OLi = OLi + OqL Loi = OLi + Lig End If Else If Loi = OLi Or Loi = OLf Then If Oquadante_L = True Then OLf = OLf + OqL: OLi = OLi + OqL: Loi = Loi + OqL Lig = -Lig: Loi = Loi + Lig End If End If End If If Op = 1 Then t = 0: Loi = Loi + Lig If OZig_L = False Then If Loi = OLf Then t = 1 If Oquadante_L = True Then GoSub OCoL: If t = 1 Then OLf = OLf + OqL: OLi = OLi + OqL: t = 0 Loi = OLi + Lig End If Else If Loi = OLi Or Loi = OLf Then t = 1 If Oquadante_L = True Then GoSub OCoL: If t = 1 Then OLf = OLf + OqL: OLi = OLi + OqL: t = 0: Loi = Loi + OqL Lig = -Lig: Loi = Loi + Lig End If End If End If ReturnOCoL: eu fiz uma parte usando uma macro em separado para ter uma ideia de como ficaria Sub OLin( _ ByRef Loi As Long, ByRef OLi As Long, ByRef OLf As Long, _ ByRef Lig As Long, ByVal OZig_L As Boolean, _ ByVal OqL As Long, ByVal Oquadante_L As bolean, _ ByRef T As Long, ByVal Op As Long, _ ByRef Coi As Long, ByRef Oci As Long, ByRef Ocf As Long, _ ByRef Zig As Long, ByVal OZig_C As Boolean, _ ByVal OqC As Long, ByVal Oquadante_C As bolean) If Op = 0 Then If T = 1 Then Loi = Loi + Lig If OZig_L = False Then If Loi = OLf Then If Oquadante_L = True Then OLf = OLf + OqL: OLi = OLi + OqL Loi = OLi + Lig End If Else If Loi = OLi Or Loi = OLf Then If Oquadante_L = True Then OLf = OLf + OqL: OLi = OLi + OqL: Loi = Loi + OqL End If Lig = -Lig: Loi = Loi + Lig End If End If End If If Op = 1 Then T = 0: Loi = Loi + Lig If OZig_L = False Then If Loi = OLf Then T = 1 If Oquadante_L = True Then Call OcoL(Loi, OLi, OLf, Lig, OZig_L, OqL, Oquadante_L, _ T, Op,Coi, Oci, Ocf, Zig, OZig_C, OqC, Oquadante_C) If T = 1 Then OLf = OLf + OqL: OLi = OLi + OqL: T = 0 End If End If Loi = OLi + Lig End If Else If Loi = OLi Or Loi = OLf Then T = 1 If Oquadante_L = True Then Call OcoL(Loi, OLi, OLf, Lig, OZig_L, OqL, Oquadante_L, _ T, Op, Coi, Oci, Ocf, Zig, OZig_C, OqC, Oquadante_C) If T = 1 Then OLf = OLf + OqL: OLi = OLi + OqL: Loi = Loi + OqL: T = 0 End If End If Lig = -Lig: Loi = Loi + Lig End If End If End IfEnd Sub como pode ver mesmo a macro chamada não usa todas as variaveis mas eu tenho que passar uma carga maior porque dependendo dos testes ela tem que chamar a outra macro que também vai trabalhar as variaveis por referencia a variavel T passa a informação se a macro passou em certo teste "chegou no limite dos parâmetros especificados" seria como procedimento-A cria variaveis X,Y, Z, faz ajuste pelas especificações passadas dependendo do ajustes chama função-X ou função-Y função-X ajusta valor de X e chama a função-Y que ajusta o valor de Y e informa se Y extrapolou o quadrante se Y extrapolou função-X faz um ajuste adicional retorna para procedimento-A de acordo com os valores de X e y o Z é ajustado isso vai até varrer toda a ARRAY mas basicamente eu não sei como passar e usar essas variáveis por referenciaria de uma função para outra em cascata tem que usar o asterisco "*" antes da variavel para atualizar o valor e não o endereço certo? no caso tenho que fazer isso *OLi = *OLi + *OqL ? cara to quase adicionando o gosub, a macro é muito simples para se ter essa dor de cabeça por causa de variaveis eu tenho variaveis globais, mas é de controle entre todas as macros uma pergunta adicional, é possivel usar uma variavel apenas concatenando as letras de seu nome? tipo ana1=4 ana2=6 a=1 b=2 var("ana" & a) + var("ana" & b ) algo muito usado para adicionar valores em objetos de useform com loops no vba Static frL(1 To 15) As Byte Static frC(1 To 15) As Byte Static frLs(1 To 15) As Byte Static frCd(1 To 15) As Byte Call Inicio ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''* For cs = 1 To 12 '-------------Controla a Frequencia If mL <> 0 Then freL = "freL" & cs If Me.Controls(freL).Value = "" Then frL(cs) = 0 If Me.Controls(freL).Value <> "" And frL(cs) = 0 Then frL(cs) = Me.Controls(freL).Value + 1 End If If mc <> 0 Then freC = "freC" & cs If Me.Controls(freC).Value = "" Then frC(cs) = 0 If Me.Controls(freC).Value <> "" And frC(cs) = 0 Then frC(cs) = Me.Controls(freC).Value + 1 End If Next como pode ver o nome do objeto que nesse caso é uma textbox é definido por freL = "freL" & cs e é utilizado por Me.Controls(freL).Value isso facilitaria bastante meus projetos Até
  21. talvez como base para começar https://sites.google.com/site/smallbasicinterpreters/ http://www.qb64.net/forum/index.php?topic=11134.0 http://www.dreamincode.net/forums/forum/48-c-tutorials/ acho algo bem difícil, mas como você falou que está preparado, eu por minha parte estou lutando para assimilar o C ou C++ já estou apanhando no desenvolvimento do interpretador de formulas para o filtro que fiz e olha que estou fazendo em vb caso você consiga faça uma ide do C++ que aceite a sintaxe do vb tipo tirar a necessidade do == para comparar " se está em um if que é uma base de comparação não deveria ser necessário trocar os { } pelos contexto das instruções e tirar a necessidade de ponto e virgula no final deixando apenas quando se deseja uma instrução do lado da outra tipo if (a==b ){ isso;} para if a=b then issoendif em algo curto assim é simples, mas em uma cascata de for e if é difícil se achar visualmente "posso sonhar né"
  22. Ao meu ritmo eu sigo com todos os meus projetos basicamente sobre o banco de dados eu já tenho uma estrutura montada em vba mas usando o excel como interface e como arquivo tudo que eu faço no excel é por meio de array e sem valores fixos é tudo dinamico portanto teoricamente convertendo as macros para C e em vez de usar o excel salvar e le as arrays em arquivos binarios, já teria algo basico de um BD simplório estou aprendendo a linguagem para ao mesmo tempo adaptar meus codigos, por enquanto estou me adaptando as diferenças de extruturas e funcionamento mas com base no que eu já tenho e o que quero fazer estrutura já pronta no excel Macros de controle macro que cria os setores "tabelas" macro que adiciona as colunas nos setores macro que localiza os setores e pega sua estrutura macro que reajusta Macros de trabalho com base na macro que localiza os setores fiz varias outras para manipulação filtragem por formula, ainda estou na estruturação da parte de formula, mas a macro que filtra já está pronta e aceita formulas simples ordenar de varias formas juntar setores por linhas ou colunas desmembrar setores ou embutir subsetor , se pode especificar colunas especificas como se fosse um setor a parte trocar de posição, supondo que cada aba é um BD se pode trocar ou copiar tabelas de um para outro ou dentro do mesmo realocar, uma macro que serve para realocar os valores, "pode servir para embaralhar os dados e depois colocar los nas posições corretas" elas faz esse tipo de trabalho: pode transformar isso: 12 01 Rua Gowdevasser Santos 6990840035 01 Rua Granada 6990618006 01 Travessa Granja 6991069019 01 Alameda Graúna 6991178036 01 Rua Graviola 6991030058 01 Rua Guajará 6991458042 01 Rua Gualter Craveiro 6990309023 01 Rua Guanabara 6990520033 01 Travessa Guanabara 6990407018 01 Travessa Guaporé 6990038006 01 Travessa Guarani 6990923055 01 Rua Guarani 6990134545 01 Rua Guilhermino Bastos 6990134012 01 Rua Guiomard Santos 6990937012 01 Conjunto Guiomard Santos I 6990956012 01 Conjunto Guiomard Santos II 6990957025 01 Rua H 6990626054 01 Rua H 6990059030 01 Rua H 6991136002 01 Rua Halley 6991061051 01 Travessa Havaí 6990368012 01 Rua Henrique Dias 6990841042 01 Rua Hermínio de Melo 6990313045 01 Travessa Hernandes Fernandes 6990136050 01 Rua Hidaldo de Lima 6990105045 01 Travessa Onófrio Alves 6990129045 01 Rua Onófrio Alves das Neves 6990131037 01 Travessa Horizonte 6991416044 01 Rua Hortências 6991147012 01 Rua Hugo Carneiro 6990825003 01 Rua I 6990353036 01 Rua I 6991043033 01 Travessa Iaco 6990465044 01 Rua Ibiscos 6991157024 01 Rua Icó 6990742013 01 Rua Ilson Ribeiro 69901570 nisso Rua Icó 69907420 33 0101 69901570 13 Travessa Iaco24 Rua Ilson Ribeiro 01 69904650Rua I 69910430 44 0101 69903530 03 Rua Ibiscos36 Rua I 01 69911570Rua Hortências 69911470 45 0101 69908250 12 Rua Onófrio Alves das Neves44 Rua Hugo Carneiro 01 69901310Travessa Onófrio Alves 69901290 37 0101 69901050 50 Travessa Horizonte45 Rua Hidaldo de Lima 01 69914160Rua Hermínio de Melo 69903130 51 0101 69901360 45 Travessa Havaí42 Travessa Hernandes Fernandes 01 69903680Rua Halley 69910610 12 0101 69911360 30 Rua Henrique Dias02 Rua H 01 69908410Rua H 69906260 12 0101 69900590 54 Conjunto Guiomard Santos I25 Rua H 01 69909560Rua Guiomard Santos 69909370 12 0101 69901340 45 Conjunto Guiomard Santos II12 Rua Guilhermino Bastos 01 69909570Travessa Guarani 69909230 33 0101 69901345 55 Travessa Guanabara06 Rua Guarani 01 69904070Rua Guanabara 69905200 18 0101 69903090 42 Travessa Guaporé23 Rua Gualter Craveiro 01 69900380Rua Graviola 69910300 06 0101 69914580 58 Travessa Granja36 Rua Guajará 01 69910690Rua Granada 69906180 19 0101 69908400 12 Alameda Graúna35 Rua Gowdevasser Santos 01 69911780 e depois colocar na posição real , essa realocação foi de forma simples, mas em uma planilha com muitos dados já dificultaria saber o que é o que tem mais coisas e tudo é feito em cima de arrays de forma dinâmica, bem mesmo ficando um BD de M* isso não impede de fazer algo pelo menos para aprender, no mínimo pode servir de DLL para o excel
  23. Então basicamente eu tenho 4 opções variaveis publicas embutir tudo em um unico array usar iF's e replicar as partes tacar gosub renomear as variaveis Loi *Loi2 vai me dar uma dor de cabeça e confundir minha logica variaveis publicas somente para essa parte do codigo seria sem noção a array vai dificultar saber o que que está sendo feito Oarray(0)=Oarray(1)+Oarray(4) replicar as partes vai multiplicar as linhas em 60X gosub não tem em C/C++, mas acho que tem como criar um método e agora? uma duvida em vb eu posso usar o mesmo nome de variavel em duas sub ou funções diferentes, mesmo se essas sub ou funções se auto chamam isso porque o vb cria instancias separadas ou talvez até renomeie essas variaveis para sabe a quem pertence tipo sub placar() bola=gol função gol() as bola=1 gol=bola talvez variavel bola é renomeada para algo como gol_bola, isso facilitaria ao interpretador saber a qual procedimento pertence a variavel no caso no C eu vou ter que ter nomes de variaveis diferentes para cada procedimento quando elas interagirem?
  24. nem sei direito como fazer a pergunta eu tenho uma macro (VBA EXCEL) que apesar de ser simples usa muitas variaveis para não ter que ficar mandando as variaveis por referencia eu preferi usar o gosub basicamente é um loop passando de uma função para outra for (w = 1; w <= k; w++) { if (Op == 0) { OcoL(Loi, OLi, OLf, Lig, Op, OZig_L, OqL, Oquadante_L, T, Coi, Oci, Ocf, Zig, Op, OZig_C, OqC, Oquadante_C); if (t == 1) { t = 0; OLin(Loi, OLi, OLf, Lig, Op, OZig_L, OqL, Oquadante_L, T, Coi, Oci, Ocf, Zig, Op, OZig_C, OqC, Oquadante_C); } } if (Op == 1) { OLin(Loi, OLi, OLf, Lig, Op, OZig_L, OqL, Oquadante_L, T, Coi, Oci, Ocf, Zig, Op, OZig_C, OqC, Oquadante_C); if (t == 1) { t = 0; OcoL(Loi, OLi, OLf, Lig, Op, OZig_L, OqL, Oquadante_L, T, Coi, Oci, Ocf, Zig, Op, OZig_C, OqC, Oquadante_C); } } ... }...} e nelas próprias tem chamada para as outras void OLin(long long &Loi, long long &OLi, long long &OLf, long long &Lig, long long &Op, bool OZig_L, long long OqL, bolean *Oquadante_L, long long &T, long long &Coi, long long &Oci, long long &Ocf, long long &Zig, long long Op, bool OZig_C, long long OqC, bolean *Oquadante_C){ if (Op == 0) { if (T == 1) { Loi = Loi + Lig; } if (OZig_L == false) { if (Loi == OLf) { if (Oquadante_L == true) { OLf = OLf + OqL; OLi = OLi + OqL; } Loi = OLi + Lig; } } else { if (Loi == OLi || Loi == OLf) { if (Oquadante_L == true) { OLf = OLf + OqL; OLi = OLi + OqL; Loi = Loi + OqL; } Lig = -Lig; Loi = Loi + Lig; } } } if (Op == 1) { T = 0; Loi = Loi + Lig; if (OZig_L == false) { if (Loi == OLf) { T = 1; if (Oquadante_L == true) { OcoL(Loi, OLi, OLf, Lig, Op, OZig_L, OqL, Oquadante_L, T, Coi, Oci, Ocf, Zig, Op, OZig_C, OqC, Oquadante_C); if (T == 1) { OLf = OLf + OqL; OLi = OLi + OqL; T = 0; ... } } Loi = OLi + Lig; } } else { if (Loi == OLi || Loi == OLf) { T = 1; if (Oquadante_L == true) { OcoL(Loi, OLi, OLf, Lig, Op, OZig_L, OqL, Oquadante_L, T, Coi, Oci, Ocf, Zig, Op, OZig_C, OqC, Oquadante_C); if (T == 1) { OLf = OLf + OqL; OLi = OLi + OqL; Loi = Loi + OqL; T = 0; } } Lig = -Lig; Loi = Loi + Lig; ... } } }} com vba e o gosub foi fácil organizar a logica (a minha pelo menos) mas isso está me dando um nó no cérebro para reescrever, ainda mais que tem as outras partes que usa mais variaveis e tem uma logica mais complicada pergunta, 1º se pode usar o mesmo nomes em um ponteiro de ponteiro? não sei se isso que eu fiz funcionaria ainda mais que tem as outras partes que tem 4 niveis de chamadas para ajustar os valores "função1 chama função2 que chama função3 que chama função4 ou função5" existe uma maneira diferente de passar essas variaveis ou ponteiros ? "ainda estou perdido nisso" ou melhor, existe maneira melhor de fazer esse fluxo de ida e volta entre as partes?
  25. concordo com o @ em uma sala de aula o professor faz é passar o que ele sabe da maneira que ele quer ou sabe passar e no mais é tirar as duvidas na internet se tem os tutoriais , livros, video aulas, que vai fazer o papel do professor que vai passar o que ele sabe da maneira que ele quer ou "sabe ensinar" as duvidas se tira no foruns ou em alguns casos com própria pessoa que escreveu ou filmou a aula a diferença está apenas na vontade na sala de aula se tem o ensino induzido, é igual a assistir a tv "paga ou aberta", você liga e já tem uma programação fixa, reportagens e tudo mais tudo definido por outras pessoas na internet nós escolhemos aquilo que melhor nos adaptamos, mas temos que sair buscando o que e como e a partir daí vontade de continuar ou não, seria como sair de escola em escola assistindo aulas antes de se matricular para ver quais tem os melhores professores e de quebra poder ir para outras tirar duvidas auto ditada para mim é a pessoa que pega um canivete e começa esculpir um pedaço de madeira sem nunca alguém ensinar, ou le as técnicas ou pega um violão e começa a tocar sem ter noções de notas musicais ou monta maquinas sem ter lido ou aprendido sobre mecânica o idioma "falado" também é algo natural de se aprender por instinto já o escrito tem que ser ensinado, a não ser que a pessoa crie o próprio vocabulário

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!