Si quiere descargar la presentación y los códigos fuente, dirijase a:
http://programaciondecomputadoresunalmzl.wikispaces.com/codigos_y_diapositivas
Le agradecería si me reporta los errores que encuentre en la diapositiva (daalvarez arroba unal punto edu punto co)
5. 5
a ? b : c
Si la expresión a es verdadera, entonces se
evalúa la expresión b y el resultado es el valor de
b; de lo contrario la expresión c se evalua y se
retorna dicho resultado.
6. 6
switch case default
switch(var)
{
case op1:
comando1;
break;
case op2:
comando2;
case op3:
comando3;
break;
default:
comando4;
}
comando5;
var = op1
var = op2
var = op3
comando4
comando5
comando1
comando2
comando3
true
true
true
false
false
false
7. 7
switch case
default
Este último break es
innecesario
Las expresiones
comparadas deben
ser de tipo entero o
char.
Las expresiones
contra las que se
comparan deben ser
constantes enteras o
tipo char
8. 8
GNU C extension
switch case
default
Se puede especificar un
rango en la etiqueta, algo así
como:
case bajo ... alto:
Cuidado con los espacios:
bajo ... alto correcto
bajo...alto incorrecto
GNU C extension quiere
decir que esta es una
característica soportada por
el compilador gcc, pero que
no está definida en el
estándar ANSI C
Este último break es innecesario
11. 11
while
El ciclo while se ejecuta
mientras la condición sea
verdadera. Si la condición
es falsa, se sale del ciclo.
12. 12
while
Se puede utilizar un break
para salirse del ciclo
Uno puede leer este bucle
infinito con la salida
utilizando el if como un:
“repita hasta que (c = 'Z')”
16. 16
for
La estructura general del ciclo for es:
for(inicialización; condición; incremento)
comando1;
comando2;
Primero se evalúa la expresión de inicialización, luego se
evalúa la condición. Si la condición es falsa, entonces el ciclo
termina y el programa continua en el comando2. De lo
contrario, si la condición es verdadera, el comando1 se
ejecuta. Finalmente el incremento se evalua y una nueva
iteración del ciclo comienza con una nueva evaluación de la
condición.
17. 17
0 1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 10
x = 1, y = 10
x = 3, y = 9
x = 5, y = 8
x = 7, y = 7
x = 9, y = 6
18. 18
En C99 se permite utilizar declaración de
variables dentro del for, similar a como se hace
en C++
Se debe usar la bandera de compilación -std=c99
20. 20
break
break se utiliza para
salirse del bloque {} actual
de un ciclo (for, while, do
while) o de un switch.
Si se pone un break
dentro de un ciclo o switch
anidado, el break solo se
sale del bloque (ciclo o
switch) interior, no de los
otros ciclos o switchs.
21. 21
continue
continue usa en ciclos para
saltarse el resto del bloque actual
y salta de nuevo a la condición del
ciclo.
Si se pone un continue dentro de
un ciclo anidado, este solo afecta
el ciclo interior.
22. 22
goto
(evite usar esta orden)
La etiqueta debe residir en la
misma función que el goto
que salta a ella. Un goto no
puede saltar a una etiqueta
en una función diferente.
Este es un ejemplo en el
cual el uso del goto está
justificado. Observe que
aquí quiero salir de los dos
ciclos. Un break, solo nos
sacaría del for interior,
mientras que el goto nos
saca de los dos ciclos con
una sola instrucción, sin
perder claridad en el código.
24. 24
Normas de estilo
Unas normas de estilo en programación, son tan importantes
que todas las empresas dedicadas a programación imponen a
sus empleados una mínima uniformidad, para facilitar el
intercambio de programas y la modificación por cualquier
empleado, sea o no el programador inicial. Por supuesto, cada
programa debe ir acompañado de una documentación
adicional, que aclare detalladamente cada módulo del
programa, objetivos, algoritmos usados, ficheros... (ver por
ejemplo https://code.google.com/p/google-styleguide/)
No existen un conjunto de reglas fijas para programar con
legibilidad, ya que cada programador tiene su modo y sus
manías y le gusta escribir de una forma determinada. Lo que sí
existen son un conjunto de reglas generales, que aplicándolas,
en mayor o menor medida, se consiguen programas bastante
legibles. Aquí intentaremos resumir estas reglas.
25. Normas de estilo en la
programación
● Lo principal es mejorar tanto como se pueda la
claridad en el código. El código debe ser leíble por
usted mismo (en el futuro) y por otras personas sin
dificultad.
● Cuando se escriben los programas se debe priorizar
la legibilidad del código por encima de todo, incluso
sobre la velocidad de ejecución (excepto en
aplicaciones muy específicas).
● Hay que entender que el código normalmente se
escribe una vez, pero se lee decenas de veces.
● Sea consistente con su estilo de programación.
26. Líneas
● Una línea no debe sobrepasar la columna 80.
● Use líneas en blanco para separar el código en
párrafos o bloques.
● Coloque una instrucción por línea; sin embargo, si el
colocar dos o más sentencias en una misma línea
mejora la claridad del programa, entonces hágalo así.
● Evite líneas muy largas. En vez de esto utilice varias
líneas.
● Coloque los operadores ++ y -- en sus propias líneas.
No use ++ y -- dentro de otras sentencias.
27. Espacios e identaciones
● Use identaciones de 3 espacios (configure su
editor).
● Coloque espacios antes y después de cada
operador binario y de cada signo =, así como
los espacios separan las palabras en un texto.
Los operadores unarios (++, –) van junto al
identificador sobre el que actuán.
● En una sentencia que consiste de dos o más
líneas, cada línea excepto la primera debe
identarse un nivel extra para indicar que es una
continuación de la primera.
28. La identación y las llaves {}
● Utilice apropiadamente las llaves {} para
delimitar los bloques de código. Las llaves
deben ocupar una sola línea y deben estar en
la misma columna (identación ALLMAN).
● Cuando un if/while afecta a más de una línea,
enciérrela entre llaves.
29. Nombres de variables
● Use nombres de variables simples y descriptivos
● Las constantes se escriben en MAYUSCULAS.
● Use el guión bajo _ para mejorar la claridad de los
nombres de las variables. Ej: ancho_viga
● No use la L minúscula o la O mayúscula como
nombres de variables.
● Los nombres cortos tales como x ó y son aceptables
cuando su significado es claro y cuando un nombre
largo no añadiría información o claridad adicional.
● i,j,k se utilizan exclusivamente como contadores en
los ciclos for/while/do-while.
30. Variables
● Evite en lo posible usar variables globales.
Utilice en lo posible variables shared o en su
defecto pase las variables globales como
argumentos a la función.
● Declare las variables globales tan cerca al
lugar donde las va a utilizar como sea posible.
31. Comentarios
● Comente el código mientras programa.
● Después de declarar una variable, escriba un
comentario que explique para que sirve esa variable.
● Incluya comentarios antes de cada bloque de código.
Estos describirán los propósitos del bloque en el
cumplimiento de una tarea cohesiva. El uso de
nombres significativos en variables y funciones
minimizan la necesidad de comentarios.
● Procure alinear los comentarios que van en líneas
seguidas
32. Comentarios
● Antes de definir una función se debe poner un
comentario que diga en una línea o dos qué es
lo que hacen dichas funciones y se expliquen
los parámetros de la misma. Estos comentarios
son para que una persona que esté explorando
el código pueda entender qué hace una función
sin tener que estudiarla en profundidad. Este
breve comentario en el encabezado de la
función debe apoyarse a su vez en un nombre
de función descriptivo.
33. Consejos generales
● Compile el código de modo tal que este no
tenga Warnings. Muchas veces los Warnings
muestran errores en los códigos.