Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.

DanielKO

Membros Plenos
  • Total de itens

    570
  • Registro em

  • Última visita

  • Qualificações

    0%

Reputação

0

Informações gerais

  • Cidade e Estado
    Santa Cruz do Sul - RS

Outros

  • Interesses
    Programação, Webdesign, Multimidia, Game developing;<br>Rock, Heavy Metal, J-Metal, J-Pop, Animes.
  1. Mero detalhe, mas assembler é o montador (como você mesmo disse). Assembly é a linguagem.
  2. <font color='#000080'>Dê uma olhada no que o próprio criador do C++ tem a dizer sobre isso.</font>
  3. <font color='#000080'> Bobagem. A descompilação nunca gera algo tão "usável" quanto o original. Se você ficar escolhendo a ferramenta preocupado se algum lammer não vai tentar descompilar seu programa, é melhor desistir de ser programador. E eu duvido que alguém que saiba usar um descompilador não saiba encontrá-lo no Google. Falta o quê? Se oferecer para dar um tutorial de descompilação? Voltando ao post original, considerando algumas afirmações (não tão específicas ao clipper): Bingo. Você quer um sistema consistente com todo o resto da interface do usário? Lembre que é um usuário quem vai usar o sistema. Qualquer computador que possua acesso físico corre o risco de ser danificado. Se o usuário tiver capacidade de ir mexendo no que não deve, espera-se que ele tenha capacidade de ter o mínimo de cautela e não detonar com a máquina, e acabar levando um sabão (e até um pé na #####) do chefe. Não é algo que o desenvolvedor do sistema deveria se preocupar. Isso não é uma vantagem. Tá parecendo mais uma falarcia. Qualquer um que já desenvolveu sistemas sabe o pé-naquele-lugar que é ter que ficar fazendo uma tela de cadastro/consulta/relatório... fazer outra... e outra... se dar conta de que é quase tudo igual... e que faltam mais umas 20 telas do mesmo tipo... e depois tem mais 20 de outro tipo. A última coisa que você quer nesse caso é ter que repetir cada detalhe de novo. Um sistema é primariamente uma casca pro usuário enxergar o banco de dados, não um show multimídia. Quem acha "divertido" desenvolver sistemas, é porque nunca meteu de fato a mão na massa a sério.</font>
  4. <font color='#000080'> Não vejo como isso vai deixar mais portável. Isso não é semelhante ao HTML; em HTML a seqüência serve para ser traduzida adequadamente pelo cliente, para mostrar o caracter correto; as seqüências de escape \<dígitos octais> e \x<dígitos hexadecimais> servem primariamente para se colocar caracteres "não-digitarveis"., mas tem o mesmo efeito que se você tivesse digitado tal e qual diretamente (se isso não causasse problemas na compilação). A seqüência \x41 vai imprimir o caracter de código 65 ("A" na grande maioria dos casos), e \x82 vai imprimir o caracter 130 (que equivale ao "é" se o sistema estiver com codepage ISO 8859-1; senão pode ser um caracter qualquer). Dentro da string, existem duas seqüências de escape que aceitam números: \<octal digits> character value in octal \x<hex digits> character value in hexadecimal Tratando-se de uma constante númerica, 82 é decimal, 0x82 é hexa e 082 é octal. AzaZell@06 Julho 2003,15:08 2) zeros a esquerda não influem no resultado.... 1 é a mesma coisa que 0000000001 ex: int a=000000001; Teste o código: #include <iostream> using namespace std; int main() { int a = 021, b = 21; if (a== cout << "DKO deu mancada:"; else cout << "AraZell deu mancada:"; cout << " a=" << a << ", b=" << b << endl; return 0; } Para representar um único caracter de 8 bits você não vai precisar mais que dois dígitos hexadecimais. Mas realmente não percebi o porquê do erro indicado pelo compilador. Um mero "cout << "a\x82iou";" deveria funcionar....</font>
  5. <font color='#000080'>O fato de usar um DOS estender de 32-bit para acessar a memória com endereços de 32 bits não implica que o programa seja de fato 32-bit.</font>
  6. <font color='#000080'>Correção: aplicativos DOS são de 16-bit, não 32. =:-)=</font>
  7. Java

    <font color='#000080'>Seria bom não usar deliberada e maliciosamente o termo "livre" quando falando de software. Por mais flexível que seja, a implementação da Sun é proprietária. Free as in beer, not as in freedom.</font>
  8. Java

    <font color='#000080'>Desde quando a implementação da Sun é livre?</font>
  9. Bibliotecas do c++

    <font color='#000080'>Tem uma referência em http://www.cppreference.com . Não é muito completa; é bom para consultar, mas não para aprender (nesse caso é melhor um livro mesmo).</font>
  10. <font color='#000080'>Ok, a prova (do próprio Stroustrup; ver capítulos 12 (Classes Derivadas) e 15 (Hierarquia de Classes) do "A Linguagem de Programação C++", 3ª edição): Classes abstratas: class Forma { public: virtual void rotacao(int) = 0; // função virtual pura virtual void desenhar() = 0; // função virtual pura virtual bool fechada() = 0; // função virtual pura // ... }; class Circulo: public Forma { public: void rotacao(int) { /* ... */ } // sobrepõe Forma::rotacao void desenhar(); // sobrepõe Forma::desenhar virtual bool fechada(); // sobrepõe Forma::fechada }; Herança múltipla: class Task { virtual void pending() = 0; virtual depura_info* obter_depura(); // ... }; class Exibe { virtual void desenha() = 0; // ... }; class Satelite: public Task, public Exibe { // ... void pending(); // sobrepõe Task::pendig() void desenha(); // sobrepõe Exibe::desenha() } Resolução de ambigüidade: void f (Satelite* sp) { depura_info* dip = sp->obter_depura(); // erro: ambíguo dip = sp->Task::obter_depura(); // OK dip = sp->Exibe::obter_depura(); // OK } (...) a eliminação explícita da ambigüidade é confusa, de modo que usualmente é melhor resolver esses problemas definindo uma nova função na classe derivada (...). Herança e declarações using class A { public: int f(int); char f(char); // ... }; class B { public: double f(double); // ... }; class AB: public A, public B { using A::f; using B::f; char f(char); // esconde A::f(char); AB f(AB); }; E, finalmente à sua questão: Classes bases replicadas struct Elo { Elo* prox; }; class Task: public Elo { // Elo é usada para manter uma lista de todas as Tasks }; class Exibe: public Elo { // Elo é usada para manter uma lista dos objetos exibidos }; class Satelite: public Task, public Exibe { // ... }; void confusao_com_elos(Satelite* p) { p->prox = 0; // erro: ambíguo p->Elo::prox = 0; // erro: ambíguo p->Task::Elo::prox = 0; // OK p->Exibe::Elo::prox = 0; // OK } Ainda tem a questão das classes base virtuais, mas isso já vai estender demais. Se realmente estiver interessado em saber, eu sugiro uma boa lida no livro do Stroustrup (pricipalmente o Special Edition, ele tem inúmeras páginas a mais tratando de técnicas e design de programação).</font>
  11. <font color='#000080'> Então não é útil comentar "portabilidade" sem especificar. Foi o que eu ressaltei abaixo. Desnecessário comentar "portável". Seria interessante comentar a recente revisão do padrão em 99, comparando com o de 89. Para aparender C, o ideal é seguir o C89, pois o C90 é o que muitos veteranos chamam de "C impuro". A sintaxe não é tão complexa assim não. Fora o detalhe dos ponteiros de funções e vetores vs. ponteiros, ela é bem intuitiva. Bibliotecas incompatíveis existem em qualquer lugar, e elas obviamente não fazem parte da biblioteca padrão. É mais fácil conseguir uma biblioteca multi-plataforma em C do que em qualquer outra linguagem. Incompleta? Poderia citar um caso em que ela é incompleta? Apesar de ter sido criada há muito tempo, ela foi sendo drasticamente atualizada e modificada, principalmente entre 93 e 98, quando foi oficialmente padronizada. Ela é muitíssimo diferente da "C com Classes" proposta inicialmente por Stroustrup. Novamente o comentário de portabilidade é desnecessário. É rigidamente padronizada, mas infelizmente não são muitos compiladores que estão em total conformidade com o padrão. No detalhe de performance, graças aos templates ela consegue ser sensivelmente mais rápida que C. Até hoje a única reclamação que eu vi a respeito do design/sintaxe foi quanto aos templates; e sempre vieram de programadores C. E nunca souberam especificar o porquê, nem sugerir algo melhor (apenas dizendo que as macros do C são mais claras... mas macros são muito limitadas). Quanto à orientação a objetos ser falha, peço novamente algum exemplo. Quanto ao gerenciamento de memória, há bibliotecas (não padrão, mas completamente portáveis) que implementam gerenciamento de coleta de lixo - apesar de eu não entender como essa história de deixar a máquina lidar com a memória perdida possa ser entendido como uma vantagem. De fato, se seu objeto limpa a memória usada no destrutor, não há motivo algum para uma coleta de lixo. "Melhor" é mera questão de gosto, é bom deixar isso mais explícito na conclusão. Uma boa ideia é incluir o link da página do próprio criador, para saber o que ele tem a dizer: http://www.research.att.com/~bs/ Usando a ambigüidade da palavra portabilidade. É melhor deixar claro que a portabilidade existe em qualquer linguagem com padronização da especificação aberta. O "algo-a-mais" é que Java não precisa ser recompilado para rodar em outra plataforma - mas a questão de se "vai funcionar" já é outra história, isso depende muito do quão inteligente foi o programador, a portabilidade não vem automagicamente. A menos que você esteja usando uma estação da Sun, eu não incluiria "boa performance" como vantagem, sob pena de ser acusado de propaganda enganosa. Então eu diria que é tão indicada como primeira linguagem quanto C++ - é muito fácil aprender, tendo orientação adequada. Como diz o ditado, um programa Perl deveria ser tão difícil de entender quanto foi de escrever. Na verdade até que promete mais avanços, à custa de mudanças significativas na sintaxe - coisa que o Larry Wall não vai lamentar em fazer, se achar necessário (lembro da palestra no FISL 2002, em que ele justificou uma das mudanças no Perl com um simples "because I want it". LOL). Nada extraordinário. Em C eu posso escrever um código que precisaria de muito mais linhas se fosse em Pascal. Em C++ eu posso fazer um código que precisaria de bazilhões de linhas a mais, se escrito em C. É justamente o que o detalhe "alto nível" e "baixo nível" deixa explícito, e a menos que queira copiar e colar esta comparação em todas as linguagens de alto nível citadas, não é necessário o comentário (é apenas repetição do que já foi afirmado). C também tem uma biblioteca padrão ampla e funcional, dentro das limitações previstas na linguagem; quanto à sintaxe clara e elegante, mesmo Perl pode ser claro e elegante a alguém com experiência. Portabilidade é de novo redundante. Então copie e cole isso em todos os itens, vale prá (quase) qualquer linguagem. Então compile o código. Talvez qualquer algoritmo que lide com entrada e saída, laços e reaproveitamento de código. Eu demonstraria o clássico #include<string> #include<vector> #include<iostream> #include<algorithm> using namespace std; int main() { vector<string> v; string s; while ( cin >> s ) v.push_back( s ); // lê palavras de uma entrada sort( v.begin(), v.end() ); // ordena as palavras unique_copy( v.begin(),v.end(), ostream_iterator<string>( cout , "\n" ) ); // imprime palavras sem repetição }</font>
  12. [Resolvido] C++

    <font color='#000080'>O Dev-C++ usa o MinGW, port do GCC para Windows; é, provavelmente, a coisa mais fácil de usar para compilar um programa (desconsiderando o Delphi e o VB). O Borland C Compiler ainda é um pouco mais rápido prá compilar, mas assim que terminarem de portar o GCC 3.3, isso não será mais problema; já o você++ 6.0, é piada recomendar ele prá programar em C++ - quase tanto quanto recomendar o Turbo C++. >>> http://www.bloodshed.net/dev <<<</font>
  13. <font color='#000080'> Tente clicar na ***** dos links postados, e fazer uma ***** de uma busca no Google, que você descobre de que ***** estamos falando.</font>
  14. Ajuda com bd

    <font color='#000080'>Existem inúmeros sistemas de news pronto na internet. Mais que isso não dá prá ajudar, já que você não sabe nada... só se você pagar alguém aqui para fazer um prá você.</font>
  15. <font color='#000080'>Tem a discretíssima Whitespace, e a minha preferida (para certos programas, é claro), a f*ckf*ck.</font>

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×