Ir ao conteúdo
  • Cadastre-se

ROR

Membro Júnior
  • Posts

    18
  • Cadastrado em

  • Última visita

Tudo que ROR postou

  1. Estou tentando instalar o Presto em um servidor linux Ubuntu instalado em uma VM VirtualBox em um laptop. Quando executo o comando python3 launcher.py run é apresentado a seguinte mensagem de erro: ERROR: [Errno 13] Permission denied: '/var/presto'. Alguém sabe como realizar a instalação corretamente?
  2. @arfneto Complicado!! hahaha. Vocês têm alguma recomendação de livro mais técnico que trata essas abordagens e "boas práticas"? Eu to usando o livro do Deitel de 2006 para ter uma base, uma "noção" sobre classes, objetos, relacionamento, encapsulamento, polimorfismo, etc, mas to vendo que terei de usar livros mais novos pra usar os recursos mais atualizados. E eu queria ver um livro com uns exemplos maiores, mais complexos. Os livros do Deitel tem exemplos mais "simples", entre 80 a 150 linhas... Queria uns exemplos de programas completos, mais robustos, que usasse várias dessas técnicas e conceitos em um único programa. Qual compilador vcs costumam usar? E entre C++, Java, Python e C#, qual vcs acham mais robusto e que mais está sendo utilizado nas aplicações atuais?
  3. Tradicionalmente o C++ não trabalha com recursos como malloc, realloc, calloc, etc, correto? São recursos de C, no mínimo, evitados em C++, não é isso?
  4. @arfneto @V!OLADOR Eu fiz como vocês citaram e funcionou normalmente. Depois vou tentar fazer com o <vector>. Vocês podem falar quais os prós e contras dessas duas abordagens?
  5. eu fiz um exemplo mais simples usando o operador new. seria algo nesse estilo? eu testei inserindo 5 usuários e funcionou em um compilador online mas quando eu tento inserir 10 elementos ele roda mas apresenta uma msg de erro no final. @V!OLADOR @arfneto //main #include <iostream> using std::cout; using std::cin; #include "memoria.h" int main () { int numero; int i; cout << "informe a quantidade de usuarios: "; cin >> numero; for (i = 0; i < numero; i++) { memoria* m = new memoria[i]; m[i].setValor(); m[i].imprime(); delete[] m; } return 0; } //memoria.h class memoria { public: void setValor(); void imprime(); private: int valor; }; //memoria.cpp #include <iostream> using std::cout; #include "memoria.h" void memoria::setValor() { valor = 20; } void memoria::imprime() { cout << valor << "\n"; }
  6. @V!OLADOR eu faço isso na main mesmo (no momento de criar o objeto)? Eu posso fazer um for que seja do tamanho da quantidade de trabalhadores que o usuário vai criar, algo como: int numero; cout << "informe a quantidade de trabalhadores: "; cin >> numero; for (i = 0; i < numero; i++) mas qual a sintaxe eu uso pra passar numero para o vetor (vamos supor que o usuário queira criar 10 objetos trabalhador. como o compilador diferencia cada um 10 objetos, como é feita a indexação)? e qual a sintaxe eu uso para que um objeto específico do vetor chame um método (como eu faço a indexação para que um objeto específico chame um método)? tem como dar um exemplo prática de como ficaria em um código?
  7. O atributo infoDado. Como assim? Eu uso o construtor para chamar setInfoDado e através dele iniciar o atributo (mesmo que depois eu vá reatribuir outro valor). Eu ainda não cheguei a estudar herança e polimorfismo, por isso eu quero usar apenas composição que é a parte que eu já cheguei pra fazer o que eu preciso fazer (mesmo que seja mais complicado, demorado e ineficiente...) À medida que eu for estudando os próximos conteúdos eu vou aprimorando o código. No livro do Deitel que eu estou usando como referência ele apresenta um exemplo dessa forma. Mas isso na parte da composição, que é o que eu estou lendo até agora... pode ser que nos outros temas ele apresente exemplos de outras formas. Mas eu gostaria de fazer assim primeiro para ganhar mais "experiência" no que eu já estudei para depois passar para os próximos conteúdos. O problema é que eu não entendi as duas primeiras linhas depois do public porque eu ainda não estudei a parte do polimorfismo... por isso eu gostaria de fazer sem usar polimorfismo e herança (por mais ineficiente que o código seja) apenas para aprofundar mais no conhecimento que eu já aprendi e saber o que é possível fazer com o que eu já sei (mesmo de forma ineficiente) e o que não é possível fazer com o que eu já sei como assim?
  8. Isso. Eu tenho "vários" objetos diferentes da mesma classe que representam atributos diferentes apesar de usar a mesma variável pra isso. Eu poderia fazer isso também mas preferi optar por usar objetos diferentes da mesma classe. No caso da classe info por exemplo, eu poderia ter um atributo nome e um atributo cpf mas acabei optando por objetos diferentes para representar atributos com cada objeto com um único atributo (isso é só um escopo, um esqueleto... depois eu posso alterar e aumentar as classes) Um construtor padrão apenas para instanciar o atributo. Se eu colocar essa instrução eu precisarei alterar a descrição dos métodos (incluir métodos, inserir chamadas na main já que eu precisaria ter uma para o cpf também). Construtor para instanciar o atributo do objeto e garantir que ele esteja em um estado consistente. Eu quero trabalhar o conceito da composição.
  9. As classes e cabeçalhos são os mesmos mas estou mandando o código todo aqui. //main #include <iostream> using std::cerr; using std::cin; using std::cout; using std::endl; using std::ios; #include <fstream> using std::ofstream; #include <cstdlib> using std::exit; #include "trabalhador.h" int main() { ofstream saidaArquivoCadastro( "cadastro.dat", ios::out ); if ( !saidaArquivoCadastro ) // operador ! sobrecarregado { cerr << "Arquivo nao pode ser aberto" << endl; exit( 1 ); } cout << "Informe a quantidade de funcionarios a serem cadastrados: "; int quantidade; cin >> quantidade; cout << quantidade; cout << "\nInforme os dados: \n"; cout << "Nome do funcionario: "; info i1; cout << "\nCPF: "; info i2; cout << "\nNome da mae: "; familia f1; cout << "\nNome do pai: "; familia f2; trabalhador t(i1, i2, f1, f2); return 0; } //trabalhador.h #ifndef TRABALHADOR_H #define TRABALHADOR_H #include "info.h" #include "familia.h" class trabalhador { public: trabalhador (const info &, const info &, const familia &, const familia &); void print () const; private: const info funcionarioNome; const info funcionarioCPF; const familia mae; const familia pai; }; #endif //trabalhador.cpp #include <iostream> using std::cout; #include "trabalhador.h" #include "info.h" trabalhador::trabalhador (const info &infoNome, const info &infoCPF, const familia &famiMae, const familia &famiPai) :funcionarioNome (infoNome), funcionarioCPF (infoCPF), mae (famiMae), pai (famiPai) { cout << "\nDados do funcionario: \n"; print(); } void trabalhador::print() const { funcionarioNome.print(); funcionarioCPF.print(); mae.print(); pai.print(); } //info.h #include <string> using std::string; #ifndef INFO_H #define INFO_H class info { public: info (string = ""); void setInfoDado (string); void setInfo (); void print () const; private: string infoDado; }; #endif //info.cpp #include <iostream> using std::cout; using std::cin; #include <string> using std::string; using std::getline; #include "info.h" info::info (string info) { setInfoDado (info); } void info::setInfoDado (string info) { infoDado = info; setInfo(); } void info::setInfo () { string nome; getline (cin, nome); infoDado = nome; } void info::print () const { cout << infoDado << "\n"; } //familia.h #include <string> using std::string; #ifndef FAMILIA_H #define FAMILIA_H class familia { public: familia (string = ""); void setFamiDado (string); void setFami (); void print () const; private: string famiDado; }; #endif //familia.cpp #include <iostream> using std::cout; using std::cin; #include <string> using std::string; using std::getline; #include "familia.h" familia::familia (string info) { setFamiDado (info); } void familia::setFamiDado (string info) { famiDado = info; setFami(); } void familia::setFami () { string nome; getline (cin, nome); famiDado = nome; } void familia::print () const { cout << famiDado << "\n"; }
  10. @arfneto posso postar esse código todo do qual estamos conversando? A única parte que está faltando nele é a main completa.
  11. Percebi que esse problema acontece apenas quando eu coloco a instrução cin >> quantidade;. Quando eu não coloco essa instrução o cursor para em cout << "Nome do funcionario: "; para que eu possa digitar o nome do usuário (uma vez que ao instanciar o objeto i1 o método da classe info faz com que o programa espere o usuário digitar o nome). Quando eu coloco a instrução cin >> quantidade; algo faz com que esse método ou a instrução de atribuição no escopo desse método não seja executada. O interessante é que quando o objeto i2 é instanciado o código funciona normalmente (com ou sem a instrução cin >> quantidade; antes do objeto i1). Eu usei o construtor tanto para instanciar os atributos dos objetos como também para ler o que o usuário digitar.
  12. com um endl no final das instruções?
  13. Eu tenho um código na main que funciona normalmente. Esse código diz que o usuário deverá informar os dados e pede que o usuário digite o nome do funcionário e a instrução seguinte inicia o objeto i1. O objeto i1 chama seu construtor e o restante do código segue até o programa (na main) solicitar que o usuário digite o CPF do funcionário e a instrução seguinte inicia o objeto i1. O que eu não entendo é o que acontece quando eu altero o código da main. Quando eu insiro 4 linhas antes da linha que diz que o usuário deverá informar os dados, solicitando que o usuário informe quantos funcionários serão cadastrados, declaro uma variável quantidade, leio a variável quantidade informada pelo usuário e imprimo o valor da variável quantidade, o programa chega a imprimir que o usuário deverá informar os dados e pede que o usuário digite o nome do funcionário mas então o cursor já vai para a linha onde o usuário deve informar o CPF não permitindo que ele digite o nome do funcionário. Por que isso acontece? //código da main que não está funcionando corretamente int main() { ofstream saidaArquivoCadastro( "cadastro.dat", ios::out ); if ( !saidaArquivoCadastro ) // operador ! sobrecarregado { cerr << "Arquivo nao pode ser aberto" << endl; exit( 1 ); } cout << "Informe a quantidade de funcionarios a serem cadastrados: "; int quantidade; cin >> quantidade; cout << quantidade; cout << "\nInforme os dados: \n\n"; cout << "Nome do funcionario: "; info i1; cout << "\nCPF: "; info i2; //código da main que está funcionando corretamente int main() { ofstream saidaArquivoCadastro( "cadastro.dat", ios::out ); if ( !saidaArquivoCadastro ) // operador ! sobrecarregado { cerr << "Arquivo nao pode ser aberto" << endl; exit( 1 ); } cout << "\nInforme os dados: \n\n"; cout << "Nome do funcionario: "; info i1; cout << "\nCPF: "; info i2; //descrição da classe info #include <string> using std::string; #ifndef INFO_H #define INFO_H class info { public: info (string = ""); void setInfoDado (string); void setInfo (); void print () const; private: string infoDado; }; #endif //descrição dos métodos info #include <iostream> using std::cout; using std::cin; #include <string> using std::string; using std::getline; #include "info.h" info::info (string info) { setInfoDado (info); } void info::setInfoDado (string info) { infoDado = info; setInfo(); } void info::setInfo () { string nome; getline (cin, nome); infoDado = nome; } void info::print () const { cout << infoDado << "\n"; }
  14. Eu tenho um código com encapsulamento e composição com 3 classes em C++. No meu código eu tenho de ciar os objetos de forma estática mas quero criá-los de forma dinâmica. Eu tenho uma classe chamada trabalhador que tem 2 objetos de outras 2 classes (info e familia) como seus membros, de forma que trabalhador tem info e familia. Toda vez que eu quero criar um objeto trabalhador (que tem info e familia) eu tenho de fazê-lo de forma manual (estática) mas quero fazê-lo dinamicamente. Eu quero que o usuário escolha quantos trabalhadores ele quer criar dinamicamente. Eu acho que eu deveria usar estruturas de dados como uma lista e alocação dinâmica de memória mas eu não sei como fazê-lo. Meu código também cria um arquivo chamado "cadastro.dat" e eu quero ler esse arquivo mas também não sei como fazê-lo. Alguém poderia me ajudar? Estou mostrando o código que já fiz. //MAIN #include <iostream> using std::cerr; using std::cin; using std::cout; using std::endl; using std::ios; #include <fstream> using std::ofstream; #include <cstdlib> using std::exit; #include "trabalhador.h" int main() { ofstream saidaArquivoCadastro( "cadastro.dat", ios::out ); if ( !saidaArquivoCadastro ) // operador ! sobrecarregado { cerr << "Arquivo nao pode ser aberto" << endl; exit( 1 ); } cout << "INFORME OS DADOS SOLICITADOS: \n\n"; cout << "Nome do funcionario: "; info i1; cout << "\nCPF: "; info i2; cout << "\nNome da mae: "; familia f1; cout << "\nNome do pai: "; familia f2; trabalhador t(i1, i2, f1, f2); return 0; } //trabalhador.h #ifndef TRABALHADOR_H #define TRABALHADOR_H #include "info.h" #include "familia.h" class trabalhador { public: trabalhador (const info &, const info &, const familia &, const familia &); void print () const; private: const info funcionarioNome; const info funcionarioCPF; const familia mae; const familia pai; }; #endif //trabalhador.cpp #include <iostream> using std::cout; #include "trabalhador.h" #include "info.h" trabalhador::trabalhador (const info &infoNome, const info &infoCPF, const familia &famiMae, const familia &famiPai) :funcionarioNome (infoNome), funcionarioCPF (infoCPF), mae (famiMae), pai (famiPai) { cout << "\nDados do funcionario: \n"; print(); } void trabalhador::print() const { funcionarioNome.print(); funcionarioCPF.print(); mae.print(); pai.print(); } //info.h #include <string> using std::string; #ifndef INFO_H #define INFO_H class info { public: info (string = ""); void setInfoDado (string); void setInfo (); void print () const; private: string infoDado; }; #endif //info.cpp #include <iostream> using std::cout; using std::cin; #include <string> using std::string; using std::getline; #include "info.h" info::info (string info) { setInfoDado (info); } void info::setInfoDado (string info) { infoDado = info; setInfo(); } void info::setInfo () { string nome; getline (cin, nome); infoDado = nome; } void info::print () const { cout << infoDado << "\n"; } //familia.h #include <string> using std::string; #ifndef FAMILIA_H #define FAMILIA_H class familia { public: familia (string = ""); void setFamiDado (string); void setFami (); void print () const; private: string famiDado; }; #endif //familia.cpp #include <iostream> using std::cout; using std::cin; #include <string> using std::string; using std::getline; #include "familia.h" familia::familia (string info) { setFamiDado (info); } void familia::setFamiDado (string info) { famiDado = info; setFami(); } void familia::setFami () { string nome; getline (cin, nome); famiDado = nome; } void familia::print () const { cout << famiDado << "\n"; }
  15. Obrigado @Marcos FRM e @Midori .
  16. E você tem alguma recomendação de como eu posso iniciar esse processo?@V!OLADOR
  17. Olá, pessoal, tudo bem? Eu entendo um pouco de arquitetura e organização de computadores, sistemas operacionais, programação e eu to querendo escrever um sistema operacional. Eu sei que o processo é mais longo e complexo mas eu já li os livros do Tannembaum e Deitel e to querendo um pouco da leitura e ir mais para uma parte mais prática, de escrever os primeiros códigos, etc. Alguém tem alguma ideia por onde eu posso começar? Escrever um bootloader ou usar algum já desenvolvido? Quais passos iniciar eu posso seguir, onde eu posso procurar uma informação mais detalhada e inicial para eu começar a escrita?

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...