Ir para conteúdo
Fórum Script Brasil

RSalvador

Membros
  • Total de itens

    74
  • Registro em

  • Última visita

Tudo que RSalvador postou

  1. RSalvador

    (Resolvido) Matrizes

    Olá Giza Li rapidamente o código e acho que o caso é o seguinte: A atribuição i<max/2, neste caso, é pra evitar que ele desfaça todas as operações que acabou de fazer. Note, ele vai invertendo os valores das posições até o meio do vetor. Se ele passar do meio, ele vai inverter de novo, voltando ao vetor original. Entendeu? Pra ficar mais claro, faça um teste de mesa. Faça uma tabelinha com as variáveis e imagine que você é o compilador, lendo o código linha por linha. Você verá claramente o que acontece. Abraços!
  2. Fc-hardware, O problema do seu código parece estar nos if's. O segundo if inicia com um um for de 0 a k. Mas k só recebe algum valor no primeiro if. Talvez, quando o compilador entra no segundo if, ele encontra apenas lixo na memória relativa à variável k e encerra o for por não encontrar um valor para o fim do laço. Tente declarar algum valor para k fora do laço. Se funcionar, basta adaptar seu código a esta situação. Abraço!
  3. É verdade, tem um while sobrando antes do do. Se continuar falhando, poste o erro que o compilador acusa, quem sabe ajuda. Abraço!
  4. Olá, Fc-hardware Experimente trocar a linha while(resp='s'); para while(resp=='s');, isto é, com dois sinais de igual. Isso porque o = significa atribuição. A variável resp está recebendo o valor 's', e não comparando-se com ele. Para fazer a comparação, utiliza-se ==. Espero que funcione. Abraços!
  5. RSalvador

    (Resolvido) Matrizes

    Bruno, não creio que exista uma logica muito diferente desta. Mas há algo que pode ser incrementado: Ao invés de se fazer um if dentro do laco, sugiro que, antes dele, atribua-se o primeiro valor 'a variavel menor. Isso porque o laco não precisara fazer varias vezes o comando if, que sabemos que sera executado apenas uma vez. O codigo ficaria assim: long matriz[4][4], menor; int i, j, pos_i, pos_j; menor = matriz [0][0]; for(i=0;i<4;i++) { for(j=0;j<4;j++) { if(matriz[i][j]<menor) { menor=matriz[i][j]; pos_i=i; //atualizando as posições pos_j=j; } } } Numa aplicacao pequena como esta, não notaremos a diferenca, mas em uma aplicacao maior, estes cuidados são interessantes. Outra observacao seria a respeito da primeira atribuicao da variavel menor: não precisa, necessariamente, ser o primeiro valor da matriz. Pode ser um valor que já se saiba de antemao que sera maior que todos os outros. Deste modo, o codigo faz uma comparacao a mais que do primeiro que apresentei. Se houverem varios lacos no codigo, perde-se algum tempo extra assim. Espero que não tenha ficado confuso. Desculpem pela falta de acentos, mas meu teclado não ajuda muito. Abracos! Edit: Acabo de notar que o forum coloca alguns acentos automaticamente. Menos mal!
  6. Caramba, Jhonas, MUITO obrigado! Eu ainda vou precisar ler o codigo e passar pra C++, e ainda descobrir não so como escrever em duas linhas, mas colocar dois titulos. Mas este artigo ajudou demais a conhecer o caminho. Obrigado de novo!
  7. Ola Abri um tópico com o mesmo conteudo que este no forum sobre C++. Sei da duplicidade de conteudo, mas estou aumentando a visualizacao do conteudo pois preciso de um retorno e acredito que a duvida seja tão pertinente para este forum quanto para o outro. Obrigado.
  8. Naataan, Se eu entendi corretamente o que voce deseja fazer, arrays são a unica solucao mesmo. Ou a que o Bruno apresentou, mas fica bem mais trabalhosa. Sendo assim, suas variaveis seriam Nome1[n], Notaa1[n], Notab1[n], Notac1[n] e Media1[n]. Sobre concatenacao, eu so me recordo da concatenacao de strings. Na biblioteca "string.h", existe a funcao strcat(str1, str2), na qual str1 e str2 são as variaveis com as strings a serem concatenadas. Se existe outra ocorrencia semelhante a essa, confesso que não me lembro. Um abraco!
  9. Ola Estou montando algumas aplicacoes no DBGrid (na verdade, no CRDBGrid, um pouco mais funcional) no C++ Builder, e me foi solicitado que fizesse colunas com um "supertitulo". Exemplo: Uma coluna chamada Codigo, a segunda chamada Nome, a terceira chamada Rua e a quarta, Numero. Mas, sobre estas duas ultimas, um "supertitulo" Endereco. Não sei se fui claro o suficiente, mas existe alguma maneira de fazer a aplicacao deste modo? não achei nada a respeito nem no forum, nem em outros, nem em artigos. Obrigado
  10. Voce tem duas tabelas. Ambas estao preenchidas, mas em um voce precisa inserir (ou alterar) valores que já estao na outra tabela. Entendi certo? Bom, se for isso mesmo, acho que pode resolver com INSERT INTO ou, no caso de alterar, com UPDATE. PAra o primeiro caso, a sintaxe seria INSERT INTO tabela1 (coluna1, coluna2, ..., colunaN) SELECT (col1, col2, ..., colN) FROM tabela2 com os filtros que achar conveniente. Se for alterar, use o comando UPDATE com a mesma sintaxe. Abracos!
  11. Bom, o Jonathan já te deu uma boa resposta, mas vou tentar ajudar mesmo assim. A primeira instrucao que voce colocou, item->linha=linha;, voce le como "o campo 'linha' da variavel item recebe o valor da variavel linha". Note que linha e linha são coisas diferentes: o primeiro define uma variavel, o segundo, um campo de uma outra variavel. A segunda instrucao, aux=aux->direita;, leia como "a variavel aux recebe o valor do campo 'direita' da variavel aux". Espero que já tenha reparado a diferenca das duas. Tentei explicar bem didatica e basicamente, sem entrar no merito do funcionamento dos ponteiros. Espero ter ajudado.
  12. RSalvador

    ajuda em matriz

    Oi David O compilar executa todo o looping interno antes de continuar o externo. Faca um teste de mesa e voce vai notar que, neste trecho que voce escreveu, os indices "j" serao todos preenchidos para i=1. Depois, incrementa-se i e preenche-se novamente os j's. Abraco!
  13. Ola Naataan Nomear variaveis como voce fez, indexando-as no proprio nome, gera mesmo esta confusao. A resposta do Bruno esta perfeita. Mas, pra ajudar, imagine que suas variaveis, ao invés de "Nome1, Nome2..." fossem "A,B,...", por exemplo. Voce poderia se confundir, mas para o compilador, não tem nenhuma diferenca. Ao declarar como array, ai sim voce pode usar esse artificio.
  14. Oi Andreia Alem da sugestao do Denis, veja se valor e pgto_vcto estao declarados como FLOAT, ou outra declaracao que aceite valores decimais. A mensagem check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 1 diz que há um erro de sintaxe, mas me parece que o comando esta correto.
  15. Tenta o seguinte: ALTER TABLE pacote CHANGE tempo_de_viagem tempo_de_viagem VARCHAR(15); Se quiser usar o MODIFY, use assim: ALTER TABLE pacote MODIFY tempo_de_viagem VARCHAR(15);
  16. Denis, agora esta tudo ok. Encontrei paginas na internet ensinando o uso do # para tabelas temporarias, mas não surtiu efeito, inclusive gerando os erros que apresentei. O modo que voce colocou no utlimo post resolveu perfeitamente o problema. Tanto que, ao implementar este comando, obtive o mesmo resultado do primeiro comando que voce mesmo passou, no qual não utilizou as tabelas temporarias. Problema resolvido. Este, e alguns futuros, com certeza. Obrigado. Rodrigo Salvador
  17. Denis, muito obrigado pela resposta. O primeiro problema foi resolvido. Como eu havia mencionado, sabia que poderia existir outra solucao, mas queria respostas para os problemas que encontrei. No segundo problema, entendi perfeitamente seu ponto, mas não resolveu o problema das tabelas temporarias. Vou exemplificar: O comando que criei foi CREATE TABLE #Temp SELECT * FROM clientes LEFT JOIN notafisc ON clientes.id = notafisc.id; E o SQL acusou erro de sintaxe, retornando o comando da seguinte forma: CREATE TABLE SELECT * FROM clientes LEFT JOIN notafisc ON clientes.id= notafisc.id; Note como o #Temp não aparece no comando retornado. Imagino que seja um erro primario, pois nunca precisei implementar tabelas temporarias, tento pela primeira vez. O terceiro problema tambem foi resolvido. Vale para não cometer mais distracoes como essa. Mais uma vez, obrigado Rodrigo Salvador
  18. Ola Estou tentando resolver um problema simples, mas essencial para o proseguimento dos meus trabalhos. Trabalho, neste caso, com duas tabelas: `clientes` e `notafisc`. Preciso encontrar os clientes registrados para os quais não há nenhuma nota fiscal relacionada. Podem haver meio mais faceis, mas encontrei dois problemas que me intrigaram: - Quando tentei resolver a questao utilizando tabelas temporarias, o SQL simplesmente não reconheceu o comando. não guardei o retorno exato, mas meu comando foi CREATE TABLE #Temp (codigo INT(3) NOT NULL, nota VARCHAR(8) NULL) INSERT INTO #Temp (codigo, nota) (... E, ao retornar, foi acusado um erro de sintaxe na linha CREATE TABLE INSERT INTO ..., passando por cima da minha declaracao; - Com este reves, resolvi criar uma tabela e depois joga-la fora manualmente. Consegui criar tranquilamente. Como esperado, o cliente 19, entre outros, tinha o campo nota como NULL. Ao executar o comando SELECT * FROM Temp WHERE nota=NULL; o SQL não retorna nenhum resultado. Poderiam me explicar o que acontece ai? Se cometi algum equivoco, se o SQL não executa o que eu quero, ...? Obrigado
  19. Vários problemas com alocação dinâmica, eu resolvi utilizado malloc(sizeof(variável)). Não seria o caso?
  20. RSalvador

    LNK2001

    Estou utilizando o Visual Studio 2008. Obrigado pela resposta, mas não creio que seja esse o problema. O código não compila porque a main() chama uma função declarada como protected, e eu não lembro se algum meio de "corrigir" isso, exceto se declarar a função como public, mas aí vêm os tais problemas de linkagem. Encontrei uma sugestão para implementar a função no header. Fiz isso e, além de continuar com os mesmos problemas, o código fica menos organizado. Ainda aguardo uma luz.
  21. RSalvador

    LNK2001

    Mais uma mudança, mas sem sucesso: Declarando o protótipo da função como "protected" ou "private", os erros de linkagem somem, mas o código não compila corretamente, pois a variável do main não consegue acessá-la. Alguém sabe uma "solução" pra isso? EDIT: [só agora notei essa opção, desculpem] O programa executa normalmente se o código que menciono for colocado em main. Certamente são problemas de chamada de função. Agora, parece ser mais específico...
  22. RSalvador

    LNK2001

    Continuo mexendo no código, sem uma solução. Defini o protótipo da função "criaFundo()" como inline, comentei dois protótipos (que, na verdade, ainda não sei ao certo como declarar: um é uma função dentro de uma struct e outro é uma função dentro de outra classe). Agora, o compilador voltou ao erro anterior, LNK2019: 1>------ Build started: Project: VRTS_template, Configuration: Debug Win32 ------ 1>Compiling... 1>vrts_main.cpp 1>Linking... 1>vrts_main.obj : error LNK2019: unresolved external symbol "public: class osg::Node * __thiscall Visualizador::criaFundo(void)" (?criaFundo@Visualizador@@QAEPAVNode@osg@@XZ) referenced in function _main 1>C:\VRTS_PROJECT\VRTS_Debug\VRTS_template.exe : fatal error LNK1120: 1 unresolved externals 1>Build log was saved at "file://C:\VRTS_PROJECT\VRTS_Debug_Prov\BuildLog.htm" 1>VRTS_template - 2 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== Ninguém nunca enfrentou nada parecido??
  23. Não uso nenhum dos compiladores que você citou (uso Netbeans para Java e Visual Studio para C++), mas passei por coisa parecida. A solução foi simples: Eu não havia pedido pra ser criado um novo projeto em C, por isso o compilador não reconheceu. É só tomar cuidado na hora da criação Se isso não resolve, deve ser algo mais específico dos compiladores...
  24. RSalvador

    LNK2001

    Olá. Estou tentando resolver este problema desde ontem. Meu código apresentava o erro LNK2019, que já consegui resolver, mas este, LNK2001, ainda persiste. Não me parecem ser problemas de bibliotecas, já que o programa roda normalmente se eu colocar o mesmo código na função main(). Alguma idéia sobre qual a referência incorreta que estou fazendo? Obrigado desde já. 1>Generating Code... 1>Compiling... 1>textInTheScreen.cpp 1>Linking... 1>Visualizador.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall Visualizador::operator()(class osg::Node *,class osg::NodeVisitor *)" (??RVisualizador@@UAEXPAVNode@osg@@PAVNodeVisitor@2@@Z) 1>Visualizador.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall Visualizador::computeLocalToWorldMatrix(class osg::Matrixd &,class osg::NodeVisitor *)const " (?computeLocalToWorldMatrix@Visualizador@@UBE_NAAVMatrixd@osg@@PAVNodeVisitor@3@@Z) 1>C:\VRTS_PROJECT\VRTS_Debug\VRTS_template.exe : fatal error LNK1120: 2 unresolved externals 1>Build log was saved at "file://C:\VRTS_PROJECT\VRTS_Debug_Prov\BuildLog.htm" 1>VRTS_template - 3 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
×
×
  • Criar Novo...