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

Alcap

O meu codigo é muito confuso

16 mensagens neste tópico

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!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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?
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 :)) *

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lol tava-me a esquecer deste tópico.

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora