Hoy os planteo esta cuestión y de paso a ver si conseguimos abrir un poco debate para sacar conclusiones y aprender todos de todos.
Yo personalmente uso un mixto; es decir suelo dar un mínimo y un máximo de ancho y alto a mis diseños, pero después todo el contenido lo manejo mediante porcentajes; esta pregunta la abro a raíz de un desacuerdo en mi trabajo, puesto que uno de mis compañeros con el que estoy llevando a cabo un proyecto prefiere utilizar únicamente tamaños fijos en PX, vosotros como lo veis? Cual es vuestra opinión? que y como trabajáis día a día?
Un saludo a tod@s y que empiece la fiesta!!
viernes, 28 de junio de 2013
Curso programación desde 0 - Tema 7 - Funciones
En este tema vamos a
introducirnos en el concepto de las funciones, algo elemental para cualquier
lenguaje de programación; una función no es más que un conjunto de órdenes, las
cuales se suelen usar en distintos puntos de un programa, así que al agruparlas
en una función evitamos repetir el código.
Una función puede devolver un
resultado, o solo realizar una serie de operaciones, también admite que se le
pasen una serie de parámetros (variables) o ejecutarla sin ellas, todo esto
depende del caso, vamos a ver algunos ejemplos.
La estructura de una función sería
algo de este estilo:
Función NombreDeLaFuncion (parametro1, parámetro2,….) {
Operaciones;
Operaciones;
…..
}
Y ya esta así de sencillo, eso sería una
función; una función sencilla sería algo así:
Función EscribeMensaje () {
Muestra “Hola esta es mi primera Función”;
}
En esta
función escribiremos cada vez que la llamemos; lo cual se haría simplemente tecleando EscribeMensaje (); dentro de nuestro código, y lo que nos
hará esta función es que cada vez que la llamemos, nos escriba en pantalla Hola
esta es mi primera Función.
Esta función no recibe ningún
parámetro, ni tampoco devuelve ningún resultado, solo ejecuta una operación, la
cual consiste en escribir un mensaje.
Otro ejemplo un poco más complejo seria este:
Función EscribeMensaje (mensaje) {
Muestra mensaje;
}
Esta funcion está esperando un parámetro, el cual se llama
mensaje, y lo que hará será escribir en pantalla ese mensaje, si la llamamos
del siguiente modo:
MuestraMensaje (“Hola esta es mi primera Función”);
Nos dará el mismo resultado que antes, con la salvedad de
que cada vez que la llamemos podremos mandarle un mensaje distinto, el cual sera mostrado.
Este
ejemplo es muy sencillo, y poco práctico, aunque por su simplicidad es el mejor
modo de entender que es una función.
Ahora
vamos a ver otra función prácticamente igual de sencilla, pero que nos devuelva
un resultado.
Función JuntandoTextos (Mensaje) {
Mensaje = Mensaje + “ Nuevo
Texto”;
return Mensaje;
}
Bien vamos a ver unas cuantas
cosas un poco complejas, que están escritas en el ejemplo anterior; podemos ver
como a la variable Mensaje, la sumamos una cadena de texto, y lo volvemos a
guardar en la variable Mensaje; esto es totalmente valido, y si tenemos una variable
Mensaje, fuera de la función, esa variable es distinta a la que está dentro; es
decir podemos tener 2 variables con el mismo nombre, una dentro y otra fuera de
la función, las 2 son distintas, y totalmente ajenas, la una a la otra, podemos
cambiar el valor de una que no afectara a la otra.
Otro
detalle importante de la función anterior es que en la última línea tenemos el
texto return Mensaje, la palabra return es común para casi todos los lenguajes, he decidido usarla así,
por su semejanza al castellano, y por que al ser algo “estándar”, es bueno que
lo veáis ya, después de esta introducción sigo con lo que estamos haciendo, en
esa línea, retornamos (devolvemos) el valor de Mensaje, si nuestro programa
fuera algo así:
Var Mensaje texto;
Mensaje = “Hola estoy mandando un texto”;
Var MensajeAMostrar = JuntandoTextos(Mensaje);
Muestra Mensaje;
Muestra MensajeAMostrar;
Mensaje = mensaje + “ Otro Texto”;
Muestra Mensaje;
Función JuntandoTextos(Mensaje){
Mensaje = Mensaje + “ Nuevo
Texto”;
return Mensaje;
}
Podemos ver que tenemos la función declarada al final del
código, en la mayoría de lenguajes se puede hacer así, en otros hay que hacer
las declaraciones antes de llamar a la función, pero bueno eso ya son características
de cada lenguaje, lo importante aquí es ver que tenemos en el mismo código, por
un lado el programa, y por otro lado la declaración de la función, por lo que
queda más separado, claro, y fácil de mantener, las funciones pueden
declararse, al final, principio o entre medias del código, eso depende de las
características del lenguaje, y de la necesidad de cada programa; tambien utilizaremos muy a menudo funciones que esten almacenadas en otros archivos distintos al que contiene el programa.
En este programa comenzamos declarando una variable, a la
que en la siguiente línea le asignamos un valor, en la tercera línea,
declaramos otra variable y en la misma línea le asignamos el valor de la
función, pasándole como parámetro la variable Mensaje, el valor que almacenara
la variable MensajeAMostrar será: Hola estoy mandando un texto Nuevotexto
En la 4 línea mostramos el valor de la variable Mensaje, lo
cual nos dará como resultado: Hola estoy mandando un texto.
En la 5 línea mostramos el valor de la variable
MensajeAMostrar, lo cual nos mostrara: Hola estoy mandando un texto Nuevo texto
En la sexta línea cambiamos el valor de la variable Mensaje,
y en la séptima lo mostramos, lo cual nos mostrara Hola estoy mandando un texto
Otro texto ; ya que como hemos explicado anteriormente la variable Mensaje de
fuera de la función es independiente a la variable Mensaje de dentro
Ahora vamos a ver otro ejemplo de funciones, quizás un poco más
útil, ya que lo que hemos hecho hasta ahora no nos ha servido para demasiado.
Función Operaciones(Numero1, Numero2){
Var Resultado;
Resultado = Numero1 + Numero2;
Muestra Resultado;
Resultado = Numero1 - Numero2
Muestra Resultado;
Resultado = Numero1 * Numero2
Muestra Resultado;
Resultado = Numero1 / Numero2
Muestra Resultado;
}
Cada
vez que llamemos a esta función con 2 variables, nos mostrara en pantalla los 4
resultados posibles, uno tras otro, nos dará la suma, la resta, la división y
la multiplicación de ambos números, tan solo escribiendo una llamada a la
función como podría ser Operaciones(8, 26);
Un Ejercicio interesante seria hacer un programa que recorra
todos los números del 1 al 10 y que por cada número nos diga si es par o es
impar.
Recuerda que el mejor modo para la corrección es publicarlo
como comentario debajo del ejercicio, así tú y todos tus compañeros podréis
aprender y ayudaros los unos a los otros, pero estoy disponible en el email: rogamainformatica@gmail.com
Resto de temas:
Tema 8 - Programación Orientada a Objetos POO
Tema 7 - Funciones (Tema actual)
Tema 6 - Bucles Repetitivos
Tema 5 - Usando condicionales
Tema 4 - Arrays
Tema 3 - Pensando con variables
Tema 2 - Pensando como Programadores
Tema 1 - ¿Que es la programacion?
Resto de temas:
Tema 8 - Programación Orientada a Objetos POO
Tema 7 - Funciones (Tema actual)
Tema 6 - Bucles Repetitivos
Tema 5 - Usando condicionales
Tema 4 - Arrays
Tema 3 - Pensando con variables
Tema 2 - Pensando como Programadores
Tema 1 - ¿Que es la programacion?
viernes, 21 de junio de 2013
Curso programación desde 0 - Tema 6 - Bucles repetitivos
Otra de las cosas más Utilizadas y de las que más apuros y
facilidades nos pueden dar en la programación son los bucles, tenemos varios de
ellos, aunque básicamente podemos englobarlos en:
·
los que se cumplen siempre que una condición se
cumpla.
·
los que se repiten hasta que se cumpla una
condición
El más usado con diferencia es el conocido como bucle for,
que podría traducirse como “para” el cual tendría el siguiente aspecto:
Para (var i
=0; i< 20; i++)
Muestra i;
FinPara
Ahora que hemos visto la estructura vamos a explicar que es
esto que a primera vista parece tan complejo; en la primera línea tenemos: Para
(var i =0; i< 20; i++)
Lo cual nos dice que es un bucle Para, y entre los
paréntesis tenemos los datos que debemos pasarle, separados por “;” lo cual nos
lo deja en 3 partes:
·
Var i =0; Aquí estamos declarando la variable i
es el nombre más utilizado en este tipo de bucles, pero podemos darle el nombre
que más nos apetezca, podría ser juanito sin ningún problema, a la vez que la
declaramos, le damos el valor de 0; por lo que usaremos la variable llamada i y
comenzara con un valor de 0.
·
I< 20; los siguientes datos que le damos son
una condición, i menor a 20; con esto le decimos que repitamos lo que tengamos
dentro del bule hasta que i sea 20, en el momento en que sea 20 saldremos del
bucle sin hacer el código que hay dentro.
·
I++; este es el ultimo código que tenemos en el
bucle, esto se lo podremos dar a cualquier variable de tipo Numero es algo
sencillo, simplemente sumamos 1 al valor que tenga i; también podemos usar
i—por ejemplo lo cual restaría 1 al valor de i
Este bucle nos mostraría 20 números,
el primero sería el 0 y el ultimo el 19, cuando entramos en un bucle solo se
ejecutara el código que hay en su interior, es decir desde donde tenemos
escrito Para, hasta donde pone FinPara, por lo que hay que prestar atención a
lo que hacemos, ya que si tuviéramos algo parecido a esto:
Para (var i
=0; i< 20; i++)
Si (i = 15)
i= i -10;
FinSi
Muestra i;
FinPara
Restaríamos 10 a i siempre que valga 15, por lo que volveríamos
al 5 y del 5 hasta que llegáramos al 15, y otra vez restaríamos 10, y así una y
otra vez, por lo que nunca saldríamos del bucle, y habríamos hecho lo que se
conoce como bucle infinito, esto suele bloquear el sistema, es un error y hay
que evitar que se produzca
Otro de los bucles más usados son los bucles hasta (while),
con la siguiente estructura
Hasta (condición)
Lo que
sea;
FinHasta
Este bucle se repetirá siempre hasta que la condición se
cumpla; un ejemplo podría ser algo así:
Hasta (¡SentimosSed)
Ejercicio
de calmar la sed;
FinHasta
En este ejemplo hemos puesto el signo de admiración delante
de la variable SentimosSed, el símbolo ¡ puede traducirse como No, por lo que
esto lo que hace es volver a lo contrario la variable, es decir, si es
verdadera, la convierte en falsa, si es falsa la convierte en verdadera, así ejecutaremos una y otra vez el ejercicio de
calmar la sed, hasta que No tengamos sed.
El último Bucle que vamos a ver es el Do-While o lo que
vendría siendo en castellano haz- hasta, este bucle se repetirá siempre hasta
que se de la condición en el hasta, pero con la salvedad de que siempre se
ejecutara como mínimo una vez, su estructura es la siguiente:
Haz
Lo que
sea;
Hasta(condición);
Piensa que tipo de bucle sería el más adecuado para hacer
una tabla de multiplicar del 5 y desarrolla el pseudocódigo;
Resto de temas:
Tema 8 - Programación Orientada a Objetos POO
Tema 7 - Funciones
Tema 6 - Bucles Repetitivos (Tema actual)
Tema 5 - Usando condicionales
Tema 4 - Arrays
Tema 3 - Pensando con variables
Tema 2 - Pensando como Programadores
Tema 1 - ¿Que es la programacion?
lunes, 17 de junio de 2013
Curso programación desde 0 - Tema 5 - Usando condicionales
Como podréis imaginar en la programación no va a ser todo
líneas unas debajo de otras, usando distintas operaciones; una de las cosas más utilizadas son los condicionales, lo cual es simplemente eso, una condición en algún lugar del programa,
cuando la condición que escribimos se cumple, el programa sigue por el camino
marcado, si no se cumple, sigue por el camino alternativo, lo cual se representaría
así:
Si (se cumple la condición)
Sigo
por aquí;
Si no
Sigo
por aquí;
Como la mejor manera de entender las cosas es verlas y
después probarlas nosotros mismos, aquí vamos con un ejemplo, vamos a coger el
ejemplo del tema 2, el ejercicio de tenemos sed, vamos a mejorarlo, utilizando
todo lo aprendido hasta ahora
Var
TenemosSed Verdadero/Falso; //declaro la variable
Var
NumVasosLimpios Número;
TenemosSed
= true (Verdadero);
NumVasosLimpios
= 3;
Si (TenemosSed)
Nos levantamos;
Vamos hasta la cocina;
Abrimos la vitrina;
Si (NumVasosLimpios > 0)
Cogemos un
vaso;
Si no
FregamosUno;
Cogemos
el vaso limpio;
Dejamos el vaso en un lugar
seguro;
Vamos hasta la nevera;
Cogemos la botella de agua (o
líquido a nuestro gusto);
Cerramos la nevera;
Abrimos la botella;
Llenamos el vaso;
Cerramos la botella;
Volvemos hasta la nevera;
La abrimos;
Guardamos la botella;
Cerramos la nevera
Volvemos hasta el vaso;
Bebemos;
En este ejemplo podemos ver fácilmente que lo primero que
hacemos es declarar la variable TenemosSed y la declaramos como verdadero o
falso, esta variable cojera un valor en concreto que cambiara al ser ejecutada
por un evento, como puede ser hablar mucho, pero los eventos, funciones y otras
cosillas las veremos en temas más avanzados, de momento solo nos interesa
entender que es y cómo funciona un condicional, justo debajo declaramos otra
variable NumVasosLimpios esta variable en vez de darle un valor como también
hacemos con TenemosSed también deberíamos recogerla en una función, Si
pudiéramos probar el programa tan solo deberíamos cambiar los valores y
ejecutarlo. A TenemosSed le damos el valor de verdadero, así que el programa
cuando comprueba Si TenemosSed ve que es
verdadero, por lo que se cumple la condición, y sigue por debajo, ojo aquí
tenemos 2 condicionales, el primero: Si (TenemosSed) no tiene un SI NO al
final, por lo que no ejecutara nada si no se cumple la condición, el bloque SINO no es obligatorio.
Después hacemos algunas acciones que ya quedaron comentadas
temas atrás, y tenemos otra condición en la que miramos el valor de
NumVasosLimpios, como más arriba le hemos dicho que tenemos 3 vasos limpios el
ordenador mirara si (3 > 0) o en otras palabras, si 3 es mayor a 0; en este
caso sí, es decir verdadero, así que al ser verdadero, cogeremos un vaso.
Si le hubiéramos dado un 0 al número de vasos limpios la
condición seria Si (0>0) y seria falso, por que 0 no es mayor que 0; 0 es
igual a 0, pero no mayor, así que se iría a donde fregamos un vaso, y no
ejecutara el paso de Cogemos uno; si quisiéramos que coja un vaso si tenemos 1
o más la condición seria así:
Si (NumVasosLimpios
=> 1)
Lo que
sea
Con eso decimos si tenemos 1 o más vasos limpios, el resto
del código; un punto a tener en cuenta es que si os fijáis, tenemos todas las
líneas una debajo de otra, pero una vez metemos un condicional dejamos un
espacio delante de las siguientes ordenes, así hasta llegar a la condición de
SI NO, esto está hecho a propósito, a esto se le llama Indentar el código, o tabularlo, diciéndolo más coloquialmente, y
tan solo consiste en dar una vez al
tabulador, para dejar ese espacio en concreto; en la mayoría de lenguajes no es obligatorio, pero si es una buena costumbre y casi una necesidad,
ya que de un solo vistazo podemos ver que parte del código se va a ejecutar
cuando se cumple una condición, también se usa para marcar el código que va
dentro de funciones, o de bucles repetitivos, y no afecta al rendimiento del
programa, por lo que es casi obligatorio hacerlo; lenguajes como Python obligan
a indentar el código, en caso de que no esté tabulado no funcionaria, son casos
extraños, pero repito es buena costumbre.
Un buen ejercicio de ejemplo podría ser un programa que pida
la edad del usuario, y si es menor de edad le muestre un mensaje diciéndole que
no puede entrar, si es mayor, le muestre otro dándole la bienvenida
Tema 8 - Programación Orientada a Objetos POO
Tema 7 - Funciones
Tema 6 - Bucles Repetitivos
Tema 5 - Usando condicionales (Tema actual)
Tema 4 - Arrays
Tema 3 - Pensando con variables
Tema 2 - Pensando como Programadores
Tema 1 - ¿Que es la programacion?
miércoles, 12 de junio de 2013
X-UA-Compatible en apache
<IfModule mod_headers.c>
BrowserMath MSIE ie
Header set X-UA-Compatible "IE=edge" env=ie
</IfModule>
este pequeño codigo pegado en nuestro .htaccess o en la configuracion e apache obliga a IE a comportarse como Chrome, siempre que el usuario tenga el plugin adecuado instalado en IE
BrowserMath MSIE ie
Header set X-UA-Compatible "IE=edge" env=ie
</IfModule>
este pequeño codigo pegado en nuestro .htaccess o en la configuracion e apache obliga a IE a comportarse como Chrome, siempre que el usuario tenga el plugin adecuado instalado en IE
cargar distintos JS segun navegador
Tengo que mirar como es, pero con modernizr se puede. intentare subir ejemplo en los proximos dias
JQuery 2.0 comparibilidad con IE
Todos los dias se aprende algo nuevo y acabo de aprender que JQuery 2.0 no es compatible con IE inferior a 8
lunes, 10 de junio de 2013
Curso programación desde 0 - Tema 4 - Arrays
Ahora que hemos visto las variables http://robertogascon.blogspot.com.es/2013/06/curso-programacion-desde-0-tema-3.html es bueno que conocer los
arrays; Hemos visto a las variables como cajas que almacenan un dato, siguiendo
con ese ejemplo podremos ver un array como una estantería que almacena cajas;
en esa estantería tendremos un numero de huecos para guardar cajas, y sabiendo
a que hueco mirar, podremos recoger el valor de esa caja, así de simple.
Unos habréis imaginado un tipo de estantería, otros, otros
tipos distintos y ninguna estantería tiene nada que ver con la anterior; con
los arrays pasa más o menos lo mismo no siempre vamos a necesitarlos del mismo
tipo, los arrays se clasifican en dimensiones; las dimensiones en un array se
pueden entender como el “numero de estantes” para hacernos una idea, así por
ejemplo, un array de una dimensión tendrá una única tabla, en la que
guardaremos los datos en línea, uno tras otro, pero ojo, un array de 2
dimensiones, no tendrá 2 estantes, un array de 2 dimensiones puede tener muchas
cajas una detrás de otra, y muchos estantes, ahora os pondré un ejemplo para
entenderlo mejor;
Vamos a declarar y ver un array de una dimensión:
Var ArrayDeEjemplo [] texto;
Ahora que está declarado, veis que es casi igual que las
variables, tan solo les diferencia los corchetes del final, los cuales indican
el tamaño del array, al dejarlo en blanco no le damos ningún tamaño y el solo
se va agrandando según sea necesario, aunque esta es la manera que más recursos
consume, lo ideal habría sido:
Var ArrayDeEjemplo [5] texto;
Así le decimos que almacenaremos 6 variables, y si 6, no es
un error, los arrays comienzan su índice en 0, por lo que podremos guardar
cajas en el hueco 0, en el 1, en el 2, y así hasta el 5, que hacen un total de
6 huecos
Si vemos el interior del array después de haberle guardado 6
datos será algo parecido a esto
0
|
1
|
2
|
3
|
4
|
5
|
Texto de ejemplo
|
Otro texto
|
563
|
Hola soy el cuarto
|
Y yo el 5
|
89798
|
Así cuando queramos ver los datos del array en la ubicación
numero 3 deberemos llamarlo así
ArrayDeEjemplo [3];
Y veremos el mensaje Hola soy el cuarto
Vamos a complicarlo un poco más, y a ver un array de 2
dimensiones, en el anterior veíamos una única balda con algunos huecos, en este
veremos una estantería con muchas baldas las cuales tienen muchos huecos, lo
declaramos:
Var ArrayDe2Dimensiones [3,4] Numero;
Hemos declarado un array de 4 baldas y 5 huecos cada una, lo
cual es algo parecido a esto:
0
|
1
|
2
|
3
|
4
|
|
0
|
3
|
5
|
56
|
48
|
76
|
1
|
20
|
90
|
150
|
70
|
80
|
2
|
35
|
20
|
15
|
32
|
14
|
3
|
98
|
63
|
57
|
41
|
01
|
Como vemos es una estantería, con varias baldas (filas) y
varios huecos (columnas), estoy seguro de que con este ejemplo os a resultado
fácil entenderlo.
Ahora me diréis ¿¿solo hay arrays de una y 2 dimensiones??
Pues no, hay arrays de tantas dimensiones como nuestra imaginación alcance,
pero los más comunes son los de 1 y los de 2 dimensiones, en juegos de 3
dimensiones, también se utilizan los de 3 dimensiones, pero poco, un array de 3
dimensiones estaría declarado con el siguiente código:
Var ArrayDe3Dimensiones [2, 2,2] texto;
Y podríamos imaginarlo como un cubo, es más, el array
anterior podría ser perfectamente el cubo de rubick
Con todas sus caras, cada una almacenaría un número,
correspondiente con un color, así los huecos s
ArrayDe3Dimensiones [0, 0,0] podría ser un 1, que
corresponde al amarillo
ArrayDe3Dimensiones [0, 1,0] podría ser un 2, que
corresponde al blanco
ArrayDe3Dimensiones [0, 0,1] podría ser un 3, que
corresponde al azul
…..
Un ejercicio de practica puede ser que hagáis un programa
que almacene en 2 huecos distintos el nombre y el apellido de vuestros vecinos(los
datos pueden ser ficticios) teniendo un vecino por balda
Recuerda que el mejor modo para la corrección es publicarlo como comentario debajo del ejercicio, así tú y todos tus compañeros podréis aprender y ayudaros los unos a los otros, pero estoy disponible en el email rogamainformatica@gmail.com
Tema 8 - Programación Orientada a Objetos POO
Tema 7 - Funciones
Tema 6 - Bucles Repetitivos
Tema 5 - Usando condicionales
Tema 4 - Arrays (Tema actual)
Tema 3 - Pensando con variables
Tema 2 - Pensando como Programadores
Tema 1 - ¿Que es la programacion?
domingo, 9 de junio de 2013
Proteger ataques de inyeccion SQL
Una buena costumbre es usar la siguiente orden en todos nuestros formularios
Escribiendo entre parentesis la variable a pasar en las consultas que hagamos, para así poder evitar ataques de inyección SQL en PHP
mysql_real_escape_string()
Escribiendo entre parentesis la variable a pasar en las consultas que hagamos, para así poder evitar ataques de inyección SQL en PHP
viernes, 7 de junio de 2013
Curso programación desde 0 - Tema 3 - Pensando con variables
En el tema anterior http://robertogascon.blogspot.com/2013/06/curso-programacion-desde-0-tema-2.html
vimos como empezar a pensar como programadores, en este tema avanzaremos un
poco más, vamos a ver algo que es imprescindible
en la programación las variables;
entendamos una variable, como una cajita, en la que vamos a guardar algo, mas
tarde llamando a esa cajita podremos
ver lo que tiene guardado, cambiarlo, e incluso eliminarlo.
Programando,
al usar una variable se guarda en
memoria del ordenador, suele ser RAM, por lo que en el momento que cierras el programa, o se apaga el
ordenador se pierde todo lo que este hay guardado, para hacerlo permanente
hay que meterlo en una base de datos, o crear un archivo con los valores, pero
es un tema avanzado que veremos mucho más adelante, ahora entendamos que es una
variable y su funcionamiento
En la vida real, si tu guardas algo en una caja, esa caja te
ocupara un espacio, en la
programación también es así, toda variable ocupa un espacio de memoria, por lo
es recomendable utilizar el menor número
posible, y lo más adecuadas, con esto último quiero decir que para guardar
un boli, nadie utilizaría una caja de 2 metros de largo, por 2 de ancho, por 2
de alto, programando debemos hacer algo parecido, casi todos los lenguajes
necesitan que se le diga el tipo de dato que va a guardar esa variable, aquí lo
vamos a simplificar en 3, cuando entremos en materia de programación los
veremos todos según el lenguaje con el que programemos, pero recordar que lo
que veamos aquí nos valdrá para cualquier lenguaje actual.
Así que vamos a clasificar las posibles variables, en:
- Texto
- Numero
- Verdadero/Falso
Sus nombres prácticamente lo dicen todo de ellas, aun así
una pequeña descripción:
·
Texto:
En una variable de tipo texto, comúnmente llamadas String podremos almacenar
cualquier tipo de texto, como podría
ser “Hola mundo” después cambiarlo, mostrarlo por pantalla o trabajar como mas
nos convenga, esto suele usarse para guardar el nombre del usuario, o los datos
que nos pueden teclear por pantalla, aunque en realidad sirven para guardarlo
casi todo, también podremos guardar “2348” y diréis, pero eso es un número, no
habría que guardarlo en la del tipo número?? Pues sí, y no quizás estas
desarrollando un videojuego y te interesa mostrar en pantalla la puntuación,
para ello lo mejor es sacar un mensaje “puntuación: ” al que le juntes la
puntuación, por lo que se convertiría en texto.
“Puntuación: 2348” tiene parte numérica y parte texto, pero se usa
como si solo fuera texto.
Otro ejemplo, quizás más claro seria si a
nuestro “2348” queremos no sumarle; si no ponerle un 0 mas eso con variables
tipo numéricas, deberíamos multiplicar por 10, es algo no muy complicado, pero,
y si queremos ponerlo un 11 al final? Es decir sacar el numero “234811” en
pantalla, ¿que operación habría que hacer para eso? Si juntamos 2 textos se
logra fácilmente.
Otro caso muy común que tiene, es guardar
los datos que vienen por la URL en aplicaciones web, siempre que se recoge un dato
es de tipo texto, si mas tarde necesitamos hacer una suma por ejemplo,
deberemos convertirlo a numero, ya que los
textos no pueden hacer operaciones matemáticas
Conclusión: una variable de tipo texto puede almacenar cualquier cosa, números,
textos… aunque no es recomendable usarla,
excepto en casos realmente necesarios, para
nada que no sea un texto, son el tipo de caja más grande.
·
Numero:
este tipo variable consume mucha menos memoria que las de tipo texto, y son las
encargadas de almacenar únicamente números,
con ellas podremos hacer operaciones matemáticas; sumar, multiplicar, restar, dividir y modulo son las más habituales; muchos diréis
las 4 primeras bien, ¿¿pero modulo?? No hay que asustarse, no es hora de
aprender nuevas operaciones matemáticas, en realidad ya la conocéis, el modulo
es simplemente el resto de una división.
Por ejemplo, si dividimos 5/2 nos dará como
resultado 2, con resto 1, ese resto es el modulo, por lo que modulo de 5/2 es
1, esto tiene infinidad de funcionalidades, pero una de las más comunes es ver
si un numero es par o impar.
·
Verdadero/Falso:
este tipo de variables es la más liviana que existe, ya que ocupa únicamente un
bit, si, ni siquiera un byte, y a pesar de lo pequeña que es no podríamos
desarrollar ningún programa sin ella, o seria un infierno, lo que almacena en
realidad es un 0, o un 1, lo que en nuestro idioma puede ser un sí o un no,
este tipo de variables comúnmente es llamado boolean, en nuestro programa del tema pasado, el de quitarnos la
sed, podríamos utilizarlo para comprobar
si tenemos el vaso en la mano, y que cuando lo tengamos cogido, lo
dejemos en lugar seguro antes de coger también la botella, aunque, aquí estamos
metiendo condiciones, y no quiero adelantarme, eso lo veremos en el siguiente
tema.
Vamos a ver un par de ejemplos de programas
sencillos en los que usemos variables; por cierto, esto que hacemos de escribir
los programas aunque sea de un modo básico en nuestro lenguaje, se llama
pseudocódigo, es un paso entre medias de nuestro lenguaje y el del ordenador,
lo que estamos escribiendo no cumple las “reglas” de pseudocódigo, pero este es
un curso de programación no de pseudocódigo, solo os voy a enseñar a gatear, no
a que ganéis carreras gateando, al fin y al cabo todos queremos correr y no
quedarnos a cuatro patas, así que es interesante que lo conozcáis, para ir
acostumbrándoos y cogiendo ritmo a lo que va a venir después, pero no necesitáis
dominarlo, de hecho llevo años programando y no he conocido aun a nadie que
utilice el pseudocódigo, aunque también sirve de ayuda, cuando estas atascado y
no sabes por dónde tirar, escribírtelo en una “servilleta” para después
transformarlo a código.
Un ejemplo de lo visto seria:
Un programa que nos muestre la tabla del 3 y
al resultado le sume 2;
Var numero Numero; //declaro la variable
Numero = 3*1; // multiplico 3 x 1
Numero = Numero + 2; // le sumo 2 al valor
que tiene numero guardado
Muestro Numero;
Numero = 3*2;
Numero = Numero + 2;
Muestro Numero;
Numero = 3*3;
Numero = Numero + 2;
Muestro Numero;
Numero = 3*4;
Numero = Numero + 2;
Muestro Numero;
……….
……..
……
No vamos a seguir con el ejemplo hasta el
final ya que veis que se repite todo una y otra vez solo cambiamos el número
que multiplica, y se haría muy largo este programa; más tarde veremos cómo
simplificar programas de este tipo que se repiten una y otra vez lo mismo, o
con un pequeño cambio.
Podéis ver en el ejemplo superior un par de
cosillas nuevas, y es que al lado de las 3 primeras líneas he escrito:
//* Un comentario*
Este es el modo de comentar el código en pseudocódigo, algunos lenguajes de
programación también utilizan esta simbología.
Los
comentarios son algo muy importante en programación, se pueden hacer en
nuestro idioma, y podemos poner tantos como queramos, no existe ninguna regla ni norma que impida ponerlos, ni tampoco que nos obligue, pero son
recomendables, por una sencilla razón, a la que haces un programa de unos
cientos de líneas, si no tienes comentarios, es complicado saber que parte del
código hace que.
Aun así, si has sido tú el que lo ha
programado, seguramente en cuanto lo veas te suene y sepas donde buscar, para
modificar algo, o reparar un bug, pero si estas en un equipo, y alguien coge tu
código, seguramente no sabrá ni por dónde empezar, lo mismo sucederá si te toca
coger el código de otra persona, por eso mismo es una buena costumbre comentar
nuestro código, los comentarios son
ignorados por el ordenador por lo que no afectan al rendimiento, pero si
comentas cada línea de código se volverá un poco pesado a la hora de leerlo y
buscar una parte en concreto, lo suyo es comentar
solamente aquellas partes que son tan complejas que de un vistazo no se sabe
que hacen, si buscáis sobre este tema en internet, encontrareis mucha
polémica, y la verdad es que el mejor
comentario, es el que no necesita escribirse, con esto quiero decir que si
tu código es sencillo, claro, esta indentado (en España lo solemos llamar
tabulado, veremos cómo tabular el código en el siguiente tema); y demás no será
necesario comentarlo, excepto en funciones complejas.
Otro ejemplo seria un programa que le pida
al usuario su nombre, y apellidos por separado, y después le muestre su nombre
completo
Var Nombre, Apellido, Apellido2 Texto; //declaro 3 variables a la vez
Muestro “Introduce tu nombre”;
Nombre = TextoIntroducido;
Muestro “Introduce tu apellido”;
Apellido = TextoIntroducido;
Muestro “Introduce tu Segundo Apellido”;
Apellido2 = TextoIntroducido;
Muestro “tu nombre es: “+ Nombre + “ “+
Apellido + “ “+ Apellido2;
Como veis cada vez que quiero mostrar un
texto que no está almacenado en ninguna variable lo escribo entre “” es el modo habitual de escribir
los textos, para no confundirlo con posibles variables o funciones después
concateno (junto) el texto que escribo yo, con la variable Nombre utilizando el
símbolo de + pero no sumo nada, solo
junto los textos, recordemos que los
textos no pueden sumarse, solo juntarse;
a su vez le sumo un espacio en blanco, y a este le sumo el primer apellido;
etc.
Como ejercicio estaría bien que hicierais
un programa que pida el nombre de 3 usuarios, uno detrás de otro, a la que
tienes los 3 nombres; les haces 3 preguntas a cada uno; pero estas preguntas
deben ser personalizadas; con esto quiero decir que debes preguntar algo al
estilo: Cuál es tu edad pepe? Una vez la conteste, pasar al siguiente usuario:
Cuál es tu edad Juan? Y así las 3 preguntas para los 3 usuarios, termina el
programa sumando las 3 edades, y mostrándolo por pantalla.
Recuerda que el mejor modo para la corrección
es publicarlo como comentario debajo del ejercicio, así tú y todos tus
compañeros podréis aprender y ayudaros los unos a los otros, pero estoy
disponible en el email rogamainformatica@gmail.com
Tema 8 - Programación Orientada a Objetos POO
Tema 7 - Funciones
Tema 6 - Bucles Repetitivos
Tema 5 - Usando condicionales
Tema 4 - Arrays
Tema 3 - Pensando con variables (Tema actual)
Tema 2 - Pensando como Programadores
Tema 1 - ¿Que es la programacion?
Tema 8 - Programación Orientada a Objetos POO
Tema 7 - Funciones
Tema 6 - Bucles Repetitivos
Tema 5 - Usando condicionales
Tema 4 - Arrays
Tema 3 - Pensando con variables (Tema actual)
Tema 2 - Pensando como Programadores
Tema 1 - ¿Que es la programacion?
jueves, 6 de junio de 2013
Acceder a la carpeta Config en Symfony 2
Hoy he tenido un gran comedero de cabeza, estoy usando una API externa a Symfony, la cual requiere un archivo de configuración, la forma mas sencilla de usarlo es copiar y editar ese archivo de configuración en la carpeta Vendor del mismo, pero como sabemos los vendor se instalan y actualizan por separado, así que eso para hacer pruebas esta genial, pero no para trabajar, así que e pensado que lo mas correcto seria almacenar ese archivo de configuración dentro de la carpeta app/config de Symfony, el problema me lo he encontrado al decirle al controlador donde estaba ese archivo.
En symfony (1) tenemos la orden: sfConfig::get('sf_app_config_dir')
Pero en Symfony2 no existe así que debemos decírselo a mano, por lo que el siguiente código podría decirse que es su equivalente; una vez sepamos como es muy sencillo, pero no hay demasiada información en la red, así que aquí os lo dejo, y espero que os resulte de gran utilidad, como a mi cuando hoy he dado con ello.
$ConfigFile = $this->get('kernel')->getRootDir() . '/config';
En symfony (1) tenemos la orden: sfConfig::get('sf_app_config_dir')
Pero en Symfony2 no existe así que debemos decírselo a mano, por lo que el siguiente código podría decirse que es su equivalente; una vez sepamos como es muy sencillo, pero no hay demasiada información en la red, así que aquí os lo dejo, y espero que os resulte de gran utilidad, como a mi cuando hoy he dado con ello.
$ConfigFile = $this->get('kernel')->getRootDir() . '/config';
Aumentar / Disminuir Fuente en NetBeans
Una pregunta muy común en la red, es la de como aumentar o disminuir la el tamaño de la fuente en NetBeans; esto es tan sencillo como mantener pulsada la tecla Alt y a la vez girar la rueda del ratón
Probado en NetBeans 7.2 , 7.4 y 8
Espero os sirva de ayuda ;)
Probado en NetBeans 7.2 , 7.4 y 8
Espero os sirva de ayuda ;)
martes, 4 de junio de 2013
Curso programación desde 0 - Tema 2 - Pensando como programadores
Vamos a ir entrando un poquito en materia, ahora que ya
Vimos en el tema anterior http://robertogascon.blogspot.com/2013/05/curso-programacion-desde-0-tema-1-que.html que es la programación y algunas características generales, como la
programación a bajo y a alto nivel, también hemos visto algunas características
de los lenguajes más utilizados hoy día, y en que entorno se pueden usar.
Ahora podremos hacer
2 cosas, escoger un lenguaje de
programación, algún manual, curso o tutorial, y empezar a aprenderlo, esto
puede parecer lo más lógico, e incluso puede que lo más rápido, pero es aquí en donde fracasa la mayoría de la
gente que intenta empezar a programar sin nociones previas; al que de verdad a
nacido para esto, lo vive y pone todo el empeño en ello lo acaba logrando, pero
después de sudar mucha sangre y horas y horas, para entender por un lado los
ejemplos, por otro el lenguaje que haya elegido, y por último el IDE (un IDE es
un entorno de desarrollo, que nos ayudara en la tarea de programación, mas
adelante veremos cómo, y cuáles son los más populares para según qué lenguaje).
Es decir si elegimos ahora aprender un lenguaje, deberemos
aprender a usar un programa para ello, los cuales normalmente son inmensos,
aunque los hay muy ligeros, el lenguaje que elijamos y la lógica de
programación, esto viene siendo como si al poco de nacer quisiéramos decir nuestra
primera palabra, en 2 idiomas, y andar a la vez, todo ello sin gatear, ni
balbucear, tarea casi imposible.
La otra opción que
tenemos es ir por partes; eso es lo que vamos a hacer en este curso,
poquito a poco, sin prisas, y cada uno a su ritmo.
En este tema, os voy
a enseñar a pensar como programadores, lo cual aunque no es muy complejo,
si necesita de un previo aprendizaje, y por supuesto, vamos a hacerlo en castellano, que es nuestro idioma.
Lo primero, es, vamos a pensar como programadores, pero
¿como? Pues como vimos en el anterior tema la programación consiste en resolver problemas, así que vamos con un
problema de lo más cotidiano, tenemos sed:
Muchos diréis, pues bebemos, y eso como respuesta final, no está
mal, pero recordemos que los ordenadores son tontos, solo cumplen ordenes, ¿si nosotros fuéramos un ordenador que orden
nos tendrían que dar, para quitarnos la sed?
Si quisiéramos hacer un programa para resolver el problema de cuando tenemos sed, tendríamos que teclear paso a paso, por
lo que un ejemplo de programa que resuelva tener sed puede ser algo así:
Sentimos sed;
Nos levantamos;
Vamos hasta la cocina;
Abrimos la vitrina;
Cogemos un vaso,
Vamos hasta la nevera;
Cogemos la botella de agua (o líquido a nuestro gusto);
Cerramos la nevera;
Abrimos la botella;
Llenamos el vaso;
Cerramos la botella;
Volvemos hasta la nevera;
La abrimos;
Guardamos la botella;
Cerramos la nevera
Volvemos hasta el vaso;
Bebemos;
Como podemos ver una tarea
cotidiana a la hora de hacerla un programa se ha convertido en algo complejo,
largo y algo tedioso, este programa para beber en realidad esta simplificado, y
tiene un fallo, hemos cogido el vaso, la botella, y abierto el frigorífico,
todo ello sin soltar el vaso, ay dependerá de la habilidad de cada uno, pero
existen muchas posibilidades de que se nos caiga el vaso, o de lo que es lo
mismo en programación, un bug, ya que cuando intentemos llenar el vaso, no va a
existir, y el ordenador no sabrá donde echar el agua, pero esto es materia un
poco más avanzada; de momento vamos a dejar aquí nuestro programa para beber, y
voy a explicar de nuevo lo mismo con otro ejemplo:
Esta vez, estamos en casa, y tenemos que salir y coger el coche, para ir hasta el
súper a hacer la compra.
Nos levantamos;
Buscamos las llaves;
Vamos hasta la puerta;
La abrimos;
Salimos;
La cerramos;
Vamos hasta la calle;
Buscamos el coche;
Lo abrimos;
Nos montamos;
Lo cerramos
Metemos la llave en el contacto;
La giramos para arrancar;
Salimos del aparcamiento (Utilizando los pedales de la manera
necesaria);
Conducimos hasta el súper;
Aparcamos;
Paramos el motor;
Abrimos la puerta;
Nos bajamos;
Cerramos el coche;
Caminamos hasta el súper;
Compramos;
Os recomiendo leer un par de veces ambos ejemplos para
terminar de entenderlo bien, no es algo demasiado difícil, pero es importante
entenderlo bien para seguir entrando en materia.
Algunos ejercicios
para practicar pueden ser:
-Hacer un programa para poner nuestra emisora favorita de
música.
-Un programa que nos saque de la cama cada mañana para ir al
trabajo.
Recuerda que el mejor modo para la correccion es publicarlo como comentario debajo del ejercicio, asi tu y todos tus compañeros podeis aprender y ayudaros los unos a los otros, pero estoy disponible en el email rogamainformatica@gmail.com
Resto de temas
Tema 8 - Programación Orientada a Objetos POO
Tema 7 - Funciones
Tema 6 - Bucles Repetitivos
Tema 5 - Usando condicionales
Tema 4 - Arrays
Tema 3 - Pensando con variables
Tema 2 - Pensando como Programadores (Tema actual)
Tema 1 - ¿Que es la programacion?
Suscribirse a:
Entradas (Atom)