Ir para conteúdo
Fórum Script Brasil

Maligno

Membros
  • Total de itens

    214
  • Registro em

  • Última visita

Tudo que Maligno postou

  1. Achei uma boa idéia esse concurso cultural. Meus parabéns. Mas acho que você se esqueceu de mencionar qual a data limite para entrega das frases. :)
  2. Minhas desculpas ao colega. Vi isso há tanto tempo que me esqueci completamente. Mas pudera. Jamais usaria um recurso desses. A exemplo do GOTO, é uma tremenda gambiarra. Aliás, se alguém um dia pretender uma vaga no mercado de trabalho com C ou C++, não use nada do tipo num provável teste de aptidão. Se usar, com certeza será descartado.
  3. O que você quer é impossível em C ou C++. Seja qual for o problema que precise resolver, terá de usar a lógica. Aliás, em C e C++ é sempre desaconselhável usar o comando GOTO. Se você sabe usar a lógica, qualquer problema que seja pode ser resolvido sem usar esses tipos de artifícios.
  4. Na sua situação, eu iria até um sebo e compraria um bom livro sobre a linguagem C. Mais básico que isso, impossível. Escolha um do Herbert Schildt, se puder. Leia e pratique bastante.
  5. Esse assunto é muito controverso. Realmente não dá pra dizer que matriz é igual a vetor, nem que matriz é um termo que não existe. Tampouco dá pra dizer que vetor existe como estrutura de dados pois, na acepção da palavra, vetor é apenas um indicador. A própria norma ANSI ISO/IEC 9899, que regulamenta a linguagem C, usa o termo "vector" apenas como um ponteiro, e em pouquíssimas ocasiões. Nunca usam "vector" para indicar uma estrutura de dados. Muitos tradutores de bons livros de programação usam (por sua conta) tanto o termo vetor como o termo matriz. Mas no rigor do jargão, como eu disse, ambos estão errados. Alguns tradutores nem traduzem e mantém como "array" mesmo. Esse é o termo correto. Sem traduzir. Entretanto, como é de costume em algumas situações, as pessoas criam o hábito de usar traduções. A meu ver fica mais simpático. E o mais importante: dá pra entender perfeitamente. Particularmente eu prefiro o termo matriz, pois eu encaro vetor como ele é: um mero apontador. Claro que, na eventualidade de precisar procurar algo sobre o assunto, eu não uso "matrix", nem tampouco "vector". Uso "array". Senão eu não encontraria coisa alguma. :) Portanto, se quiser ser tão rigoroso no uso do jargão, adote o termo "array". Aí sim você estará certo, embora sua vida não mude um milímetro sequer. :) Em suma: essa discussão é inócua. PS: Quase esqueci de dizer: "vector" é também um tipo de dados da STL de C++.
  6. Errado. Uma string é uma matriz, de fato. Mas strcpy() só poderia ser utilizada em um caso de cópia de matriz. E só neste caso. Basta que a matriz a copiar seja uma pouco mais elaborada e a função já não poderia mais ser utilizada. Daí só restam duas alternativas: copia de elemento a elemento ou cópia de todo o bloco de memória da matriz.
  7. Funcionalmente, a operação de comparação está correta. O valor true é, normalmente, 1. A função strmcp() retorna mesmo um valor int. Mas parece certo que o OP confundiu as bolas (não leu o help) e acha que a função retorna um valor booleano. Inclusive, qualquer expressão que retorne um valor booleano não precisa do operador de teste ==. Isso é uma redundância desnecessária. Aliás, cadê a indentação? Fica ruim demais ler um código não indenteado. :(
  8. O colega também pode fazer uma cópia do bloco de memória da primeira pra segunda matriz. Aliás, respondendo à questão feita: matrizA = matrizB não pode ser feito para a cópia do conteúdo de uma matriz para outra. Até porque matrizA e matrizB contém apenas ponteiros para blocos de memória.
  9. Maligno

    Ajuda - Programa em C

    Mostre o código que você já fez. Se ainda não fez nada, tente fazer. Depois venha com a dúvida, se tiver.
  10. Maligno

    Cortar string em c++

    Opa! Desculpe. Só agora percebi que é em C++ e não C. Não tenho o método Erase na classe AnsiString da Borland, mas se você testou e resolveu, ótimo. Mas ao que parece, a extensão é suprimida. Se você precisar do nome completo depois, vai precisar alterar. Então, sugiro usar uma string temporária.
  11. Maligno

    Cortar string em c++

    arquivo[strlen(arquivo)-4] = 0; Isso resolve o problema de imediato, como apresentado. Mas não é uma solução definitiva. Se a extensão tivesse tamanho diferente de 3, não funcionaria.
  12. Maligno

    binarização

    O que é binarização?
  13. Estude a função strtok(). Por meio dela ficará bem fácil.
  14. Não testei. Apenas compilei e encontrei 3 erros. Todos por distração: 1) A variável "valorNota" não existe. Você a definiu como "ValorNota". Note o nome. 2) Na linha 42 você tem um <endl. O correto seria <<endl. 3) Na linha 133 você esqueceu um ponto-e-vírgula. Com relação ao erro 2, observe que é sempre melhor um simples "\n" que um "endl" para salto de linha, porque "endl" é sempre mais custoso, já que ele também faz um flush na stream. Neste programa, especificamente, não há porque se preocupar. É um programa pequeno. O custo desse código a mais é ínfimo. Mas no futuro, fique atenta a essa particularidade. Principalmente se for utilizar "endl" para povoar arquivo dentro de uma malha. Dependendo da quantidade de iterações, seu programa poderá ficar muito lento.
  15. Observe alguns detalhes importantes. Variáveis comuns são automaticamente descartadas quando morrer o escopo destas. Um exemplo, em termos bem miúdos: dentro de um bloco de código você cria uma variável (sem alocação de memória, note). Ao sair deste bloco a variável deixa de existir. É automático. Nem se preocupe com ela. No caso da variável conter um ponteiro para memória alocada, a liberação desta memória deve ser feita explicitamente. O usual é que no início da função você aloque a memória necessária e, antes do retorno da função, libere o espaço alocado. Quando, por algum motivo, você alocar memória no construtor da classe, é normal que o destrutor tenha código para liberar essa memória. Também pra isso serve o destrutor. Mas, via de regra, a finalidade do destrutor é executar procedimentos necessários à pré-morte do objeto. Se você não tem nada do tipo a executar, esqueça.
  16. Ao contrário de muitas pessoas que torcem o nariz para pedidos como o seu (meus aplausos pela sua honestidade), ainda mais num fórum cujo objetivo é discutir questões técnicas pontuais, eu entendo perfeitamente que cada um tem seus motivos. Você certamente tem os seus ao pedir um programa pronto. Por isso, não condeno pedidos desse tipo. Mas também não os atendo. Nada contra. É apenas uma opção pessoal. Em suma: eu passo. Mas espero que algum colega possa ajudá-lo. :)
  17. Esse é o problema FINAL. Eu entendi perfeitamente qual é o seu objetivo. Mas note que eu me referi aos menores problemas (as partes) que compõem o problema como um todo. Faça o que eu sugeri e você vai perceber que é mais fácil do que parece. Ou você quer o programa pronto?
  18. Quando se pretende resolver algum problema de programação, a primeira providência é dividir este problema em pequenas partes. Ou seja, montar o raciocínio. Nem se preocupe se você sabe ou não fazer determinada etapa. Como nada termina antes de ser começado, o primeiro passo que sugiro é esse: monte o programa parte por parte, dividindo bem as tarefas, mas usando linguagem humana, pois é pra facilitar e clarear as idéias. Depois do "programa" pronto, tente montar cada parte em C. Aí, quando as dúvidas surgirem, poste-as no fórum. Determinados problemas de programação nada mais são que analogias da vida real. O que o computador faz é o que você próprio faria manualmente, num pedaço de papel. Esse é bem o caso do seu problema. Portanto, essa primeira fase é bem fácil.
  19. Leia novamente o pedido do OP com um pouquinho mais de calma. Observe que ele reclama justamente do resultado ser apresentado como um inteiro. Logo, NÃO é isso o que ele quer. Ademais, pense bem: pra quê alguém iria querer ignorar o resto numa média aritmética? É até uma questão de lógica. :)
  20. Negativo. Ao trocar o tipo de "media" para int, o problema continuará sendo exatamente o mesmo que o OP reclamou: a média dos valores 1 e 2 continuará sendo 1. A acurácia do resultado depende de "media" armazenar em ponto flutuante. Portanto, para resolver, só com "media" sendo float. E, adicionalmente, o cast que indiquei ou então, trocar tudo para float de uma vez. Fora isso, não dá.
  21. Fica mais difícil ajudar sem ver o código que apresenta problema.
  22. Se, em qualquer situação, a entrada não tiver uma parte fracionária, mudar tudo para float é gambiarra. Nestes casos, um cast é mais indicado. Aliás, entrada de dados em C ou C++ é uma das coisas mais porcas que existem. Isso é coisa do tempo do onça. O ideal é usar o mínimo possível. E pelo que já vi até hoje, isso é usado apenas em programas muito simples, do tipo exercício de faculdade.
  23. Tem certeza de que isso realmente vai resolver o problema da forma como o OP expôs?
  24. A variável "media" até pode ser float, mas o resultado da divisão não é. Logo, o resultado da divisão ignora a parte fracionária. Mas você só precisa fazer um cast na divisão: media = (float)(numero1+numero2)/2;
×
×
  • Criar Novo...