terça-feira, 3 de maio de 2011

Questão da Identação

Vou falar agora sobre a questão da Identação.

Primeiramente, queria pedir desculpas pelas postagens até agora não terem identação, mas é porque o Blogspot não aceita identação. Eu vou passar a fazer a identação através de imagem.
*20:31 Edit: Problema de identação acaba de ser resolvido. Códigos passarão a ser postados pelo docs.google*
Identação é a organização do texto. Exemplo:

Primeiro Sem Identação, depois Com Identação
Conseguem ver a diferença?
A identação serve apenas para organização do código, não alterando o funcionamento do programa. Se você quiser testar, abra o Pascalzim, e coloque isso:

Program Pzim ; Type M=Array [1..6,1..6] of Integer; VAR Mat:M; I,J:Integer; Begin I := 1; J := 1; While (I <= 6) and (J <= 6) do Begin If (J = 1) or (J = 6) or (I = 1) or (I = 6) Then Mat[I,J] := 1 Else If ((J = 2) and ((I <> 1) or (I <> 6))) or  ((J = 3) and ((I = 2) or (I = 5))) or ((J = 4) and ((I = 2) or (I = 5))) or ((J = 5) and ((I <> 1) or (I <> 6))) Then Mat[I,J] := 2 Else Mat [I,J] := 3; Inc (I); If (I = 7) and (J < 6) Then Begin I := 1; Inc (J); End; End; I := 1; J := 1; While (I <= 6) and (J <= 6) do Begin If (Mat[I,J] = Mat[1,1]) Then Textcolor ( LightGreen ) Else If (Mat[I,J] = Mat[2,2]) Then Textcolor ( Yellow ) Else Textcolor ( LightBlue ); If I <> 6 Then Begin Write (Mat[I,J]); Textcolor ( Black ); Write ('|'); End Else Writeln (Mat[I,J]); Inc (I); If (I = 7) and (J < 6) Then Begin I := 1; Inc (J); End; End; End.

Leigo: Mas isso vai funcionar?
Amumu: Claro que vai, Leigo.
Leigo: Então eu posso botar na prova?
Amumu: CLARO QUE NÃO, CRIATURA DE DEUS!!

Funcionar, funciona. Mas existem 2 bons motivos pra você não fazer isso:
1o: Você está fazendo seu programa monolinha (com uma linha só) no Pascalzim, pensa "que beleza, vai ficar perfeito!", daí você termina, e aperta F9. Aparece "Erro na linha 1". Ok, AONDE da linha 1?
2o: Independente se você está no Ensino Técnico ou no Ensino Superior*, você está aprendendo para entrar no mundo do trabalho. Então, você está sendo avaliado como seria avaliado numa empresa. Eles avaliam a organização e a simplicidade do programa. Se o programa vier a ser editado no futuro, pra você se achar nele, sem identação, vai ser uma guerra (acredite em mim, já sofri com isso em Delphi, no primeiro trimestre ainda). E se você sair da empresa, entrar outra pessoa, e o programa precisar de adaptação, pior ainda, aí que o outro não vai se achar. As empresas procuram códigos fáceis de serem entendidos por outros técnicos, talvez um dia você tenha que se aposentar, mude de empresa, de cidade, de estado, país, enfim, e quem vier a te substituir vai precisar entender o programa.
*Eu só citei ensino técnico ou superior, porque estamos falando do Pascal, que é uma linguagem didática, ou seja, apenas de aprendizado. O Pascal não é usado comercialmente.

Leigo: Eu notei que você e o Joker utilizam identações diferentes. Qual a mais correta?
Exemplo:
ele usa (se não for assim é algo parecido)
If <condição> then
<comandos>
else
<comandos>

você usa
If <condição>
then <comandos>
else <comandos>

Amumu: A menos que seu professor seja um carrasco e exiga que você faça como ele ensinou, ambas estão corretas.

NOTA: Algoritmo é uma linguagem pra se usar na teoria. Essa questão da identação se aplica ao Pascal e HTML. Creio eu que se aplique à todas as linguagens, mas não tenho todos os compiladores no meu computador pra testar, então é difícil afirmar.

Nenhum comentário:

Postar um comentário

Obrigado pelo seu comentário!
Ele está sujeito à aprovação antes de ser aceito, portanto, manere.