Ir ao conteúdo
  • Cadastre-se
Fábio Pavan

RESOLVIDO Linha de Comando em C, participe da criação!

Recommended Posts

  Olá à todos, estou criando um sistema operacional na linha de comando, na verdade ainda não é um sistema, é um simples programa em C. Bem, nom momento ele tem 104 linhas de código-fonte e é bem leve, quem estiver interessado em ajudar, basta conversar comigo. Preciso de colaboradores para criar:

 

- Uma classe arquivadora, qual cuidará de renomear, mover, excluir ou criar arquivos;

- Para me ajudar com a calculadora, dentro do núcleo ela tem conflitos, pois os comandos são chamados por números;

- Para testar o programa;

 

  O programa usará a licença GNU GPL, a mesma usada no Linux, ou seja, todos poderão reparar, criar, estudar e distribuir o sistema gratuitamente. Eu já fiz a base, aqui vai algumas imagens e todos os arquivos, estou usando o Dev C++ e o Sr. Google.

post-707660-0-68489200-1421764418_thumb.post-707660-0-94963100-1421764420_thumb.

Aula.zip

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dei uma olhada no teu código.

Se o senhor permitir algumas observações:

1 - A primeira dela é sobre a função loading:

int main() {    loading();    ...}int loading(void) { //Tela de carregamento	printf("Carregando");	sleep(1);	printf(".");	sleep(1);	printf(".");	sleep(1);	printf(".");	sleep(1);	printf(".");}
Eu já vi funções desse tipo aqui no forum algumas vezes, e eu sempre fico intrigado quando vejo isso.

Veja só, antigamente quando os computadores tinham tela verde, eles era bem lentos. Eles eram tão lentos que algumas coisas que hoje em dia são computadas instantaneamente, antigamente demoravam alguns segundos. E coisas que demoram alguns segundos hoje, antigamente demoravam minutos.

Pro usuário saber que o programa ainda estava funcionado, e que estava parado apenas pra computar algum dado e não porque tinha travado, alguns desenvolvedores começaram a usar barras de carregamento ou telas de espera.

O motivo dessas telas não era fazer o programa ficar parado por motivo nenhum, o motivo era apenas assegurar que o programa não tinha travado. Porque nenhum usuário nesse planeta deseja que seu programa seja lento de propósito. É por isso que a gente tá sempre comprando processadores mais rápidos.

2 - A segunda coisa é sobre modularização do código.

Modularização é quando você divide o seu programa em partes menores, pra ficar mais fácil de manter, expandir e corrigir os bugs que aparecem.

Por exemplo, se eu tiver um código onde todo processamento está na função main:

int main() {    while( a+b > c) {        if (x == y) {        /*           *  um monte de codigo aqui         */        }        /*         *  mais codigo aqui         */        for (i=0; i < 10; i++) {        /*         *  mais codigo         */        }    }    return 0;}
Então se eu executar esse programa e tiver algum erro, eu vou ter que rever o código inteiro pra achar o bug.

Mas se eu modularizar o programa:

void abrirArquivo() {    /*     *  parte do codigo aqui     */}int sortearVetor(int x) {    /*     *  outra parte aqui     */}int main() {    while( a+b > c) {        if (x == y) {            abrirArquivo();        }        for (i=0; i < 10; i++) {            sortearVetor(i);        }    }    return 0;}
Daí em caso de erro fica mais fácil de isolar o problema.

O exemplo acima foi bem simples, mas você pode ir adiante. Em vez de separar não só em funções, você pode usar arquivos diferentes também.

Pode colocar a parte de manipular arquivos em "arquivo.c" e "arquivo.h" e no programa principal, o "main.c", você usa um "#include "arquivo.h".

Essa coisa de modularização é especialmente importante se você pretende que outras pessoas colaborem no seu código.

Cada pessoa trabalha em um arquivo.

3 - E a terceira observação é quanto a organização do código.

Principalmente se você pretende que outras pessoas colaborem com o seu código, é muito importante que ele seja legível pra todo mundo que vai ler o código.

Isso pode parecer besteira, mas eu garanto que é mais importante do que parece.

Por exemplo, colocar comentários no código é muito importante, mas colocar comentários em excesso acaba deixando o código ruim de ler, principalmente quando são 3 da manhã e você tá com os olhos cansados.

scanf("%d", &command); //Cria um entrada para comando
Qualquer pessoa que começou a aprender C ontem sabe o que o scanf faz, então aquele comentário é desnecessário.

Ou código sem indentação correta.

É isso.

Espero que considere isso como críticas construtivas.

Se precisar de ajuda em algo fique a vontade pra postar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, estou procurando uma pessoa para fazer a classe arquivadora, será mais ou menos assim:

 

- main.c (Principal)

- mat.c (Calculadora)

- archiver.c (arquivadora)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





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

×