Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
Alcap

O meu codigo é muito confuso

Recommended Posts

Alcap

Boas

Peguei à pouco tempo num programa que fiz à uns tempos e comecei a melhora-lo. O problema é que, o programa depois de pronto esta uma confusao tremenda! Se nao tivesse sido eu a escreve-lo concerteza nao ia perceber um boi.

Voces usam algum truque ou alguma forma diferente de programar?

PS: Sim, indento o meu codigo, mas mesmo assim ta uma confusao que nao vos digo nada!

Share this post


Link to post
Share on other sites
djthyrax

Crio funções com nome relacionado com aquilo que fazem, uso variáveis com significado (se quero guardar um nome, uso a variável nome), separo código em blocos usando whitespace e comentários (no início meto /* funções para isto */ e no final /* /funções para isto */), etc.


Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Share this post


Link to post
Share on other sites
merlin3000

Cada pessoa tem uma forma diferente de dispor o código, embora ajam certas coisas que se tornam +/- padrão pelo facto de facilitarem a leitura do código aos outros e mais importante a nós mesmos, pois se o código fica muito confuso se largares o programa durante algum tempo quando voltares a pegar nele não é nada fácil compreende-lo. Certos hábitos também se generalizam pela popularidade que alguns tutoriais têm acabando por influenciar a forma de programar de quem por ele aprende.

Apresenta aí o código que achas confuso, é mais fácil ajudar-te se der para ver como está. Até porque, pelo menos no meu caso, há código que por muito que eu lhe mexa me parece sempre confuso  😳

Mas uma coisa muito importante como disse o djthyrax é pôr comentários.


Criar é Divertido

Share this post


Link to post
Share on other sites
Alcap

Crio funções com nome relacionado com aquilo que fazem, uso variáveis com significado (se quero guardar um nome, uso a variável nome), separo código em blocos usando whitespace e comentários (no início meto /* funções para isto */ e no final /* /funções para isto */), etc.

Pois, é isso mesmo que faço. Bem, tambem é preciso dizer uma coisa, este programa tem muito texto mesmo, texto em printf, texto nao-codigo lol, o que atrapalha um bocado. Eu acho que o meu problema é nao separar as coisas. Tipo, tenho um printf com bastante texto e logo a seguir tenho uma funçao. Ao precorrer o codigo salto sempre essa funçao. Acho qeu se começar a dar enters e a separar as funçoes do texto acho que vai ao sitio.

Nao posso mostrar o codigo, pois é um bocado pessoal, mas acabei por nao comentar, pois tenho poucas funçoes, faceis de perceber apenas pelo nome.

Fiz outro programa que postei aqui no forum, na altura achei o codigo confuso, mas ao le-lo aqui no forum achei-o limpo lol.

No meu proximo programa vou ver se ao começar com ele de raiz o levo sempre certinho, e com cuidado. Se continuar confuso vou tentar melhora-lo, depois de criado. Este é que ja nao da... Ja nem posso olhar pro codigo! So de pensar que pro ano lhe vou ter que pegar outra vez...

Share this post


Link to post
Share on other sites
merlin3000

Acho que indentando mais o teu código ficava mais legível, por exemplo no início das funções não indentas logo.

Outra coisa que reparei no outro programa é que tens muitos printfs com vários \n muito compridos. É capz de ser mais legível se fizeres algo como:

    printf( "________________MENU_________________\n"
    "1 - Opcao 1\n"
    "2 - Opcao 2\n"
    "3 - Opcao 3\n" );

Podes ficar com um código maior mas acho que fica mais legível. Outra coisa é também pores vários comandos inline. Em certos casos isso fica bem mas só em pequenas quantidades e quandoa  relação entre os seu objectivos é muito aproximada.

Algo que eu costumo fazer é dar um espaço para separar os conteúdos dos () por exemplo:

if ( a == b )

Mas isto já são gostos, para mim fica mais legível em muitas situações.


Criar é Divertido

Share this post


Link to post
Share on other sites
Alcap

Vê o 2º ponto: http://www.portugal-a-programar.pt/forums/topic/0-find-topic/?do=findComment&comment=70729

Em relação ao código, acho-o uma bruta confusão sem indentação nem nada :P

LOL

Na altura nao me ocorreu fazer isso porque as unidades tem sempre os mesmos tamanhos, logo nao é necessario altera-las:P

Vou tentar aplicar menos funçoes inline, ja os espaços a separar os conteudos nao me dou muito bem...

Em ferias sou capaz de dar uma vista de olhos ao codigo que estou a escrever agora e areja-lo um coto, a ver se fica mais legivel... Neste momento ta intragavel:S

Share this post


Link to post
Share on other sites
djthyrax

Na altura nao me ocorreu fazer isso porque as unidades tem sempre os mesmos tamanhos, logo nao é necessario altera-las:P

As constantes servem para isso. :)

merlin3000, mas com os . a concenatar. :P


Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Share this post


Link to post
Share on other sites
Hipnoted

merlin ele pensa que isto é PHP... Mas não é. :)

Em relação ao tópico, é sempre bom, e não custa nada identar o código. Se podemos perder tempo ao início, quando tivermos de reutilizar o código vai compensar. Eu costumo usar as regras de identação de java para todas as linguagens.


"Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"

Share this post


Link to post
Share on other sites
djthyrax

merlin ele pensa que isto é PHP... Mas não é. :)

Não é preciso concenacetar aquilo? Isso é estúpido. Tens a certeza que não dá um warning ao compilar?

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Share this post


Link to post
Share on other sites
Hipnoted

merlin ele pensa que isto é PHP... Mas não é. :)

Não é preciso concenacetar aquilo? Isso é estúpido. Tens a certeza que não dá um warning ao compilar?

Seja como for o ponto não concatena strings em C!


"Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"

Share this post


Link to post
Share on other sites
djthyrax

merlin ele pensa que isto é PHP... Mas não é. :)

Não é preciso concenacetar aquilo? Isso é estúpido. Tens a certeza que não dá um warning ao compilar?

Seja como for o ponto não concatena strings em C!

Ah pois, é o +. 😳 Toda a gente erra, não tenho culpa que o C++ use o . para OOP e não o use para concenetação :D

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Share this post


Link to post
Share on other sites
Hipnoted

merlin ele pensa que isto é PHP... Mas não é. :)

Não é preciso concenacetar aquilo? Isso é estúpido. Tens a certeza que não dá um warning ao compilar?

Seja como for o ponto não concatena strings em C!

Ah pois, é o +. 😳 Toda a gente erra, não tenho culpa que o C++ use o . para OOP e não o use para concenetação :D

Faz-me um favor: VAI APRENDER C !! E deixa de dizer coisas sem nexo!! :P

O + é para java, C não é assim tão linear, se quiseres concatenar strings usas o strcat ou o sprintf.

Acho que chega deste assunto. :)


"Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"

Share this post


Link to post
Share on other sites
djthyrax

merlin ele pensa que isto é PHP... Mas não é. :P

Não é preciso concenacetar aquilo? Isso é estúpido. Tens a certeza que não dá um warning ao compilar?

Seja como for o ponto não concatena strings em C!

Ah pois, é o +. 😳 Toda a gente erra, não tenho culpa que o C++ use o . para OOP e não o use para concenetação :D

Faz-me um favor: VAI APRENDER C !! E deixa de dizer coisas sem nexo!! :)

O + é para java, C não é assim tão linear, se quiseres concatenar strings usas o strcat ou o sprintf.

Acho que chega deste assunto. :P

Irra, nem à segunda acerto. :D Primeiro confundo com PHP e depois com Python :D Ixtuh num tah fahcil! :D

E em vez de me dares ordens, arranja-me algo BOM em PORTUGUÊS para aprender C. :P

Luv ya (e vou parar o off-topic por aqui :) ) *


Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Share this post


Link to post
Share on other sites
merlin3000

lol tava-me a esquecer deste tópico.

Desculpem lá continuar um bocado o offtopic mas aquele código corre-me sem nenhum warning. :)


Criar é Divertido

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.