Curso de programación para principiantes

08/07/2021 · Actualizado: 02/03/2022

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

En este artículo voy a hacer un curso de programación totalmente gratis orientado a aquellos principiantes en este mundillo que quieran empezar a programar de forma autodidacta.

Para ello, voy a explicaros como se podrían implementar algoritmos sencillos mediante el uso de las sentencias más comunes. Los ejemplos se pondrán en forma de pseudocódigo para que se puedan extrapolar a cualquier lenguaje de programación.

Así que ¡vamos a ello!

Índice
  1. Introducción al curso de programación para principiantes
    1. ¿Qué es la programación?
  2. Manejo de datos en la programación
    1. Clasificación de los tipos de datos
  3. Sentencias condicionales en la programación
    1. Expresiones booleanas simples
    2. Comparaciones de valores booleanos en programación
    3. Anidamiento de sentencias IF
  4. Sentencias repetitivas en programación
    1. Bucle FOR en programación
    2. Bucle WHILE en programación
  5. Creación de funciones y procedimientos en programación
    1. Diferencia entre funciones y procedimientos en la programación
    2. Paso de parámetros por valor y por referencia
    3. Visibilidad y ámbito en programación
  6. Estructura ideal de un programa informático

Introducción al curso de programación para principiantes

A lo largo del curso voy a contaros los conceptos más básicos, de forma general, que se pueden aplicar a una gran variedad de lenguajes de programación.

¿Qué es la programación?

La programación es la implementación o creación de programas computacionales que sirven para crear aplicaciones informáticas, como las que usamos cada día. Para ello, se utilizan los diferentes lenguajes de programación que se adaptan a las necesidades de cada tipo de programa.

Normalmente, a la hora de programar buscamos solucionar un problema concreto mediante el uso de un programa informático. Para poder llevar a cabo este proceso es necesario parametrizar la información en diferentes tipos de datos que el ordenador es capaz de comprender.

Con estos tipos de datos, podemos aplicar diferentes sentencias que nos permiten operar con ellos y finalmente solucionar el problema que tengamos. Para eso, tendremos que pensar en un algoritmo que nos lleve a la solución que buscamos.

Un algoritmo es una serie de operaciones y sentencias que aplicamos sobre los datos con la finalidad de obtener resultados que satisfagan un problema concreto. A la hora de programar, por lo general, necesitaremos pensar en diferentes algoritmos, o conocer los que estén implementados y nos ayuden con nuestro trabajo.

Para programar un algoritmo, por lo general, vamos a necesitar utilizar unos datos concretos que almacenaremos en variables. Operaremos con estas variables utilizando sentencias condicionales y bucles, entre otros. A lo largo de los próximos apartados en este artículo os voy enseñando cada uno de estos elementos.

Manejo de datos en la programación

El concepto de dato en cualquier lenguaje de programación puede ser entendido como una abstracción del mundo real, necesaria para representar la información que posteriormente procesará nuestro programa. Estos datos, son una parametrización necesaria para el problema en cuestión y deben expresarse de forma que sean procesables en un ordenador.

Por ese motivo, tendremos que declararlos especificando de forma correcta como debe interpretarlo el ordenador. Para eso, en programación existen diferentes tipos de datos y nosotros debemos adecuar nuestra información a dichos tipos de datos.

Es importante resaltar que los tipos de datos existentes nos permiten guardar información en un formato concreto, pero el computador no lo interpreta, somos nosotros los que operaremos con esos datos para conseguir lo que nos interese.

Clasificación de los tipos de datos

Podemos clasificar los tipos de datos en simples, estructurados y definidos por el programador. Entendemos por tipos de datos simples aquellos que nos proporciona el lenguaje de programación y que representan datos atómicos, con los que realizar operaciones sencillas.

Curso de programación gratis para principiantes

Ejemplos de datos simples son las variables numéricas enteras o reales, que permiten almacenar un valor numérico; o caracteres, cadenas de caracteres o datos lógicos. 

Por otra parte, los tipos datos estructurados cubren la necesidad de representar la información de diferentes maneras que faciliten la tarea del programador, por ejemplo: listas, vectores, matrices y diferentes arrays de datos, entre otros.

Además, como un ordenador es una máquina de propósito general y en el momento en el que se diseña no se sabe realmente como se va a utilizar, los lenguajes de programación permiten crear tipos de datos especificados por el programador. De esta forma, la manera de manejar los datos se realiza de una manera específica se adecua más al problema en cuestión.

Ahora que hemos visto la clasificación de los diferentes tipos de datos, vamos a ver cuales son los que suelen compartir los diferentes lenguajes de programación más utilizados.

Además de esto, es importante remarcar que cualquier dato, casi independientemente de su tipo puede ser constante o variable. Si estamos ante un tipo de dato constante, este el valor del dato se mantiene durante toda la ejecución del programa; mientras que un dato variable puede cambiar a lo largo de la ejecución.

Asimismo, también existen variables locales y globales. Más adelante a lo largo de este curso entraremos más en detalle en este tema.

Tipos de datos Simples

Datos numéricos

Los datos numéricos nos permiten almacenar, generalmente, dos tipos de datos diferentes: los números enteros, en variables de tipo entero; y los números reales, en variables de tipo flotante.

Esta distinción se hace porque si únicamente necesitamos operar con números enteros, no es necesario utilizar el tipo flotante, que necesita más uso de memoria que el tipo entero. Además, las operaciones entre enteros y reales normalmente no está permitida, deben convertirse los valores a uno de los dos tipos.

Ejemplo tipo entero

num_entero = 5

num_entero = num_entero x 4 # num_entero = 20

Ejemplo tipo flotante

num_flotante = 5.0

num_flotante = num_flotante x 4.0 # num_flotante = 20.0

Datos alfanuméricos

Si lo que queremos es guardar un valor en formato texto, necesitaremos utilizar los datos de tipo alfanumérico. Existen muchas variedades según el lenguaje de programación que utilicemos, pero es interesante que resaltemos los más básicos y repetidos en los diferentes lenguajes: el tipo String y el tipo char.

Puede que según el lenguaje de programación en el que te enfoques a aprender se utilicen más tipos de datos alfanuméricos que estos dos, o incluso puede que ambos estén unidos. El tipo char hace referencia a un único carácter de texto, mientras que el tipo string es una secuencia o cadena de caracteres.

Con estas dos diferentes formas de representar los valores alfanuméricos se pueden almacenar datos de tipo texto, con los que podamos operar en nuestro programa. Normalmente, con este tipo de dato se pueden representar los caracteres que podemos encontrar en los estándares ASCII o Unicode.

Curso gratis de programación para principiantes
Carácteres especificados en ASCII y sus códigos de uso. Fuente: wikipedia

Este tipo de dato suele representarse entre comillas o comillas simples. Por lo general, usamos comillas simples para el tipo char y comillas normales para el tipo String. Por ejemplo:

Ejemplo

«Esto es un ejemplo de tipo de dato String» ➤ Es un String entre comillas.

‘A’ ➤ Es un char.

Datos lógicos

Los datos lógicos o booleanos (nombrados así por el conocido álgebra de Boole) nos permiten representar el tipo de valor binario: verdadero y falso.

Ejemplo datos lógicos

booleana1 = verdadero

booleana2 = falso

booleana3 = booleana1 AND booleana2 # booleana3 es falso

Datos estructurados

En este caso nos encontramos ante un tipo de dato más complejo, pensado para crear estructuras más completas donde se pueden almacenar varios elementos que, por lo general, comparten tipo de dato. Los tipos más utilizados en este caso son vectores, matrices, arrays y listas.

Los vectores, arrays y listas son bastante similares, se tratan de un conjunto de elementos que se almacenan de forma consecutiva y que tienen el mismo tipo. Un ejemplo puede ser la sucesión de los cinco primeros números primos:

Ejemplo

[2,3,5,7,11] ➤ donde los números están en formato entero.

[«2″,»3″,»5″,»7″,»11»] ➤ donde los números están en formato alfanumérico.

Aquí vemos dos ejemplos de como estructurar datos de forma secuencial. La diferencia principal entre listas, vectores y arrays suele ser concreta para cada lenguaje de programación y tienen diferentes operaciones asociadas que los hacen más óptimos o menos óptimos para un problema concreto.

Por otra parte, las matrices tienen un significado similar al que podemos encontrar en su representación matemática, y de forma más simplificada se entiende como una lista de listas. Quizá es complejo de entender así que pongo un ejemplo, donde representaremos los primeros 25 números enteros, en 5 filas y 5 columnas:

Ejemplo de matriz

[[1, 2, 3, 4, 5],

[6, 7, 8, 9, 10],

[11,12,13,14,15],

[16,17,18,19,20],

[21,22,23,24,25]]

Si nos paramos a ver detenidamente, las listas se definen mediante []. Si no tenemos ningún elemento dentro, se trata de una lista vacía. Una matriz tiene N elementos dentro de cada posición de la lista pero es importante remarcar que todos estos elementos tienen que tener el mismo tamaño que el resto. Veamos un ejemplo:

Ejemplo de matriz correcta

[[1, 2, 3, 4, 5],

[6, 7, 8, 9, 10]]

Ejemplo de matriz incorrecta

[[1, 2, 3, 4, 5],

[6, 7, 8, 9, 10, 11, 12, 13],

[21,23,24]]

Datos definidos por el programador

En general, cualquier lenguaje de programación cuenta con una gran variedad de diferentes tipos de datos simples y algunos datos estructurados que nos permiten manejar varios de estos datos simples de forma más cómoda. Sin embargo, en ocasiones no es posible realizar nuestros programas sólo con los tipos de datos que nos proporciona el lenguaje qué utilicemos.

Por ese motivo, es posible que a veces el programador deba generar sus propios tipos de datos, basándose en los ya existentes, claro. Se trata de algo así como generar sus propios tipos de datos estructurados. Veamos un ejemplo para ilustrar mejor este punto.

Supongamos que queremos hacer un videojuego, dónde hay varios personajes NPC, y queremos que todos ellos compartan ciertos atributos. Para ello, no podríamos hacer una única variable que almacene todo. Tampoco sería posible utilizar un tipo de dato estructurado, ya que todos los valores almacenados deberían compartir tipo en ese caso.

Imaginemos que queremos que para ese elemento que queremos parametrizar (el personaje NPC), lo que nos interesa es guardar el nombre del personaje (String), su vida (valor numérico flotante), su nivel (valor entero) y si es un NPC amigo o enemigo (valor booleano). Para ello, una opción puede ser especificar cada una de las variables, pero realmente si tenemos más de un NPC, llegará un punto en el que no sea nada manejable.

Por ese motivo, lo ideal es crear un nuevo tipo de dato, que podríamos llamar NPC. En este tipo de dato se podrían especificar los diferentes parámetros que acabo de comentar, siendo algo tal que así (en pseudocódigo):

Tipo NPC especificado

{‘nombre’: «Enemigo_1»,

 ‘vida’: 98.6,

 ‘nivel’: 47,

 ‘amigo’: False}

Gracias a este tipo de estructuras que se pueden generar en la programación, las posibilidades son prácticamente infinitas a la hora de especificar los datos que necesitamos en nuestros programas.

Sentencias condicionales en la programación

Ahora que ya sabemos los tipos de datos que podemos utilizar a la hora de programar, es importante saber cómo podemos operar con ellos. Hay que remarcar que los datos que almacenamos son sólo eso, datos. No van a hacer nada por si solos, y somos nosotros quienes debemos idear un algoritmo utilizando esos datos.

Para ello, tenemos diferentes tipos de sentencias y funciones que podemos utilizar para trabajar con dichos datos. Una de las más sencillas y utilizadas son las de tipo condicional.

Una sentencia condicional tiene la siguiente estructura:

Sentencia condicional

IF (Valor_booleano) THEN:

    ACCIÓN_SI_VERDADERO

ELSE:

    ACCIÓN_SI_FALSO

Si vemos el ejemplo, podemos ver que sigue una estructura IF-THEN-ELSE, donde en la primera parte de la sentencia (IF) hacemos una comprobación lógica y posteriormente, hacemos una acción (después del THEN) si la sentencia lógica es verdadera, u otra acción (ELSE) si la sentencia lógica es falsa.

Por ejemplo, sigamos con el tipo de dato NPC, vamos a completar un poco más la información del NPC añadiendo más información al tipo de dato. Además, vamos a crear un tipo de dato que represente al personaje principal o héroe del juego.

Tipo NPC y tipo personaje principal

{‘nombre’: «Enemigo_1»,

 ‘vida’: 98.6,

 ‘nivel’: 47,

 ‘valor_ataque’: 10,

 ‘amigo’: False}

{‘nombre’: «Héroe»,

 ‘vida’: 100.0,

 ‘nivel’: 47,

 ‘valor_ataque’: 13,

 }

Por supuesto, en una situación real, en estas especificaciones habría muchísima más información, pero para poner un ejemplo sencillo de programación, nos va a servir. Vamos a implementar una parte del código donde se manejaría el comportamiento del NPC. Supongamos que el personaje "Héroe" y el NPC "Enemigo_1" se encuentran cerca, y se activa la llamada al código siguiente.

Código de programación de ataque de NPC

IF enemigo[‘amigo’] THEN:

    NO HACER NADA

ELSE:

    ATACAR A PERSONAJE «HEROE»

En este ejemplo de programación, el enemigo comprueba en su información interna si su tipo amigo es verdadero o falso. En caso de que se trate de un NPC amigo, no hará nada al estar cerca del personaje héroe, pero si es un NPC enemigo (amigo en valor falso), atacará al personaje héroe.

Con este tipo de estructuras IF-THEN-ELSE se pueden implementar una gran cantidad de comprobaciones y comportamientos en nuestros programas computacionales.

Expresiones booleanas simples

A la hora de utilizar la sentencia condicional, podemos comprobar el valor que tiene una variable booleana o podemos incluir una expresión booleana. Una expresión booleana es aquella en la que se realiza una comparación que da como resultado el valor verdadero o el valor falso. Las expresiones booleanas pueden ser utilizadas sobre los tipos de datos simples, siempre y cuando se cumpla la condición de que de vuelvan un valor lógico o booleano.

A continuación, voy a mostrar un ejemplo por cada uno de los operadores que nos permiten generar expresiones booleanas simples:

Expresiones booleanas simples

A) 5 < 4 ➤ FALSO, 5 no es menor que 4

B) 5 > 4 ➤ VERDADERO, 5 es mayor que 4

C) 5 = 4 ➤ FALSO, 5 no es igual que 4

D) 5 4 ➤ FALSO, 5 no es menor o igual que 4

E) 5 4 ➤ VERDADERO, 5 es mayor o igual que 4

F) 5 4 ➤ VERDADERO, 5 es diferente a 4

Comparaciones de valores booleanos en programación

Además de poder formar expresiones booleanas con variables que no sean de tipo lógicas, se pueden aplicar varias expresiones lógicas consecutivas. Para ello se pueden utilizar los operadores booleanos OR y AND. Es posible comparar todo tipo de expresiones lógicas con estos operadores, ya sea con valores booleanos o con expresiones lógicas creadas a partir de tipos de datos simples. A continuación pongo algunos ejemplos:

Comparación de expresiones booleanas

A) VERDADERO AND VERDADERO ➤ VERDADERO

B) VERDADERO AND FALSO ➤ FALSO

C) FALSO AND FALSO ➤ FALSO

D) VERDADERO OR VERDADERO ➤ VERDADERO

E) VERDADERO OR FALSO ➤ VERDADERO

F) FALSO OR FALSO ➤ FALSO

G) (VERDADERO AND FALSO) OR FALSO ➤ FALSO OR FALSO ➤ FALSO

H) (VERDADERO OR FALSO) AND VERDADERO ➤ VERDADERO AND VERDADERO ➤ VERDADERO

Anidamiento de sentencias IF

Si quisiéramos aplicar una serie de filtros sobre un conjunto de datos, podríamos aplicar IFs anidados. La idea tras esta técnica es hacer pequeñas comprobaciones en cada uno de los IF que están contenidos uno dentro del otro. Vamos a escribirlo en pseudocódigo para que podáis ver esto más claro, así como un organigrama que expone el flujo de datos del programa:

IF's Anidados

IF condición_1 THEN:

    IF condición_2 THEN:

        IF condición_3 THEN:

            Bloque_sentencias_1

        ELSE:

            Bloque_sentencias_2

    ELSE:

        Bloque_sentencias_3

ELSE:

    Bloque_sentencias_4

Curso programación para principiantes gratis
Organigrama de los flujos de datos descritos en el pseudocódigo anterior.

Sin embargo, esta no es la única manera de aplicar el anidamiento de los IFs. Se pueden aplicar justo al revés también, aplicando el bloque de sentencias en el caso de que la condición sea verdadera en y el siguiente IF anidado en la condición falsa. Sería de la siguiente manera:

IF's Anidados

IF condición_1 THEN:

    Bloque_sentencias_1

ELSE:

    IF condición_2 THEN:

        Bloque_sentencias_2

    ELSE:

        IF condición_3 THEN:

            Bloque_sentencias_3

        ELSE:

            Bloque_sentencias_4  

Curso de programación para principiantes gratis
Organigrama del flujo de datos del pseudocódigo anterior.

Según el problema que tengamos frente a nosotros puede interesarnos más la aplicación de IFs anidados de una manera o de otra. También existen lenguajes de programación donde implementan cláusulas que incluyen este comportamiento, como puede ser la cláusula "CASE", donde se expone cada uno de los casos posibles (o condición) y se aplica el bloque de sentencias que se tengan que aplicar en cada uno de los casos.

Sentencias repetitivas en programación

Uno de los mecanismos más básicos en la programación es el uso de sentencias repetitivas o bucles. Este tipo de mecanismos permiten repetir el mismo comportamiento un número definido o indefinido de veces.

Normalmente, todos los lenguajes de programación cuentan con dos sentencias repetitivas básicas: el bucle FOR y el bucle WHILE. A continuación vamos a verlas detenidamente y poner ejemplos para cada una de estas sentencias de programación.

Bucle FOR en programación

El bucle FOR se utiliza en los casos en los cuales sabemos cuál es el número de veces que queremos que se repitan las sentencias de código que se incluyen dentro del bucle.

Por ejemplo, supongamos que tenemos una lista donde se almacenan los nombres de los alumnos de una clase. En este caso, como tenemos la lista sabemos el tamaño de la misma, y por ende sabemos cuál es el número de alumnos, por tanto utilizaríamos un bucle FOR. Veamos el ejemplo ilustrado:

bucle FOR en programación

FOR (posición_lista=0, posición_lista < tamaño_lista, posición_lista+1) DO:

    Escribir_nombre_alumno_de[posición_lista]

Es probable que esto os parezca más complicado de lo que es. El bucle FOR tiene en su cabecera tres pequeñas sentencias que definen su comportamiento: la primera es la inicialización de la variable sobre la que vamos a iterar (la que va a ir cambiando su valor), que en este caso empieza en 0.

La segunda sentencia es la condición de continuidad del bucle FOR, es decir, mientras la variable llamada posición_lista sea menor que el tamaño de la lista, se sigue iterando. Por último, la tercera sentencia de la cabecera es la manera de incrementar el valor de la variable posición_lista, en este caso, sumando 1 en cada iteración.

Esta estructura nos sirve para iterar un número fijo de veces, algo que muchas veces es suficiente cuando estamos programando.

Bucle WHILE en programación

Sin embargo, hay veces que tenemos que iterar sobre algunas sentencias de código un número de veces inicialmente indefinido. Esto no podríamos implementarlo en nuestros programas utilizando el bucle FOR, por eso tenemos el bucle WHILE.

Como su propio nombre indica, el bucle WHILE se ejecuta MIENTRAS se cumpla la condición especificada en la cabecera del bucle. Pongamos un ejemplo para ilustrar esta sentencia repetitiva.

Supongamos que queremos calcular el factorial de un número de forma genérica. No sabemos cual es el número, así que por tanto no sabremos cuántas veces tendremos que realizar la multiplicación.

Recordemos que el factorial de un número N, se expresa como N! y se calcula como N! = N x N-1 x N-2 .... hasta que N = 1. Por ejemplo, el factorial de 3 es 3 x 2 x 1 = 6.

Dicho esto, vamos a ver como implementaríamos este comportamiento en nuestro programa:

bucle WHILE en programación

Factorial_N = 1  # valor inicial

WHILE (N ≥ 1) DO:

    Factorial_N = Factorial_N x N

    N = N – 1

Con este tipo de bucles, podemos hacer repeticiones utilizando solo una condición. Pero incluso se pueden hacer bucles infinitos, así que debemos tener cuidado con eso, es muy importante actualizar la variable que está incluida en la condición del WHILE. Si un bucle se queda ejecutándose infinitamente puede pausar todas las tareas que está realizando nuestro ordenador.

Pero también podemos utilizar eso a "nuestro favor" y programar comportamientos que se aprovechen de un bucle infinito, como por ejemplo un cronómetro. Podemos hacer algo como esto:

Cronómetro utilizando bucle WHILE en programación

WHILE (VERDADERO) DO:

    Esperar(1seg)

    Escribir(«Ha pasado un segundo»)

Pero, ¿Este comportamiento no va a paralizar nuestro ordenador? En realidad hay funciones implementadas en librerías de todos los lenguajes de programación al uso, donde podemos especificar que espere un segundo. Ese tiempo de espera, el ordenador no está utilizando los recursos en nuestro programa, ya que el programa "libera al ordenador" de la carga computacional que supone el programa durante ese segundo.

Creación de funciones y procedimientos en programación

A lo largo de este Curso de programación para principiantes he ido mencionando que existen funciones y librerías que incluyen funciones. No he querido comentar mucho más de este tema hasta ahora, que es cuando creo que tenemos todos los conceptos necesarios explicados antes de meternos en este tema.

Cuando estamos programando y nuestras líneas de código empiezan a crecer y crecer, es normal que todo se vuelva muy caótico si no hay organización. Por eso, suelen implementarse funciones concretas que tengan un nombre descriptivo y que incluyan pequeñas partes del comportamiento de un programa.

Por ejemplo, cuando especificamos anteriormente el bucle WHILE donde calculamos el factorial de un número, lo más lógico es incluirlo en una función por varios motivos:

  • Se trata de un comportamiento concreto que sirve para un fin. En este caso, el cálculo del factorial de un número dado.
  • Son unas líneas de código que perfectamente pueden ser encapsuladas como un comportamiento específico.
  • Es probable que se trate de una funcionalidad que queremos utilizar más de una vez, por tanto es mejor tener una función creada y hacer una llamada a esa función cada vez que necesitemos utilizarla en lugar de implementar varias veces las mismas líneas de código.

Por esos motivos, entre otros, es de gran utilidad añadir en nuestros programas funciones y procedimientos. Además, es necesario destacar que en todos los lenguajes de programación existen librerías donde están implementadas las funciones más básicas y más utilizadas.

Diferencia entre funciones y procedimientos en la programación

La diferencia principal entre las funciones y los procedimientos es si éstos devuelven algún valor o no. En caso afirmativo, se trata de una función, y de forma general debemos especificar el tipo del valor que vamos a devolver.

En caso contrario, se trata de un procedimiento y en algunas ocasiones hay que especificar que devuelve un valor vacío, dependiendo del lenguaje de programación.

Vamos a poner un par de ejemplos, uno de una función y otro de un procedimiento, en base a lo que ya hemos ido viendo a lo largo del curso de programación.

Cálculo del Factorial de un número utilizando funciones de programación

FUNCIÓN función_factorial(número_entero) -> Entero:

    Factorial_N = 1  # valor inicial

    WHILE (N ≥ 1) DO:

        Factorial_N = Factorial_N x N

        N = N – 1

    Devolver N

FIN_FUNCIÓN

Cronómetro en formato procedimiento

PROCEDIMIENTO Cronómetro():

    WHILE (VERDADERO) DO:

        Esperar(1seg)

        Escribir(«Ha pasado un segundo»)

FIN_PROCEDIMIENTO

Paso de parámetros por valor y por referencia

Los parámetros son las variables que les pasamos a las funciones y procedimientos. Estos pueden ser de dos tipos: pasados por valor y por referencia. A efectos generales, la variable que se pase a una función como parámetro por valor no se va a modificar, ya que se le pasa una copia del valor que tiene la variable.

Por el contrario, si pasamos a una función un parámetro por referencia, estamos pasándole realmente su posición en memoria interna del ordenador. Esto quiere decir, que si modificamos esta variable dentro de la función, fuera también se habrá cambiado.

Visibilidad y ámbito en programación

Como he comentado en el apartado de variables de este curso de programación para principiantes, existen variables locales y globales. Ahora que sabemos lo que son las funciones y procedimientos, tiene más sentido hablar más en profundidad de este tema.

Las variables que se especifican como globales, están disponibles desde todo el programa, mientras que las que especifiquemos como locales (por defecto, en general) solo estarán disponible en su ámbito o scope. El ámbito es el lugar en el que se ha creado la variable.

Por ejemplo, si se ha creado una variable en el código principal, estará disponible desde todas partes, pero si creamos una variable en una función o procedimiento, únicamente estará disponible en esa función/procedimiento.

Estructura ideal de un programa informático

A la hora de realizar la implementación de un programa informático es muy importante seguir una buena estructura en nuestro código para facilitar la legibilidad del mismo. De otra manera, sería imposible seguir el ritmo del mismo o añadir nuevas funcionalidades en el futuro.

Por esos motivos, hay una serie de prácticas habituales que mejoran la lectura de nuestro código, como son las siguientes:

  • Estructurar adecuadamente el código del programa: utilizando funciones y procedimientos y crear módulos para almacenarlos de forma correcta.
  • Separar creación de variablesdeclaración de funciones auxiliares y código principal en tres bloques para que no se convierta todo en un batiburrillo de información.
  • Añadir comentarios que documenten bien y de forma correcta el código. Todos los lenguajes de programación permiten añadir comentarios, es importante utilizarlos para explicar lo que se hace en cada parte de nuestro código, de forma que si otra persona tiene que entenderlo que sea capaz de hacerlo.
  • Nombres de variables y funciones/procedimientos bien elegidos y explicativos. No es necesario que sean muy largos ni nada por el estilo. Simplemente no poner nombres de variables como "q" o "p", y utilizar más bien nombres como "factorial", "lectura_datos", "lista_enteros", etc. Variables que al leer el nombre podamos suponer qué almacenan y para qué sirve.
  • Seguir la misma nomenclatura a la hora de poner nombres a las variables. Por ejemplo: "nombre_variable" o "nombreVariable" son dos tipos de nomenclaturas muy utilizadas, pero no deben mezclarse, tiene que haber consistencia en nuestro código.

Espero que hayas aprendido en este curso gratis de programación para principiantes, si es así deja un comentario!! Si crees que me he olvidado de algo importante, también puedes ponérmelo en un comentario 🙂

Este curso se mantiene actualizado y siempre que puedo le añado nuevo contenido, así que no dudes en pasarte de vez en cuando a ver si hay novedades.

¡Nos vemos en el siguiente!

Pionera del caos

Ingeniera Informática con Máster en Bioinformática, casi doctora y freelancer. Todo lo que te cuento en este blog son aprendizajes que yo misma he tenido ya sea durante mis estudios o en otros proyectos!

Otras Entradas Relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *



Para continuar es necesario que confirmes la política de privacidad de la web.

Subir